@rockcarver/frodo-cli 0.24.5 → 2.0.0-2

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 (337) hide show
  1. package/.vscode/launch.json +15 -0
  2. package/CHANGELOG.md +9 -1
  3. package/esm/app.js +2 -5
  4. package/esm/app.js.map +1 -1
  5. package/esm/cli/FrodoCommand.js +10 -10
  6. package/esm/cli/FrodoCommand.js.map +1 -1
  7. package/esm/cli/_template/something-delete.js +2 -5
  8. package/esm/cli/_template/something-delete.js.map +1 -1
  9. package/esm/cli/_template/something-describe.js +2 -5
  10. package/esm/cli/_template/something-describe.js.map +1 -1
  11. package/esm/cli/_template/something-else-delete.js +2 -5
  12. package/esm/cli/_template/something-else-delete.js.map +1 -1
  13. package/esm/cli/_template/something-else-describe.js +2 -5
  14. package/esm/cli/_template/something-else-describe.js.map +1 -1
  15. package/esm/cli/_template/something-else-export.js +2 -5
  16. package/esm/cli/_template/something-else-export.js.map +1 -1
  17. package/esm/cli/_template/something-else-import.js +2 -5
  18. package/esm/cli/_template/something-else-import.js.map +1 -1
  19. package/esm/cli/_template/something-else-list.js +2 -5
  20. package/esm/cli/_template/something-else-list.js.map +1 -1
  21. package/esm/cli/_template/something-export.js +2 -5
  22. package/esm/cli/_template/something-export.js.map +1 -1
  23. package/esm/cli/_template/something-import.js +2 -5
  24. package/esm/cli/_template/something-import.js.map +1 -1
  25. package/esm/cli/_template/something-list.js +2 -5
  26. package/esm/cli/_template/something-list.js.map +1 -1
  27. package/esm/cli/_template/something-other-delete.js +2 -5
  28. package/esm/cli/_template/something-other-delete.js.map +1 -1
  29. package/esm/cli/_template/something-other-describe.js +2 -5
  30. package/esm/cli/_template/something-other-describe.js.map +1 -1
  31. package/esm/cli/_template/something-other-export.js +2 -5
  32. package/esm/cli/_template/something-other-export.js.map +1 -1
  33. package/esm/cli/_template/something-other-import.js +2 -5
  34. package/esm/cli/_template/something-other-import.js.map +1 -1
  35. package/esm/cli/_template/something-other-list.js +2 -5
  36. package/esm/cli/_template/something-other-list.js.map +1 -1
  37. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +3 -9
  38. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  39. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +4 -11
  40. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  41. package/esm/cli/admin/admin-get-access-token.js +3 -9
  42. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  43. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +3 -9
  44. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  45. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +3 -9
  46. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  47. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +3 -9
  48. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  49. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +3 -9
  50. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  51. package/esm/cli/admin/admin-list-static-user-mappings.js +3 -9
  52. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  53. package/esm/cli/admin/admin-remove-static-user-mapping.js +3 -9
  54. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  55. package/esm/cli/admin/admin-repair-org-model.js +3 -9
  56. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  57. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +3 -9
  58. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  59. package/esm/cli/admin/admin-show-generic-extension-attributes.js +3 -9
  60. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  61. package/esm/cli/agent/agent-delete.js +4 -11
  62. package/esm/cli/agent/agent-delete.js.map +1 -1
  63. package/esm/cli/agent/agent-describe.js +2 -5
  64. package/esm/cli/agent/agent-describe.js.map +1 -1
  65. package/esm/cli/agent/agent-export.js +2 -5
  66. package/esm/cli/agent/agent-export.js.map +1 -1
  67. package/esm/cli/agent/agent-gateway-delete.js +4 -11
  68. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  69. package/esm/cli/agent/agent-gateway-describe.js +2 -5
  70. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  71. package/esm/cli/agent/agent-gateway-export.js +2 -5
  72. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  73. package/esm/cli/agent/agent-gateway-import.js +2 -5
  74. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  75. package/esm/cli/agent/agent-gateway-list.js +2 -5
  76. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  77. package/esm/cli/agent/agent-import.js +2 -5
  78. package/esm/cli/agent/agent-import.js.map +1 -1
  79. package/esm/cli/agent/agent-java-delete.js +4 -11
  80. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  81. package/esm/cli/agent/agent-java-describe.js +2 -5
  82. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  83. package/esm/cli/agent/agent-java-export.js +2 -5
  84. package/esm/cli/agent/agent-java-export.js.map +1 -1
  85. package/esm/cli/agent/agent-java-import.js +2 -5
  86. package/esm/cli/agent/agent-java-import.js.map +1 -1
  87. package/esm/cli/agent/agent-java-list.js +2 -5
  88. package/esm/cli/agent/agent-java-list.js.map +1 -1
  89. package/esm/cli/agent/agent-list.js +2 -5
  90. package/esm/cli/agent/agent-list.js.map +1 -1
  91. package/esm/cli/agent/agent-web-delete.js +4 -11
  92. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  93. package/esm/cli/agent/agent-web-describe.js +2 -5
  94. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  95. package/esm/cli/agent/agent-web-export.js +2 -5
  96. package/esm/cli/agent/agent-web-export.js.map +1 -1
  97. package/esm/cli/agent/agent-web-import.js +2 -5
  98. package/esm/cli/agent/agent-web-import.js.map +1 -1
  99. package/esm/cli/agent/agent-web-list.js +2 -5
  100. package/esm/cli/agent/agent-web-list.js.map +1 -1
  101. package/esm/cli/app/app-delete.js +2 -5
  102. package/esm/cli/app/app-delete.js.map +1 -1
  103. package/esm/cli/app/app-describe.js +2 -5
  104. package/esm/cli/app/app-describe.js.map +1 -1
  105. package/esm/cli/app/app-export.js +4 -7
  106. package/esm/cli/app/app-export.js.map +1 -1
  107. package/esm/cli/app/app-import.js +5 -8
  108. package/esm/cli/app/app-import.js.map +1 -1
  109. package/esm/cli/app/app-list.js +3 -6
  110. package/esm/cli/app/app-list.js.map +1 -1
  111. package/esm/cli/authz/authz-policy-delete.js +4 -7
  112. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  113. package/esm/cli/authz/authz-policy-describe.js +2 -5
  114. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  115. package/esm/cli/authz/authz-policy-export.js +6 -9
  116. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  117. package/esm/cli/authz/authz-policy-import.js +5 -8
  118. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  119. package/esm/cli/authz/authz-policy-list.js +3 -6
  120. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  121. package/esm/cli/authz/authz-set-delete.js +3 -6
  122. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  123. package/esm/cli/authz/authz-set-describe.js +2 -5
  124. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  125. package/esm/cli/authz/authz-set-export.js +4 -7
  126. package/esm/cli/authz/authz-set-export.js.map +1 -1
  127. package/esm/cli/authz/authz-set-import.js +5 -8
  128. package/esm/cli/authz/authz-set-import.js.map +1 -1
  129. package/esm/cli/authz/authz-set-list.js +2 -5
  130. package/esm/cli/authz/authz-set-list.js.map +1 -1
  131. package/esm/cli/authz/authz-type-delete.js +4 -7
  132. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  133. package/esm/cli/authz/authz-type-describe.js +3 -6
  134. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  135. package/esm/cli/authz/authz-type-export.js +5 -8
  136. package/esm/cli/authz/authz-type-export.js.map +1 -1
  137. package/esm/cli/authz/authz-type-import.js +6 -9
  138. package/esm/cli/authz/authz-type-import.js.map +1 -1
  139. package/esm/cli/authz/authz-type-list.js +2 -5
  140. package/esm/cli/authz/authz-type-list.js.map +1 -1
  141. package/esm/cli/conn/conn-delete.js +2 -5
  142. package/esm/cli/conn/conn-delete.js.map +1 -1
  143. package/esm/cli/conn/conn-describe.js +1 -4
  144. package/esm/cli/conn/conn-describe.js.map +1 -1
  145. package/esm/cli/conn/conn-list.js +1 -4
  146. package/esm/cli/conn/conn-list.js.map +1 -1
  147. package/esm/cli/conn/conn-save.js +6 -16
  148. package/esm/cli/conn/conn-save.js.map +1 -1
  149. package/esm/cli/email/email-template-export.js +4 -7
  150. package/esm/cli/email/email-template-export.js.map +1 -1
  151. package/esm/cli/email/email-template-import.js +5 -8
  152. package/esm/cli/email/email-template-import.js.map +1 -1
  153. package/esm/cli/email/email-template-list.js +2 -5
  154. package/esm/cli/email/email-template-list.js.map +1 -1
  155. package/esm/cli/esv/esv-apply.js +6 -16
  156. package/esm/cli/esv/esv-apply.js.map +1 -1
  157. package/esm/cli/esv/esv-secret-create.js +3 -8
  158. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  159. package/esm/cli/esv/esv-secret-delete.js +6 -12
  160. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  161. package/esm/cli/esv/esv-secret-describe.js +3 -8
  162. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  163. package/esm/cli/esv/esv-secret-export.js +2 -5
  164. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  165. package/esm/cli/esv/esv-secret-import.js +2 -5
  166. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  167. package/esm/cli/esv/esv-secret-list.js +3 -8
  168. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  169. package/esm/cli/esv/esv-secret-set.js +4 -9
  170. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  171. package/esm/cli/esv/esv-secret-version-activate.js +3 -8
  172. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  173. package/esm/cli/esv/esv-secret-version-create.js +4 -9
  174. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  175. package/esm/cli/esv/esv-secret-version-deactivate.js +3 -8
  176. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  177. package/esm/cli/esv/esv-secret-version-delete.js +5 -10
  178. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  179. package/esm/cli/esv/esv-secret-version-list.js +4 -9
  180. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  181. package/esm/cli/esv/esv-variable-create.js +3 -8
  182. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  183. package/esm/cli/esv/esv-variable-delete.js +6 -12
  184. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  185. package/esm/cli/esv/esv-variable-describe.js +3 -8
  186. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  187. package/esm/cli/esv/esv-variable-export.js +2 -5
  188. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  189. package/esm/cli/esv/esv-variable-import.js +2 -5
  190. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  191. package/esm/cli/esv/esv-variable-list.js +3 -8
  192. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  193. package/esm/cli/esv/esv-variable-set.js +5 -11
  194. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  195. package/esm/cli/idm/idm-count.js +2 -5
  196. package/esm/cli/idm/idm-count.js.map +1 -1
  197. package/esm/cli/idm/idm-export.js +4 -7
  198. package/esm/cli/idm/idm-export.js.map +1 -1
  199. package/esm/cli/idm/idm-import.js +5 -8
  200. package/esm/cli/idm/idm-import.js.map +1 -1
  201. package/esm/cli/idm/idm-list.js +2 -5
  202. package/esm/cli/idm/idm-list.js.map +1 -1
  203. package/esm/cli/idp/idp-export.js +2 -5
  204. package/esm/cli/idp/idp-export.js.map +1 -1
  205. package/esm/cli/idp/idp-import.js +5 -8
  206. package/esm/cli/idp/idp-import.js.map +1 -1
  207. package/esm/cli/idp/idp-list.js +2 -5
  208. package/esm/cli/idp/idp-list.js.map +1 -1
  209. package/esm/cli/info/info.js +3 -9
  210. package/esm/cli/info/info.js.map +1 -1
  211. package/esm/cli/journey/journey-delete.js +5 -12
  212. package/esm/cli/journey/journey-delete.js.map +1 -1
  213. package/esm/cli/journey/journey-describe.js +7 -15
  214. package/esm/cli/journey/journey-describe.js.map +1 -1
  215. package/esm/cli/journey/journey-disable.js +3 -9
  216. package/esm/cli/journey/journey-disable.js.map +1 -1
  217. package/esm/cli/journey/journey-enable.js +3 -9
  218. package/esm/cli/journey/journey-enable.js.map +1 -1
  219. package/esm/cli/journey/journey-export.js +4 -7
  220. package/esm/cli/journey/journey-export.js.map +1 -1
  221. package/esm/cli/journey/journey-import.js +5 -8
  222. package/esm/cli/journey/journey-import.js.map +1 -1
  223. package/esm/cli/journey/journey-list.js +2 -5
  224. package/esm/cli/journey/journey-list.js.map +1 -1
  225. package/esm/cli/journey/journey-prune.js +4 -11
  226. package/esm/cli/journey/journey-prune.js.map +1 -1
  227. package/esm/cli/logging/logs-fetch.js +7 -17
  228. package/esm/cli/logging/logs-fetch.js.map +1 -1
  229. package/esm/cli/logging/logs-list.js +5 -15
  230. package/esm/cli/logging/logs-list.js.map +1 -1
  231. package/esm/cli/logging/logs-tail.js +7 -17
  232. package/esm/cli/logging/logs-tail.js.map +1 -1
  233. package/esm/cli/realm/realm-add-custom-domain.js +3 -8
  234. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  235. package/esm/cli/realm/realm-describe.js +4 -12
  236. package/esm/cli/realm/realm-describe.js.map +1 -1
  237. package/esm/cli/realm/realm-list.js +3 -8
  238. package/esm/cli/realm/realm-list.js.map +1 -1
  239. package/esm/cli/realm/realm-remove-custom-domain.js +3 -9
  240. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  241. package/esm/cli/saml/saml-cot-export.js +11 -15
  242. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  243. package/esm/cli/saml/saml-cot-import.js +15 -19
  244. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  245. package/esm/cli/saml/saml-cot-list.js +5 -9
  246. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  247. package/esm/cli/saml/saml-delete.js +5 -12
  248. package/esm/cli/saml/saml-delete.js.map +1 -1
  249. package/esm/cli/saml/saml-describe.js +2 -5
  250. package/esm/cli/saml/saml-describe.js.map +1 -1
  251. package/esm/cli/saml/saml-export.js +12 -30
  252. package/esm/cli/saml/saml-export.js.map +1 -1
  253. package/esm/cli/saml/saml-import.js +15 -36
  254. package/esm/cli/saml/saml-import.js.map +1 -1
  255. package/esm/cli/saml/saml-list.js +6 -14
  256. package/esm/cli/saml/saml-list.js.map +1 -1
  257. package/esm/cli/saml/saml-metadata-export.js +3 -6
  258. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  259. package/esm/cli/script/script-delete.js +2 -5
  260. package/esm/cli/script/script-delete.js.map +1 -1
  261. package/esm/cli/script/script-describe.js +2 -5
  262. package/esm/cli/script/script-describe.js.map +1 -1
  263. package/esm/cli/script/script-export.js +2 -5
  264. package/esm/cli/script/script-export.js.map +1 -1
  265. package/esm/cli/script/script-import.js +4 -6
  266. package/esm/cli/script/script-import.js.map +1 -1
  267. package/esm/cli/script/script-list.js +4 -6
  268. package/esm/cli/script/script-list.js.map +1 -1
  269. package/esm/cli/service/service-delete.js +3 -6
  270. package/esm/cli/service/service-delete.js.map +1 -1
  271. package/esm/cli/service/service-export.js +4 -7
  272. package/esm/cli/service/service-export.js.map +1 -1
  273. package/esm/cli/service/service-import.js +5 -8
  274. package/esm/cli/service/service-import.js.map +1 -1
  275. package/esm/cli/service/service-list.js +2 -5
  276. package/esm/cli/service/service-list.js.map +1 -1
  277. package/esm/cli/theme/theme-delete.js +4 -7
  278. package/esm/cli/theme/theme-delete.js.map +1 -1
  279. package/esm/cli/theme/theme-export.js +5 -8
  280. package/esm/cli/theme/theme-export.js.map +1 -1
  281. package/esm/cli/theme/theme-import.js +6 -9
  282. package/esm/cli/theme/theme-import.js.map +1 -1
  283. package/esm/cli/theme/theme-list.js +2 -5
  284. package/esm/cli/theme/theme-list.js.map +1 -1
  285. package/esm/launch.js +4 -3
  286. package/esm/launch.js.map +1 -1
  287. package/esm/ops/AgentOps.js +49 -82
  288. package/esm/ops/AgentOps.js.map +1 -1
  289. package/esm/ops/CirclesOfTrustOps.js +217 -2
  290. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  291. package/esm/ops/ConnectionProfileOps.js +97 -8
  292. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  293. package/esm/ops/EmailTemplateOps.js +16 -25
  294. package/esm/ops/EmailTemplateOps.js.map +1 -1
  295. package/esm/ops/IdmOps.js +25 -39
  296. package/esm/ops/IdmOps.js.map +1 -1
  297. package/esm/ops/IdpOps.js +10 -18
  298. package/esm/ops/IdpOps.js.map +1 -1
  299. package/esm/ops/JourneyOps.js +49 -65
  300. package/esm/ops/JourneyOps.js.map +1 -1
  301. package/esm/ops/LogOps.js +9 -17
  302. package/esm/ops/LogOps.js.map +1 -1
  303. package/esm/ops/NodeOps.js +11 -11
  304. package/esm/ops/NodeOps.js.map +1 -1
  305. package/esm/ops/OAuth2ClientOps.js +13 -29
  306. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  307. package/esm/ops/OrganizationOps.js +28 -0
  308. package/esm/ops/OrganizationOps.js.map +1 -0
  309. package/esm/ops/PolicyOps.js +22 -38
  310. package/esm/ops/PolicyOps.js.map +1 -1
  311. package/esm/ops/PolicySetOps.js +19 -37
  312. package/esm/ops/PolicySetOps.js.map +1 -1
  313. package/esm/ops/RealmOps.js +109 -0
  314. package/esm/ops/RealmOps.js.map +1 -0
  315. package/esm/ops/ResourceTypeOps.js +19 -37
  316. package/esm/ops/ResourceTypeOps.js.map +1 -1
  317. package/esm/ops/Saml2Ops.js +30 -251
  318. package/esm/ops/Saml2Ops.js.map +1 -1
  319. package/esm/ops/ScriptOps.js +14 -21
  320. package/esm/ops/ScriptOps.js.map +1 -1
  321. package/esm/ops/SecretsOps.js +223 -0
  322. package/esm/ops/SecretsOps.js.map +1 -0
  323. package/esm/ops/ServiceOps.js +20 -41
  324. package/esm/ops/ServiceOps.js.map +1 -1
  325. package/esm/ops/ThemeOps.js +20 -35
  326. package/esm/ops/ThemeOps.js.map +1 -1
  327. package/esm/ops/VariablesOps.js +133 -0
  328. package/esm/ops/VariablesOps.js.map +1 -0
  329. package/esm/utils/Config.js +3 -6
  330. package/esm/utils/Config.js.map +1 -1
  331. package/esm/utils/Console.js +2 -5
  332. package/esm/utils/Console.js.map +1 -1
  333. package/esm/utils/ExportImportUtils.js +4 -6
  334. package/esm/utils/ExportImportUtils.js.map +1 -1
  335. package/esm/utils/Version.js +3 -3
  336. package/esm/utils/Version.js.map +1 -1
  337. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"file":"logs-fetch.js","names":["FrodoCommand","sourcesOptionM","Option","Authenticate","ConnectionProfile","Log","state","config","printMessage","fetchLogs","provisionCreds","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","creds","api_key_id","api_key_secret","now","Date","nowString","toISOString","beginTimestamp","tempStartDate","setTime","tempEndDate","endTimestamp","beginTs","parse","endTs","intermediateEndTs","opts","sources","level","timeIncrement","transactionId","searchString","getNoiseFilters","defaults"],"sources":["cli/logging/logs-fetch.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './logs';\nimport { Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\nimport { fetchLogs, provisionCreds } from '../../ops/LogOps';\n\nconst { resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = 1;\n\nconst program = new FrodoCommand('frodo logs fetch', ['realm', 'type']);\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n let credsFromParameters = true;\n const conn = await 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 getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id);\n state.setLogApiSecret(creds.api_key_secret);\n }\n }\n const now = Date.now() / 1000;\n const nowString = new Date(now * 1000).toISOString();\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (\n typeof options.endTimestamp === 'undefined' ||\n !options.endTimestamp\n ) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = nowString;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n const endTs = Date.parse(options.endTimestamp) / 1000;\n if (endTs < beginTs) {\n printMessage(\n 'End timestamp can not be before begin timestamp',\n 'error'\n );\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}] of ${\n conn.tenant\n }...`\n );\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\n\n let timeIncrement = LOG_TIME_WINDOW_INCREMENT;\n if (endTs - beginTs > 30) {\n timeIncrement = timeIncrement * 30;\n }\n do {\n intermediateEndTs = beginTs + timeIncrement;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < endTs);\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-fetch.js","names":["FrodoCommand","sourcesOptionM","Option","frodo","state","config","printMessage","fetchLogs","provisionCreds","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","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","now","Date","nowString","toISOString","beginTimestamp","tempStartDate","setTime","tempEndDate","endTimestamp","beginTs","parse","endTs","intermediateEndTs","opts","sources","level","saveConnectionProfile","timeIncrement","transactionId","searchString","getNoiseFilters","defaults"],"sources":["cli/logging/logs-fetch.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './logs';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\nimport { fetchLogs, provisionCreds } from '../../ops/LogOps';\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = 1;\n\nconst program = new FrodoCommand('frodo logs fetch', ['realm', 'type']);\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .addOption(sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${frodo.cloud.log.resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in $HOME/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n 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 const now = Date.now() / 1000;\n const nowString = new Date(now * 1000).toISOString();\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (\n typeof options.endTimestamp === 'undefined' ||\n !options.endTimestamp\n ) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = nowString;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n const endTs = Date.parse(options.endTimestamp) / 1000;\n if (endTs < beginTs) {\n printMessage(\n 'End timestamp can not be before begin timestamp',\n 'error'\n );\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching 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\n let timeIncrement = LOG_TIME_WINDOW_INCREMENT;\n if (endTs - beginTs > 30) {\n timeIncrement = timeIncrement * 30;\n }\n do {\n intermediateEndTs = beginTs + timeIncrement;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n frodo.cloud.log.resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < endTs);\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,23 +1,13 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
- import { Authenticate, ConnectionProfile, Log, state } from '@rockcarver/frodo-lib';
2
+ import { frodo, state } from '@rockcarver/frodo-lib';
3
3
  import { printMessage, verboseMessage } from '../../utils/Console';
4
4
  import { provisionCreds } from '../../ops/LogOps';
5
- const {
6
- getLogSources
7
- } = Log;
8
- const {
9
- getConnectionProfile,
10
- saveConnectionProfile
11
- } = ConnectionProfile;
12
- const {
13
- getTokens
14
- } = Authenticate;
15
5
  const program = new FrodoCommand('frodo logs list', ['realm', 'type']);
16
6
  program.description('List available ID Cloud log sources.').action(async (host, user, password, options, command) => {
17
7
  command.handleDefaultArgsAndOpts(host, user, password, options, command);
18
8
  let credsFromParameters = true;
19
9
  verboseMessage('Listing available ID Cloud log sources...');
20
- const conn = await getConnectionProfile();
10
+ const conn = await frodo.conn.getConnectionProfile();
21
11
  if (conn) {
22
12
  state.setHost(conn.tenant);
23
13
  if (conn.logApiKey != null && conn.logApiSecret != null) {
@@ -35,17 +25,17 @@ program.description('List available ID Cloud log sources.').action(async (host,
35
25
  state.setUsername(conn.username);
36
26
  state.setPassword(conn.password);
37
27
  }
38
- if (await getTokens(true)) {
28
+ if (await frodo.login.getTokens(true)) {
39
29
  const creds = await provisionCreds();
40
30
  state.setLogApiKey(creds.api_key_id);
41
31
  state.setLogApiSecret(creds.api_key_secret);
42
32
  }
43
33
  }
44
- const sources = await getLogSources();
34
+ const sources = await frodo.cloud.log.getLogSources();
45
35
  if (sources.length === 0) {
46
36
  printMessage("Can't get sources, possible cause - wrong API key or secret", 'error');
47
37
  } else {
48
- if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI
38
+ if (credsFromParameters) await frodo.conn.saveConnectionProfile(host); // save new values if they were specified on CLI
49
39
  printMessage(`Log sources from ${conn.tenant}`);
50
40
  sources.forEach(source => {
51
41
  printMessage(`${source}`, 'data');
@@ -1 +1 @@
1
- {"version":3,"file":"logs-list.js","names":["FrodoCommand","Authenticate","ConnectionProfile","Log","state","printMessage","verboseMessage","provisionCreds","getLogSources","getConnectionProfile","saveConnectionProfile","getTokens","program","description","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","creds","api_key_id","api_key_secret","sources","length","forEach","source","parse"],"sources":["cli/logging/logs-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { provisionCreds } from '../../ops/LogOps';\n\nconst { getLogSources } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo logs 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 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 getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id);\n state.setLogApiSecret(creds.api_key_secret);\n }\n }\n\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 if (credsFromParameters) await 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":"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"}
1
+ {"version":3,"file":"logs-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/logging/logs-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 logs 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,iBAAiB,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AACtEM,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,29 +1,19 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
2
  import { sourcesOptionM } from './logs';
3
3
  import { Option } from 'commander';
4
- import { Authenticate, ConnectionProfile, Log, state } from '@rockcarver/frodo-lib';
4
+ import { frodo, state } from '@rockcarver/frodo-lib';
5
5
  import * as config from '../../utils/Config';
6
6
  import { printMessage } from '../../utils/Console';
7
7
  import { provisionCreds, tailLogs } from '../../ops/LogOps';
8
- const {
9
- resolveLevel
10
- } = Log;
11
- const {
12
- getConnectionProfile,
13
- saveConnectionProfile
14
- } = ConnectionProfile;
15
- const {
16
- getTokens
17
- } = Authenticate;
18
8
  const program = new FrodoCommand('frodo logs tail', ['realm', 'type']);
19
9
  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. \
20
10
  Following values are possible (values on the same line are equivalent): \
21
11
  \n0, SEVERE, FATAL, or ERROR\n1, WARNING, WARN or CONFIG\
22
12
  \n2, INFO or INFORMATION\n3, DEBUG, FINE, FINER or FINEST\
23
- \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) => {
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) => {
24
14
  command.handleDefaultArgsAndOpts(host, user, password, options, command);
25
15
  let credsFromParameters = true;
26
- const conn = await getConnectionProfile();
16
+ const conn = await frodo.conn.getConnectionProfile();
27
17
  if (conn) {
28
18
  state.setHost(conn.tenant);
29
19
  if (conn.logApiKey != null && conn.logApiSecret != null) {
@@ -41,15 +31,15 @@ Following values are possible (values on the same line are equivalent): \
41
31
  state.setUsername(conn.username);
42
32
  state.setPassword(conn.password);
43
33
  }
44
- if (await getTokens(true)) {
34
+ if (await frodo.login.getTokens(true)) {
45
35
  const creds = await provisionCreds();
46
36
  state.setLogApiKey(creds.api_key_id);
47
37
  state.setLogApiSecret(creds.api_key_secret);
48
38
  }
49
39
  }
50
- printMessage(`Tailing ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}] of ${conn.tenant}...`);
51
- if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI
52
- await tailLogs(command.opts().sources, resolveLevel(command.opts().level), command.opts().transactionId, null, config.getNoiseFilters(options.defaults));
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));
53
43
  }
54
44
  });
55
45
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"logs-tail.js","names":["FrodoCommand","sourcesOptionM","Option","Authenticate","ConnectionProfile","Log","state","config","printMessage","provisionCreds","tailLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","program","description","addOption","default","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","handleDefaultArgsAndOpts","credsFromParameters","conn","setHost","tenant","logApiKey","logApiSecret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","setUsername","setPassword","creds","api_key_id","api_key_secret","opts","sources","level","transactionId","getNoiseFilters","defaults","parse"],"sources":["cli/logging/logs-tail.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './logs';\nimport { Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\nimport { provisionCreds, tailLogs } from '../../ops/LogOps';\n\nconst { resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo logs 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 let credsFromParameters = true;\n const conn = await 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 getTokens(true)) {\n const creds = await provisionCreds();\n state.setLogApiKey(creds.api_key_id);\n state.setLogApiSecret(creds.api_key_secret);\n }\n }\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}] of ${\n conn.tenant\n }...`\n );\n if (credsFromParameters) await saveConnectionProfile(host); // save new values if they were specified on CLI\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 });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-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/logging/logs-tail.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { sourcesOptionM } from './logs';\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 logs 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,19 +1,14 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
- import { Authenticate, Realm, state } from '@rockcarver/frodo-lib';
3
+ import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { verboseMessage } from '../../utils/Console';
5
- const {
6
- getTokens
7
- } = Authenticate;
8
- const {
9
- addCustomDomain
10
- } = Realm;
5
+ import { addCustomDomain } from '../../ops/RealmOps';
11
6
  const program = new FrodoCommand('frodo realm add-custom-domain');
12
7
  program.description('Add custom domain (realm DNS alias).').addOption(new Option('-d, --domain <name>', 'Custom DNS domain name.').makeOptionMandatory()).action(
13
8
  // implement command logic inside action handler
14
9
  async (host, realm, user, password, options, command) => {
15
10
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
16
- if (await getTokens()) {
11
+ if (await frodo.login.getTokens()) {
17
12
  verboseMessage(`Adding custom DNS domain ${options.domain} to realm ${state.getRealm()}...`);
18
13
  await addCustomDomain(state.getRealm(), options.domain);
19
14
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"realm-add-custom-domain.js","names":["FrodoCommand","Option","Authenticate","Realm","state","verboseMessage","getTokens","addCustomDomain","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","domain","getRealm","process","exitCode","parse"],"sources":["cli/realm/realm-add-custom-domain.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst { addCustomDomain } = Realm;\n\nconst program = new FrodoCommand('frodo realm add-custom-domain');\n\nprogram\n .description('Add custom domain (realm DNS alias).')\n .addOption(\n new Option(\n '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(\n `Adding custom DNS domain ${\n options.domain\n } to realm ${state.getRealm()}...`\n );\n await addCustomDomain(state.getRealm(), options.domain);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGJ,YAAY;AAClC,MAAM;EAAEK;AAAgB,CAAC,GAAGJ,KAAK;AAEjC,MAAMK,OAAO,GAAG,IAAIR,YAAY,CAAC,+BAA+B,CAAC;AAEjEQ,OAAO,CACJC,WAAW,CAAC,sCAAsC,CAAC,CACnDC,SAAS,CACR,IAAIT,MAAM,CACR,qBAAqB,EACrB,yBACF,CAAC,CAACU,mBAAmB,CAAC,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBD,cAAc,CACX,4BACCY,OAAO,CAACG,MACT,aAAYhB,KAAK,CAACiB,QAAQ,CAAC,CAAE,KAChC,CAAC;IACD,MAAMd,eAAe,CAACH,KAAK,CAACiB,QAAQ,CAAC,CAAC,EAAEJ,OAAO,CAACG,MAAM,CAAC;EACzD,CAAC,MAAM;IACLE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"realm-add-custom-domain.js","names":["FrodoCommand","Option","frodo","state","verboseMessage","addCustomDomain","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","domain","getRealm","process","exitCode","parse"],"sources":["cli/realm/realm-add-custom-domain.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport { addCustomDomain } from '../../ops/RealmOps';\n\nconst program = new FrodoCommand('frodo realm add-custom-domain');\n\nprogram\n .description('Add custom domain (realm DNS alias).')\n .addOption(\n new Option(\n '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await frodo.login.getTokens()) {\n verboseMessage(\n `Adding custom DNS domain ${\n options.domain\n } to realm ${state.getRealm()}...`\n );\n await addCustomDomain(state.getRealm(), options.domain);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,eAAe,QAAQ,oBAAoB;AAEpD,MAAMC,OAAO,GAAG,IAAIN,YAAY,CAAC,+BAA+B,CAAC;AAEjEM,OAAO,CACJC,WAAW,CAAC,sCAAsC,CAAC,CACnDC,SAAS,CACR,IAAIP,MAAM,CACR,qBAAqB,EACrB,yBACF,CAAC,CAACQ,mBAAmB,CAAC,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,KAAK,CAACgB,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCf,cAAc,CACX,4BACCW,OAAO,CAACK,MACT,aAAYjB,KAAK,CAACkB,QAAQ,CAAC,CAAE,KAChC,CAAC;IACD,MAAMhB,eAAe,CAACF,KAAK,CAACkB,QAAQ,CAAC,CAAC,EAAEN,OAAO,CAACK,MAAM,CAAC;EACzD,CAAC,MAAM;IACLE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
@@ -1,23 +1,15 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
- import { Authenticate, Realm, Utils, state } from '@rockcarver/frodo-lib';
2
+ import { frodo, state } from '@rockcarver/frodo-lib';
3
3
  import { verboseMessage } from '../../utils/Console';
4
- const {
5
- getRealmName
6
- } = Utils;
7
- const {
8
- getTokens
9
- } = Authenticate;
10
- const {
11
- describe
12
- } = Realm;
4
+ import { describeRealm } from '../../ops/RealmOps';
13
5
  const program = new FrodoCommand('frodo realm describe');
14
6
  program.description('Describe realms.').action(
15
7
  // implement command logic inside action handler
16
8
  async (host, realm, user, password, options, command) => {
17
9
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
18
- if (await getTokens()) {
10
+ if (await frodo.login.getTokens()) {
19
11
  verboseMessage(`Retrieving details of realm ${state.getRealm()}...`);
20
- describe(getRealmName(state.getRealm()));
12
+ describeRealm(frodo.helper.utils.getRealmName(state.getRealm()));
21
13
  } else {
22
14
  process.exitCode = 1;
23
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"realm-describe.js","names":["FrodoCommand","Authenticate","Realm","Utils","state","verboseMessage","getRealmName","getTokens","describe","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","process","exitCode","parse"],"sources":["cli/realm/realm-describe.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Authenticate, Realm, Utils, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\n\nconst { getRealmName } = Utils;\nconst { getTokens } = Authenticate;\nconst { describe } = Realm;\n\nconst program = new FrodoCommand('frodo realm describe');\n\nprogram.description('Describe realms.').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(`Retrieving details of realm ${state.getRealm()}...`);\n describe(getRealmName(state.getRealm()));\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACzE,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAa,CAAC,GAAGH,KAAK;AAC9B,MAAM;EAAEI;AAAU,CAAC,GAAGN,YAAY;AAClC,MAAM;EAAEO;AAAS,CAAC,GAAGN,KAAK;AAE1B,MAAMO,OAAO,GAAG,IAAIT,YAAY,CAAC,sBAAsB,CAAC;AAExDS,OAAO,CAACC,WAAW,CAAC,kBAAkB,CAAC,CAACC,MAAM;AAC5C;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMV,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,+BAA8BD,KAAK,CAACe,QAAQ,CAAC,CAAE,KAAI,CAAC;IACpEX,QAAQ,CAACF,YAAY,CAACF,KAAK,CAACe,QAAQ,CAAC,CAAC,CAAC,CAAC;EAC1C,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEDZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"realm-describe.js","names":["FrodoCommand","frodo","state","verboseMessage","describeRealm","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","getRealm","helper","utils","getRealmName","process","exitCode","parse"],"sources":["cli/realm/realm-describe.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport { describeRealm } from '../../ops/RealmOps';\n\nconst program = new FrodoCommand('frodo realm describe');\n\nprogram.description('Describe realms.').action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await frodo.login.getTokens()) {\n verboseMessage(`Retrieving details of realm ${state.getRealm()}...`);\n describeRealm(frodo.helper.utils.getRealmName(state.getRealm()));\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,aAAa,QAAQ,oBAAoB;AAElD,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,sBAAsB,CAAC;AAExDK,OAAO,CAACC,WAAW,CAAC,kBAAkB,CAAC,CAACC,MAAM;AAC5C;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,KAAK,CAACc,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCb,cAAc,CAAE,+BAA8BD,KAAK,CAACe,QAAQ,CAAC,CAAE,KAAI,CAAC;IACpEb,aAAa,CAACH,KAAK,CAACiB,MAAM,CAACC,KAAK,CAACC,YAAY,CAAClB,KAAK,CAACe,QAAQ,CAAC,CAAC,CAAC,CAAC;EAClE,CAAC,MAAM;IACLI,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEDjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
@@ -1,19 +1,14 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
- import { Authenticate, Realm } from '@rockcarver/frodo-lib';
3
+ import { frodo } from '@rockcarver/frodo-lib';
4
4
  import { verboseMessage } from '../../utils/Console';
5
- const {
6
- listRealms
7
- } = Realm;
8
- const {
9
- getTokens
10
- } = Authenticate;
5
+ import { listRealms } from '../../ops/RealmOps';
11
6
  const program = new FrodoCommand('frodo realm list');
12
7
  program.description('List realms.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
13
8
  // implement command logic inside action handler
14
9
  async (host, realm, user, password, options, command) => {
15
10
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
16
- if (await getTokens()) {
11
+ if (await frodo.login.getTokens()) {
17
12
  verboseMessage('Listing all realms...');
18
13
  await listRealms(options.long);
19
14
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"realm-list.js","names":["FrodoCommand","Option","Authenticate","Realm","verboseMessage","listRealms","getTokens","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","long","process","exitCode","parse"],"sources":["cli/realm/realm-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Realm } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\n\nconst { listRealms } = Realm;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo realm list');\n\nprogram\n .description('List realms.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing all realms...');\n await listRealms(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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,KAAK,QAAQ,uBAAuB;AAC3D,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAW,CAAC,GAAGF,KAAK;AAC5B,MAAM;EAAEG;AAAU,CAAC,GAAGJ,YAAY;AAElC,MAAMK,OAAO,GAAG,IAAIP,YAAY,CAAC,kBAAkB,CAAC;AAEpDO,OAAO,CACJC,WAAW,CAAC,cAAc,CAAC,CAC3BC,SAAS,CACR,IAAIR,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACS,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,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,uBAAuB,CAAC;IACvC,MAAMC,UAAU,CAACW,OAAO,CAACG,IAAI,CAAC;EAChC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHd,OAAO,CAACe,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"realm-list.js","names":["FrodoCommand","Option","frodo","verboseMessage","listRealms","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","long","process","exitCode","parse"],"sources":["cli/realm/realm-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport { listRealms } from '../../ops/RealmOps';\n\nconst program = new FrodoCommand('frodo realm list');\n\nprogram\n .description('List realms.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await frodo.login.getTokens()) {\n verboseMessage('Listing all realms...');\n await listRealms(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,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,UAAU,QAAQ,oBAAoB;AAE/C,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,kBAAkB,CAAC;AAEpDK,OAAO,CACJC,WAAW,CAAC,cAAc,CAAC,CAC3BC,SAAS,CACR,IAAIN,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACO,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,MAAMb,KAAK,CAACe,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCf,cAAc,CAAC,uBAAuB,CAAC;IACvC,MAAMC,UAAU,CAACU,OAAO,CAACK,IAAI,CAAC;EAChC,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHhB,OAAO,CAACiB,KAAK,CAAC,CAAC"}
@@ -1,21 +1,15 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
- import { Authenticate, Realm, state } from '@rockcarver/frodo-lib';
3
+ import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { verboseMessage } from '../../utils/Console';
5
- const {
6
- getTokens
7
- } = Authenticate;
8
- const {
9
- removeCustomDomain
10
- } = Realm;
11
5
  const program = new FrodoCommand('frodo realm remove-custom-domain');
12
6
  program.description('Remove custom domain (realm DNS alias).').addOption(new Option('-d, --domain <name>', 'Custom DNS domain name.').makeOptionMandatory()).action(
13
7
  // implement command logic inside action handler
14
8
  async (host, realm, user, password, options, command) => {
15
9
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
16
- if (await getTokens()) {
10
+ if (await frodo.login.getTokens()) {
17
11
  verboseMessage(`Removing custom DNS domain ${options.domain} from realm ${state.getRealm()}...`);
18
- await removeCustomDomain(state.getRealm(), options.domain);
12
+ await frodo.realm.removeCustomDomain(state.getRealm(), options.domain);
19
13
  } else {
20
14
  process.exitCode = 1;
21
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"realm-remove-custom-domain.js","names":["FrodoCommand","Option","Authenticate","Realm","state","verboseMessage","getTokens","removeCustomDomain","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","domain","getRealm","process","exitCode","parse"],"sources":["cli/realm/realm-remove-custom-domain.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst { removeCustomDomain } = Realm;\n\nconst program = new FrodoCommand('frodo realm remove-custom-domain');\n\nprogram\n .description('Remove custom domain (realm DNS alias).')\n .addOption(\n new Option(\n '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(\n `Removing custom DNS domain ${\n options.domain\n } from realm ${state.getRealm()}...`\n );\n await removeCustomDomain(state.getRealm(), options.domain);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGJ,YAAY;AAClC,MAAM;EAAEK;AAAmB,CAAC,GAAGJ,KAAK;AAEpC,MAAMK,OAAO,GAAG,IAAIR,YAAY,CAAC,kCAAkC,CAAC;AAEpEQ,OAAO,CACJC,WAAW,CAAC,yCAAyC,CAAC,CACtDC,SAAS,CACR,IAAIT,MAAM,CACR,qBAAqB,EACrB,yBACF,CAAC,CAACU,mBAAmB,CAAC,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBD,cAAc,CACX,8BACCY,OAAO,CAACG,MACT,eAAchB,KAAK,CAACiB,QAAQ,CAAC,CAAE,KAClC,CAAC;IACD,MAAMd,kBAAkB,CAACH,KAAK,CAACiB,QAAQ,CAAC,CAAC,EAAEJ,OAAO,CAACG,MAAM,CAAC;EAC5D,CAAC,MAAM;IACLE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"realm-remove-custom-domain.js","names":["FrodoCommand","Option","frodo","state","verboseMessage","program","description","addOption","makeOptionMandatory","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","domain","getRealm","removeCustomDomain","process","exitCode","parse"],"sources":["cli/realm/realm-remove-custom-domain.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\n\nconst program = new FrodoCommand('frodo realm remove-custom-domain');\n\nprogram\n .description('Remove custom domain (realm DNS alias).')\n .addOption(\n new Option(\n '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await frodo.login.getTokens()) {\n verboseMessage(\n `Removing custom DNS domain ${\n options.domain\n } from realm ${state.getRealm()}...`\n );\n await frodo.realm.removeCustomDomain(state.getRealm(), options.domain);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,cAAc,QAAQ,qBAAqB;AAEpD,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,kCAAkC,CAAC;AAEpEK,OAAO,CACJC,WAAW,CAAC,yCAAyC,CAAC,CACtDC,SAAS,CACR,IAAIN,MAAM,CACR,qBAAqB,EACrB,yBACF,CAAC,CAACO,mBAAmB,CAAC,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMb,KAAK,CAACe,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCd,cAAc,CACX,8BACCU,OAAO,CAACK,MACT,eAAchB,KAAK,CAACiB,QAAQ,CAAC,CAAE,KAClC,CAAC;IACD,MAAMlB,KAAK,CAACS,KAAK,CAACU,kBAAkB,CAAClB,KAAK,CAACiB,QAAQ,CAAC,CAAC,EAAEN,OAAO,CAACK,MAAM,CAAC;EACxE,CAAC,MAAM;IACLG,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -1,34 +1,30 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
- import { Authenticate, CirclesOfTrust, state } from '@rockcarver/frodo-lib';
3
+ import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
- const {
6
- getTokens
7
- } = Authenticate;
8
- const {
9
- exportCircleOfTrust,
10
- exportCirclesOfTrustToFile,
11
- exportCirclesOfTrustToFiles
12
- } = CirclesOfTrust;
5
+ import { exportCircleOfTrustToFile, exportCirclesOfTrustToFile, exportCirclesOfTrustToFiles } from '../../ops/CirclesOfTrustOps';
13
6
  const program = new FrodoCommand('frodo saml cot export');
14
7
  program.description('Export SAML circles of trust.').addOption(new Option('-i, --cot-id <cot-id>', 'Circle of trust id/name. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file [file]', 'Name of the export file. Ignored with -A. Defaults to <cot-id>.cot.saml.json.')).addOption(new Option('-a, --all', 'Export all the circles of trust in a realm to a single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Export all the circles of trust in a realm as separate files <cot-id>.cot.saml.json. Ignored with -i, and -a.')).action(
15
8
  // implement command logic inside action handler
16
9
  async (host, realm, user, password, options, command) => {
17
10
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
18
11
  // export by id/name
19
- if (options.cotId && (await getTokens())) {
12
+ if (options.cotId && (await frodo.login.getTokens())) {
20
13
  verboseMessage(`Exporting circle of trust "${options.cotId}" from realm "${state.getRealm()}"...`);
21
- exportCircleOfTrust(options.cotId, options.file);
14
+ const outcome = exportCircleOfTrustToFile(options.cotId, options.file);
15
+ if (!outcome) process.exitCode = 1;
22
16
  }
23
17
  // --all -a
24
- else if (options.all && (await getTokens())) {
18
+ else if (options.all && (await frodo.login.getTokens())) {
25
19
  verboseMessage('Exporting all circles of trust to a single file...');
26
- exportCirclesOfTrustToFile(options.file);
20
+ const outcome = exportCirclesOfTrustToFile(options.file);
21
+ if (!outcome) process.exitCode = 1;
27
22
  }
28
23
  // --all-separate -A
29
- else if (options.allSeparate && (await getTokens())) {
24
+ else if (options.allSeparate && (await frodo.login.getTokens())) {
30
25
  verboseMessage('Exporting all circles of trust to separate files...');
31
- exportCirclesOfTrustToFiles();
26
+ const outcome = exportCirclesOfTrustToFiles();
27
+ if (!outcome) process.exitCode = 1;
32
28
  }
33
29
  // unrecognized combination of options or no options
34
30
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"saml-cot-export.js","names":["FrodoCommand","Option","Authenticate","CirclesOfTrust","state","printMessage","verboseMessage","getTokens","exportCircleOfTrust","exportCirclesOfTrustToFile","exportCirclesOfTrustToFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","cotId","getRealm","file","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/saml/saml-cot-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, CirclesOfTrust, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst {\n exportCircleOfTrust,\n exportCirclesOfTrustToFile,\n exportCirclesOfTrustToFiles,\n} = CirclesOfTrust;\n\nconst program = new FrodoCommand('frodo saml cot export');\n\nprogram\n .description('Export SAML circles of trust.')\n .addOption(\n new Option(\n '-i, --cot-id <cot-id>',\n 'Circle of trust id/name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the export file. Ignored with -A. Defaults to <cot-id>.cot.saml.json.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the circles of trust in a realm to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the circles of trust in a realm as separate files <cot-id>.cot.saml.json. Ignored with -i, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export by id/name\n if (options.cotId && (await getTokens())) {\n verboseMessage(\n `Exporting circle of trust \"${\n options.cotId\n }\" from realm \"${state.getRealm()}\"...`\n );\n exportCircleOfTrust(options.cotId, options.file);\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Exporting all circles of trust to a single file...');\n exportCirclesOfTrustToFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting all circles of trust to separate files...');\n exportCirclesOfTrustToFiles();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,cAAc,EAAEC,KAAK,QAAQ,uBAAuB;AAC3E,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAElE,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EACJM,mBAAmB;EACnBC,0BAA0B;EAC1BC;AACF,CAAC,GAAGP,cAAc;AAElB,MAAMQ,OAAO,GAAG,IAAIX,YAAY,CAAC,uBAAuB,CAAC;AAEzDW,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CACR,IAAIZ,MAAM,CACR,uBAAuB,EACvB,+DACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,mBAAmB,EACnB,+EACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,+EACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,oBAAoB,EACpB,+GACF,CACF,CAAC,CACAa,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMf,SAAS,CAAC,CAAC,CAAC,EAAE;IACxCD,cAAc,CACX,8BACCa,OAAO,CAACG,KACT,iBAAgBlB,KAAK,CAACmB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDf,mBAAmB,CAACW,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACK,IAAI,CAAC;EAClD;EACA;EAAA,KACK,IAAIL,OAAO,CAACM,GAAG,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CD,cAAc,CAAC,oDAAoD,CAAC;IACpEG,0BAA0B,CAACU,OAAO,CAACK,IAAI,CAAC;EAC1C;EACA;EAAA,KACK,IAAIL,OAAO,CAACO,WAAW,KAAK,MAAMnB,SAAS,CAAC,CAAC,CAAC,EAAE;IACnDD,cAAc,CAAC,qDAAqD,CAAC;IACrEI,2BAA2B,CAAC,CAAC;EAC/B;EACA;EAAA,KACK;IACHL,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDM,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"saml-cot-export.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","exportCircleOfTrustToFile","exportCirclesOfTrustToFile","exportCirclesOfTrustToFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","cotId","login","getTokens","getRealm","outcome","file","process","exitCode","all","allSeparate","help","parse"],"sources":["cli/saml/saml-cot-export.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n exportCircleOfTrustToFile,\n exportCirclesOfTrustToFile,\n exportCirclesOfTrustToFiles,\n} from '../../ops/CirclesOfTrustOps';\n\nconst program = new FrodoCommand('frodo saml cot export');\n\nprogram\n .description('Export SAML circles of trust.')\n .addOption(\n new Option(\n '-i, --cot-id <cot-id>',\n 'Circle of trust id/name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the export file. Ignored with -A. Defaults to <cot-id>.cot.saml.json.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the circles of trust in a realm to a single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the circles of trust in a realm as separate files <cot-id>.cot.saml.json. Ignored with -i, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // export by id/name\n if (options.cotId && (await frodo.login.getTokens())) {\n verboseMessage(\n `Exporting circle of trust \"${\n options.cotId\n }\" from realm \"${state.getRealm()}\"...`\n );\n const outcome = exportCircleOfTrustToFile(options.cotId, options.file);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await frodo.login.getTokens())) {\n verboseMessage('Exporting all circles of trust to a single file...');\n const outcome = exportCirclesOfTrustToFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && (await frodo.login.getTokens())) {\n verboseMessage('Exporting all circles of trust to separate files...');\n const outcome = exportCirclesOfTrustToFiles();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SACEC,yBAAyB,EACzBC,0BAA0B,EAC1BC,2BAA2B,QACtB,6BAA6B;AAEpC,MAAMC,OAAO,GAAG,IAAIT,YAAY,CAAC,uBAAuB,CAAC;AAEzDS,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CACR,IAAIV,MAAM,CACR,uBAAuB,EACvB,+DACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,+EACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,+EACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,+GACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,KAAK,KAAK,MAAMlB,KAAK,CAACmB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACpDjB,cAAc,CACX,8BACCY,OAAO,CAACG,KACT,iBAAgBjB,KAAK,CAACoB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACD,MAAMC,OAAO,GAAGlB,yBAAyB,CAACW,OAAO,CAACG,KAAK,EAAEH,OAAO,CAACQ,IAAI,CAAC;IACtE,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIV,OAAO,CAACW,GAAG,KAAK,MAAM1B,KAAK,CAACmB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IACvDjB,cAAc,CAAC,oDAAoD,CAAC;IACpE,MAAMmB,OAAO,GAAGjB,0BAA0B,CAACU,OAAO,CAACQ,IAAI,CAAC;IACxD,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIV,OAAO,CAACY,WAAW,KAAK,MAAM3B,KAAK,CAACmB,KAAK,CAACC,SAAS,CAAC,CAAC,CAAC,EAAE;IAC/DjB,cAAc,CAAC,qDAAqD,CAAC;IACrE,MAAMmB,OAAO,GAAGhB,2BAA2B,CAAC,CAAC;IAC7C,IAAI,CAACgB,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHvB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDK,OAAO,CAACqB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACsB,KAAK,CAAC,CAAC"}
@@ -1,40 +1,36 @@
1
1
  import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Option } from 'commander';
3
- import { Authenticate, CirclesOfTrust, state } from '@rockcarver/frodo-lib';
3
+ import { frodo, state } from '@rockcarver/frodo-lib';
4
4
  import { printMessage, verboseMessage } from '../../utils/Console';
5
- const {
6
- getTokens
7
- } = Authenticate;
8
- const {
9
- importCircleOfTrust,
10
- importCirclesOfTrustFromFile,
11
- importCirclesOfTrustFromFiles,
12
- importFirstCircleOfTrust
13
- } = CirclesOfTrust;
5
+ import { importCircleOfTrustFromFile, importCirclesOfTrustFromFile, importCirclesOfTrustFromFiles, importFirstCircleOfTrustFromFile } from '../../ops/CirclesOfTrustOps';
14
6
  const program = new FrodoCommand('frodo saml cot import');
15
7
  program.description('Import SAML circles of trust.').addOption(new Option('-i, --cot-id <cot-id>', 'Circle of trust id. If specified, only one circle of trust is imported and the options -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the circle(s) of trust from.')).addOption(new Option('-a, --all', 'Import all circles of trust from single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all circles of trust from separate files (*.cot.saml.json) in the current directory. Ignored with -i or -a.')).action(
16
8
  // implement program logic inside action handler
17
9
  async (host, realm, user, password, options, command) => {
18
10
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
19
11
  // import by id
20
- if (options.file && options.cotId && (await getTokens())) {
12
+ if (options.file && options.cotId && (await frodo.login.getTokens())) {
21
13
  verboseMessage(`Importing circle of trust "${options.cotId}" into realm "${state.getRealm()}"...`);
22
- importCircleOfTrust(options.cotId, options.file);
14
+ const outcome = importCircleOfTrustFromFile(options.cotId, options.file);
15
+ if (!outcome) process.exitCode = 1;
23
16
  }
24
17
  // --all -a
25
- else if (options.all && options.file && (await getTokens())) {
18
+ else if (options.all && options.file && (await frodo.login.getTokens())) {
26
19
  verboseMessage(`Importing all circles of trust from a single file (${options.file})...`);
27
- importCirclesOfTrustFromFile(options.file);
20
+ const outcome = importCirclesOfTrustFromFile(options.file);
21
+ if (!outcome) process.exitCode = 1;
28
22
  }
29
23
  // --all-separate -A
30
- else if (options.allSeparate && !options.file && (await getTokens())) {
24
+ else if (options.allSeparate && !options.file && (await frodo.login.getTokens())) {
31
25
  verboseMessage('Importing all circles of trust from separate files (*.saml.json) in current directory...');
32
- importCirclesOfTrustFromFiles();
26
+ const outcome = importCirclesOfTrustFromFiles();
27
+ if (!outcome) process.exitCode = 1;
33
28
  }
34
- // import first provider from file
35
- else if (options.file && (await getTokens())) {
29
+ // import first from file
30
+ else if (options.file && (await frodo.login.getTokens())) {
36
31
  verboseMessage(`Importing first circle of trust from file "${options.file}" into realm "${state.getRealm()}"...`);
37
- importFirstCircleOfTrust(options.file);
32
+ const outcome = importFirstCircleOfTrustFromFile(options.file);
33
+ if (!outcome) process.exitCode = 1;
38
34
  }
39
35
  // unrecognized combination of options or no options
40
36
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"saml-cot-import.js","names":["FrodoCommand","Option","Authenticate","CirclesOfTrust","state","printMessage","verboseMessage","getTokens","importCircleOfTrust","importCirclesOfTrustFromFile","importCirclesOfTrustFromFiles","importFirstCircleOfTrust","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","cotId","getRealm","all","allSeparate","help","process","exitCode","parse"],"sources":["cli/saml/saml-cot-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, CirclesOfTrust, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst {\n importCircleOfTrust,\n importCirclesOfTrustFromFile,\n importCirclesOfTrustFromFiles,\n importFirstCircleOfTrust,\n} = CirclesOfTrust;\n\nconst program = new FrodoCommand('frodo saml cot import');\n\nprogram\n .description('Import SAML circles of trust.')\n .addOption(\n new Option(\n '-i, --cot-id <cot-id>',\n 'Circle of trust id. If specified, only one circle of trust is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the circle(s) of trust from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all circles of trust from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all circles of trust from separate files (*.cot.saml.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement program 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.cotId && (await getTokens())) {\n verboseMessage(\n `Importing circle of trust \"${\n options.cotId\n }\" into realm \"${state.getRealm()}\"...`\n );\n importCircleOfTrust(options.cotId, options.file);\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all circles of trust from a single file (${options.file})...`\n );\n importCirclesOfTrustFromFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all circles of trust from separate files (*.saml.json) in current directory...'\n );\n importCirclesOfTrustFromFiles();\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first circle of trust from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n importFirstCircleOfTrust(options.file);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end program logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,cAAc,EAAEC,KAAK,QAAQ,uBAAuB;AAC3E,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAElE,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EACJM,mBAAmB;EACnBC,4BAA4B;EAC5BC,6BAA6B;EAC7BC;AACF,CAAC,GAAGR,cAAc;AAElB,MAAMS,OAAO,GAAG,IAAIZ,YAAY,CAAC,uBAAuB,CAAC;AAEzDY,OAAO,CACJC,WAAW,CAAC,+BAA+B,CAAC,CAC5CC,SAAS,CACR,IAAIb,MAAM,CACR,uBAAuB,EACvB,+GACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,mBAAmB,EACnB,yDACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,WAAW,EACX,gEACF,CACF,CAAC,CACAa,SAAS,CACR,IAAIb,MAAM,CACR,oBAAoB,EACpB,oHACF,CACF,CAAC,CACAc,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,IAAI,IAAIH,OAAO,CAACI,KAAK,KAAK,MAAMjB,SAAS,CAAC,CAAC,CAAC,EAAE;IACxDD,cAAc,CACX,8BACCc,OAAO,CAACI,KACT,iBAAgBpB,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDjB,mBAAmB,CAACY,OAAO,CAACI,KAAK,EAAEJ,OAAO,CAACG,IAAI,CAAC;EAClD;EACA;EAAA,KACK,IAAIH,OAAO,CAACM,GAAG,IAAIN,OAAO,CAACG,IAAI,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3DD,cAAc,CACX,sDAAqDc,OAAO,CAACG,IAAK,MACrE,CAAC;IACDd,4BAA4B,CAACW,OAAO,CAACG,IAAI,CAAC;EAC5C;EACA;EAAA,KACK,IAAIH,OAAO,CAACO,WAAW,IAAI,CAACP,OAAO,CAACG,IAAI,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IACpED,cAAc,CACZ,0FACF,CAAC;IACDI,6BAA6B,CAAC,CAAC;EACjC;EACA;EAAA,KACK,IAAIU,OAAO,CAACG,IAAI,KAAK,MAAMhB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CD,cAAc,CACX,8CACCc,OAAO,CAACG,IACT,iBAAgBnB,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACpC,CAAC;IACDd,wBAAwB,CAACS,OAAO,CAACG,IAAI,CAAC;EACxC;EACA;EAAA,KACK;IACHlB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDO,OAAO,CAACgB,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHlB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"saml-cot-import.js","names":["FrodoCommand","Option","frodo","state","printMessage","verboseMessage","importCircleOfTrustFromFile","importCirclesOfTrustFromFile","importCirclesOfTrustFromFiles","importFirstCircleOfTrustFromFile","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","cotId","login","getTokens","getRealm","outcome","process","exitCode","all","allSeparate","help","parse"],"sources":["cli/saml/saml-cot-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo, state } from '@rockcarver/frodo-lib';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport {\n importCircleOfTrustFromFile,\n importCirclesOfTrustFromFile,\n importCirclesOfTrustFromFiles,\n importFirstCircleOfTrustFromFile,\n} from '../../ops/CirclesOfTrustOps';\n\nconst program = new FrodoCommand('frodo saml cot import');\n\nprogram\n .description('Import SAML circles of trust.')\n .addOption(\n new Option(\n '-i, --cot-id <cot-id>',\n 'Circle of trust id. If specified, only one circle of trust is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the circle(s) of trust from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all circles of trust from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all circles of trust from separate files (*.cot.saml.json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement program 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.cotId && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing circle of trust \"${\n options.cotId\n }\" into realm \"${state.getRealm()}\"...`\n );\n const outcome = importCircleOfTrustFromFile(\n options.cotId,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing all circles of trust from a single file (${options.file})...`\n );\n const outcome = importCirclesOfTrustFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n !options.file &&\n (await frodo.login.getTokens())\n ) {\n verboseMessage(\n 'Importing all circles of trust from separate files (*.saml.json) in current directory...'\n );\n const outcome = importCirclesOfTrustFromFiles();\n if (!outcome) process.exitCode = 1;\n }\n // import first from file\n else if (options.file && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing first circle of trust from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n const outcome = importFirstCircleOfTrustFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end program logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}