@rockcarver/frodo-cli 2.0.0-50 → 2.0.0-52

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (386) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/esm/app.js +7 -2
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +1 -4
  5. package/esm/cli/_template/something-delete.js.map +1 -1
  6. package/esm/cli/_template/something-describe.js +1 -4
  7. package/esm/cli/_template/something-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-delete.js +1 -4
  9. package/esm/cli/_template/something-else-delete.js.map +1 -1
  10. package/esm/cli/_template/something-else-describe.js +1 -4
  11. package/esm/cli/_template/something-else-describe.js.map +1 -1
  12. package/esm/cli/_template/something-else-export.js +1 -4
  13. package/esm/cli/_template/something-else-export.js.map +1 -1
  14. package/esm/cli/_template/something-else-import.js +1 -4
  15. package/esm/cli/_template/something-else-import.js.map +1 -1
  16. package/esm/cli/_template/something-else-list.js +1 -4
  17. package/esm/cli/_template/something-else-list.js.map +1 -1
  18. package/esm/cli/_template/something-export.js +1 -4
  19. package/esm/cli/_template/something-export.js.map +1 -1
  20. package/esm/cli/_template/something-import.js +1 -4
  21. package/esm/cli/_template/something-import.js.map +1 -1
  22. package/esm/cli/_template/something-list.js +1 -4
  23. package/esm/cli/_template/something-list.js.map +1 -1
  24. package/esm/cli/_template/something-other-delete.js +1 -4
  25. package/esm/cli/_template/something-other-delete.js.map +1 -1
  26. package/esm/cli/_template/something-other-describe.js +1 -4
  27. package/esm/cli/_template/something-other-describe.js.map +1 -1
  28. package/esm/cli/_template/something-other-export.js +1 -4
  29. package/esm/cli/_template/something-other-export.js.map +1 -1
  30. package/esm/cli/_template/something-other-import.js +1 -4
  31. package/esm/cli/_template/something-other-import.js.map +1 -1
  32. package/esm/cli/_template/something-other-list.js +1 -4
  33. package/esm/cli/_template/something-other-list.js.map +1 -1
  34. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +4 -9
  35. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  36. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +47 -54
  37. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  38. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +1 -4
  39. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -1
  40. package/esm/cli/admin/admin-federation-export.js +2 -5
  41. package/esm/cli/admin/admin-federation-export.js.map +1 -1
  42. package/esm/cli/admin/admin-federation-import.js +2 -5
  43. package/esm/cli/admin/admin-federation-import.js.map +1 -1
  44. package/esm/cli/admin/admin-federation-list.js +2 -5
  45. package/esm/cli/admin/admin-federation-list.js.map +1 -1
  46. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +2 -4
  47. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -1
  48. package/esm/cli/admin/admin-get-access-token.js +1 -3
  49. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  50. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +5 -9
  51. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  52. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +5 -9
  53. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  54. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +5 -12
  55. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  56. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +5 -12
  57. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  58. package/esm/cli/admin/admin-list-static-user-mappings.js +4 -12
  59. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  60. package/esm/cli/admin/admin-remove-static-user-mapping.js +4 -9
  61. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  62. package/esm/cli/admin/admin-repair-org-model.js +5 -9
  63. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  64. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +5 -9
  65. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-show-generic-extension-attributes.js +5 -9
  67. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  68. package/esm/cli/admin/admin-train-auto-access-model.js +1 -3
  69. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -1
  70. package/esm/cli/agent/agent-delete.js +9 -24
  71. package/esm/cli/agent/agent-delete.js.map +1 -1
  72. package/esm/cli/agent/agent-describe.js +1 -4
  73. package/esm/cli/agent/agent-describe.js.map +1 -1
  74. package/esm/cli/agent/agent-export.js +7 -7
  75. package/esm/cli/agent/agent-export.js.map +1 -1
  76. package/esm/cli/agent/agent-gateway-delete.js +8 -23
  77. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  78. package/esm/cli/agent/agent-gateway-describe.js +1 -4
  79. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  80. package/esm/cli/agent/agent-gateway-export.js +7 -7
  81. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  82. package/esm/cli/agent/agent-gateway-import.js +9 -8
  83. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  84. package/esm/cli/agent/agent-gateway-list.js +3 -5
  85. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  86. package/esm/cli/agent/agent-import.js +9 -8
  87. package/esm/cli/agent/agent-import.js.map +1 -1
  88. package/esm/cli/agent/agent-java-delete.js +8 -23
  89. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-java-describe.js +1 -4
  91. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-java-export.js +7 -7
  93. package/esm/cli/agent/agent-java-export.js.map +1 -1
  94. package/esm/cli/agent/agent-java-import.js +9 -8
  95. package/esm/cli/agent/agent-java-import.js.map +1 -1
  96. package/esm/cli/agent/agent-java-list.js +3 -5
  97. package/esm/cli/agent/agent-java-list.js.map +1 -1
  98. package/esm/cli/agent/agent-list.js +3 -5
  99. package/esm/cli/agent/agent-list.js.map +1 -1
  100. package/esm/cli/agent/agent-web-delete.js +8 -23
  101. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  102. package/esm/cli/agent/agent-web-describe.js +1 -4
  103. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  104. package/esm/cli/agent/agent-web-export.js +7 -7
  105. package/esm/cli/agent/agent-web-export.js.map +1 -1
  106. package/esm/cli/agent/agent-web-import.js +9 -8
  107. package/esm/cli/agent/agent-web-import.js.map +1 -1
  108. package/esm/cli/agent/agent-web-list.js +3 -5
  109. package/esm/cli/agent/agent-web-list.js.map +1 -1
  110. package/esm/cli/app/app-delete.js +5 -8
  111. package/esm/cli/app/app-delete.js.map +1 -1
  112. package/esm/cli/app/app-describe.js +1 -4
  113. package/esm/cli/app/app-describe.js.map +1 -1
  114. package/esm/cli/app/app-export.js +7 -10
  115. package/esm/cli/app/app-export.js.map +1 -1
  116. package/esm/cli/app/app-import.js +9 -12
  117. package/esm/cli/app/app-import.js.map +1 -1
  118. package/esm/cli/app/app-list.js +3 -5
  119. package/esm/cli/app/app-list.js.map +1 -1
  120. package/esm/cli/authn/authn-describe.js +1 -4
  121. package/esm/cli/authn/authn-describe.js.map +1 -1
  122. package/esm/cli/authn/authn-export.js +1 -4
  123. package/esm/cli/authn/authn-export.js.map +1 -1
  124. package/esm/cli/authn/authn-import.js +1 -4
  125. package/esm/cli/authn/authn-import.js.map +1 -1
  126. package/esm/cli/authz/authz-policy-delete.js +1 -4
  127. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  128. package/esm/cli/authz/authz-policy-describe.js +1 -4
  129. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  130. package/esm/cli/authz/authz-policy-export.js +1 -4
  131. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  132. package/esm/cli/authz/authz-policy-import.js +1 -4
  133. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  134. package/esm/cli/authz/authz-policy-list.js +1 -4
  135. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  136. package/esm/cli/authz/authz-set-delete.js +1 -4
  137. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  138. package/esm/cli/authz/authz-set-describe.js +1 -4
  139. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  140. package/esm/cli/authz/authz-set-export.js +1 -4
  141. package/esm/cli/authz/authz-set-export.js.map +1 -1
  142. package/esm/cli/authz/authz-set-import.js +1 -4
  143. package/esm/cli/authz/authz-set-import.js.map +1 -1
  144. package/esm/cli/authz/authz-set-list.js +1 -4
  145. package/esm/cli/authz/authz-set-list.js.map +1 -1
  146. package/esm/cli/authz/authz-type-delete.js +1 -4
  147. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  148. package/esm/cli/authz/authz-type-describe.js +1 -4
  149. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  150. package/esm/cli/authz/authz-type-export.js +1 -4
  151. package/esm/cli/authz/authz-type-export.js.map +1 -1
  152. package/esm/cli/authz/authz-type-import.js +1 -4
  153. package/esm/cli/authz/authz-type-import.js.map +1 -1
  154. package/esm/cli/authz/authz-type-list.js +1 -4
  155. package/esm/cli/authz/authz-type-list.js.map +1 -1
  156. package/esm/cli/config/config-delete.js +1 -4
  157. package/esm/cli/config/config-delete.js.map +1 -1
  158. package/esm/cli/config/config-describe.js +1 -4
  159. package/esm/cli/config/config-describe.js.map +1 -1
  160. package/esm/cli/config/config-export.js +2 -4
  161. package/esm/cli/config/config-export.js.map +1 -1
  162. package/esm/cli/config/config-import.js +2 -4
  163. package/esm/cli/config/config-import.js.map +1 -1
  164. package/esm/cli/config/config-list.js +1 -4
  165. package/esm/cli/config/config-list.js.map +1 -1
  166. package/esm/cli/conn/conn-delete.js +7 -1
  167. package/esm/cli/conn/conn-delete.js.map +1 -1
  168. package/esm/cli/conn/conn-save.js +10 -12
  169. package/esm/cli/conn/conn-save.js.map +1 -1
  170. package/esm/cli/email/email-template-export.js +8 -7
  171. package/esm/cli/email/email-template-export.js.map +1 -1
  172. package/esm/cli/email/email-template-import.js +9 -8
  173. package/esm/cli/email/email-template-import.js.map +1 -1
  174. package/esm/cli/email/email-template-list.js +3 -5
  175. package/esm/cli/email/email-template-list.js.map +1 -1
  176. package/esm/cli/esv/esv-apply.js +1 -3
  177. package/esm/cli/esv/esv-apply.js.map +1 -1
  178. package/esm/cli/esv/esv-secret-create.js +2 -5
  179. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  180. package/esm/cli/esv/esv-secret-delete.js +2 -5
  181. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  182. package/esm/cli/esv/esv-secret-describe.js +2 -5
  183. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  184. package/esm/cli/esv/esv-secret-export.js +3 -5
  185. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  186. package/esm/cli/esv/esv-secret-import.js +1 -4
  187. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  188. package/esm/cli/esv/esv-secret-list.js +2 -5
  189. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  190. package/esm/cli/esv/esv-secret-set.js +2 -5
  191. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  192. package/esm/cli/esv/esv-secret-version-activate.js +2 -5
  193. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  194. package/esm/cli/esv/esv-secret-version-create.js +2 -5
  195. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  196. package/esm/cli/esv/esv-secret-version-deactivate.js +2 -5
  197. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  198. package/esm/cli/esv/esv-secret-version-delete.js +2 -5
  199. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  200. package/esm/cli/esv/esv-secret-version-list.js +2 -5
  201. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  202. package/esm/cli/esv/esv-variable-create.js +2 -5
  203. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  204. package/esm/cli/esv/esv-variable-delete.js +2 -5
  205. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  206. package/esm/cli/esv/esv-variable-describe.js +2 -5
  207. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  208. package/esm/cli/esv/esv-variable-export.js +3 -5
  209. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  210. package/esm/cli/esv/esv-variable-import.js +1 -4
  211. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  212. package/esm/cli/esv/esv-variable-list.js +2 -5
  213. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  214. package/esm/cli/esv/esv-variable-set.js +2 -5
  215. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  216. package/esm/cli/idm/idm-count.js +3 -5
  217. package/esm/cli/idm/idm-count.js.map +1 -1
  218. package/esm/cli/idm/idm-export.js +8 -7
  219. package/esm/cli/idm/idm-export.js.map +1 -1
  220. package/esm/cli/idm/idm-import.js +10 -8
  221. package/esm/cli/idm/idm-import.js.map +1 -1
  222. package/esm/cli/idm/idm-list.js +3 -5
  223. package/esm/cli/idm/idm-list.js.map +1 -1
  224. package/esm/cli/idp/idp-export.js +8 -7
  225. package/esm/cli/idp/idp-export.js.map +1 -1
  226. package/esm/cli/idp/idp-import.js +10 -8
  227. package/esm/cli/idp/idp-import.js.map +1 -1
  228. package/esm/cli/idp/idp-list.js +4 -5
  229. package/esm/cli/idp/idp-list.js.map +1 -1
  230. package/esm/cli/info/info.js +1 -3
  231. package/esm/cli/info/info.js.map +1 -1
  232. package/esm/cli/journey/journey-delete.js +7 -10
  233. package/esm/cli/journey/journey-delete.js.map +1 -1
  234. package/esm/cli/journey/journey-describe.js +16 -12
  235. package/esm/cli/journey/journey-describe.js.map +1 -1
  236. package/esm/cli/journey/journey-disable.js +1 -4
  237. package/esm/cli/journey/journey-disable.js.map +1 -1
  238. package/esm/cli/journey/journey-enable.js +1 -4
  239. package/esm/cli/journey/journey-enable.js.map +1 -1
  240. package/esm/cli/journey/journey-export.js +7 -7
  241. package/esm/cli/journey/journey-export.js.map +1 -1
  242. package/esm/cli/journey/journey-import.js +9 -8
  243. package/esm/cli/journey/journey-import.js.map +1 -1
  244. package/esm/cli/journey/journey-list.js +4 -5
  245. package/esm/cli/journey/journey-list.js.map +1 -1
  246. package/esm/cli/journey/journey-prune.js +4 -5
  247. package/esm/cli/journey/journey-prune.js.map +1 -1
  248. package/esm/cli/log/log-fetch.js +7 -5
  249. package/esm/cli/log/log-fetch.js.map +1 -1
  250. package/esm/cli/log/log-key-delete.js +1 -4
  251. package/esm/cli/log/log-key-delete.js.map +1 -1
  252. package/esm/cli/log/log-key-describe.js +1 -4
  253. package/esm/cli/log/log-key-describe.js.map +1 -1
  254. package/esm/cli/log/log-key-list.js +1 -4
  255. package/esm/cli/log/log-key-list.js.map +1 -1
  256. package/esm/cli/log/log-list.js +13 -6
  257. package/esm/cli/log/log-list.js.map +1 -1
  258. package/esm/cli/log/log-tail.js +7 -5
  259. package/esm/cli/log/log-tail.js.map +1 -1
  260. package/esm/cli/oauth/oauth-client-delete.js +1 -4
  261. package/esm/cli/oauth/oauth-client-delete.js.map +1 -1
  262. package/esm/cli/oauth/oauth-client-describe.js +1 -4
  263. package/esm/cli/oauth/oauth-client-describe.js.map +1 -1
  264. package/esm/cli/oauth/oauth-client-export.js +7 -10
  265. package/esm/cli/oauth/oauth-client-export.js.map +1 -1
  266. package/esm/cli/oauth/oauth-client-import.js +9 -12
  267. package/esm/cli/oauth/oauth-client-import.js.map +1 -1
  268. package/esm/cli/oauth/oauth-client-list.js +3 -5
  269. package/esm/cli/oauth/oauth-client-list.js.map +1 -1
  270. package/esm/cli/realm/realm-add-custom-domain.js +2 -4
  271. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  272. package/esm/cli/realm/realm-describe.js +1 -3
  273. package/esm/cli/realm/realm-describe.js.map +1 -1
  274. package/esm/cli/realm/realm-list.js +1 -4
  275. package/esm/cli/realm/realm-list.js.map +1 -1
  276. package/esm/cli/realm/realm-remove-custom-domain.js +1 -3
  277. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  278. package/esm/cli/saml/saml-cot-export.js +2 -4
  279. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  280. package/esm/cli/saml/saml-cot-import.js +2 -4
  281. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  282. package/esm/cli/saml/saml-cot-list.js +2 -4
  283. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  284. package/esm/cli/saml/saml-delete.js +1 -3
  285. package/esm/cli/saml/saml-delete.js.map +1 -1
  286. package/esm/cli/saml/saml-describe.js +4 -5
  287. package/esm/cli/saml/saml-describe.js.map +1 -1
  288. package/esm/cli/saml/saml-export.js +8 -7
  289. package/esm/cli/saml/saml-export.js.map +1 -1
  290. package/esm/cli/saml/saml-import.js +10 -8
  291. package/esm/cli/saml/saml-import.js.map +1 -1
  292. package/esm/cli/saml/saml-list.js +4 -5
  293. package/esm/cli/saml/saml-list.js.map +1 -1
  294. package/esm/cli/saml/saml-metadata-export.js +12 -6
  295. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  296. package/esm/cli/script/script-delete.js +12 -8
  297. package/esm/cli/script/script-delete.js.map +1 -1
  298. package/esm/cli/script/script-describe.js +1 -4
  299. package/esm/cli/script/script-describe.js.map +1 -1
  300. package/esm/cli/script/script-export.js +10 -17
  301. package/esm/cli/script/script-export.js.map +1 -1
  302. package/esm/cli/script/script-import.js +21 -18
  303. package/esm/cli/script/script-import.js.map +1 -1
  304. package/esm/cli/script/script-list.js +2 -4
  305. package/esm/cli/script/script-list.js.map +1 -1
  306. package/esm/cli/service/service-delete.js +5 -6
  307. package/esm/cli/service/service-delete.js.map +1 -1
  308. package/esm/cli/service/service-export.js +7 -7
  309. package/esm/cli/service/service-export.js.map +1 -1
  310. package/esm/cli/service/service-import.js +9 -8
  311. package/esm/cli/service/service-import.js.map +1 -1
  312. package/esm/cli/service/service-list.js +3 -5
  313. package/esm/cli/service/service-list.js.map +1 -1
  314. package/esm/cli/shell/shell.js +3 -7
  315. package/esm/cli/shell/shell.js.map +1 -1
  316. package/esm/cli/theme/theme-delete.js +9 -8
  317. package/esm/cli/theme/theme-delete.js.map +1 -1
  318. package/esm/cli/theme/theme-export.js +10 -8
  319. package/esm/cli/theme/theme-export.js.map +1 -1
  320. package/esm/cli/theme/theme-import.js +12 -9
  321. package/esm/cli/theme/theme-import.js.map +1 -1
  322. package/esm/cli/theme/theme-list.js +4 -5
  323. package/esm/cli/theme/theme-list.js.map +1 -1
  324. package/esm/ops/AdminOps.js +790 -3
  325. package/esm/ops/AdminOps.js.map +1 -1
  326. package/esm/ops/AgentOps.js +638 -305
  327. package/esm/ops/AgentOps.js.map +1 -1
  328. package/esm/ops/ApplicationOps.js +91 -79
  329. package/esm/ops/ApplicationOps.js.map +1 -1
  330. package/esm/ops/AuthenticateOps.js +23 -0
  331. package/esm/ops/AuthenticateOps.js.map +1 -0
  332. package/esm/ops/AuthenticationSettingsOps.js +22 -23
  333. package/esm/ops/AuthenticationSettingsOps.js.map +1 -1
  334. package/esm/ops/CirclesOfTrustOps.js +52 -55
  335. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  336. package/esm/ops/ConfigOps.js +100 -84
  337. package/esm/ops/ConfigOps.js.map +1 -1
  338. package/esm/ops/ConnectionProfileOps.js +9 -7
  339. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  340. package/esm/ops/EmailTemplateOps.js +64 -47
  341. package/esm/ops/EmailTemplateOps.js.map +1 -1
  342. package/esm/ops/IdmOps.js +149 -117
  343. package/esm/ops/IdmOps.js.map +1 -1
  344. package/esm/ops/IdpOps.js +76 -46
  345. package/esm/ops/IdpOps.js.map +1 -1
  346. package/esm/ops/JourneyOps.js +333 -238
  347. package/esm/ops/JourneyOps.js.map +1 -1
  348. package/esm/ops/LogOps.js +15 -23
  349. package/esm/ops/LogOps.js.map +1 -1
  350. package/esm/ops/OAuth2ClientOps.js +43 -36
  351. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  352. package/esm/ops/PolicyOps.js +104 -108
  353. package/esm/ops/PolicyOps.js.map +1 -1
  354. package/esm/ops/PolicySetOps.js +72 -78
  355. package/esm/ops/PolicySetOps.js.map +1 -1
  356. package/esm/ops/ResourceTypeOps.js +84 -99
  357. package/esm/ops/ResourceTypeOps.js.map +1 -1
  358. package/esm/ops/Saml2Ops.js +132 -88
  359. package/esm/ops/Saml2Ops.js.map +1 -1
  360. package/esm/ops/ScriptOps.js +90 -80
  361. package/esm/ops/ScriptOps.js.map +1 -1
  362. package/esm/ops/ServiceOps.js +125 -87
  363. package/esm/ops/ServiceOps.js.map +1 -1
  364. package/esm/ops/ThemeOps.js +170 -139
  365. package/esm/ops/ThemeOps.js.map +1 -1
  366. package/esm/ops/{AdminFederationOps.js → cloud/AdminFederationOps.js} +10 -16
  367. package/esm/ops/cloud/AdminFederationOps.js.map +1 -0
  368. package/esm/ops/{SecretsOps.js → cloud/SecretsOps.js} +123 -129
  369. package/esm/ops/cloud/SecretsOps.js.map +1 -0
  370. package/esm/ops/{VariablesOps.js → cloud/VariablesOps.js} +48 -52
  371. package/esm/ops/cloud/VariablesOps.js.map +1 -0
  372. package/esm/ops/templates/OAuth2ClientTemplate.json +270 -0
  373. package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +38 -0
  374. package/esm/ops/templates/OrgModelUserAttributesTemplate.json +149 -0
  375. package/esm/ops/templates/autoaccess/IPAddresses.json +202 -0
  376. package/esm/ops/templates/autoaccess/UserAgents.json +35 -0
  377. package/esm/ops/templates/autoaccess/Usernames.json +203 -0
  378. package/esm/ops/templates/cloud/GenericExtensionAttributesTemplate.json +392 -0
  379. package/esm/ops/templates/cloud/managed.json +4119 -0
  380. package/esm/ops/utils/OpsUtils.js.map +1 -1
  381. package/esm/utils/Console.js +31 -0
  382. package/esm/utils/Console.js.map +1 -1
  383. package/package.json +11 -6
  384. package/esm/ops/AdminFederationOps.js.map +0 -1
  385. package/esm/ops/SecretsOps.js.map +0 -1
  386. package/esm/ops/VariablesOps.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"idm-export.js","names":["frodo","state","Option","exportAllConfigEntities","exportAllRawConfigEntities","exportConfigEntity","warnAboutOfflineConnectorServers","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","file","allSeparate","getDirectory","help","process","exitCode","entitiesFile","envFile","parse"],"sources":["../../../src/cli/idm/idm-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportAllConfigEntities,\n exportAllRawConfigEntities,\n exportConfigEntity,\n warnAboutOfflineConnectorServers,\n} from '../../ops/IdmOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idm export');\n\nprogram\n .description('Export IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Export file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all IDM configuration objects into a single file in directory -D. Ignored with -N.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, 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.name && (await getTokens())) {\n verboseMessage(`Exporting object \"${options.name}\"...`);\n await exportConfigEntity(options.name, options.file);\n }\n // require --directory -D for all-separate functions\n else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Exporting IDM configuration objects specified in ${\n options.entitiesFile\n } into separate files in ${state.getDirectory()} using ${\n options.envFile\n } for variable replacement...`\n );\n await exportAllConfigEntities(options.entitiesFile, options.envFile);\n await warnAboutOfflineConnectorServers();\n }\n // --all-separate -A without variable replacement\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n `Exporting all IDM configuration objects into separate files in ${state.getDirectory()}...`\n );\n await exportAllRawConfigEntities();\n await warnAboutOfflineConnectorServers();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"idm-export.js","names":["state","Option","getTokens","exportAllConfigEntities","exportAllRawConfigEntities","exportConfigEntity","warnAboutOfflineConnectorServers","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","outcome","file","process","exitCode","allSeparate","getDirectory","help","entitiesFile","envFile","parse"],"sources":["../../../src/cli/idm/idm-export.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportAllConfigEntities,\n exportAllRawConfigEntities,\n exportConfigEntity,\n warnAboutOfflineConnectorServers,\n} from '../../ops/IdmOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo idm export');\n\nprogram\n .description('Export IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Export file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all IDM configuration objects into a single file in directory -D. Ignored with -N.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all IDM configuration objects into separate JSON files in directory -D. Ignored with -N, 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.name && (await getTokens())) {\n verboseMessage(`Exporting object \"${options.name}\"...`);\n const outcome = await exportConfigEntity(options.name, options.file);\n if (!outcome) process.exitCode = 1;\n }\n // require --directory -D for all-separate functions\n else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Exporting IDM configuration objects specified in ${\n options.entitiesFile\n } into separate files in ${state.getDirectory()} using ${\n options.envFile\n } for variable replacement...`\n );\n const outcome = await exportAllConfigEntities(\n options.entitiesFile,\n options.envFile\n );\n if (!outcome) process.exitCode = 1;\n await warnAboutOfflineConnectorServers();\n }\n // --all-separate -A without variable replacement\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n `Exporting all IDM configuration objects into separate files in ${state.getDirectory()}...`\n );\n const outcome = await exportAllRawConfigEntities();\n if (!outcome) process.exitCode = 1;\n await warnAboutOfflineConnectorServers();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,uBAAuB,EACvBC,0BAA0B,EAC1BC,kBAAkB,EAClBC,gCAAgC,QAC3B,kBAAkB;AACzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,kBAAkB,CAAC;AAEpDC,OAAO,CACJC,WAAW,CAAC,mCAAmC,CAAC,CAChDC,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,kFACF,CACF,CAAC,CACAW,SAAS,CAAC,IAAIX,MAAM,CAAC,mBAAmB,EAAE,+BAA+B,CAAC,CAAC,CAC3EW,SAAS,CACR,IAAIX,MAAM,CACR,qCAAqC,EACrC,2CACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,0BAA0B,EAC1B,wCACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,2FACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,yGACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,IAAI,KAAK,MAAMnB,SAAS,CAAC,CAAC,CAAC,EAAE;IACvCM,cAAc,CAAE,qBAAoBU,OAAO,CAACG,IAAK,MAAK,CAAC;IACvD,MAAMC,OAAO,GAAG,MAAMjB,kBAAkB,CAACa,OAAO,CAACG,IAAI,EAAEH,OAAO,CAACK,IAAI,CAAC;IACpE,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIP,OAAO,CAACQ,WAAW,IAAI,CAAC1B,KAAK,CAAC2B,YAAY,CAAC,CAAC,EAAE;IACrDpB,YAAY,CACV,4DAA4D,EAC5D,OACF,CAAC;IACDG,OAAO,CAACkB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;EACA;EAAA,KACK,IACHP,OAAO,CAACQ,WAAW,IACnBR,OAAO,CAACW,YAAY,IACpBX,OAAO,CAACY,OAAO,KACd,MAAM5B,SAAS,CAAC,CAAC,CAAC,EACnB;IACAM,cAAc,CACX,oDACCU,OAAO,CAACW,YACT,2BAA0B7B,KAAK,CAAC2B,YAAY,CAAC,CAAE,UAC9CT,OAAO,CAACY,OACT,8BACH,CAAC;IACD,MAAMR,OAAO,GAAG,MAAMnB,uBAAuB,CAC3Ce,OAAO,CAACW,YAAY,EACpBX,OAAO,CAACY,OACV,CAAC;IACD,IAAI,CAACR,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;IAClC,MAAMnB,gCAAgC,CAAC,CAAC;EAC1C;EACA;EAAA,KACK,IAAIY,OAAO,CAACQ,WAAW,KAAK,MAAMxB,SAAS,CAAC,CAAC,CAAC,EAAE;IACnDM,cAAc,CACX,kEAAiER,KAAK,CAAC2B,YAAY,CAAC,CAAE,KACzF,CAAC;IACD,MAAML,OAAO,GAAG,MAAMlB,0BAA0B,CAAC,CAAC;IAClD,IAAI,CAACkB,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;IAClC,MAAMnB,gCAAgC,CAAC,CAAC;EAC1C;EACA;EAAA,KACK;IACHC,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDG,OAAO,CAACkB,IAAI,CAAC,CAAC;IACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHf,OAAO,CAACqB,KAAK,CAAC,CAAC"}
@@ -1,11 +1,9 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
3
4
  import { importAllConfigEntities, importAllRawConfigEntities, importConfigEntityByIdFromFile, importConfigEntityFromFile } from '../../ops/IdmOps';
4
5
  import { printMessage, verboseMessage } from '../../utils/Console';
5
6
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
7
  const program = new FrodoCommand('frodo idm import');
10
8
  program.description('Import IDM configuration objects.').addOption(new Option('-N, --name <name>', 'Config entity name. E.g. "managed", "sync", "provisioner-<connector-name>", etc.')).addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.')).addOption(new Option('-E, --entities-file [entities-file]', 'Name of the entity file. Ignored with -A.')).addOption(new Option('-e, --env-file [envfile]', 'Name of the env file. Ignored with -A.')).addOption(new Option('-A, --all-separate', 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.')).action(
11
9
  // implement command logic inside action handler
@@ -14,12 +12,14 @@ async (host, realm, user, password, options, command) => {
14
12
  // import by id/name
15
13
  if (options.name && (await getTokens())) {
16
14
  verboseMessage(`Importing object "${options.name}"...`);
17
- await importConfigEntityByIdFromFile(options.name, options.file);
15
+ const outcome = await importConfigEntityByIdFromFile(options.name, options.file);
16
+ if (!outcome) process.exitCode = 1;
18
17
  }
19
18
  // import from file
20
19
  else if (options.file && (await getTokens())) {
21
20
  verboseMessage(`Importing object from file...`);
22
- await importConfigEntityFromFile(options.file);
21
+ const outcome = await importConfigEntityFromFile(options.file);
22
+ if (!outcome) process.exitCode = 1;
23
23
  }
24
24
  // require --directory -D for all-separate functions
25
25
  else if (options.allSeparate && !state.getDirectory()) {
@@ -30,12 +30,14 @@ async (host, realm, user, password, options, command) => {
30
30
  // --all-separate -A
31
31
  else if (options.allSeparate && options.entitiesFile && options.envFile && (await getTokens())) {
32
32
  verboseMessage(`Importing IDM configuration objects specified in ${options.entitiesFile} into separate files in ${state.getDirectory()} using ${options.envFile} for variable replacement...`);
33
- await importAllConfigEntities(options.entitiesFile, options.envFile);
33
+ const outcome = await importAllConfigEntities(options.entitiesFile, options.envFile);
34
+ if (!outcome) process.exitCode = 1;
34
35
  }
35
36
  // --all-separate -A without variable replacement
36
37
  else if (options.allSeparate && (await getTokens())) {
37
38
  verboseMessage(`Importing all IDM configuration objects from separate files in ${state.getDirectory()}...`);
38
- await importAllRawConfigEntities();
39
+ const outcome = await importAllRawConfigEntities();
40
+ if (!outcome) process.exitCode = 1;
39
41
  }
40
42
  // unrecognized combination of options or no options
41
43
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"idm-import.js","names":["frodo","state","Option","importAllConfigEntities","importAllRawConfigEntities","importConfigEntityByIdFromFile","importConfigEntityFromFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","file","allSeparate","getDirectory","help","process","exitCode","entitiesFile","envFile","parse"],"sources":["../../../src/cli/idm/idm-import.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntityByIdFromFile,\n importConfigEntityFromFile,\n} from '../../ops/IdmOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(`Importing object \"${options.name}\"...`);\n await importConfigEntityByIdFromFile(options.name, options.file);\n }\n // import from file\n else if (options.file && (await getTokens())) {\n verboseMessage(`Importing object from file...`);\n await importConfigEntityFromFile(options.file);\n }\n // require --directory -D for all-separate functions\n else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${\n options.entitiesFile\n } into separate files in ${state.getDirectory()} using ${\n options.envFile\n } for variable replacement...`\n );\n await importAllConfigEntities(options.entitiesFile, options.envFile);\n }\n // --all-separate -A without variable replacement\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n `Importing all IDM configuration objects from separate files in ${state.getDirectory()}...`\n );\n await importAllRawConfigEntities();\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"idm-import.js","names":["state","Option","getTokens","importAllConfigEntities","importAllRawConfigEntities","importConfigEntityByIdFromFile","importConfigEntityFromFile","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","name","outcome","file","process","exitCode","allSeparate","getDirectory","help","entitiesFile","envFile","parse"],"sources":["../../../src/cli/idm/idm-import.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importAllConfigEntities,\n importAllRawConfigEntities,\n importConfigEntityByIdFromFile,\n importConfigEntityFromFile,\n} from '../../ops/IdmOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo idm import');\n\ninterface IdmImportOptions {\n type?: string;\n insecure?: boolean;\n verbose?: boolean;\n debug?: boolean;\n curlirize?: boolean;\n name?: string;\n file?: string;\n entitiesFile?: string;\n envFile?: string;\n all?: string;\n allSeparate?: string;\n directory?: string;\n}\n\nprogram\n .description('Import IDM configuration objects.')\n .addOption(\n new Option(\n '-N, --name <name>',\n 'Config entity name. E.g. \"managed\", \"sync\", \"provisioner-<connector-name>\", etc.'\n )\n )\n .addOption(new Option('-f, --file [file]', 'Import file. Ignored with -A.'))\n .addOption(\n new Option(\n '-E, --entities-file [entities-file]',\n 'Name of the entity file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-e, --env-file [envfile]',\n 'Name of the env file. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all IDM configuration objects from separate files in directory -D. Ignored with -N, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (\n host: string,\n realm: string,\n user: string,\n password: string,\n options: IdmImportOptions,\n command\n ) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id/name\n if (options.name && (await getTokens())) {\n verboseMessage(`Importing object \"${options.name}\"...`);\n const outcome = await importConfigEntityByIdFromFile(\n options.name,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // import from file\n else if (options.file && (await getTokens())) {\n verboseMessage(`Importing object from file...`);\n const outcome = await importConfigEntityFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // require --directory -D for all-separate functions\n else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n // --all-separate -A\n else if (\n options.allSeparate &&\n options.entitiesFile &&\n options.envFile &&\n (await getTokens())\n ) {\n verboseMessage(\n `Importing IDM configuration objects specified in ${\n options.entitiesFile\n } into separate files in ${state.getDirectory()} using ${\n options.envFile\n } for variable replacement...`\n );\n const outcome = await importAllConfigEntities(\n options.entitiesFile,\n options.envFile\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A without variable replacement\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n `Importing all IDM configuration objects from separate files in ${state.getDirectory()}...`\n );\n const outcome = await importAllRawConfigEntities();\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,10 +1,7 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
1
+ import { getTokens } from '../../ops/AuthenticateOps';
2
2
  import { listAllConfigEntities, warnAboutOfflineConnectorServers } from '../../ops/IdmOps';
3
3
  import { verboseMessage } from '../../utils/Console';
4
4
  import { FrodoCommand } from '../FrodoCommand';
5
- const {
6
- getTokens
7
- } = frodo.login;
8
5
  const program = new FrodoCommand('frodo idm list');
9
6
  program.description('List IDM configuration objects.')
10
7
  // .addOption(
@@ -16,7 +13,8 @@ async (host, realm, user, password, options, command) => {
16
13
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
17
14
  if (await getTokens()) {
18
15
  verboseMessage('Listing all IDM configuration objects...');
19
- await listAllConfigEntities();
16
+ const outcome = await listAllConfigEntities();
17
+ if (!outcome) process.exitCode = 1;
20
18
  await warnAboutOfflineConnectorServers();
21
19
  } else {
22
20
  process.exitCode = 1;
@@ -1 +1 @@
1
- {"version":3,"file":"idm-list.js","names":["frodo","listAllConfigEntities","warnAboutOfflineConnectorServers","verboseMessage","FrodoCommand","getTokens","login","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/idm/idm-list.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\n\nimport {\n listAllConfigEntities,\n warnAboutOfflineConnectorServers,\n} from '../../ops/IdmOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idm list');\n\nprogram\n .description('List IDM configuration objects.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing all IDM configuration objects...');\n await listAllConfigEntities();\n await warnAboutOfflineConnectorServers();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAE7C,SACEC,qBAAqB,EACrBC,gCAAgC,QAC3B,kBAAkB;AACzB,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,gBAAgB,CAAC;AAElDG,OAAO,CACJC,WAAW,CAAC,iCAAiC;AAC9C;AACA;AACA;AAAA,CACCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMV,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAC,0CAA0C,CAAC;IAC1D,MAAMF,qBAAqB,CAAC,CAAC;IAC7B,MAAMC,gCAAgC,CAAC,CAAC;EAC1C,CAAC,MAAM;IACLe,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHX,OAAO,CAACY,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idm-list.js","names":["getTokens","listAllConfigEntities","warnAboutOfflineConnectorServers","verboseMessage","FrodoCommand","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","process","exitCode","parse"],"sources":["../../../src/cli/idm/idm-list.ts"],"sourcesContent":["import { getTokens } from '../../ops/AuthenticateOps';\nimport {\n listAllConfigEntities,\n warnAboutOfflineConnectorServers,\n} from '../../ops/IdmOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo idm list');\n\nprogram\n .description('List IDM configuration objects.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing all IDM configuration objects...');\n const outcome = await listAllConfigEntities();\n if (!outcome) process.exitCode = 1;\n await warnAboutOfflineConnectorServers();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ,2BAA2B;AACrD,SACEC,qBAAqB,EACrBC,gCAAgC,QAC3B,kBAAkB;AACzB,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,gBAAgB,CAAC;AAElDC,OAAO,CACJC,WAAW,CAAC,iCAAiC;AAC9C;AACA;AACA;AAAA,CACCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMb,SAAS,CAAC,CAAC,EAAE;IACrBG,cAAc,CAAC,0CAA0C,CAAC;IAC1D,MAAMY,OAAO,GAAG,MAAMd,qBAAqB,CAAC,CAAC;IAC7C,IAAI,CAACc,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;IAClC,MAAMf,gCAAgC,CAAC,CAAC;EAC1C,CAAC,MAAM;IACLc,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -1,11 +1,9 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
3
4
  import { exportSocialIdentityProvidersToFile, exportSocialIdentityProvidersToFiles, exportSocialIdentityProviderToFile } from '../../ops/IdpOps';
4
5
  import { printMessage, verboseMessage } from '../../utils/Console';
5
6
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
7
  const program = new FrodoCommand('frodo idp export');
10
8
  program.description('Export (social) identity providers.').addOption(new Option('-i, --idp-id <idp-id>', 'Id/name of a provider. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file [file]', 'Name of the file to write the exported provider(s) to. Ignored with -A.')).addOption(new Option('-a, --all', 'Export all the providers in a realm to a single file. Ignored with -t and -i.')).addOption(new Option('-A, --all-separate', 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).action(
11
9
  // implement command logic inside action handler
@@ -15,17 +13,20 @@ async (host, realm, user, password, options, command) => {
15
13
  // export by id/name
16
14
  if (options.idpId) {
17
15
  verboseMessage(`Exporting provider "${options.idpId}" from realm "${state.getRealm()}"...`);
18
- await exportSocialIdentityProviderToFile(options.idpId, options.file, options.metadata);
16
+ const outcome = await exportSocialIdentityProviderToFile(options.idpId, options.file, options.metadata);
17
+ if (!outcome) process.exitCode = 1;
19
18
  }
20
19
  // --all -a
21
20
  else if (options.all) {
22
21
  verboseMessage('Exporting all providers to a single file...');
23
- await exportSocialIdentityProvidersToFile(options.file, options.metadata);
22
+ const outcome = await exportSocialIdentityProvidersToFile(options.file, options.metadata);
23
+ if (!outcome) process.exitCode = 1;
24
24
  }
25
25
  // --all-separate -A
26
26
  else if (options.allSeparate) {
27
27
  verboseMessage('Exporting all providers to separate files...');
28
- await exportSocialIdentityProvidersToFiles(options.metadata);
28
+ const outcome = await exportSocialIdentityProvidersToFiles(options.metadata);
29
+ if (!outcome) process.exitCode = 1;
29
30
  }
30
31
  // unrecognized combination of options or no options
31
32
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"idp-export.js","names":["frodo","state","Option","exportSocialIdentityProvidersToFile","exportSocialIdentityProvidersToFiles","exportSocialIdentityProviderToFile","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","idpId","getRealm","file","metadata","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/idp/idp-export.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n exportSocialIdentityProvidersToFile,\n exportSocialIdentityProvidersToFiles,\n exportSocialIdentityProviderToFile,\n} from '../../ops/IdpOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp export');\n\nprogram\n .description('Export (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <idp-id>',\n 'Id/name of a provider. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the file to write the exported provider(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the providers in a realm to a single file. Ignored with -t and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // export by id/name\n if (options.idpId) {\n verboseMessage(\n `Exporting provider \"${\n options.idpId\n }\" from realm \"${state.getRealm()}\"...`\n );\n await exportSocialIdentityProviderToFile(\n options.idpId,\n options.file,\n options.metadata\n );\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n await exportSocialIdentityProvidersToFile(\n options.file,\n options.metadata\n );\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n await exportSocialIdentityProvidersToFiles(options.metadata);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SACEC,mCAAmC,EACnCC,oCAAoC,EACpCC,kCAAkC,QAC7B,kBAAkB;AACzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGT,KAAK,CAACU,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,kBAAkB,CAAC;AAEpDG,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIX,MAAM,CACR,uBAAuB,EACvB,6DACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,yEACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,WAAW,EACX,+EACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,oBAAoB,EACpB,8GACF,CACF,CAAC,CACAW,SAAS,CACR,IAAIX,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAY,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;IACA,IAAIU,OAAO,CAACG,KAAK,EAAE;MACjBf,cAAc,CACX,uBACCY,OAAO,CAACG,KACT,iBAAgBrB,KAAK,CAACsB,QAAQ,CAAC,CAAE,MACpC,CAAC;MACD,MAAMlB,kCAAkC,CACtCc,OAAO,CAACG,KAAK,EACbH,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QACV,CAAC;IACH;IACA;IAAA,KACK,IAAIN,OAAO,CAACO,GAAG,EAAE;MACpBnB,cAAc,CAAC,6CAA6C,CAAC;MAC7D,MAAMJ,mCAAmC,CACvCgB,OAAO,CAACK,IAAI,EACZL,OAAO,CAACM,QACV,CAAC;IACH;IACA;IAAA,KACK,IAAIN,OAAO,CAACQ,WAAW,EAAE;MAC5BpB,cAAc,CAAC,8CAA8C,CAAC;MAC9D,MAAMH,oCAAoC,CAACe,OAAO,CAACM,QAAQ,CAAC;IAC9D;IACA;IAAA,KACK;MACHnB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;MACDK,OAAO,CAACiB,IAAI,CAAC,CAAC;MACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;AACF;AACA;AACF,CAAC;AAEHnB,OAAO,CAACoB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idp-export.js","names":["state","Option","getTokens","exportSocialIdentityProvidersToFile","exportSocialIdentityProvidersToFiles","exportSocialIdentityProviderToFile","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","idpId","getRealm","outcome","file","metadata","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/idp/idp-export.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportSocialIdentityProvidersToFile,\n exportSocialIdentityProvidersToFiles,\n exportSocialIdentityProviderToFile,\n} from '../../ops/IdpOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo idp export');\n\nprogram\n .description('Export (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <idp-id>',\n 'Id/name of a provider. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the file to write the exported provider(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the providers in a realm to a single file. Ignored with -t and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the providers in a realm as separate files <provider name>.idp.json. Ignored with -t, -i, and -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // export by id/name\n if (options.idpId) {\n verboseMessage(\n `Exporting provider \"${\n options.idpId\n }\" from realm \"${state.getRealm()}\"...`\n );\n const outcome = await exportSocialIdentityProviderToFile(\n options.idpId,\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all) {\n verboseMessage('Exporting all providers to a single file...');\n const outcome = await exportSocialIdentityProvidersToFile(\n options.file,\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate) {\n verboseMessage('Exporting all providers to separate files...');\n const outcome = await exportSocialIdentityProvidersToFiles(\n options.metadata\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SACEC,mCAAmC,EACnCC,oCAAoC,EACpCC,kCAAkC,QAC7B,kBAAkB;AACzB,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,kBAAkB,CAAC;AAEpDC,OAAO,CACJC,WAAW,CAAC,qCAAqC,CAAC,CAClDC,SAAS,CACR,IAAIV,MAAM,CACR,uBAAuB,EACvB,6DACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,yEACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,WAAW,EACX,+EACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,oBAAoB,EACpB,8GACF,CACF,CAAC,CACAU,SAAS,CACR,IAAIV,MAAM,CACR,mBAAmB,EACnB,+CACF,CACF,CAAC,CACAW,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMhB,SAAS,CAAC,CAAC,EAAE;IACrB;IACA,IAAIe,OAAO,CAACG,KAAK,EAAE;MACjBb,cAAc,CACX,uBACCU,OAAO,CAACG,KACT,iBAAgBpB,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACpC,CAAC;MACD,MAAMC,OAAO,GAAG,MAAMjB,kCAAkC,CACtDY,OAAO,CAACG,KAAK,EACbH,OAAO,CAACM,IAAI,EACZN,OAAO,CAACO,QACV,CAAC;MACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IAAIT,OAAO,CAACU,GAAG,EAAE;MACpBpB,cAAc,CAAC,6CAA6C,CAAC;MAC7D,MAAMe,OAAO,GAAG,MAAMnB,mCAAmC,CACvDc,OAAO,CAACM,IAAI,EACZN,OAAO,CAACO,QACV,CAAC;MACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK,IAAIT,OAAO,CAACW,WAAW,EAAE;MAC5BrB,cAAc,CAAC,8CAA8C,CAAC;MAC9D,MAAMe,OAAO,GAAG,MAAMlB,oCAAoC,CACxDa,OAAO,CAACO,QACV,CAAC;MACD,IAAI,CAACF,OAAO,EAAEG,OAAO,CAACC,QAAQ,GAAG,CAAC;IACpC;IACA;IAAA,KACK;MACHpB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;MACDG,OAAO,CAACoB,IAAI,CAAC,CAAC;MACdJ,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF;AACF;AACA;AACF,CAAC;AAEHjB,OAAO,CAACqB,KAAK,CAAC,CAAC"}
@@ -1,11 +1,9 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
3
4
  import { importFirstSocialIdentityProviderFromFile, importSocialIdentityProviderFromFile, importSocialIdentityProvidersFromFile, importSocialIdentityProvidersFromFiles } from '../../ops/IdpOps';
4
5
  import { printMessage, verboseMessage } from '../../utils/Console';
5
6
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
7
  const program = new FrodoCommand('frodo idp import');
10
8
  program.description('Import (social) identity providers.').addOption(new Option('-i, --idp-id <id>', 'Provider id. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the provider(s) from.')).addOption(new Option('-a, --all', 'Import all the providers from single file. Ignored with -t or -i.')).addOption(new Option('-A, --all-separate', 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.')).addOption(new Option('--no-deps', 'Do not include any dependencies (scripts).')).action(
11
9
  // implement command logic inside action handler
@@ -14,30 +12,34 @@ async (host, realm, user, password, options, command) => {
14
12
  // import by id
15
13
  if (options.file && options.idpId && (await getTokens())) {
16
14
  verboseMessage(`Importing provider "${options.idpId}" into realm "${state.getRealm()}"...`);
17
- await importSocialIdentityProviderFromFile(options.idpId, options.file, {
15
+ const outcome = await importSocialIdentityProviderFromFile(options.idpId, options.file, {
18
16
  deps: options.deps
19
17
  });
18
+ if (!outcome) process.exitCode = 1;
20
19
  }
21
20
  // --all -a
22
21
  else if (options.all && options.file && (await getTokens())) {
23
22
  verboseMessage(`Importing all providers from a single file (${options.file})...`);
24
- await importSocialIdentityProvidersFromFile(options.file, {
23
+ const outcome = await importSocialIdentityProvidersFromFile(options.file, {
25
24
  deps: options.deps
26
25
  });
26
+ if (!outcome) process.exitCode = 1;
27
27
  }
28
28
  // --all-separate -A
29
29
  else if (options.allSeparate && !options.file && (await getTokens())) {
30
30
  verboseMessage('Importing all providers from separate files in current directory...');
31
- await importSocialIdentityProvidersFromFiles({
31
+ const outcome = await importSocialIdentityProvidersFromFiles({
32
32
  deps: options.deps
33
33
  });
34
+ if (!outcome) process.exitCode = 1;
34
35
  }
35
36
  // import first provider from file
36
37
  else if (options.file && (await getTokens())) {
37
38
  verboseMessage(`Importing first provider from file "${options.file}" into realm "${state.getRealm()}"...`);
38
- await importFirstSocialIdentityProviderFromFile(options.file, {
39
+ const outcome = await importFirstSocialIdentityProviderFromFile(options.file, {
39
40
  deps: options.deps
40
41
  });
42
+ if (!outcome) process.exitCode = 1;
41
43
  }
42
44
  // unrecognized combination of options or no options
43
45
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"idp-import.js","names":["frodo","state","Option","importFirstSocialIdentityProviderFromFile","importSocialIdentityProviderFromFile","importSocialIdentityProvidersFromFile","importSocialIdentityProvidersFromFiles","printMessage","verboseMessage","FrodoCommand","getTokens","login","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","getRealm","deps","all","allSeparate","help","process","exitCode","parse"],"sources":["../../../src/cli/idp/idp-import.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport {\n importFirstSocialIdentityProviderFromFile,\n importSocialIdentityProviderFromFile,\n importSocialIdentityProvidersFromFile,\n importSocialIdentityProvidersFromFiles,\n} from '../../ops/IdpOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id\n if (options.file && options.idpId && (await getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n await importSocialIdentityProviderFromFile(\n options.idpId,\n options.file,\n {\n deps: options.deps,\n }\n );\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n await importSocialIdentityProvidersFromFile(options.file, {\n deps: options.deps,\n });\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n await importSocialIdentityProvidersFromFiles({\n deps: options.deps,\n });\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n await importFirstSocialIdentityProviderFromFile(options.file, {\n deps: options.deps,\n });\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"idp-import.js","names":["state","Option","getTokens","importFirstSocialIdentityProviderFromFile","importSocialIdentityProviderFromFile","importSocialIdentityProvidersFromFile","importSocialIdentityProvidersFromFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","file","idpId","getRealm","outcome","deps","process","exitCode","all","allSeparate","help","parse"],"sources":["../../../src/cli/idp/idp-import.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importFirstSocialIdentityProviderFromFile,\n importSocialIdentityProviderFromFile,\n importSocialIdentityProvidersFromFile,\n importSocialIdentityProvidersFromFiles,\n} from '../../ops/IdpOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo idp import');\n\nprogram\n .description('Import (social) identity providers.')\n .addOption(\n new Option(\n '-i, --idp-id <id>',\n 'Provider id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the provider(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the providers from single file. Ignored with -t or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the providers from separate files (*.json) in the current directory. Ignored with -t or -i or -a.'\n )\n )\n .addOption(\n new Option('--no-deps', 'Do not include any dependencies (scripts).')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by id\n if (options.file && options.idpId && (await getTokens())) {\n verboseMessage(\n `Importing provider \"${\n options.idpId\n }\" into realm \"${state.getRealm()}\"...`\n );\n const outcome = await importSocialIdentityProviderFromFile(\n options.idpId,\n options.file,\n {\n deps: options.deps,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && options.file && (await getTokens())) {\n verboseMessage(\n `Importing all providers from a single file (${options.file})...`\n );\n const outcome = await importSocialIdentityProvidersFromFile(\n options.file,\n {\n deps: options.deps,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file && (await getTokens())) {\n verboseMessage(\n 'Importing all providers from separate files in current directory...'\n );\n const outcome = await importSocialIdentityProvidersFromFiles({\n deps: options.deps,\n });\n if (!outcome) process.exitCode = 1;\n }\n // import first provider from file\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first provider from file \"${\n options.file\n }\" into realm \"${state.getRealm()}\"...`\n );\n const outcome = await importFirstSocialIdentityProviderFromFile(\n options.file,\n {\n deps: options.deps,\n }\n );\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n printMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,10 +1,8 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { state } from '@rockcarver/frodo-lib';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
2
3
  import { listSocialProviders } from '../../ops/IdpOps';
3
4
  import { verboseMessage } from '../../utils/Console';
4
5
  import { FrodoCommand } from '../FrodoCommand';
5
- const {
6
- getTokens
7
- } = frodo.login;
8
6
  const program = new FrodoCommand('frodo idp list');
9
7
  program.description('List (social) identity providers.')
10
8
  // .addOption(
@@ -16,7 +14,8 @@ async (host, realm, user, password, options, command) => {
16
14
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
17
15
  if (await getTokens()) {
18
16
  verboseMessage(`Listing providers in realm "${state.getRealm()}"...`);
19
- await listSocialProviders();
17
+ const outcome = await listSocialProviders();
18
+ if (!outcome) process.exitCode = 1;
20
19
  } else {
21
20
  process.exitCode = 1;
22
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"idp-list.js","names":["frodo","state","listSocialProviders","verboseMessage","FrodoCommand","getTokens","login","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","process","exitCode","parse"],"sources":["../../../src/cli/idp/idp-list.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\n\nimport { listSocialProviders } from '../../ops/IdpOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\n\nconst program = new FrodoCommand('frodo idp list');\n\nprogram\n .description('List (social) identity providers.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing providers in realm \"${state.getRealm()}\"...`);\n await listSocialProviders();\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAEpD,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGL,KAAK,CAACM,KAAK;AAEjC,MAAMC,OAAO,GAAG,IAAIH,YAAY,CAAC,gBAAgB,CAAC;AAElDG,OAAO,CACJC,WAAW,CAAC,mCAAmC;AAChD;AACA;AACA;AAAA,CACCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMV,SAAS,CAAC,CAAC,EAAE;IACrBF,cAAc,CAAE,+BAA8BF,KAAK,CAACgB,QAAQ,CAAC,CAAE,MAAK,CAAC;IACrE,MAAMf,mBAAmB,CAAC,CAAC;EAC7B,CAAC,MAAM;IACLgB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"idp-list.js","names":["state","getTokens","listSocialProviders","verboseMessage","FrodoCommand","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","outcome","process","exitCode","parse"],"sources":["../../../src/cli/idp/idp-list.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { listSocialProviders } from '../../ops/IdpOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo idp list');\n\nprogram\n .description('List (social) identity providers.')\n // .addOption(\n // new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n // )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage(`Listing providers in realm \"${state.getRealm()}\"...`);\n const outcome = await listSocialProviders();\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAE7C,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,mBAAmB,QAAQ,kBAAkB;AACtD,SAASC,cAAc,QAAQ,qBAAqB;AACpD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,gBAAgB,CAAC;AAElDC,OAAO,CACJC,WAAW,CAAC,mCAAmC;AAChD;AACA;AACA;AAAA,CACCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrBE,cAAc,CAAE,+BAA8BH,KAAK,CAACe,QAAQ,CAAC,CAAE,MAAK,CAAC;IACrE,MAAMC,OAAO,GAAG,MAAMd,mBAAmB,CAAC,CAAC;IAC3C,IAAI,CAACc,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHb,OAAO,CAACc,KAAK,CAAC,CAAC"}
@@ -1,11 +1,9 @@
1
1
  import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
3
  import * as s from '../../help/SampleData';
4
+ import { getTokens } from '../../ops/AuthenticateOps';
4
5
  import { createObjectTable, printMessage, verboseMessage } from '../../utils/Console';
5
6
  import { FrodoCommand } from '../FrodoCommand';
6
- const {
7
- getTokens
8
- } = frodo.login;
9
7
  const {
10
8
  getInfo
11
9
  } = frodo.info;
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","names":["frodo","state","Option","s","createObjectTable","printMessage","verboseMessage","FrodoCommand","getTokens","login","getInfo","info","setup","program","description","addOption","default","hideHelp","addHelpText","amBaseUrl","username","password","connId","action","host","user","options","command","handleDefaultArgsAndOpts","scriptFriendly","json","sessionToken","bearerToken","labels","amVersion","authenticatedSubject","config_promotion_done","cookieName","deploymentType","immutable","locked","placeholder_management","region","tier","table","toString","getCookieValue","getBearerToken","JSON","stringify","process","exitCode"],"sources":["../../../src/cli/info/info.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport {\n createObjectTable,\n printMessage,\n verboseMessage,\n} from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { getInfo } = frodo.info;\n\nexport default function setup() {\n const program = new FrodoCommand('info', ['realm']);\n program\n .description('Print versions and tokens.')\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addOption(\n new Option(\n '-s, --scriptFriendly',\n 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \\n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>'\n )\n .default(false, 'Output as plain text')\n .hideHelp()\n )\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` Show human-readable output and login using AM base URL, username, and password (note the quotes around password to allow special characters):\\n` +\n ` $ frodo info ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` Show human-readable output and login using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo info ${s.amBaseUrl}\\n`['brightCyan'] +\n ` Show human-readable output and login using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo info ${s.connId}\\n`['brightCyan'] +\n ` Show JSON output and login using the AM base URL's unique substring to identify the connection profile:\\n` +\n ` $ frodo info --json ${s.connId}\\n`['brightCyan']\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n if (await getTokens()) {\n const info = await getInfo();\n if (!options.scriptFriendly && !options.json) {\n verboseMessage('Printing info, versions, and tokens...');\n delete info.sessionToken;\n delete info.bearerToken;\n const labels = {\n amVersion: 'AM Version',\n authenticatedSubject: 'Subject (Type)',\n config_promotion_done: 'Promotion Done',\n cookieName: 'Cookie Name',\n deploymentType: 'Deployment Type',\n host: 'Host URL',\n immutable: 'Immutable',\n locked: 'Locked',\n placeholder_management: 'Placeholder Management',\n region: 'Region',\n tier: 'Tier',\n };\n const table = createObjectTable(info, labels);\n printMessage(`\\n${table.toString()}`);\n if (state.getCookieValue()) {\n printMessage(`\\nSession token:`, 'info');\n printMessage(`${state.getCookieValue()}`);\n }\n if (state.getBearerToken()) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${state.getBearerToken()}`);\n }\n } else {\n printMessage(JSON.stringify(info, null, 2), 'data');\n }\n } else {\n process.exitCode = 1;\n }\n });\n return program;\n}\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,OAAO,KAAKC,CAAC,MAAM,uBAAuB;AAC1C,SACEC,iBAAiB,EACjBC,YAAY,EACZC,cAAc,QACT,qBAAqB;AAC5B,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGR,KAAK,CAACS,KAAK;AACjC,MAAM;EAAEC;AAAQ,CAAC,GAAGV,KAAK,CAACW,IAAI;AAE9B,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIN,YAAY,CAAC,MAAM,EAAE,CAAC,OAAO,CAAC,CAAC;EACnDM,OAAO,CACJC,WAAW,CAAC,4BAA4B,CAAC,CACzCC,SAAS,CAAC,IAAIb,MAAM,CAAC,QAAQ,EAAE,wBAAwB,CAAC,CAAC,CACzDa,SAAS,CACR,IAAIb,MAAM,CACR,sBAAsB,EACtB,uRACF,CAAC,CACEc,OAAO,CAAC,KAAK,EAAE,sBAAsB,CAAC,CACtCC,QAAQ,CAAC,CACd,CAAC,CACAC,WAAW,CACV,OAAO,EACN,mBAAkB,GAChB,mJAAkJ,GAClJ,kBAAiBf,CAAC,CAACgB,SAAU,IAAGhB,CAAC,CAACiB,QAAS,KAAIjB,CAAC,CAACkB,QAAS,KAAI,CAC7D,YAAY,CACb,GACA,2GAA0G,GAC1G,kBAAiBlB,CAAC,CAACgB,SAAU,IAAG,CAAC,YAAY,CAAC,GAC9C,4HAA2H,GAC3H,kBAAiBhB,CAAC,CAACmB,MAAO,IAAG,CAAC,YAAY,CAAC,GAC3C,6GAA4G,GAC5G,yBAAwBnB,CAAC,CAACmB,MAAO,IAAG,CAAC,YAAY,CACtD,CAAC,CACAC,MAAM,CAAC,OAAOC,IAAI,EAAEC,IAAI,EAAEJ,QAAQ,EAAEK,OAAO,EAAEC,OAAO,KAAK;IACxDA,OAAO,CAACC,wBAAwB,CAACJ,IAAI,EAAEC,IAAI,EAAEJ,QAAQ,EAAEK,OAAO,EAAEC,OAAO,CAAC;IACxE,IAAI,MAAMnB,SAAS,CAAC,CAAC,EAAE;MACrB,MAAMG,IAAI,GAAG,MAAMD,OAAO,CAAC,CAAC;MAC5B,IAAI,CAACgB,OAAO,CAACG,cAAc,IAAI,CAACH,OAAO,CAACI,IAAI,EAAE;QAC5CxB,cAAc,CAAC,wCAAwC,CAAC;QACxD,OAAOK,IAAI,CAACoB,YAAY;QACxB,OAAOpB,IAAI,CAACqB,WAAW;QACvB,MAAMC,MAAM,GAAG;UACbC,SAAS,EAAE,YAAY;UACvBC,oBAAoB,EAAE,gBAAgB;UACtCC,qBAAqB,EAAE,gBAAgB;UACvCC,UAAU,EAAE,aAAa;UACzBC,cAAc,EAAE,iBAAiB;UACjCd,IAAI,EAAE,UAAU;UAChBe,SAAS,EAAE,WAAW;UACtBC,MAAM,EAAE,QAAQ;UAChBC,sBAAsB,EAAE,wBAAwB;UAChDC,MAAM,EAAE,QAAQ;UAChBC,IAAI,EAAE;QACR,CAAC;QACD,MAAMC,KAAK,GAAGxC,iBAAiB,CAACO,IAAI,EAAEsB,MAAM,CAAC;QAC7C5B,YAAY,CAAE,KAAIuC,KAAK,CAACC,QAAQ,CAAC,CAAE,EAAC,CAAC;QACrC,IAAI5C,KAAK,CAAC6C,cAAc,CAAC,CAAC,EAAE;UAC1BzC,YAAY,CAAE,kBAAiB,EAAE,MAAM,CAAC;UACxCA,YAAY,CAAE,GAAEJ,KAAK,CAAC6C,cAAc,CAAC,CAAE,EAAC,CAAC;QAC3C;QACA,IAAI7C,KAAK,CAAC8C,cAAc,CAAC,CAAC,EAAE;UAC1B1C,YAAY,CAAE,iBAAgB,EAAE,MAAM,CAAC;UACvCA,YAAY,CAAE,GAAEJ,KAAK,CAAC8C,cAAc,CAAC,CAAE,EAAC,CAAC;QAC3C;MACF,CAAC,MAAM;QACL1C,YAAY,CAAC2C,IAAI,CAACC,SAAS,CAACtC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC;MACrD;IACF,CAAC,MAAM;MACLuC,OAAO,CAACC,QAAQ,GAAG,CAAC;IACtB;EACF,CAAC,CAAC;EACJ,OAAOtC,OAAO;AAChB"}
1
+ {"version":3,"file":"info.js","names":["frodo","state","Option","s","getTokens","createObjectTable","printMessage","verboseMessage","FrodoCommand","getInfo","info","setup","program","description","addOption","default","hideHelp","addHelpText","amBaseUrl","username","password","connId","action","host","user","options","command","handleDefaultArgsAndOpts","scriptFriendly","json","sessionToken","bearerToken","labels","amVersion","authenticatedSubject","config_promotion_done","cookieName","deploymentType","immutable","locked","placeholder_management","region","tier","table","toString","getCookieValue","getBearerToken","JSON","stringify","process","exitCode"],"sources":["../../../src/cli/info/info.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport * as s from '../../help/SampleData';\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n createObjectTable,\n printMessage,\n verboseMessage,\n} from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getInfo } = frodo.info;\n\nexport default function setup() {\n const program = new FrodoCommand('info', ['realm']);\n program\n .description('Print versions and tokens.')\n .addOption(new Option('--json', 'Output in JSON format.'))\n .addOption(\n new Option(\n '-s, --scriptFriendly',\n 'Send output of operation to STDOUT in a script-friendly format (JSON) which can be piped to other commands. User messages/warnings are output to STDERR, and are not piped. For example, to only get bearer token: \\n<<< frodo info my-tenant -s 2>/dev/null | jq -r .bearerToken >>>'\n )\n .default(false, 'Output as plain text')\n .hideHelp()\n )\n .addHelpText(\n 'after',\n `Usage Examples:\\n` +\n ` Show human-readable output and login using AM base URL, username, and password (note the quotes around password to allow special characters):\\n` +\n ` $ frodo info ${s.amBaseUrl} ${s.username} '${s.password}'\\n`[\n 'brightCyan'\n ] +\n ` Show human-readable output and login using a connection profile (identified by the full AM base URL):\\n` +\n ` $ frodo info ${s.amBaseUrl}\\n`['brightCyan'] +\n ` Show human-readable output and login using a connection profile (identified by a unique substring of the AM base URL):\\n` +\n ` $ frodo info ${s.connId}\\n`['brightCyan'] +\n ` Show JSON output and login using the AM base URL's unique substring to identify the connection profile:\\n` +\n ` $ frodo info --json ${s.connId}\\n`['brightCyan']\n )\n .action(async (host, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(host, user, password, options, command);\n if (await getTokens()) {\n const info = await getInfo();\n if (!options.scriptFriendly && !options.json) {\n verboseMessage('Printing info, versions, and tokens...');\n delete info.sessionToken;\n delete info.bearerToken;\n const labels = {\n amVersion: 'AM Version',\n authenticatedSubject: 'Subject (Type)',\n config_promotion_done: 'Promotion Done',\n cookieName: 'Cookie Name',\n deploymentType: 'Deployment Type',\n host: 'Host URL',\n immutable: 'Immutable',\n locked: 'Locked',\n placeholder_management: 'Placeholder Management',\n region: 'Region',\n tier: 'Tier',\n };\n const table = createObjectTable(info, labels);\n printMessage(`\\n${table.toString()}`);\n if (state.getCookieValue()) {\n printMessage(`\\nSession token:`, 'info');\n printMessage(`${state.getCookieValue()}`);\n }\n if (state.getBearerToken()) {\n printMessage(`\\nBearer token:`, 'info');\n printMessage(`${state.getBearerToken()}`);\n }\n } else {\n printMessage(JSON.stringify(info, null, 2), 'data');\n }\n } else {\n process.exitCode = 1;\n }\n });\n return program;\n}\n"],"mappings":"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"}
@@ -1,14 +1,9 @@
1
- import { frodo, state } from '@rockcarver/frodo-lib';
1
+ import { state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
4
+ import { deleteJourney, deleteJourneys } from '../../ops/JourneyOps';
3
5
  import { printMessage, verboseMessage } from '../../utils/Console';
4
6
  import { FrodoCommand } from '../FrodoCommand';
5
- const {
6
- getTokens
7
- } = frodo.login;
8
- const {
9
- deleteJourney,
10
- deleteJourneys
11
- } = frodo.authn.journey;
12
7
  const program = new FrodoCommand('frodo journey delete');
13
8
  program.description('Delete journeys/trees.').addOption(new Option('-i, --journey-id <journey>', 'Name of a journey/tree. If specified, -a is ignored.')).addOption(new Option('-a, --all', 'Delete all the journeys/trees in a realm. Ignored with -i.')).addOption(new Option('--no-deep', 'No deep delete. This leaves orphaned configuration artifacts behind.')).addOption(new Option('--verbose', 'Verbose output during command execution. If specified, may or may not produce additional output.').default(false, 'off')).action(
14
9
  // implement command logic inside action handler
@@ -17,12 +12,14 @@ async (host, realm, user, password, options, command) => {
17
12
  // delete by id
18
13
  if (options.journeyId && (await getTokens())) {
19
14
  verboseMessage(`Deleting journey ${options.journeyId} in realm "${state.getRealm()}"...`);
20
- await deleteJourney(options.journeyId, options);
15
+ const outcome = await deleteJourney(options.journeyId, options);
16
+ if (!outcome) process.exitCode = 1;
21
17
  }
22
18
  // --all -a
23
19
  else if (options.all && (await getTokens())) {
24
20
  verboseMessage('Deleting all journeys...');
25
- await deleteJourneys(options);
21
+ const outcome = await deleteJourneys(options);
22
+ if (!outcome) process.exitCode = 1;
26
23
  }
27
24
  // unrecognized combination of options or no options
28
25
  else {
@@ -1 +1 @@
1
- {"version":3,"file":"journey-delete.js","names":["frodo","state","Option","printMessage","verboseMessage","FrodoCommand","getTokens","login","deleteJourney","deleteJourneys","authn","journey","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","getRealm","all","help","process","exitCode","parse"],"sources":["../../../src/cli/journey/journey-delete.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst { getTokens } = frodo.login;\nconst { deleteJourney, deleteJourneys } = frodo.authn.journey;\n\nconst program = new FrodoCommand('frodo journey delete');\n\nprogram\n .description('Delete journeys/trees.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all the journeys/trees in a realm. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .addOption(\n new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n ).default(false, 'off')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.journeyId && (await getTokens())) {\n verboseMessage(\n `Deleting journey ${\n options.journeyId\n } in realm \"${state.getRealm()}\"...`\n );\n await deleteJourney(options.journeyId, options);\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all journeys...');\n await deleteJourneys(options);\n }\n // unrecognized combination of options or no options\n else {\n printMessage(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AACpD,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAM;EAAEC;AAAU,CAAC,GAAGN,KAAK,CAACO,KAAK;AACjC,MAAM;EAAEC,aAAa;EAAEC;AAAe,CAAC,GAAGT,KAAK,CAACU,KAAK,CAACC,OAAO;AAE7D,MAAMC,OAAO,GAAG,IAAIP,YAAY,CAAC,sBAAsB,CAAC;AAExDO,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIZ,MAAM,CACR,4BAA4B,EAC5B,sDACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,4DACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAY,SAAS,CACR,IAAIZ,MAAM,CACR,WAAW,EACX,kGACF,CAAC,CAACa,OAAO,CAAC,KAAK,EAAE,KAAK,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CF,cAAc,CACX,oBACCiB,OAAO,CAACG,SACT,cAAavB,KAAK,CAACwB,QAAQ,CAAC,CAAE,MACjC,CAAC;IACD,MAAMjB,aAAa,CAACa,OAAO,CAACG,SAAS,EAAEH,OAAO,CAAC;EACjD;EACA;EAAA,KACK,IAAIA,OAAO,CAACK,GAAG,KAAK,MAAMpB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CF,cAAc,CAAC,0BAA0B,CAAC;IAC1C,MAAMK,cAAc,CAACY,OAAO,CAAC;EAC/B;EACA;EAAA,KACK;IACHlB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDS,OAAO,CAACe,IAAI,CAAC,CAAC;IACdC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"journey-delete.js","names":["state","Option","getTokens","deleteJourney","deleteJourneys","printMessage","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","journeyId","getRealm","outcome","process","exitCode","all","help","parse"],"sources":["../../../src/cli/journey/journey-delete.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { deleteJourney, deleteJourneys } from '../../ops/JourneyOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo journey delete');\n\nprogram\n .description('Delete journeys/trees.')\n .addOption(\n new Option(\n '-i, --journey-id <journey>',\n 'Name of a journey/tree. If specified, -a is ignored.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Delete all the journeys/trees in a realm. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .addOption(\n new Option(\n '--verbose',\n 'Verbose output during command execution. If specified, may or may not produce additional output.'\n ).default(false, 'off')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // delete by id\n if (options.journeyId && (await getTokens())) {\n verboseMessage(\n `Deleting journey ${\n options.journeyId\n } in realm \"${state.getRealm()}\"...`\n );\n const outcome = await deleteJourney(options.journeyId, options);\n if (!outcome) process.exitCode = 1;\n }\n // --all -a\n else if (options.all && (await getTokens())) {\n verboseMessage('Deleting all journeys...');\n const outcome = await deleteJourneys(options);\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,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,aAAa,EAAEC,cAAc,QAAQ,sBAAsB;AACpE,SAASC,YAAY,EAAEC,cAAc,QAAQ,qBAAqB;AAClE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,sBAAsB,CAAC;AAExDC,OAAO,CACJC,WAAW,CAAC,wBAAwB,CAAC,CACrCC,SAAS,CACR,IAAIT,MAAM,CACR,4BAA4B,EAC5B,sDACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,4DACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAS,SAAS,CACR,IAAIT,MAAM,CACR,WAAW,EACX,kGACF,CAAC,CAACU,OAAO,CAAC,KAAK,EAAE,KAAK,CACxB,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD;EACA,IAAID,OAAO,CAACG,SAAS,KAAK,MAAMlB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC5CI,cAAc,CACX,oBACCW,OAAO,CAACG,SACT,cAAapB,KAAK,CAACqB,QAAQ,CAAC,CAAE,MACjC,CAAC;IACD,MAAMC,OAAO,GAAG,MAAMnB,aAAa,CAACc,OAAO,CAACG,SAAS,EAAEH,OAAO,CAAC;IAC/D,IAAI,CAACK,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK,IAAIP,OAAO,CAACQ,GAAG,KAAK,MAAMvB,SAAS,CAAC,CAAC,CAAC,EAAE;IAC3CI,cAAc,CAAC,0BAA0B,CAAC;IAC1C,MAAMgB,OAAO,GAAG,MAAMlB,cAAc,CAACa,OAAO,CAAC;IAC7C,IAAI,CAACK,OAAO,EAAEC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC;EACA;EAAA,KACK;IACHnB,YAAY,CACV,sDAAsD,EACtD,OACF,CAAC;IACDG,OAAO,CAACkB,IAAI,CAAC,CAAC;IACdH,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHhB,OAAO,CAACmB,KAAK,CAAC,CAAC"}
@@ -1,15 +1,13 @@
1
1
  import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import { Option } from 'commander';
3
3
  import fs from 'fs';
4
+ import { getTokens } from '../../ops/AuthenticateOps';
4
5
  import { describeJourney, describeJourneyMd } from '../../ops/JourneyOps';
5
- import { printMessage, verboseMessage } from '../../utils/Console';
6
+ import { printError, printMessage, verboseMessage } from '../../utils/Console';
6
7
  import { FrodoCommand } from '../FrodoCommand';
7
8
  const {
8
9
  saveTextToFile
9
10
  } = frodo.utils;
10
- const {
11
- getTokens
12
- } = frodo.login;
13
11
  const {
14
12
  createFileParamTreeExportResolver,
15
13
  readJourneys,
@@ -61,13 +59,15 @@ async (host, realm, user, password, options, command) => {
61
59
  }
62
60
  // ANSI text output
63
61
  if (!options.markdown) {
64
- await describeJourney(journeyData, createFileParamTreeExportResolver(options.file));
62
+ const outcome = await describeJourney(journeyData, createFileParamTreeExportResolver(options.file));
63
+ if (!outcome) process.exitCode = 1;
65
64
  }
66
65
  // Markdown output
67
66
  else {
68
67
  // reset output file
69
68
  if (options.outputFile) saveTextToFile('', options.outputFile);
70
- await describeJourneyMd(journeyData, createFileParamTreeExportResolver(options.file));
69
+ const outcome = await describeJourneyMd(journeyData, createFileParamTreeExportResolver(options.file));
70
+ if (!outcome) process.exitCode = 1;
71
71
  }
72
72
  } catch (error) {
73
73
  printMessage(error.message, 'error');
@@ -88,16 +88,18 @@ async (host, realm, user, password, options, command) => {
88
88
  const treeData = await exportJourney(journey['_id']);
89
89
  // ANSI text output
90
90
  if (!options.markdown) {
91
- await describeJourney(treeData);
91
+ const outcome = await describeJourney(treeData);
92
+ if (!outcome) process.exitCode = 1;
92
93
  }
93
94
  // Markdown output
94
95
  else {
95
96
  // reset output file
96
97
  if (options.outputFile) saveTextToFile('', options.outputFile);
97
- await describeJourneyMd(treeData);
98
+ const outcome = await describeJourneyMd(treeData);
99
+ if (!outcome) process.exitCode = 1;
98
100
  }
99
101
  } catch (error) {
100
- printMessage(error.message, 'error');
102
+ printError(error);
101
103
  process.exitCode = 1;
102
104
  }
103
105
  }
@@ -106,16 +108,18 @@ async (host, realm, user, password, options, command) => {
106
108
  const treeData = await exportJourney(options.journeyId);
107
109
  // ANSI text output
108
110
  if (!options.markdown) {
109
- await describeJourney(treeData);
111
+ const outcome = await describeJourney(treeData);
112
+ if (!outcome) process.exitCode = 1;
110
113
  }
111
114
  // Markdown output
112
115
  else {
113
116
  // reset output file
114
117
  if (options.outputFile) saveTextToFile('', options.outputFile);
115
- await describeJourneyMd(treeData);
118
+ const outcome = await describeJourneyMd(treeData);
119
+ if (!outcome) process.exitCode = 1;
116
120
  }
117
121
  } catch (error) {
118
- printMessage(error.message, 'error');
122
+ printError(error);
119
123
  process.exitCode = 1;
120
124
  }
121
125
  }