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

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 (482) hide show
  1. package/CHANGELOG.md +365 -6
  2. package/esm/app.js +20 -3
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +33 -7
  5. package/esm/cli/FrodoCommand.js.map +1 -1
  6. package/esm/cli/_template/something-delete.js +4 -5
  7. package/esm/cli/_template/something-delete.js.map +1 -1
  8. package/esm/cli/_template/something-describe.js +4 -5
  9. package/esm/cli/_template/something-describe.js.map +1 -1
  10. package/esm/cli/_template/something-else-delete.js +4 -5
  11. package/esm/cli/_template/something-else-delete.js.map +1 -1
  12. package/esm/cli/_template/something-else-describe.js +4 -5
  13. package/esm/cli/_template/something-else-describe.js.map +1 -1
  14. package/esm/cli/_template/something-else-export.js +5 -6
  15. package/esm/cli/_template/something-else-export.js.map +1 -1
  16. package/esm/cli/_template/something-else-import.js +4 -5
  17. package/esm/cli/_template/something-else-import.js.map +1 -1
  18. package/esm/cli/_template/something-else-list.js +4 -5
  19. package/esm/cli/_template/something-else-list.js.map +1 -1
  20. package/esm/cli/_template/something-else.js +1 -1
  21. package/esm/cli/_template/something-else.js.map +1 -1
  22. package/esm/cli/_template/something-export.js +5 -6
  23. package/esm/cli/_template/something-export.js.map +1 -1
  24. package/esm/cli/_template/something-import.js +4 -5
  25. package/esm/cli/_template/something-import.js.map +1 -1
  26. package/esm/cli/_template/something-list.js +4 -5
  27. package/esm/cli/_template/something-list.js.map +1 -1
  28. package/esm/cli/_template/something-other-delete.js +4 -5
  29. package/esm/cli/_template/something-other-delete.js.map +1 -1
  30. package/esm/cli/_template/something-other-describe.js +4 -5
  31. package/esm/cli/_template/something-other-describe.js.map +1 -1
  32. package/esm/cli/_template/something-other-export.js +5 -6
  33. package/esm/cli/_template/something-other-export.js.map +1 -1
  34. package/esm/cli/_template/something-other-import.js +4 -5
  35. package/esm/cli/_template/something-other-import.js.map +1 -1
  36. package/esm/cli/_template/something-other-list.js +4 -5
  37. package/esm/cli/_template/something-other-list.js.map +1 -1
  38. package/esm/cli/_template/something-other.js +1 -1
  39. package/esm/cli/_template/something-other.js.map +1 -1
  40. package/esm/cli/_template/something.js +2 -2
  41. package/esm/cli/_template/something.js.map +1 -1
  42. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -5
  43. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  44. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +12 -8
  45. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  46. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +38 -0
  47. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
  48. package/esm/cli/admin/admin-federation-export.js +41 -0
  49. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  50. package/esm/cli/admin/admin-federation-import.js +45 -0
  51. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  52. package/esm/cli/admin/admin-federation-list.js +25 -0
  53. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  54. package/esm/cli/admin/admin-federation.js +13 -0
  55. package/esm/cli/admin/admin-federation.js.map +1 -0
  56. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +41 -0
  57. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -0
  58. package/esm/cli/admin/admin-get-access-token.js +10 -7
  59. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  60. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +11 -8
  61. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  62. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +9 -6
  63. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  64. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +9 -6
  65. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +9 -6
  67. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  68. package/esm/cli/admin/admin-list-static-user-mappings.js +10 -7
  69. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  70. package/esm/cli/admin/admin-remove-static-user-mapping.js +10 -6
  71. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  72. package/esm/cli/admin/admin-repair-org-model.js +9 -6
  73. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  74. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +10 -7
  75. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  76. package/esm/cli/admin/admin-show-generic-extension-attributes.js +9 -6
  77. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  78. package/esm/cli/admin/admin-train-auto-access-model.js +30 -0
  79. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
  80. package/esm/cli/admin/admin.js +8 -2
  81. package/esm/cli/admin/admin.js.map +1 -1
  82. package/esm/cli/agent/agent-delete.js +11 -7
  83. package/esm/cli/agent/agent-delete.js.map +1 -1
  84. package/esm/cli/agent/agent-describe.js +4 -5
  85. package/esm/cli/agent/agent-describe.js.map +1 -1
  86. package/esm/cli/agent/agent-export.js +9 -10
  87. package/esm/cli/agent/agent-export.js.map +1 -1
  88. package/esm/cli/agent/agent-gateway-delete.js +11 -7
  89. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-gateway-describe.js +4 -5
  91. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-gateway-export.js +9 -10
  93. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  94. package/esm/cli/agent/agent-gateway-import.js +5 -6
  95. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  96. package/esm/cli/agent/agent-gateway-list.js +4 -5
  97. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  98. package/esm/cli/agent/agent-gateway.js +1 -1
  99. package/esm/cli/agent/agent-gateway.js.map +1 -1
  100. package/esm/cli/agent/agent-import.js +5 -6
  101. package/esm/cli/agent/agent-import.js.map +1 -1
  102. package/esm/cli/agent/agent-java-delete.js +11 -7
  103. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  104. package/esm/cli/agent/agent-java-describe.js +4 -5
  105. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  106. package/esm/cli/agent/agent-java-export.js +9 -10
  107. package/esm/cli/agent/agent-java-export.js.map +1 -1
  108. package/esm/cli/agent/agent-java-import.js +5 -6
  109. package/esm/cli/agent/agent-java-import.js.map +1 -1
  110. package/esm/cli/agent/agent-java-list.js +4 -5
  111. package/esm/cli/agent/agent-java-list.js.map +1 -1
  112. package/esm/cli/agent/agent-java.js +1 -1
  113. package/esm/cli/agent/agent-java.js.map +1 -1
  114. package/esm/cli/agent/agent-list.js +4 -5
  115. package/esm/cli/agent/agent-list.js.map +1 -1
  116. package/esm/cli/agent/agent-web-delete.js +11 -7
  117. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  118. package/esm/cli/agent/agent-web-describe.js +4 -5
  119. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  120. package/esm/cli/agent/agent-web-export.js +9 -10
  121. package/esm/cli/agent/agent-web-export.js.map +1 -1
  122. package/esm/cli/agent/agent-web-import.js +5 -6
  123. package/esm/cli/agent/agent-web-import.js.map +1 -1
  124. package/esm/cli/agent/agent-web-list.js +4 -5
  125. package/esm/cli/agent/agent-web-list.js.map +1 -1
  126. package/esm/cli/agent/agent-web.js +3 -3
  127. package/esm/cli/agent/agent-web.js.map +1 -1
  128. package/esm/cli/agent/agent.js +2 -2
  129. package/esm/cli/agent/agent.js.map +1 -1
  130. package/esm/cli/app/app-delete.js +24 -9
  131. package/esm/cli/app/app-delete.js.map +1 -1
  132. package/esm/cli/app/app-describe.js +6 -6
  133. package/esm/cli/app/app-describe.js.map +1 -1
  134. package/esm/cli/app/app-export.js +14 -14
  135. package/esm/cli/app/app-export.js.map +1 -1
  136. package/esm/cli/app/app-import.js +18 -18
  137. package/esm/cli/app/app-import.js.map +1 -1
  138. package/esm/cli/app/app-list.js +9 -9
  139. package/esm/cli/app/app-list.js.map +1 -1
  140. package/esm/cli/app/app.js +8 -12
  141. package/esm/cli/app/app.js.map +1 -1
  142. package/esm/cli/authn/authn-describe.js +26 -0
  143. package/esm/cli/authn/authn-describe.js.map +1 -0
  144. package/esm/cli/authn/authn-export.js +22 -0
  145. package/esm/cli/authn/authn-export.js.map +1 -0
  146. package/esm/cli/authn/authn-import.js +22 -0
  147. package/esm/cli/authn/authn-import.js.map +1 -0
  148. package/esm/cli/authn/authn.js +12 -0
  149. package/esm/cli/authn/authn.js.map +1 -0
  150. package/esm/cli/authz/authz-policy-delete.js +8 -9
  151. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  152. package/esm/cli/authz/authz-policy-describe.js +5 -6
  153. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  154. package/esm/cli/authz/authz-policy-export.js +15 -16
  155. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  156. package/esm/cli/authz/authz-policy-import.js +8 -9
  157. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  158. package/esm/cli/authz/authz-policy-list.js +8 -9
  159. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  160. package/esm/cli/authz/authz-policy.js +1 -1
  161. package/esm/cli/authz/authz-policy.js.map +1 -1
  162. package/esm/cli/authz/authz-set-delete.js +8 -9
  163. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  164. package/esm/cli/authz/authz-set-describe.js +5 -6
  165. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  166. package/esm/cli/authz/authz-set-export.js +11 -12
  167. package/esm/cli/authz/authz-set-export.js.map +1 -1
  168. package/esm/cli/authz/authz-set-import.js +8 -9
  169. package/esm/cli/authz/authz-set-import.js.map +1 -1
  170. package/esm/cli/authz/authz-set-list.js +6 -7
  171. package/esm/cli/authz/authz-set-list.js.map +1 -1
  172. package/esm/cli/authz/authz-set.js +1 -1
  173. package/esm/cli/authz/authz-set.js.map +1 -1
  174. package/esm/cli/authz/authz-type-delete.js +10 -11
  175. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  176. package/esm/cli/authz/authz-type-describe.js +6 -7
  177. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  178. package/esm/cli/authz/authz-type-export.js +13 -14
  179. package/esm/cli/authz/authz-type-export.js.map +1 -1
  180. package/esm/cli/authz/authz-type-import.js +11 -12
  181. package/esm/cli/authz/authz-type-import.js.map +1 -1
  182. package/esm/cli/authz/authz-type-list.js +6 -7
  183. package/esm/cli/authz/authz-type-list.js.map +1 -1
  184. package/esm/cli/authz/authz-type.js +1 -1
  185. package/esm/cli/authz/authz-type.js.map +1 -1
  186. package/esm/cli/authz/authz.js +2 -2
  187. package/esm/cli/authz/authz.js.map +1 -1
  188. package/esm/cli/config/config-delete.js +18 -0
  189. package/esm/cli/config/config-delete.js.map +1 -0
  190. package/esm/cli/config/config-describe.js +18 -0
  191. package/esm/cli/config/config-describe.js.map +1 -0
  192. package/esm/cli/config/config-export.js +45 -0
  193. package/esm/cli/config/config-export.js.map +1 -0
  194. package/esm/cli/config/config-import.js +54 -0
  195. package/esm/cli/config/config-import.js.map +1 -0
  196. package/esm/cli/config/config-list.js +18 -0
  197. package/esm/cli/config/config-list.js.map +1 -0
  198. package/esm/cli/config/config.js +19 -0
  199. package/esm/cli/config/config.js.map +1 -0
  200. package/esm/cli/conn/conn-delete.js +2 -3
  201. package/esm/cli/conn/conn-delete.js.map +1 -1
  202. package/esm/cli/conn/conn-describe.js +2 -3
  203. package/esm/cli/conn/conn-describe.js.map +1 -1
  204. package/esm/cli/conn/conn-list.js +2 -3
  205. package/esm/cli/conn/conn-list.js.map +1 -1
  206. package/esm/cli/conn/conn-save.js +25 -15
  207. package/esm/cli/conn/conn-save.js.map +1 -1
  208. package/esm/cli/conn/conn.js +2 -2
  209. package/esm/cli/conn/conn.js.map +1 -1
  210. package/esm/cli/email/email-template-export.js +12 -12
  211. package/esm/cli/email/email-template-export.js.map +1 -1
  212. package/esm/cli/email/email-template-import.js +12 -13
  213. package/esm/cli/email/email-template-import.js.map +1 -1
  214. package/esm/cli/email/email-template-list.js +6 -7
  215. package/esm/cli/email/email-template-list.js.map +1 -1
  216. package/esm/cli/email/email-template.js +1 -1
  217. package/esm/cli/email/email-template.js.map +1 -1
  218. package/esm/cli/email/email.js +2 -2
  219. package/esm/cli/email/email.js.map +1 -1
  220. package/esm/cli/esv/esv-apply.js +16 -9
  221. package/esm/cli/esv/esv-apply.js.map +1 -1
  222. package/esm/cli/esv/esv-secret-create.js +13 -8
  223. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  224. package/esm/cli/esv/esv-secret-delete.js +10 -10
  225. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  226. package/esm/cli/esv/esv-secret-describe.js +7 -7
  227. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  228. package/esm/cli/esv/esv-secret-export.js +20 -7
  229. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  230. package/esm/cli/esv/esv-secret-import.js +4 -5
  231. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  232. package/esm/cli/esv/esv-secret-list.js +8 -8
  233. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  234. package/esm/cli/esv/esv-secret-set.js +7 -7
  235. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  236. package/esm/cli/esv/esv-secret-version-activate.js +7 -8
  237. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  238. package/esm/cli/esv/esv-secret-version-create.js +13 -8
  239. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  240. package/esm/cli/esv/esv-secret-version-deactivate.js +7 -8
  241. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  242. package/esm/cli/esv/esv-secret-version-delete.js +10 -10
  243. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  244. package/esm/cli/esv/esv-secret-version-list.js +7 -7
  245. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  246. package/esm/cli/esv/esv-secret-version.js +1 -1
  247. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  248. package/esm/cli/esv/esv-secret.js +2 -3
  249. package/esm/cli/esv/esv-secret.js.map +1 -1
  250. package/esm/cli/esv/esv-variable-create.js +9 -8
  251. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  252. package/esm/cli/esv/esv-variable-delete.js +10 -9
  253. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  254. package/esm/cli/esv/esv-variable-describe.js +8 -8
  255. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  256. package/esm/cli/esv/esv-variable-export.js +21 -7
  257. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  258. package/esm/cli/esv/esv-variable-import.js +4 -5
  259. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  260. package/esm/cli/esv/esv-variable-list.js +8 -8
  261. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  262. package/esm/cli/esv/esv-variable-set.js +10 -9
  263. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  264. package/esm/cli/esv/esv-variable.js +2 -3
  265. package/esm/cli/esv/esv-variable.js.map +1 -1
  266. package/esm/cli/esv/esv.js +2 -2
  267. package/esm/cli/esv/esv.js.map +1 -1
  268. package/esm/cli/idm/idm-count.js +7 -8
  269. package/esm/cli/idm/idm-count.js.map +1 -1
  270. package/esm/cli/idm/idm-export.js +22 -16
  271. package/esm/cli/idm/idm-export.js.map +1 -1
  272. package/esm/cli/idm/idm-import.js +20 -14
  273. package/esm/cli/idm/idm-import.js.map +1 -1
  274. package/esm/cli/idm/idm-list.js +7 -8
  275. package/esm/cli/idm/idm-list.js.map +1 -1
  276. package/esm/cli/idm/idm.js +2 -2
  277. package/esm/cli/idm/idm.js.map +1 -1
  278. package/esm/cli/idp/idp-export.js +10 -10
  279. package/esm/cli/idp/idp-export.js.map +1 -1
  280. package/esm/cli/idp/idp-import.js +22 -14
  281. package/esm/cli/idp/idp-import.js.map +1 -1
  282. package/esm/cli/idp/idp-list.js +7 -7
  283. package/esm/cli/idp/idp-list.js.map +1 -1
  284. package/esm/cli/idp/idp.js +2 -2
  285. package/esm/cli/idp/idp.js.map +1 -1
  286. package/esm/cli/info/info.js +11 -7
  287. package/esm/cli/info/info.js.map +1 -1
  288. package/esm/cli/journey/journey-delete.js +12 -8
  289. package/esm/cli/journey/journey-delete.js.map +1 -1
  290. package/esm/cli/journey/journey-describe.js +20 -12
  291. package/esm/cli/journey/journey-describe.js.map +1 -1
  292. package/esm/cli/journey/journey-disable.js +8 -12
  293. package/esm/cli/journey/journey-disable.js.map +1 -1
  294. package/esm/cli/journey/journey-enable.js +8 -12
  295. package/esm/cli/journey/journey-enable.js.map +1 -1
  296. package/esm/cli/journey/journey-export.js +27 -16
  297. package/esm/cli/journey/journey-export.js.map +1 -1
  298. package/esm/cli/journey/journey-import.js +12 -13
  299. package/esm/cli/journey/journey-import.js.map +1 -1
  300. package/esm/cli/journey/journey-list.js +6 -6
  301. package/esm/cli/journey/journey-list.js.map +1 -1
  302. package/esm/cli/journey/journey-prune.js +21 -13
  303. package/esm/cli/journey/journey-prune.js.map +1 -1
  304. package/esm/cli/journey/journey.js +2 -2
  305. package/esm/cli/journey/journey.js.map +1 -1
  306. package/esm/cli/log/log-fetch.js +65 -35
  307. package/esm/cli/log/log-fetch.js.map +1 -1
  308. package/esm/cli/log/log-key-delete.js +6 -7
  309. package/esm/cli/log/log-key-delete.js.map +1 -1
  310. package/esm/cli/log/log-key-describe.js +4 -5
  311. package/esm/cli/log/log-key-describe.js.map +1 -1
  312. package/esm/cli/log/log-key-list.js +4 -5
  313. package/esm/cli/log/log-key-list.js.map +1 -1
  314. package/esm/cli/log/log-key.js +1 -1
  315. package/esm/cli/log/log-key.js.map +1 -1
  316. package/esm/cli/log/log-list.js +62 -33
  317. package/esm/cli/log/log-list.js.map +1 -1
  318. package/esm/cli/log/log-tail.js +63 -34
  319. package/esm/cli/log/log-tail.js.map +1 -1
  320. package/esm/cli/log/log.js +2 -2
  321. package/esm/cli/log/log.js.map +1 -1
  322. package/esm/cli/oauth/oauth-client-delete.js +18 -0
  323. package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
  324. package/esm/cli/oauth/oauth-client-describe.js +18 -0
  325. package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
  326. package/esm/cli/oauth/oauth-client-export.js +48 -0
  327. package/esm/cli/oauth/oauth-client-export.js.map +1 -0
  328. package/esm/cli/oauth/oauth-client-import.js +53 -0
  329. package/esm/cli/oauth/oauth-client-import.js.map +1 -0
  330. package/esm/cli/oauth/oauth-client-list.js +21 -0
  331. package/esm/cli/oauth/oauth-client-list.js.map +1 -0
  332. package/esm/cli/oauth/oauth-client.js +14 -0
  333. package/esm/cli/oauth/oauth-client.js.map +1 -0
  334. package/esm/cli/oauth/oauth.js +13 -0
  335. package/esm/cli/oauth/oauth.js.map +1 -0
  336. package/esm/cli/realm/realm-add-custom-domain.js +6 -6
  337. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  338. package/esm/cli/realm/realm-describe.js +6 -6
  339. package/esm/cli/realm/realm-describe.js.map +1 -1
  340. package/esm/cli/realm/realm-list.js +5 -6
  341. package/esm/cli/realm/realm-list.js.map +1 -1
  342. package/esm/cli/realm/realm-remove-custom-domain.js +9 -6
  343. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  344. package/esm/cli/realm/realm.js +2 -2
  345. package/esm/cli/realm/realm.js.map +1 -1
  346. package/esm/cli/saml/saml-cot-export.js +12 -12
  347. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  348. package/esm/cli/saml/saml-cot-import.js +13 -13
  349. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  350. package/esm/cli/saml/saml-cot-list.js +7 -7
  351. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  352. package/esm/cli/saml/saml-cot.js +1 -1
  353. package/esm/cli/saml/saml-cot.js.map +1 -1
  354. package/esm/cli/saml/saml-delete.js +12 -8
  355. package/esm/cli/saml/saml-delete.js.map +1 -1
  356. package/esm/cli/saml/saml-describe.js +7 -7
  357. package/esm/cli/saml/saml-describe.js.map +1 -1
  358. package/esm/cli/saml/saml-export.js +18 -12
  359. package/esm/cli/saml/saml-export.js.map +1 -1
  360. package/esm/cli/saml/saml-import.js +22 -14
  361. package/esm/cli/saml/saml-import.js.map +1 -1
  362. package/esm/cli/saml/saml-list.js +7 -7
  363. package/esm/cli/saml/saml-list.js.map +1 -1
  364. package/esm/cli/saml/saml-metadata-export.js +8 -8
  365. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  366. package/esm/cli/saml/saml-metadata.js +1 -1
  367. package/esm/cli/saml/saml-metadata.js.map +1 -1
  368. package/esm/cli/saml/saml.js +2 -2
  369. package/esm/cli/saml/saml.js.map +1 -1
  370. package/esm/cli/script/script-delete.js +19 -8
  371. package/esm/cli/script/script-delete.js.map +1 -1
  372. package/esm/cli/script/script-describe.js +4 -5
  373. package/esm/cli/script/script-describe.js.map +1 -1
  374. package/esm/cli/script/script-export.js +10 -15
  375. package/esm/cli/script/script-export.js.map +1 -1
  376. package/esm/cli/script/script-import.js +16 -10
  377. package/esm/cli/script/script-import.js.map +1 -1
  378. package/esm/cli/script/script-list.js +8 -8
  379. package/esm/cli/script/script-list.js.map +1 -1
  380. package/esm/cli/script/script.js +3 -5
  381. package/esm/cli/script/script.js.map +1 -1
  382. package/esm/cli/service/service-delete.js +5 -5
  383. package/esm/cli/service/service-delete.js.map +1 -1
  384. package/esm/cli/service/service-export.js +10 -11
  385. package/esm/cli/service/service-export.js.map +1 -1
  386. package/esm/cli/service/service-import.js +29 -14
  387. package/esm/cli/service/service-import.js.map +1 -1
  388. package/esm/cli/service/service-list.js +4 -4
  389. package/esm/cli/service/service-list.js.map +1 -1
  390. package/esm/cli/service/service.js +2 -2
  391. package/esm/cli/service/service.js.map +1 -1
  392. package/esm/cli/shell/shell.js +55 -0
  393. package/esm/cli/shell/shell.js.map +1 -0
  394. package/esm/cli/theme/theme-delete.js +11 -11
  395. package/esm/cli/theme/theme-delete.js.map +1 -1
  396. package/esm/cli/theme/theme-export.js +14 -14
  397. package/esm/cli/theme/theme-export.js.map +1 -1
  398. package/esm/cli/theme/theme-import.js +14 -14
  399. package/esm/cli/theme/theme-import.js.map +1 -1
  400. package/esm/cli/theme/theme-list.js +6 -6
  401. package/esm/cli/theme/theme-list.js.map +1 -1
  402. package/esm/cli/theme/theme.js +2 -2
  403. package/esm/cli/theme/theme.js.map +1 -1
  404. package/esm/help/SampleData.js +1 -1
  405. package/esm/help/SampleData.js.map +1 -1
  406. package/esm/launch.js +1 -1
  407. package/esm/launch.js.map +1 -1
  408. package/esm/loader.js +2 -2
  409. package/esm/loader.js.map +1 -1
  410. package/esm/ops/AdminFederationOps.js +231 -0
  411. package/esm/ops/AdminFederationOps.js.map +1 -0
  412. package/esm/ops/AdminOps.js +151 -0
  413. package/esm/ops/AdminOps.js.map +1 -0
  414. package/esm/ops/AgentOps.js +213 -150
  415. package/esm/ops/AgentOps.js.map +1 -1
  416. package/esm/ops/ApplicationOps.js +324 -0
  417. package/esm/ops/ApplicationOps.js.map +1 -0
  418. package/esm/ops/AuthenticateOps.js +28 -0
  419. package/esm/ops/AuthenticateOps.js.map +1 -0
  420. package/esm/ops/AuthenticationSettingsOps.js +90 -0
  421. package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
  422. package/esm/ops/CirclesOfTrustOps.js +98 -78
  423. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  424. package/esm/ops/ConfigOps.js +168 -0
  425. package/esm/ops/ConfigOps.js.map +1 -0
  426. package/esm/ops/ConnectionProfileOps.js +13 -6
  427. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  428. package/esm/ops/EmailTemplateOps.js +122 -127
  429. package/esm/ops/EmailTemplateOps.js.map +1 -1
  430. package/esm/ops/IdmOps.js +101 -182
  431. package/esm/ops/IdmOps.js.map +1 -1
  432. package/esm/ops/IdpOps.js +108 -75
  433. package/esm/ops/IdpOps.js.map +1 -1
  434. package/esm/ops/JourneyOps.js +182 -116
  435. package/esm/ops/JourneyOps.js.map +1 -1
  436. package/esm/ops/LogOps.js +22 -12
  437. package/esm/ops/LogOps.js.map +1 -1
  438. package/esm/ops/NodeOps.js +14 -3
  439. package/esm/ops/NodeOps.js.map +1 -1
  440. package/esm/ops/OAuth2ClientOps.js +71 -49
  441. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  442. package/esm/ops/OrganizationOps.js +14 -22
  443. package/esm/ops/OrganizationOps.js.map +1 -1
  444. package/esm/ops/PolicyOps.js +127 -86
  445. package/esm/ops/PolicyOps.js.map +1 -1
  446. package/esm/ops/PolicySetOps.js +108 -76
  447. package/esm/ops/PolicySetOps.js.map +1 -1
  448. package/esm/ops/RealmOps.js +15 -10
  449. package/esm/ops/RealmOps.js.map +1 -1
  450. package/esm/ops/ResourceTypeOps.js +105 -87
  451. package/esm/ops/ResourceTypeOps.js.map +1 -1
  452. package/esm/ops/Saml2Ops.js +138 -91
  453. package/esm/ops/Saml2Ops.js.map +1 -1
  454. package/esm/ops/Saml2Ops.test_.js.map +1 -1
  455. package/esm/ops/ScriptOps.js +222 -90
  456. package/esm/ops/ScriptOps.js.map +1 -1
  457. package/esm/ops/SecretsOps.js +333 -79
  458. package/esm/ops/SecretsOps.js.map +1 -1
  459. package/esm/ops/ServiceOps.js +97 -54
  460. package/esm/ops/ServiceOps.js.map +1 -1
  461. package/esm/ops/ThemeOps.js +164 -158
  462. package/esm/ops/ThemeOps.js.map +1 -1
  463. package/esm/ops/VariablesOps.js +252 -65
  464. package/esm/ops/VariablesOps.js.map +1 -1
  465. package/esm/ops/utils/OpsUtils.js +1 -1
  466. package/esm/ops/utils/OpsUtils.js.map +1 -1
  467. package/esm/ops/utils/Wordwrap.js +1 -1
  468. package/esm/ops/utils/Wordwrap.js.map +1 -1
  469. package/esm/storage/StaticStorage.js +1 -1
  470. package/esm/storage/StaticStorage.js.map +1 -1
  471. package/esm/utils/Config.js +164 -4
  472. package/esm/utils/Config.js.map +1 -1
  473. package/esm/utils/Console.js +78 -35
  474. package/esm/utils/Console.js.map +1 -1
  475. package/esm/utils/Version.js +20 -17
  476. package/esm/utils/Version.js.map +1 -1
  477. package/global-jest-setup.js +5 -0
  478. package/package.json +56 -37
  479. package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
  480. package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
  481. package/esm/utils/ExportImportUtils.js +0 -90
  482. package/esm/utils/ExportImportUtils.js.map +0 -1
@@ -1,49 +1,78 @@
1
- import { FrodoCommand } from '../FrodoCommand';
2
1
  import { frodo, state } from '@rockcarver/frodo-lib';
3
- import { printMessage, verboseMessage } from '../../utils/Console';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
4
3
  import { provisionCreds } from '../../ops/LogOps';
4
+ import { printMessage, verboseMessage } from '../../utils/Console';
5
+ import { FrodoCommand } from '../FrodoCommand';
6
+ const {
7
+ getConnectionProfile,
8
+ saveConnectionProfile
9
+ } = frodo.conn;
10
+ const {
11
+ getLogSources
12
+ } = frodo.cloud.log;
5
13
  const program = new FrodoCommand('frodo log list', ['realm', 'type']);
6
14
  program.description('List available ID Cloud log sources.').action(async (host, user, password, options, command) => {
7
15
  command.handleDefaultArgsAndOpts(host, user, password, options, command);
8
- let credsFromParameters = true;
9
16
  verboseMessage('Listing available ID Cloud log sources...');
10
- const conn = await frodo.conn.getConnectionProfile();
11
- if (conn) {
12
- state.setHost(conn.tenant);
13
- if (conn.logApiKey != null && conn.logApiSecret != null) {
14
- credsFromParameters = false;
15
- state.setLogApiKey(conn.logApiKey);
16
- state.setLogApiSecret(conn.logApiSecret);
17
- } else {
18
- if (conn.username == null && conn.password == null) {
19
- if (!state.getUsername() && !state.getPassword()) {
20
- credsFromParameters = false;
21
- printMessage('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
22
- return;
23
- }
24
- } else {
25
- state.setUsername(conn.username);
26
- state.setPassword(conn.password);
27
- }
28
- if (await frodo.login.getTokens(true)) {
29
- const creds = await provisionCreds();
30
- state.setLogApiKey(creds.api_key_id);
31
- state.setLogApiSecret(creds.api_key_secret);
32
- }
17
+ let foundCredentials = false;
18
+ const conn = await getConnectionProfile();
19
+ if (conn) state.setHost(conn.tenant);
20
+
21
+ // log api creds have been supplied as username and password arguments
22
+ if (state.getUsername() && state.getPassword()) {
23
+ verboseMessage(`Using log api credentials from command line.`);
24
+ state.setLogApiKey(state.getUsername());
25
+ state.setLogApiSecret(state.getPassword());
26
+ foundCredentials = true;
27
+ }
28
+ // log api creds from connection profile
29
+ else if (conn && conn.logApiKey != null && conn.logApiSecret != null) {
30
+ verboseMessage(`Using log api credentials from connection profile.`);
31
+ state.setLogApiKey(conn.logApiKey);
32
+ state.setLogApiSecret(conn.logApiSecret);
33
+ foundCredentials = true;
34
+ }
35
+ // log api creds have been supplied via env variables
36
+ else if (state.getLogApiKey() && state.getLogApiSecret()) {
37
+ verboseMessage(`Using log api credentials from environment variables.`);
38
+ foundCredentials = true;
39
+ }
40
+ // no log api creds but got username and password, so can try to create them
41
+ else if (conn && conn.username && conn.password) {
42
+ printMessage(`Found admin credentials in connection profile, attempting to create log api credentials...`);
43
+ state.setUsername(conn.username);
44
+ state.setPassword(conn.password);
45
+ if (await getTokens(true)) {
46
+ const creds = await provisionCreds();
47
+ state.setLogApiKey(creds.api_key_id);
48
+ state.setLogApiSecret(creds.api_key_secret);
49
+ await saveConnectionProfile(state.getHost());
50
+ foundCredentials = true;
51
+ }
52
+ // unable to create credentials
53
+ else {
54
+ printMessage(`Unable to create log api credentials.`);
33
55
  }
34
- const sources = await frodo.cloud.log.getLogSources();
56
+ }
57
+ if (foundCredentials) {
58
+ const sources = await getLogSources();
35
59
  if (sources.length === 0) {
36
60
  printMessage("Can't get sources, possible cause - wrong API key or secret", 'error');
37
61
  } else {
38
- if (credsFromParameters) await frodo.conn.saveConnectionProfile(host); // save new values if they were specified on CLI
39
- printMessage(`Log sources from ${conn.tenant}`);
40
- sources.forEach(source => {
62
+ printMessage(`Log sources from ${state.getHost()}`);
63
+ for (const source of sources) {
41
64
  printMessage(`${source}`, 'data');
42
- });
65
+ }
43
66
  printMessage('Use any combination of comma separated sources, example:', 'info');
44
- printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'text');
67
+ printMessage(`$ frodo logs tail -c am-core,idm-core ${state.getHost()}`, 'text');
45
68
  }
46
69
  }
70
+ // no log api credentials
71
+ else {
72
+ printMessage('No log api credentials found!');
73
+ program.help();
74
+ process.exitCode = 1;
75
+ }
47
76
  });
48
77
  program.parse();
49
- //# sourceMappingURL=log-list.js.map
78
+ //# sourceMappingURL=log-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-list.js","names":["FrodoCommand","frodo","state","printMessage","verboseMessage","provisionCreds","program","description","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","getConnectionProfile","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","login","getTokens","creds","api_key_id","api_key_secret","sources","cloud","log","getLogSources","length","saveConnectionProfile","forEach","source","parse"],"sources":["cli/log/log-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { provisionCreds } from '../../ops/LogOps';\n\nconst program = new FrodoCommand('frodo log list', ['realm', 'type']);\nprogram\n .description('List available ID Cloud log sources.')\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n let credsFromParameters = true;\n verboseMessage('Listing available ID Cloud log sources...');\n const conn = await frodo.conn.getConnectionProfile();\n if (conn) {\n state.setHost(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (!state.getUsername() && !state.getPassword()) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n }\n if (await frodo.login.getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id as string);\n state.setLogApiSecret(creds.api_key_secret as string);\n }\n }\n\n const sources = await frodo.cloud.log.getLogSources();\n if (sources.length === 0) {\n printMessage(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n if (credsFromParameters) await frodo.conn.saveConnectionProfile(host); // save new values if they were specified on CLI\n printMessage(`Log sources from ${conn.tenant}`);\n sources.forEach((source) => {\n printMessage(`${source}`, 'data');\n });\n printMessage(\n 'Use any combination of comma separated sources, example:',\n 'info'\n );\n printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'text');\n }\n }\n });\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,cAAc,QAAQ,kBAAkB;AAEjD,MAAMC,OAAO,GAAG,IAAIN,YAAY,CAAC,gBAAgB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACrEM,OAAO,CACJC,WAAW,CAAC,sCAAsC,CAAC,CACnDC,MAAM,CAAC,OAAOC,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACxDA,OAAO,CAACC,wBAAwB,CAACL,IAAI,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxE,IAAIE,mBAAmB,GAAG,IAAI;EAC9BX,cAAc,CAAC,2CAA2C,CAAC;EAC3D,MAAMY,IAAI,GAAG,MAAMf,KAAK,CAACe,IAAI,CAACC,oBAAoB,CAAC,CAAC;EACpD,IAAID,IAAI,EAAE;IACRd,KAAK,CAACgB,OAAO,CAACF,IAAI,CAACG,MAAM,CAAC;IAC1B,IAAIH,IAAI,CAACI,SAAS,IAAI,IAAI,IAAIJ,IAAI,CAACK,YAAY,IAAI,IAAI,EAAE;MACvDN,mBAAmB,GAAG,KAAK;MAC3Bb,KAAK,CAACoB,YAAY,CAACN,IAAI,CAACI,SAAS,CAAC;MAClClB,KAAK,CAACqB,eAAe,CAACP,IAAI,CAACK,YAAY,CAAC;IAC1C,CAAC,MAAM;MACL,IAAIL,IAAI,CAACQ,QAAQ,IAAI,IAAI,IAAIR,IAAI,CAACL,QAAQ,IAAI,IAAI,EAAE;QAClD,IAAI,CAACT,KAAK,CAACuB,WAAW,CAAC,CAAC,IAAI,CAACvB,KAAK,CAACwB,WAAW,CAAC,CAAC,EAAE;UAChDX,mBAAmB,GAAG,KAAK;UAC3BZ,YAAY,CACV,qFAAqF,EACrF,MACF,CAAC;UACD;QACF;MACF,CAAC,MAAM;QACLD,KAAK,CAACyB,WAAW,CAACX,IAAI,CAACQ,QAAQ,CAAC;QAChCtB,KAAK,CAAC0B,WAAW,CAACZ,IAAI,CAACL,QAAQ,CAAC;MAClC;MACA,IAAI,MAAMV,KAAK,CAAC4B,KAAK,CAACC,SAAS,CAAC,IAAI,CAAC,EAAE;QACrC,MAAMC,KAAK,GAAG,MAAM1B,cAAc,CAAC,CAAC;QACpCH,KAAK,CAACoB,YAAY,CAACS,KAAK,CAACC,UAAoB,CAAC;QAC9C9B,KAAK,CAACqB,eAAe,CAACQ,KAAK,CAACE,cAAwB,CAAC;MACvD;IACF;IAEA,MAAMC,OAAO,GAAG,MAAMjC,KAAK,CAACkC,KAAK,CAACC,GAAG,CAACC,aAAa,CAAC,CAAC;IACrD,IAAIH,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;MACxBnC,YAAY,CACV,6DAA6D,EAC7D,OACF,CAAC;IACH,CAAC,MAAM;MACL,IAAIY,mBAAmB,EAAE,MAAMd,KAAK,CAACe,IAAI,CAACuB,qBAAqB,CAAC9B,IAAI,CAAC,CAAC,CAAC;MACvEN,YAAY,CAAE,oBAAmBa,IAAI,CAACG,MAAO,EAAC,CAAC;MAC/Ce,OAAO,CAACM,OAAO,CAAEC,MAAM,IAAK;QAC1BtC,YAAY,CAAE,GAAEsC,MAAO,EAAC,EAAE,MAAM,CAAC;MACnC,CAAC,CAAC;MACFtC,YAAY,CACV,0DAA0D,EAC1D,MACF,CAAC;MACDA,YAAY,CAAE,yCAAwCM,IAAK,EAAC,EAAE,MAAM,CAAC;IACvE;EACF;AACF,CAAC,CAAC;AAEJH,OAAO,CAACoC,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"log-list.js","names":["frodo","state","getTokens","provisionCreds","printMessage","verboseMessage","FrodoCommand","getConnectionProfile","saveConnectionProfile","conn","getLogSources","cloud","log","program","description","action","host","user","password","options","command","handleDefaultArgsAndOpts","foundCredentials","setHost","tenant","getUsername","getPassword","setLogApiKey","setLogApiSecret","logApiKey","logApiSecret","getLogApiKey","getLogApiSecret","username","setUsername","setPassword","creds","api_key_id","api_key_secret","getHost","sources","length","source","help","process","exitCode","parse"],"sources":["../../../src/cli/log/log-list.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { provisionCreds } from '../../ops/LogOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getConnectionProfile, saveConnectionProfile } = frodo.conn;\nconst { getLogSources } = frodo.cloud.log;\n\nconst program = new FrodoCommand('frodo log list', ['realm', 'type']);\nprogram\n .description('List available ID Cloud log sources.')\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n\n verboseMessage('Listing available ID Cloud log sources...');\n\n let foundCredentials = false;\n\n const conn = await getConnectionProfile();\n if (conn) state.setHost(conn.tenant);\n\n // log api creds have been supplied as username and password arguments\n if (state.getUsername() && state.getPassword()) {\n verboseMessage(`Using log api credentials from command line.`);\n state.setLogApiKey(state.getUsername());\n state.setLogApiSecret(state.getPassword());\n foundCredentials = true;\n }\n // log api creds from connection profile\n else if (conn && conn.logApiKey != null && conn.logApiSecret != null) {\n verboseMessage(`Using log api credentials from connection profile.`);\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n foundCredentials = true;\n }\n // log api creds have been supplied via env variables\n else if (state.getLogApiKey() && state.getLogApiSecret()) {\n verboseMessage(`Using log api credentials from environment variables.`);\n foundCredentials = true;\n }\n // no log api creds but got username and password, so can try to create them\n else if (conn && conn.username && conn.password) {\n printMessage(\n `Found admin credentials in connection profile, attempting to create log api credentials...`\n );\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id as string);\n state.setLogApiSecret(creds.api_key_secret as string);\n await saveConnectionProfile(state.getHost());\n foundCredentials = true;\n }\n // unable to create credentials\n else {\n printMessage(`Unable to create log api credentials.`);\n }\n }\n\n if (foundCredentials) {\n const sources = await getLogSources();\n if (sources.length === 0) {\n printMessage(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n printMessage(`Log sources from ${state.getHost()}`);\n for (const source of sources) {\n printMessage(`${source}`, 'data');\n }\n printMessage(\n 'Use any combination of comma separated sources, example:',\n 'info'\n );\n printMessage(\n `$ frodo logs tail -c am-core,idm-core ${state.getHost()}`,\n 'text'\n );\n }\n }\n // no log api credentials\n else {\n printMessage('No log api credentials found!');\n program.help();\n process.exitCode = 1;\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,46 +1,75 @@
1
- import { FrodoCommand } from '../FrodoCommand';
2
- import { sourcesOptionM } from './log';
3
- import { Option } from 'commander';
4
1
  import { frodo, state } from '@rockcarver/frodo-lib';
5
- import * as config from '../../utils/Config';
6
- import { printMessage } from '../../utils/Console';
2
+ import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
7
4
  import { provisionCreds, tailLogs } from '../../ops/LogOps';
5
+ import * as config from '../../utils/Config';
6
+ import { printMessage, verboseMessage } from '../../utils/Console';
7
+ import { FrodoCommand } from '../FrodoCommand';
8
+ import { sourcesOptionM } from './log';
9
+ const {
10
+ resolveLevel
11
+ } = frodo.cloud.log;
12
+ const {
13
+ getConnectionProfile,
14
+ saveConnectionProfile
15
+ } = frodo.conn;
8
16
  const program = new FrodoCommand('frodo log tail', ['realm', 'type']);
9
17
  program.description('Tail Identity Cloud logs.').addOption(sourcesOptionM).addOption(new Option('-l, --level <level>', 'Set log level filter. You can specify the level as a number or a string. \
10
18
  Following values are possible (values on the same line are equivalent): \
11
19
  \n0, SEVERE, FATAL, or ERROR\n1, WARNING, WARN or CONFIG\
12
20
  \n2, INFO or INFORMATION\n3, DEBUG, FINE, FINER or FINEST\
13
- \n4 or ALL').default('ERROR', `${frodo.cloud.log.resolveLevel('ERROR')}`)).addOption(new Option('-t, --transaction-id <txid>', 'Filter by transactionId')).addOption(new Option('-d, --defaults', 'Use default logging noise filters').default(false, `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`)).action(async (host, user, password, options, command) => {
21
+ \n4 or ALL').default('ERROR', `${resolveLevel('ERROR')}`)).addOption(new Option('-t, --transaction-id <txid>', 'Filter by transactionId')).addOption(new Option('-d, --defaults', 'Use default logging noise filters').default(false, `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`)).action(async (host, user, password, options, command) => {
14
22
  command.handleDefaultArgsAndOpts(host, user, password, options, command);
15
- let credsFromParameters = true;
16
- const conn = await frodo.conn.getConnectionProfile();
17
- if (conn) {
18
- state.setHost(conn.tenant);
19
- if (conn.logApiKey != null && conn.logApiSecret != null) {
20
- credsFromParameters = false;
21
- state.setLogApiKey(conn.logApiKey);
22
- state.setLogApiSecret(conn.logApiSecret);
23
- } else {
24
- if (conn.username == null && conn.password == null) {
25
- if (!state.getUsername() && !state.getPassword()) {
26
- credsFromParameters = false;
27
- printMessage('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
28
- return;
29
- }
30
- } else {
31
- state.setUsername(conn.username);
32
- state.setPassword(conn.password);
33
- }
34
- if (await frodo.login.getTokens(true)) {
35
- const creds = await provisionCreds();
36
- state.setLogApiKey(creds.api_key_id);
37
- state.setLogApiSecret(creds.api_key_secret);
38
- }
23
+ let foundCredentials = false;
24
+ const conn = await getConnectionProfile();
25
+ if (conn) state.setHost(conn.tenant);
26
+
27
+ // log api creds have been supplied as username and password arguments
28
+ if (state.getUsername() && state.getPassword()) {
29
+ verboseMessage(`Using log api credentials from command line.`);
30
+ state.setLogApiKey(state.getUsername());
31
+ state.setLogApiSecret(state.getPassword());
32
+ foundCredentials = true;
33
+ }
34
+ // log api creds from connection profile
35
+ else if (conn && conn.logApiKey != null && conn.logApiSecret != null) {
36
+ verboseMessage(`Using log api credentials from connection profile.`);
37
+ state.setLogApiKey(conn.logApiKey);
38
+ state.setLogApiSecret(conn.logApiSecret);
39
+ foundCredentials = true;
40
+ }
41
+ // log api creds have been supplied via env variables
42
+ else if (state.getLogApiKey() && state.getLogApiSecret()) {
43
+ verboseMessage(`Using log api credentials from environment variables.`);
44
+ foundCredentials = true;
45
+ }
46
+ // no log api creds but got username and password, so can try to create them
47
+ else if (conn && conn.username && conn.password) {
48
+ printMessage(`Found admin credentials in connection profile, attempting to create log api credentials...`);
49
+ state.setUsername(conn.username);
50
+ state.setPassword(conn.password);
51
+ if (await getTokens(true)) {
52
+ const creds = await provisionCreds();
53
+ state.setLogApiKey(creds.api_key_id);
54
+ state.setLogApiSecret(creds.api_key_secret);
55
+ await saveConnectionProfile(state.getHost());
56
+ foundCredentials = true;
39
57
  }
40
- printMessage(`Tailing ID Cloud logs from the following sources: ${command.opts().sources} and levels [${frodo.cloud.log.resolveLevel(command.opts().level)}] of ${conn.tenant}...`);
41
- if (credsFromParameters) await frodo.conn.saveConnectionProfile(host); // save new values if they were specified on CLI
42
- await tailLogs(command.opts().sources, frodo.cloud.log.resolveLevel(command.opts().level), command.opts().transactionId, null, config.getNoiseFilters(options.defaults));
58
+ // unable to create credentials
59
+ else {
60
+ printMessage(`Unable to create log api credentials.`);
61
+ }
62
+ }
63
+ if (foundCredentials) {
64
+ printMessage(`Tailing ID Cloud logs from the following sources: ${options.sources} and levels [${resolveLevel(options.level)}] of ${state.getHost()}...`);
65
+ await tailLogs(command.opts().sources, resolveLevel(command.opts().level), command.opts().transactionId, null, config.getNoiseFilters(options.defaults));
66
+ }
67
+ // no log api credentials
68
+ else {
69
+ printMessage('No log api credentials found!');
70
+ program.help();
71
+ process.exitCode = 1;
43
72
  }
44
73
  });
45
74
  program.parse();
46
- //# sourceMappingURL=log-tail.js.map
75
+ //# sourceMappingURL=log-tail.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log-tail.js","names":["FrodoCommand","sourcesOptionM","Option","frodo","state","config","printMessage","provisionCreds","tailLogs","program","description","addOption","default","cloud","log","resolveLevel","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","getConnectionProfile","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","login","getTokens","creds","api_key_id","api_key_secret","opts","sources","level","saveConnectionProfile","transactionId","getNoiseFilters","defaults","parse"],"sources":["cli/log/log-tail.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './log';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\nimport { provisionCreds, tailLogs } from '../../ops/LogOps';\n\nconst program = new FrodoCommand('frodo log tail', ['realm', 'type']);\nprogram\n .description('Tail Identity Cloud logs.')\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${frodo.cloud.log.resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n let credsFromParameters = true;\n const conn = await frodo.conn.getConnectionProfile();\n if (conn) {\n state.setHost(conn.tenant);\n if (conn.logApiKey != null && conn.logApiSecret != null) {\n credsFromParameters = false;\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (!state.getUsername() && !state.getPassword()) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n }\n if (await frodo.login.getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id as string);\n state.setLogApiSecret(creds.api_key_secret as string);\n }\n }\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${frodo.cloud.log.resolveLevel(\n command.opts().level\n )}] of ${conn.tenant}...`\n );\n if (credsFromParameters) await frodo.conn.saveConnectionProfile(host); // save new values if they were specified on CLI\n await tailLogs(\n command.opts().sources,\n frodo.cloud.log.resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"log-tail.js","names":["frodo","state","Option","getTokens","provisionCreds","tailLogs","config","printMessage","verboseMessage","FrodoCommand","sourcesOptionM","resolveLevel","cloud","log","getConnectionProfile","saveConnectionProfile","conn","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","foundCredentials","setHost","tenant","getUsername","getPassword","setLogApiKey","setLogApiSecret","logApiKey","logApiSecret","getLogApiKey","getLogApiSecret","username","setUsername","setPassword","creds","api_key_id","api_key_secret","getHost","sources","level","opts","transactionId","getNoiseFilters","defaults","help","process","exitCode","parse"],"sources":["../../../src/cli/log/log-tail.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { provisionCreds, tailLogs } from '../../ops/LogOps';\nimport * as config from '../../utils/Config';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './log';\n\nconst { resolveLevel } = frodo.cloud.log;\nconst { getConnectionProfile, saveConnectionProfile } = frodo.conn;\n\nconst program = new FrodoCommand('frodo log tail', ['realm', 'type']);\nprogram\n .description('Tail Identity Cloud logs.')\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n\n let foundCredentials = false;\n\n const conn = await getConnectionProfile();\n if (conn) state.setHost(conn.tenant);\n\n // log api creds have been supplied as username and password arguments\n if (state.getUsername() && state.getPassword()) {\n verboseMessage(`Using log api credentials from command line.`);\n state.setLogApiKey(state.getUsername());\n state.setLogApiSecret(state.getPassword());\n foundCredentials = true;\n }\n // log api creds from connection profile\n else if (conn && conn.logApiKey != null && conn.logApiSecret != null) {\n verboseMessage(`Using log api credentials from connection profile.`);\n state.setLogApiKey(conn.logApiKey);\n state.setLogApiSecret(conn.logApiSecret);\n foundCredentials = true;\n }\n // log api creds have been supplied via env variables\n else if (state.getLogApiKey() && state.getLogApiSecret()) {\n verboseMessage(`Using log api credentials from environment variables.`);\n foundCredentials = true;\n }\n // no log api creds but got username and password, so can try to create them\n else if (conn && conn.username && conn.password) {\n printMessage(\n `Found admin credentials in connection profile, attempting to create log api credentials...`\n );\n state.setUsername(conn.username);\n state.setPassword(conn.password);\n if (await getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id as string);\n state.setLogApiSecret(creds.api_key_secret as string);\n await saveConnectionProfile(state.getHost());\n foundCredentials = true;\n }\n // unable to create credentials\n else {\n printMessage(`Unable to create log api credentials.`);\n }\n }\n\n if (foundCredentials) {\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n options.sources\n } and levels [${resolveLevel(options.level)}] of ${state.getHost()}...`\n );\n await tailLogs(\n command.opts().sources,\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n }\n // no log api credentials\n else {\n printMessage('No log api credentials found!');\n program.help();\n process.exitCode = 1;\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
- import { FrodoStubCommand } from '../FrodoCommand';
2
1
  import { Option } from 'commander';
3
2
  import path from 'path';
4
3
  import { fileURLToPath } from 'url';
4
+ import { FrodoStubCommand } from '../FrodoCommand';
5
5
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
6
  export const sourcesOptionM = new Option('-c, --sources <sources>', 'Comma separated list of log sources').makeOptionMandatory().default('am-everything,idm-everything', 'Log everything');
7
7
  export default function setup() {
@@ -14,4 +14,4 @@ export default function setup() {
14
14
  program.command('key', 'Manage Identity Cloud log API keys.');
15
15
  return program;
16
16
  }
17
- //# sourceMappingURL=log.js.map
17
+ //# sourceMappingURL=log.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"log.js","names":["FrodoStubCommand","Option","path","fileURLToPath","__dirname","dirname","import","meta","url","sourcesOptionM","makeOptionMandatory","default","setup","program","alias","summary","description","executableDir","command"],"sources":["cli/log/log.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport const sourcesOptionM = new Option(\n '-c, --sources <sources>',\n 'Comma separated list of log sources'\n)\n .makeOptionMandatory()\n .default('am-everything,idm-everything', 'Log everything');\n\nexport default function setup() {\n const program = new FrodoStubCommand('log')\n // for backwards compatibility\n .alias('logs')\n .summary('List/View Identity Cloud logs')\n .description(\n `View Identity Cloud logs. If valid tenant admin credentials are specified, a log API key and secret are automatically created for that admin user.`\n )\n .executableDir(__dirname);\n\n program.command('list', 'List available ID Cloud log sources.');\n\n program.command('tail', 'Tail Identity Cloud logs.');\n\n program.command('fetch', 'Fetch Identity Cloud logs for a time window.');\n\n program.command('key', 'Manage Identity Cloud log API keys.');\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAClD,SAASC,MAAM,QAAQ,WAAW;AAClC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,OAAO,MAAMC,cAAc,GAAG,IAAIR,MAAM,CACtC,yBAAyB,EACzB,qCACF,CAAC,CACES,mBAAmB,CAAC,CAAC,CACrBC,OAAO,CAAC,8BAA8B,EAAE,gBAAgB,CAAC;AAE5D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIb,gBAAgB,CAAC,KAAK;EACxC;EAAA,CACCc,KAAK,CAAC,MAAM,CAAC,CACbC,OAAO,CAAC,+BAA+B,CAAC,CACxCC,WAAW,CACT,oJACH,CAAC,CACAC,aAAa,CAACb,SAAS,CAAC;EAE3BS,OAAO,CAACK,OAAO,CAAC,MAAM,EAAE,sCAAsC,CAAC;EAE/DL,OAAO,CAACK,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC;EAEpDL,OAAO,CAACK,OAAO,CAAC,OAAO,EAAE,8CAA8C,CAAC;EAExEL,OAAO,CAACK,OAAO,CAAC,KAAK,EAAE,qCAAqC,CAAC;EAE7D,OAAOL,OAAO;AAChB"}
1
+ {"version":3,"file":"log.js","names":["Option","path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","sourcesOptionM","makeOptionMandatory","default","setup","program","alias","summary","description","executableDir","command"],"sources":["../../../src/cli/log/log.ts"],"sourcesContent":["import { Option } from 'commander';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FrodoStubCommand } from '../FrodoCommand';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport const sourcesOptionM = new Option(\n '-c, --sources <sources>',\n 'Comma separated list of log sources'\n)\n .makeOptionMandatory()\n .default('am-everything,idm-everything', 'Log everything');\n\nexport default function setup() {\n const program = new FrodoStubCommand('log')\n // for backwards compatibility\n .alias('logs')\n .summary('List/View Identity Cloud logs')\n .description(\n `View Identity Cloud logs. If valid tenant admin credentials are specified, a log API key and secret are automatically created for that admin user.`\n )\n .executableDir(__dirname);\n\n program.command('list', 'List available ID Cloud log sources.');\n\n program.command('tail', 'Tail Identity Cloud logs.');\n\n program.command('fetch', 'Fetch Identity Cloud logs for a time window.');\n\n program.command('key', 'Manage Identity Cloud log API keys.');\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAClC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,SAAS,GAAGH,IAAI,CAACI,OAAO,CAACH,aAAa,CAACI,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,OAAO,MAAMC,cAAc,GAAG,IAAIT,MAAM,CACtC,yBAAyB,EACzB,qCACF,CAAC,CACEU,mBAAmB,CAAC,CAAC,CACrBC,OAAO,CAAC,8BAA8B,EAAE,gBAAgB,CAAC;AAE5D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIV,gBAAgB,CAAC,KAAK;EACxC;EAAA,CACCW,KAAK,CAAC,MAAM,CAAC,CACbC,OAAO,CAAC,+BAA+B,CAAC,CACxCC,WAAW,CACT,oJACH,CAAC,CACAC,aAAa,CAACb,SAAS,CAAC;EAE3BS,OAAO,CAACK,OAAO,CAAC,MAAM,EAAE,sCAAsC,CAAC;EAE/DL,OAAO,CAACK,OAAO,CAAC,MAAM,EAAE,2BAA2B,CAAC;EAEpDL,OAAO,CAACK,OAAO,CAAC,OAAO,EAAE,8CAA8C,CAAC;EAExEL,OAAO,CAACK,OAAO,CAAC,KAAK,EAAE,qCAAqC,CAAC;EAE7D,OAAOL,OAAO;AAChB"}
@@ -0,0 +1,18 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { FrodoCommand } from '../FrodoCommand';
4
+ const program = new FrodoCommand('frodo oauth client delete');
5
+ program.description('Delete OAuth2 clients.').addOption(new Option('-i, --app-id <id>', 'OAuth2 application id/name. If specified, -a and -A are ignored.')).addOption(new Option('-a, --all', 'Delete all cmds in a realm. Ignored with -i.')).addOption(new Option('--no-deep', 'No deep delete. This leaves orphaned configuration artifacts behind.')).action(
6
+ // implement command logic inside action handler
7
+ async (host, realm, user, password, options, command) => {
8
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
9
+ if (await getTokens()) {
10
+ // code goes here
11
+ } else {
12
+ process.exitCode = 1;
13
+ }
14
+ }
15
+ // end command logic inside action handler
16
+ );
17
+ program.parse();
18
+ //# sourceMappingURL=oauth-client-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-delete.js","names":["Option","getTokens","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/oauth/oauth-client-delete.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo oauth client delete');\n\nprogram\n .description('Delete OAuth2 clients.')\n .addOption(\n new Option(\n '-i, --app-id <id>',\n 'OAuth2 application id/name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete all cmds in a realm. Ignored with -i.')\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,2BAA2B,CAAC;AAE7DC,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIL,MAAM,CACR,mBAAmB,EACnB,kEACF,CACF,CAAC,CACAK,SAAS,CACR,IAAIL,MAAM,CAAC,WAAW,EAAE,8CAA8C,CACxE,CAAC,CACAK,SAAS,CACR,IAAIL,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { FrodoCommand } from '../FrodoCommand';
4
+ const program = new FrodoCommand('frodo oauth client describe');
5
+ program.description('Describe OAuth2 application.').addOption(new Option('-i, --app-id <id>', 'OAuth2 application id/name.')).action(
6
+ // implement command logic inside action handler
7
+ async (host, realm, user, password, options, command) => {
8
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
9
+ if (await getTokens()) {
10
+ // code goes here
11
+ } else {
12
+ process.exitCode = 1;
13
+ }
14
+ }
15
+ // end command logic inside action handler
16
+ );
17
+ program.parse();
18
+ //# sourceMappingURL=oauth-client-describe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-describe.js","names":["Option","getTokens","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/oauth/oauth-client-describe.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo oauth client describe');\n\nprogram\n .description('Describe OAuth2 application.')\n .addOption(new Option('-i, --app-id <id>', 'OAuth2 application id/name.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,6BAA6B,CAAC;AAE/DC,OAAO,CACJC,WAAW,CAAC,8BAA8B,CAAC,CAC3CC,SAAS,CAAC,IAAIL,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC,CACzEM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -0,0 +1,48 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { exportOAuth2ClientsToFile, exportOAuth2ClientsToFiles, exportOAuth2ClientToFile } from '../../ops/OAuth2ClientOps';
4
+ import { verboseMessage } from '../../utils/Console.js';
5
+ import { FrodoCommand } from '../FrodoCommand';
6
+ const program = new FrodoCommand('frodo oauth client export');
7
+ program.description('Export OAuth2 applications.').addOption(new Option('-i, --app-id <app-id>', 'App id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export all OAuth2 apps to a single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export all OAuth2 apps to separate files (*.oauth2.app.json) in the current directory. Ignored with -i or -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts).')).action(
8
+ // implement command logic inside action handler
9
+ async (host, realm, user, password, options, command) => {
10
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
+ // export
12
+ if (options.appId && (await getTokens())) {
13
+ verboseMessage('Exporting OAuth2 application...');
14
+ const status = await exportOAuth2ClientToFile(options.appId, options.file, options.metadata, {
15
+ useStringArrays: true,
16
+ deps: options.deps
17
+ });
18
+ if (!status) process.exitCode = 1;
19
+ }
20
+ // -a/--all
21
+ else if (options.all && (await getTokens())) {
22
+ verboseMessage('Exporting all OAuth2 applications to file...');
23
+ const status = await exportOAuth2ClientsToFile(options.file, options.metadata, {
24
+ useStringArrays: true,
25
+ deps: options.deps
26
+ });
27
+ if (!status) process.exitCode = 1;
28
+ }
29
+ // -A/--all-separate
30
+ else if (options.allSeparate && (await getTokens())) {
31
+ verboseMessage('Exporting all applications to separate files...');
32
+ const status = await exportOAuth2ClientsToFiles(options.metadata, {
33
+ useStringArrays: true,
34
+ deps: options.deps
35
+ });
36
+ if (!status) process.exitCode = 1;
37
+ }
38
+ // unrecognized combination of options or no options
39
+ else {
40
+ verboseMessage('Unrecognized combination of options or no options...');
41
+ program.help();
42
+ process.exitCode = 1;
43
+ }
44
+ }
45
+ // end command logic inside action handler
46
+ );
47
+ program.parse();
48
+ //# sourceMappingURL=oauth-client-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-export.js","names":["Option","getTokens","exportOAuth2ClientsToFile","exportOAuth2ClientsToFiles","exportOAuth2ClientToFile","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","appId","status","file","metadata","useStringArrays","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/oauth/oauth-client-export.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportOAuth2ClientsToFile,\n exportOAuth2ClientsToFiles,\n exportOAuth2ClientToFile,\n} from '../../ops/OAuth2ClientOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo oauth client export');\n\nprogram\n .description('Export OAuth2 applications.')\n .addOption(\n new Option(\n '-i, --app-id <app-id>',\n 'App id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Export all OAuth2 apps to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all OAuth2 apps to separate files (*.oauth2.app.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export\n if (options.appId && (await getTokens())) {\n verboseMessage('Exporting OAuth2 application...');\n const status = await exportOAuth2ClientToFile(\n options.appId,\n options.file,\n options.metadata,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all OAuth2 applications to file...');\n const status = await exportOAuth2ClientsToFile(\n options.file,\n options.metadata,\n {\n useStringArrays: true,\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // -A/--all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all applications to separate files...');\n const status = await exportOAuth2ClientsToFiles(options.metadata, {\n useStringArrays: true,\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('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,yBAAyB,EACzBC,0BAA0B,EAC1BC,wBAAwB,QACnB,2BAA2B;AAClC,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,2BAA2B,CAAC;AAE7DC,OAAO,CACJC,WAAW,CAAC,6BAA6B,CAAC,CAC1CC,SAAS,CACR,IAAIT,MAAM,CACR,uBAAuB,EACvB,8CACF,CACF,CAAC,CACAS,SAAS,CAAC,IAAIT,MAAM,CAAC,mBAAmB,EAAE,0BAA0B,CAAC,CAAC,CACtES,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,2DACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,oBAAoB,EACpB,+GACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CAAC,WAAW,EAAE,4CAA4C,CACtE,CAAC,CACAU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IACxCI,cAAc,CAAC,iCAAiC,CAAC;IACjD,MAAMc,MAAM,GAAG,MAAMf,wBAAwB,CAC3CW,OAAO,CAACG,KAAK,EACbH,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QAAQ,EAChB;MACEC,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAER,OAAO,CAACQ;IAChB,CACF,CAAC;IACD,IAAI,CAACJ,MAAM,EAAEK,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK,IAAIV,OAAO,CAACW,GAAG,KAAK,MAAMzB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CI,cAAc,CAAC,8CAA8C,CAAC;IAC9D,MAAMc,MAAM,GAAG,MAAMjB,yBAAyB,CAC5Ca,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QAAQ,EAChB;MACEC,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAER,OAAO,CAACQ;IAChB,CACF,CAAC;IACD,IAAI,CAACJ,MAAM,EAAEK,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK,IAAIV,OAAO,CAACY,WAAW,KAAK,MAAM1B,SAAS,CAAC,CAAC,CAAC,EAAE;IACnDI,cAAc,CAAC,iDAAiD,CAAC;IACjE,MAAMc,MAAM,GAAG,MAAMhB,0BAA0B,CAACY,OAAO,CAACM,QAAQ,EAAE;MAChEC,eAAe,EAAE,IAAI;MACrBC,IAAI,EAAER,OAAO,CAACQ;IAChB,CAAC,CAAC;IACF,IAAI,CAACJ,MAAM,EAAEK,OAAO,CAACC,QAAQ,GAAG,CAAC;EACnC;EACA;EAAA,KACK;IACHpB,cAAc,CAAC,sDAAsD,CAAC;IACtEE,OAAO,CAACqB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHlB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
@@ -0,0 +1,53 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { importFirstOAuth2ClientFromFile, importOAuth2ClientFromFile, importOAuth2ClientsFromFile, importOAuth2ClientsFromFiles } from '../../ops/OAuth2ClientOps';
4
+ import { printMessage, verboseMessage } from '../../utils/Console.js';
5
+ import { FrodoCommand } from '../FrodoCommand';
6
+ const program = new FrodoCommand('frodo oauth client import');
7
+ program.description('Import OAuth2 applications.').addOption(new Option('-i, --app-id <id>', 'Application id. If specified, only one application is imported and the options -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-a, --all', 'Import all applications from single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all applications from separate files (*.app.json) in the current directory. Ignored with -i or -a.')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts).')).action(
8
+ // implement command logic inside action handler
9
+ async (host, realm, user, password, options, command) => {
10
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
+ // import by id
12
+ if (options.file && options.appId && (await getTokens())) {
13
+ verboseMessage(`Importing OAuth2 application "${options.appId}"...`);
14
+ const status = await importOAuth2ClientFromFile(options.appId, options.file, {
15
+ deps: options.deps
16
+ });
17
+ if (!status) process.exitCode = 1;
18
+ }
19
+ // --all -a
20
+ else if (options.all && options.file && (await getTokens())) {
21
+ verboseMessage(`Importing all OAuth2 applications from a single file (${options.file})...`);
22
+ const status = await importOAuth2ClientsFromFile(options.file, {
23
+ deps: options.deps
24
+ });
25
+ if (!status) process.exitCode = 1;
26
+ }
27
+ // --all-separate -A
28
+ else if (options.allSeparate && !options.file && (await getTokens())) {
29
+ verboseMessage('Importing all OAuth2 applications from separate files in current directory...');
30
+ const status = await importOAuth2ClientsFromFiles({
31
+ deps: options.deps
32
+ });
33
+ if (!status) process.exitCode = 1;
34
+ }
35
+ // import first provider from file
36
+ else if (options.file && (await getTokens())) {
37
+ verboseMessage(`Importing first OAuth2 application from file "${options.file}"...`);
38
+ const status = await importFirstOAuth2ClientFromFile(options.file, {
39
+ deps: options.deps
40
+ });
41
+ if (!status) process.exitCode = 1;
42
+ }
43
+ // unrecognized combination of options or no options
44
+ else {
45
+ printMessage('Unrecognized combination of options or no options...');
46
+ program.help();
47
+ process.exitCode = 1;
48
+ }
49
+ }
50
+ // end command logic inside action handler
51
+ );
52
+ program.parse();
53
+ //# sourceMappingURL=oauth-client-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-import.js","names":["Option","getTokens","importFirstOAuth2ClientFromFile","importOAuth2ClientFromFile","importOAuth2ClientsFromFile","importOAuth2ClientsFromFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","appId","status","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/oauth/oauth-client-import.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importFirstOAuth2ClientFromFile,\n importOAuth2ClientFromFile,\n importOAuth2ClientsFromFile,\n importOAuth2ClientsFromFiles,\n} from '../../ops/OAuth2ClientOps';\nimport { printMessage, verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo oauth client import');\n\nprogram\n .description('Import OAuth2 applications.')\n .addOption(\n new Option(\n '-i, --app-id <id>',\n 'Application id. If specified, only one application is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all applications from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all applications from separate files (*.app.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\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.appId && (await getTokens())) {\n verboseMessage(`Importing OAuth2 application \"${options.appId}\"...`);\n const status = await importOAuth2ClientFromFile(\n options.appId,\n options.file,\n {\n deps: options.deps,\n }\n );\n if (!status) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all OAuth2 applications from a single file (${options.file})...`\n );\n const status = await importOAuth2ClientsFromFile(options.file, {\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all OAuth2 applications from separate files in current directory...'\n );\n const status = await importOAuth2ClientsFromFiles({\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first OAuth2 application from file \"${options.file}\"...`\n );\n const status = await importFirstOAuth2ClientFromFile(options.file, {\n deps: options.deps,\n });\n if (!status) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { listOAuth2Clients } from '../../ops/OAuth2ClientOps';
4
+ import { verboseMessage } from '../../utils/Console.js';
5
+ import { FrodoCommand } from '../FrodoCommand';
6
+ const program = new FrodoCommand('frodo oauth client list');
7
+ program.description('List OAuth2 applications.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
8
+ // implement command logic inside action handler
9
+ async (host, realm, user, password, options, command) => {
10
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
+ if (await getTokens()) {
12
+ verboseMessage(`Listing OAuth2 applications...`);
13
+ await listOAuth2Clients(options.long);
14
+ } else {
15
+ process.exitCode = 1;
16
+ }
17
+ }
18
+ // end command logic inside action handler
19
+ );
20
+ program.parse();
21
+ //# sourceMappingURL=oauth-client-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client-list.js","names":["Option","getTokens","listOAuth2Clients","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","long","process","exitCode","parse"],"sources":["../../../src/cli/oauth/oauth-client-list.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { listOAuth2Clients } from '../../ops/OAuth2ClientOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo oauth client list');\n\nprogram\n .description('List OAuth2 applications.')\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 OAuth2 applications...`);\n await listOAuth2Clients(options.long);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,yBAAyB,CAAC;AAE3DC,OAAO,CACJC,WAAW,CAAC,2BAA2B,CAAC,CACxCC,SAAS,CACR,IAAIP,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,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,cAAc,CAAE,gCAA+B,CAAC;IAChD,MAAMD,iBAAiB,CAACY,OAAO,CAACG,IAAI,CAAC;EACvC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { FrodoStubCommand } from '../FrodoCommand';
2
+ const program = new FrodoStubCommand('frodo oauth client');
3
+ program.description('Manage OAuth2 clients.');
4
+ program.command('list', 'List OAuth2 clients.');
5
+
6
+ // program.command('describe', 'Describe OAuth2 clients.');
7
+
8
+ program.command('export', 'Export OAuth2 clients.');
9
+ program.command('import', 'Import OAuth2 clients.');
10
+
11
+ // program.command('delete', 'Delete OAuth2 clients.');
12
+
13
+ program.parse();
14
+ //# sourceMappingURL=oauth-client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"oauth-client.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["../../../src/cli/oauth/oauth-client.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo oauth client');\n\nprogram.description('Manage OAuth2 clients.');\n\nprogram.command('list', 'List OAuth2 clients.');\n\n// program.command('describe', 'Describe OAuth2 clients.');\n\nprogram.command('export', 'Export OAuth2 clients.');\n\nprogram.command('import', 'Import OAuth2 clients.');\n\n// program.command('delete', 'Delete OAuth2 clients.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,oBAAoB,CAAC;AAE1DC,OAAO,CAACC,WAAW,CAAC,wBAAwB,CAAC;AAE7CD,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,sBAAsB,CAAC;;AAE/C;;AAEAF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC;AAEnDF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,wBAAwB,CAAC;;AAEnD;;AAEAF,OAAO,CAACG,KAAK,CAAC,CAAC"}
@@ -0,0 +1,13 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import { FrodoStubCommand } from '../FrodoCommand';
4
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
+ export default function setup() {
6
+ const program = new FrodoStubCommand('oauth').description('Manage OAuth2 clients and providers.').executableDir(__dirname);
7
+ program.command('client', 'Manage OAuth2 clients.');
8
+
9
+ // program.command('provider', 'Manage OAuth2 providers.');
10
+
11
+ return program;
12
+ }
13
+ //# sourceMappingURL=oauth.js.map