@rockcarver/frodo-cli 2.0.0-3 → 2.0.0-31

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 (466) hide show
  1. package/CHANGELOG.md +275 -4
  2. package/esm/app.js +20 -5
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +28 -6
  5. package/esm/cli/FrodoCommand.js.map +1 -1
  6. package/esm/cli/_template/something-delete.js +7 -4
  7. package/esm/cli/_template/something-delete.js.map +1 -1
  8. package/esm/cli/_template/something-describe.js +7 -4
  9. package/esm/cli/_template/something-describe.js.map +1 -1
  10. package/esm/cli/_template/something-else-delete.js +7 -4
  11. package/esm/cli/_template/something-else-delete.js.map +1 -1
  12. package/esm/cli/_template/something-else-describe.js +7 -4
  13. package/esm/cli/_template/something-else-describe.js.map +1 -1
  14. package/esm/cli/_template/something-else-export.js +7 -4
  15. package/esm/cli/_template/something-else-export.js.map +1 -1
  16. package/esm/cli/_template/something-else-import.js +7 -4
  17. package/esm/cli/_template/something-else-import.js.map +1 -1
  18. package/esm/cli/_template/something-else-list.js +7 -4
  19. package/esm/cli/_template/something-else-list.js.map +1 -1
  20. package/esm/cli/_template/something-else.js +1 -1
  21. package/esm/cli/_template/something-else.js.map +1 -1
  22. package/esm/cli/_template/something-export.js +7 -4
  23. package/esm/cli/_template/something-export.js.map +1 -1
  24. package/esm/cli/_template/something-import.js +7 -4
  25. package/esm/cli/_template/something-import.js.map +1 -1
  26. package/esm/cli/_template/something-list.js +7 -4
  27. package/esm/cli/_template/something-list.js.map +1 -1
  28. package/esm/cli/_template/something-other-delete.js +7 -4
  29. package/esm/cli/_template/something-other-delete.js.map +1 -1
  30. package/esm/cli/_template/something-other-describe.js +7 -4
  31. package/esm/cli/_template/something-other-describe.js.map +1 -1
  32. package/esm/cli/_template/something-other-export.js +7 -4
  33. package/esm/cli/_template/something-other-export.js.map +1 -1
  34. package/esm/cli/_template/something-other-import.js +7 -4
  35. package/esm/cli/_template/something-other-import.js.map +1 -1
  36. package/esm/cli/_template/something-other-list.js +7 -4
  37. package/esm/cli/_template/something-other-list.js.map +1 -1
  38. package/esm/cli/_template/something-other.js +1 -1
  39. package/esm/cli/_template/something-other.js.map +1 -1
  40. package/esm/cli/_template/something.js +2 -2
  41. package/esm/cli/_template/something.js.map +1 -1
  42. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +10 -4
  43. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  44. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +14 -7
  45. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  46. package/esm/cli/admin/admin-federation-export.js +45 -0
  47. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  48. package/esm/cli/admin/admin-federation-import.js +49 -0
  49. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  50. package/esm/cli/admin/admin-federation-list.js +29 -0
  51. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  52. package/esm/cli/admin/admin-federation.js +13 -0
  53. package/esm/cli/admin/admin-federation.js.map +1 -0
  54. package/esm/cli/admin/admin-get-access-token.js +12 -6
  55. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  56. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -7
  57. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  58. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +11 -5
  59. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  60. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +11 -5
  61. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  62. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +11 -5
  63. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  64. package/esm/cli/admin/admin-list-static-user-mappings.js +12 -6
  65. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  66. package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -5
  67. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  68. package/esm/cli/admin/admin-repair-org-model.js +11 -5
  69. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  70. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -6
  71. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  72. package/esm/cli/admin/admin-show-generic-extension-attributes.js +11 -5
  73. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  74. package/esm/cli/admin/admin-train-auto-access-model.js +33 -0
  75. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
  76. package/esm/cli/admin/admin.js +6 -2
  77. package/esm/cli/admin/admin.js.map +1 -1
  78. package/esm/cli/agent/agent-delete.js +13 -6
  79. package/esm/cli/agent/agent-delete.js.map +1 -1
  80. package/esm/cli/agent/agent-describe.js +7 -4
  81. package/esm/cli/agent/agent-describe.js.map +1 -1
  82. package/esm/cli/agent/agent-export.js +8 -5
  83. package/esm/cli/agent/agent-export.js.map +1 -1
  84. package/esm/cli/agent/agent-gateway-delete.js +13 -6
  85. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  86. package/esm/cli/agent/agent-gateway-describe.js +7 -4
  87. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  88. package/esm/cli/agent/agent-gateway-export.js +8 -5
  89. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  90. package/esm/cli/agent/agent-gateway-import.js +8 -5
  91. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  92. package/esm/cli/agent/agent-gateway-list.js +7 -4
  93. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  94. package/esm/cli/agent/agent-gateway.js +1 -1
  95. package/esm/cli/agent/agent-gateway.js.map +1 -1
  96. package/esm/cli/agent/agent-import.js +8 -5
  97. package/esm/cli/agent/agent-import.js.map +1 -1
  98. package/esm/cli/agent/agent-java-delete.js +13 -6
  99. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  100. package/esm/cli/agent/agent-java-describe.js +7 -4
  101. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  102. package/esm/cli/agent/agent-java-export.js +8 -5
  103. package/esm/cli/agent/agent-java-export.js.map +1 -1
  104. package/esm/cli/agent/agent-java-import.js +8 -5
  105. package/esm/cli/agent/agent-java-import.js.map +1 -1
  106. package/esm/cli/agent/agent-java-list.js +7 -4
  107. package/esm/cli/agent/agent-java-list.js.map +1 -1
  108. package/esm/cli/agent/agent-java.js +1 -1
  109. package/esm/cli/agent/agent-java.js.map +1 -1
  110. package/esm/cli/agent/agent-list.js +7 -4
  111. package/esm/cli/agent/agent-list.js.map +1 -1
  112. package/esm/cli/agent/agent-web-delete.js +13 -6
  113. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  114. package/esm/cli/agent/agent-web-describe.js +7 -4
  115. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  116. package/esm/cli/agent/agent-web-export.js +8 -5
  117. package/esm/cli/agent/agent-web-export.js.map +1 -1
  118. package/esm/cli/agent/agent-web-import.js +8 -5
  119. package/esm/cli/agent/agent-web-import.js.map +1 -1
  120. package/esm/cli/agent/agent-web-list.js +7 -4
  121. package/esm/cli/agent/agent-web-list.js.map +1 -1
  122. package/esm/cli/agent/agent-web.js +3 -3
  123. package/esm/cli/agent/agent-web.js.map +1 -1
  124. package/esm/cli/agent/agent.js +2 -2
  125. package/esm/cli/agent/agent.js.map +1 -1
  126. package/esm/cli/app/app-delete.js +27 -8
  127. package/esm/cli/app/app-delete.js.map +1 -1
  128. package/esm/cli/app/app-describe.js +9 -5
  129. package/esm/cli/app/app-describe.js.map +1 -1
  130. package/esm/cli/app/app-export.js +17 -13
  131. package/esm/cli/app/app-export.js.map +1 -1
  132. package/esm/cli/app/app-import.js +21 -17
  133. package/esm/cli/app/app-import.js.map +1 -1
  134. package/esm/cli/app/app-list.js +12 -8
  135. package/esm/cli/app/app-list.js.map +1 -1
  136. package/esm/cli/app/app.js +8 -12
  137. package/esm/cli/app/app.js.map +1 -1
  138. package/esm/cli/authn/authn-describe.js +30 -0
  139. package/esm/cli/authn/authn-describe.js.map +1 -0
  140. package/esm/cli/authn/authn-export.js +26 -0
  141. package/esm/cli/authn/authn-export.js.map +1 -0
  142. package/esm/cli/authn/authn-import.js +26 -0
  143. package/esm/cli/authn/authn-import.js.map +1 -0
  144. package/esm/cli/authn/authn.js +12 -0
  145. package/esm/cli/authn/authn.js.map +1 -0
  146. package/esm/cli/authz/authz-policy-delete.js +11 -8
  147. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  148. package/esm/cli/authz/authz-policy-describe.js +8 -5
  149. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  150. package/esm/cli/authz/authz-policy-export.js +12 -9
  151. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  152. package/esm/cli/authz/authz-policy-import.js +10 -7
  153. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  154. package/esm/cli/authz/authz-policy-list.js +9 -6
  155. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  156. package/esm/cli/authz/authz-policy.js +1 -1
  157. package/esm/cli/authz/authz-policy.js.map +1 -1
  158. package/esm/cli/authz/authz-set-delete.js +10 -7
  159. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  160. package/esm/cli/authz/authz-set-describe.js +8 -5
  161. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  162. package/esm/cli/authz/authz-set-export.js +10 -7
  163. package/esm/cli/authz/authz-set-export.js.map +1 -1
  164. package/esm/cli/authz/authz-set-import.js +10 -7
  165. package/esm/cli/authz/authz-set-import.js.map +1 -1
  166. package/esm/cli/authz/authz-set-list.js +7 -4
  167. package/esm/cli/authz/authz-set-list.js.map +1 -1
  168. package/esm/cli/authz/authz-set.js +1 -1
  169. package/esm/cli/authz/authz-set.js.map +1 -1
  170. package/esm/cli/authz/authz-type-delete.js +12 -9
  171. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  172. package/esm/cli/authz/authz-type-describe.js +9 -6
  173. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  174. package/esm/cli/authz/authz-type-export.js +11 -8
  175. package/esm/cli/authz/authz-type-export.js.map +1 -1
  176. package/esm/cli/authz/authz-type-import.js +12 -9
  177. package/esm/cli/authz/authz-type-import.js.map +1 -1
  178. package/esm/cli/authz/authz-type-list.js +8 -5
  179. package/esm/cli/authz/authz-type-list.js.map +1 -1
  180. package/esm/cli/authz/authz-type.js +1 -1
  181. package/esm/cli/authz/authz-type.js.map +1 -1
  182. package/esm/cli/authz/authz.js +2 -2
  183. package/esm/cli/authz/authz.js.map +1 -1
  184. package/esm/cli/conn/conn-delete.js +2 -2
  185. package/esm/cli/conn/conn-delete.js.map +1 -1
  186. package/esm/cli/conn/conn-describe.js +2 -2
  187. package/esm/cli/conn/conn-describe.js.map +1 -1
  188. package/esm/cli/conn/conn-list.js +2 -2
  189. package/esm/cli/conn/conn-list.js.map +1 -1
  190. package/esm/cli/conn/conn-save.js +31 -15
  191. package/esm/cli/conn/conn-save.js.map +1 -1
  192. package/esm/cli/conn/conn.js +2 -2
  193. package/esm/cli/conn/conn.js.map +1 -1
  194. package/esm/cli/email/email-template-export.js +10 -7
  195. package/esm/cli/email/email-template-export.js.map +1 -1
  196. package/esm/cli/email/email-template-import.js +11 -8
  197. package/esm/cli/email/email-template-import.js.map +1 -1
  198. package/esm/cli/email/email-template-list.js +8 -5
  199. package/esm/cli/email/email-template-list.js.map +1 -1
  200. package/esm/cli/email/email-template.js +1 -1
  201. package/esm/cli/email/email-template.js.map +1 -1
  202. package/esm/cli/email/email.js +2 -2
  203. package/esm/cli/email/email.js.map +1 -1
  204. package/esm/cli/esv/esv-apply.js +18 -8
  205. package/esm/cli/esv/esv-apply.js.map +1 -1
  206. package/esm/cli/esv/esv-secret-create.js +8 -5
  207. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  208. package/esm/cli/esv/esv-secret-delete.js +9 -6
  209. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  210. package/esm/cli/esv/esv-secret-describe.js +8 -5
  211. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  212. package/esm/cli/esv/esv-secret-export.js +19 -5
  213. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  214. package/esm/cli/esv/esv-secret-import.js +7 -4
  215. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  216. package/esm/cli/esv/esv-secret-list.js +8 -5
  217. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  218. package/esm/cli/esv/esv-secret-set.js +8 -5
  219. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  220. package/esm/cli/esv/esv-secret-version-activate.js +8 -5
  221. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  222. package/esm/cli/esv/esv-secret-version-create.js +9 -6
  223. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  224. package/esm/cli/esv/esv-secret-version-deactivate.js +8 -5
  225. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  226. package/esm/cli/esv/esv-secret-version-delete.js +9 -6
  227. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  228. package/esm/cli/esv/esv-secret-version-list.js +8 -5
  229. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  230. package/esm/cli/esv/esv-secret-version.js +1 -1
  231. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  232. package/esm/cli/esv/esv-secret.js +2 -3
  233. package/esm/cli/esv/esv-secret.js.map +1 -1
  234. package/esm/cli/esv/esv-variable-create.js +10 -6
  235. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  236. package/esm/cli/esv/esv-variable-delete.js +10 -7
  237. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  238. package/esm/cli/esv/esv-variable-describe.js +10 -7
  239. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  240. package/esm/cli/esv/esv-variable-export.js +20 -6
  241. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  242. package/esm/cli/esv/esv-variable-import.js +7 -4
  243. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  244. package/esm/cli/esv/esv-variable-list.js +8 -5
  245. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  246. package/esm/cli/esv/esv-variable-set.js +8 -5
  247. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  248. package/esm/cli/esv/esv-variable.js +2 -3
  249. package/esm/cli/esv/esv-variable.js.map +1 -1
  250. package/esm/cli/esv/esv.js +2 -2
  251. package/esm/cli/esv/esv.js.map +1 -1
  252. package/esm/cli/idm/idm-count.js +9 -6
  253. package/esm/cli/idm/idm-count.js.map +1 -1
  254. package/esm/cli/idm/idm-export.js +21 -12
  255. package/esm/cli/idm/idm-export.js.map +1 -1
  256. package/esm/cli/idm/idm-import.js +22 -13
  257. package/esm/cli/idm/idm-import.js.map +1 -1
  258. package/esm/cli/idm/idm-list.js +7 -4
  259. package/esm/cli/idm/idm-list.js.map +1 -1
  260. package/esm/cli/idm/idm.js +2 -2
  261. package/esm/cli/idm/idm.js.map +1 -1
  262. package/esm/cli/idp/idp-export.js +11 -8
  263. package/esm/cli/idp/idp-export.js.map +1 -1
  264. package/esm/cli/idp/idp-import.js +15 -12
  265. package/esm/cli/idp/idp-import.js.map +1 -1
  266. package/esm/cli/idp/idp-list.js +7 -4
  267. package/esm/cli/idp/idp-list.js.map +1 -1
  268. package/esm/cli/idp/idp.js +2 -2
  269. package/esm/cli/idp/idp.js.map +1 -1
  270. package/esm/cli/info/info.js +16 -10
  271. package/esm/cli/info/info.js.map +1 -1
  272. package/esm/cli/journey/journey-delete.js +8 -5
  273. package/esm/cli/journey/journey-delete.js.map +1 -1
  274. package/esm/cli/journey/journey-describe.js +19 -10
  275. package/esm/cli/journey/journey-describe.js.map +1 -1
  276. package/esm/cli/journey/journey-disable.js +12 -6
  277. package/esm/cli/journey/journey-disable.js.map +1 -1
  278. package/esm/cli/journey/journey-enable.js +12 -6
  279. package/esm/cli/journey/journey-enable.js.map +1 -1
  280. package/esm/cli/journey/journey-export.js +21 -9
  281. package/esm/cli/journey/journey-export.js.map +1 -1
  282. package/esm/cli/journey/journey-import.js +11 -8
  283. package/esm/cli/journey/journey-import.js.map +1 -1
  284. package/esm/cli/journey/journey-list.js +6 -3
  285. package/esm/cli/journey/journey-list.js.map +1 -1
  286. package/esm/cli/journey/journey-prune.js +23 -12
  287. package/esm/cli/journey/journey-prune.js.map +1 -1
  288. package/esm/cli/journey/journey.js +2 -2
  289. package/esm/cli/journey/journey.js.map +1 -1
  290. package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +68 -36
  291. package/esm/cli/log/log-fetch.js.map +1 -0
  292. package/esm/cli/log/log-key-delete.js +35 -0
  293. package/esm/cli/log/log-key-delete.js.map +1 -0
  294. package/esm/cli/log/log-key-describe.js +22 -0
  295. package/esm/cli/log/log-key-describe.js.map +1 -0
  296. package/esm/cli/log/log-key-list.js +26 -0
  297. package/esm/cli/log/log-key-list.js.map +1 -0
  298. package/esm/cli/log/log-key.js +8 -0
  299. package/esm/cli/log/log-key.js.map +1 -0
  300. package/esm/cli/log/log-list.js +80 -0
  301. package/esm/cli/log/log-list.js.map +1 -0
  302. package/esm/cli/log/log-tail.js +77 -0
  303. package/esm/cli/log/log-tail.js.map +1 -0
  304. package/esm/cli/{logging/logs.js → log/log.js} +6 -3
  305. package/esm/cli/log/log.js.map +1 -0
  306. package/esm/cli/oauth/oauth-client-delete.js +22 -0
  307. package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
  308. package/esm/cli/oauth/oauth-client-describe.js +22 -0
  309. package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
  310. package/esm/cli/oauth/oauth-client-export.js +52 -0
  311. package/esm/cli/oauth/oauth-client-export.js.map +1 -0
  312. package/esm/cli/oauth/oauth-client-import.js +57 -0
  313. package/esm/cli/oauth/oauth-client-import.js.map +1 -0
  314. package/esm/cli/oauth/oauth-client-list.js +25 -0
  315. package/esm/cli/oauth/oauth-client-list.js.map +1 -0
  316. package/esm/cli/oauth/oauth-client.js +14 -0
  317. package/esm/cli/oauth/oauth-client.js.map +1 -0
  318. package/esm/cli/oauth/oauth.js +13 -0
  319. package/esm/cli/oauth/oauth.js.map +1 -0
  320. package/esm/cli/realm/realm-add-custom-domain.js +8 -5
  321. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  322. package/esm/cli/realm/realm-describe.js +8 -5
  323. package/esm/cli/realm/realm-describe.js.map +1 -1
  324. package/esm/cli/realm/realm-list.js +8 -5
  325. package/esm/cli/realm/realm-list.js.map +1 -1
  326. package/esm/cli/realm/realm-remove-custom-domain.js +11 -5
  327. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  328. package/esm/cli/realm/realm.js +2 -2
  329. package/esm/cli/realm/realm.js.map +1 -1
  330. package/esm/cli/saml/saml-cot-export.js +10 -7
  331. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  332. package/esm/cli/saml/saml-cot-import.js +15 -12
  333. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  334. package/esm/cli/saml/saml-cot-list.js +8 -5
  335. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  336. package/esm/cli/saml/saml-cot.js +1 -1
  337. package/esm/cli/saml/saml-cot.js.map +1 -1
  338. package/esm/cli/saml/saml-delete.js +14 -7
  339. package/esm/cli/saml/saml-delete.js.map +1 -1
  340. package/esm/cli/saml/saml-describe.js +8 -5
  341. package/esm/cli/saml/saml-describe.js.map +1 -1
  342. package/esm/cli/saml/saml-export.js +10 -7
  343. package/esm/cli/saml/saml-export.js.map +1 -1
  344. package/esm/cli/saml/saml-import.js +11 -8
  345. package/esm/cli/saml/saml-import.js.map +1 -1
  346. package/esm/cli/saml/saml-list.js +8 -5
  347. package/esm/cli/saml/saml-list.js.map +1 -1
  348. package/esm/cli/saml/saml-metadata-export.js +9 -6
  349. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  350. package/esm/cli/saml/saml-metadata.js +1 -1
  351. package/esm/cli/saml/saml-metadata.js.map +1 -1
  352. package/esm/cli/saml/saml.js +2 -2
  353. package/esm/cli/saml/saml.js.map +1 -1
  354. package/esm/cli/script/script-delete.js +7 -4
  355. package/esm/cli/script/script-delete.js.map +1 -1
  356. package/esm/cli/script/script-describe.js +7 -4
  357. package/esm/cli/script/script-describe.js.map +1 -1
  358. package/esm/cli/script/script-export.js +8 -5
  359. package/esm/cli/script/script-export.js.map +1 -1
  360. package/esm/cli/script/script-import.js +9 -6
  361. package/esm/cli/script/script-import.js.map +1 -1
  362. package/esm/cli/script/script-list.js +8 -5
  363. package/esm/cli/script/script-list.js.map +1 -1
  364. package/esm/cli/script/script.js +2 -2
  365. package/esm/cli/script/script.js.map +1 -1
  366. package/esm/cli/service/service-delete.js +8 -5
  367. package/esm/cli/service/service-delete.js.map +1 -1
  368. package/esm/cli/service/service-export.js +9 -6
  369. package/esm/cli/service/service-export.js.map +1 -1
  370. package/esm/cli/service/service-import.js +11 -9
  371. package/esm/cli/service/service-import.js.map +1 -1
  372. package/esm/cli/service/service-list.js +7 -4
  373. package/esm/cli/service/service-list.js.map +1 -1
  374. package/esm/cli/service/service.js +2 -2
  375. package/esm/cli/service/service.js.map +1 -1
  376. package/esm/cli/shell/shell.js +57 -0
  377. package/esm/cli/shell/shell.js.map +1 -0
  378. package/esm/cli/theme/theme-delete.js +10 -7
  379. package/esm/cli/theme/theme-delete.js.map +1 -1
  380. package/esm/cli/theme/theme-export.js +11 -8
  381. package/esm/cli/theme/theme-export.js.map +1 -1
  382. package/esm/cli/theme/theme-import.js +12 -9
  383. package/esm/cli/theme/theme-import.js.map +1 -1
  384. package/esm/cli/theme/theme-list.js +7 -4
  385. package/esm/cli/theme/theme-list.js.map +1 -1
  386. package/esm/cli/theme/theme.js +2 -2
  387. package/esm/cli/theme/theme.js.map +1 -1
  388. package/esm/help/SampleData.js +7 -0
  389. package/esm/help/SampleData.js.map +1 -0
  390. package/esm/launch.js +1 -1
  391. package/esm/launch.js.map +1 -1
  392. package/esm/loader.js +2 -2
  393. package/esm/loader.js.map +1 -1
  394. package/esm/ops/AdminFederationOps.js +225 -0
  395. package/esm/ops/AdminFederationOps.js.map +1 -0
  396. package/esm/ops/AgentOps.js +128 -87
  397. package/esm/ops/AgentOps.js.map +1 -1
  398. package/esm/ops/ApplicationOps.js +315 -0
  399. package/esm/ops/ApplicationOps.js.map +1 -0
  400. package/esm/ops/AuthenticationSettingsOps.js +89 -0
  401. package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
  402. package/esm/ops/CirclesOfTrustOps.js +72 -59
  403. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  404. package/esm/ops/ConnectionProfileOps.js +13 -6
  405. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  406. package/esm/ops/EmailTemplateOps.js +76 -64
  407. package/esm/ops/EmailTemplateOps.js.map +1 -1
  408. package/esm/ops/IdmOps.js +70 -84
  409. package/esm/ops/IdmOps.js.map +1 -1
  410. package/esm/ops/IdpOps.js +74 -43
  411. package/esm/ops/IdpOps.js.map +1 -1
  412. package/esm/ops/JourneyOps.js +99 -67
  413. package/esm/ops/JourneyOps.js.map +1 -1
  414. package/esm/ops/LogOps.js +92 -30
  415. package/esm/ops/LogOps.js.map +1 -1
  416. package/esm/ops/NodeOps.js +6 -3
  417. package/esm/ops/NodeOps.js.map +1 -1
  418. package/esm/ops/OAuth2ClientOps.js +51 -32
  419. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  420. package/esm/ops/OrganizationOps.js +14 -22
  421. package/esm/ops/OrganizationOps.js.map +1 -1
  422. package/esm/ops/PolicyOps.js +84 -55
  423. package/esm/ops/PolicyOps.js.map +1 -1
  424. package/esm/ops/PolicySetOps.js +67 -43
  425. package/esm/ops/PolicySetOps.js.map +1 -1
  426. package/esm/ops/RealmOps.js +18 -11
  427. package/esm/ops/RealmOps.js.map +1 -1
  428. package/esm/ops/ResourceTypeOps.js +75 -66
  429. package/esm/ops/ResourceTypeOps.js.map +1 -1
  430. package/esm/ops/Saml2Ops.js +76 -54
  431. package/esm/ops/Saml2Ops.js.map +1 -1
  432. package/esm/ops/Saml2Ops.test_.js.map +1 -1
  433. package/esm/ops/ScriptOps.js +92 -31
  434. package/esm/ops/ScriptOps.js.map +1 -1
  435. package/esm/ops/SecretsOps.js +106 -23
  436. package/esm/ops/SecretsOps.js.map +1 -1
  437. package/esm/ops/ServiceOps.js +67 -41
  438. package/esm/ops/ServiceOps.js.map +1 -1
  439. package/esm/ops/ThemeOps.js +62 -36
  440. package/esm/ops/ThemeOps.js.map +1 -1
  441. package/esm/ops/VariablesOps.js +132 -41
  442. package/esm/ops/VariablesOps.js.map +1 -1
  443. package/esm/ops/utils/OpsUtils.js +1 -1
  444. package/esm/ops/utils/OpsUtils.js.map +1 -1
  445. package/esm/ops/utils/Wordwrap.js +1 -1
  446. package/esm/ops/utils/Wordwrap.js.map +1 -1
  447. package/esm/storage/StaticStorage.js +1 -1
  448. package/esm/storage/StaticStorage.js.map +1 -1
  449. package/esm/utils/Config.js +7 -4
  450. package/esm/utils/Config.js.map +1 -1
  451. package/esm/utils/Console.js +9 -5
  452. package/esm/utils/Console.js.map +1 -1
  453. package/esm/utils/ExportImportUtils.js +32 -66
  454. package/esm/utils/ExportImportUtils.js.map +1 -1
  455. package/esm/utils/Version.js +19 -16
  456. package/esm/utils/Version.js.map +1 -1
  457. package/global-jest-setup.js +4 -0
  458. package/package.json +46 -35
  459. package/esm/cli/logging/logs-fetch.js.map +0 -1
  460. package/esm/cli/logging/logs-list.js +0 -49
  461. package/esm/cli/logging/logs-list.js.map +0 -1
  462. package/esm/cli/logging/logs-tail.js +0 -46
  463. package/esm/cli/logging/logs-tail.js.map +0 -1
  464. package/esm/cli/logging/logs.js.map +0 -1
  465. package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
  466. package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
@@ -2,6 +2,26 @@ import { frodo, state } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
3
  import { createObjectTable, createProgressBar, debugMessage, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
4
4
  import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImportUtils';
5
+ const {
6
+ getRealmName,
7
+ getFilePath,
8
+ getWorkingDirectory
9
+ } = frodo.utils;
10
+ const {
11
+ readPoliciesByPolicySet,
12
+ deletePolicy
13
+ } = frodo.authz.policy;
14
+ const {
15
+ readPolicySets,
16
+ readPolicySet,
17
+ exportPolicySet,
18
+ exportPolicySets,
19
+ importPolicySet,
20
+ importFirstPolicySet,
21
+ importPolicySets,
22
+ deletePolicySet
23
+ } = frodo.authz.policySet;
24
+
5
25
  /**
6
26
  * List policy sets
7
27
  * @returns {Promise<boolean>} true if successful, false otherwise
@@ -9,7 +29,7 @@ import { getTypedFilename, saveJsonToFile, titleCase } from '../utils/ExportImpo
9
29
  export async function listPolicySets() {
10
30
  let outcome = false;
11
31
  try {
12
- const policySets = await frodo.authz.policySet.getPolicySets();
32
+ const policySets = await readPolicySets();
13
33
  policySets.sort((a, b) => a.name.localeCompare(b.name));
14
34
  for (const policySet of policySets) {
15
35
  printMessage(`${policySet.name}`, 'data');
@@ -30,7 +50,7 @@ export async function listPolicySets() {
30
50
  */
31
51
  export async function describePolicySet(policySetId, json = false) {
32
52
  let outcome = false;
33
- const policySet = await frodo.authz.policySet.getPolicySet(policySetId);
53
+ const policySet = await readPolicySet(policySetId);
34
54
  outcome = true;
35
55
  if (json) {
36
56
  printMessage(policySet, 'data');
@@ -46,34 +66,34 @@ export async function describePolicySet(policySetId, json = false) {
46
66
  * @param {string} policySetId policy set id/name
47
67
  * @returns {Promise<boolean>} true if successful, false otherwise
48
68
  */
49
- export async function deletePolicySet(policySetId) {
69
+ export async function deletePolicySetById(policySetId) {
50
70
  debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);
51
71
  showSpinner(`Deleting ${policySetId}...`);
52
72
  let outcome = false;
53
73
  const errors = [];
54
- const policies = await frodo.authz.policy.getPoliciesByPolicySet(policySetId);
74
+ const policies = await readPoliciesByPolicySet(policySetId);
55
75
  for (const policy of policies) {
56
76
  try {
57
77
  debugMessage(`Deleting policy ${policy._id}`);
58
- await frodo.authz.policy.deletePolicy(policy._id);
78
+ await deletePolicy(policy._id);
59
79
  } catch (error) {
60
80
  error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
61
81
  printMessage(error.message, 'error');
62
82
  errors.push(error);
63
83
  }
64
84
  }
65
- try {
66
- debugMessage(`Deleting policy set ${policySetId}`);
67
- await frodo.authz.policySet.deletePolicySet(policySetId);
68
- } catch (error) {
69
- printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
70
- }
71
85
  if (errors.length) {
72
86
  const errorMessages = errors.map(error => error.message).join('\n');
73
87
  failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);
74
88
  } else {
75
- succeedSpinner(`Deleted ${policySetId}.`);
76
- outcome = true;
89
+ try {
90
+ debugMessage(`Deleting policy set ${policySetId}`);
91
+ await deletePolicySet(policySetId);
92
+ succeedSpinner(`Deleted ${policySetId}.`);
93
+ outcome = true;
94
+ } catch (error) {
95
+ printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');
96
+ }
77
97
  }
78
98
  debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);
79
99
  return outcome;
@@ -91,7 +111,7 @@ export async function deletePolicySets() {
91
111
  try {
92
112
  showSpinner(`Retrieving all policy sets...`);
93
113
  try {
94
- policySets = await frodo.authz.policySet.getPolicySets();
114
+ policySets = await readPolicySets();
95
115
  succeedSpinner(`Found ${policySets.length} policy sets.`);
96
116
  } catch (error) {
97
117
  error.message = `Error retrieving all policy sets: ${error.message}`;
@@ -102,11 +122,11 @@ export async function deletePolicySets() {
102
122
  for (const policySet of policySets) {
103
123
  const policySetId = policySet.name;
104
124
  try {
105
- const policies = await frodo.authz.policy.getPoliciesByPolicySet(policySetId);
125
+ const policies = await readPoliciesByPolicySet(policySetId);
106
126
  for (const policy of policies) {
107
127
  try {
108
128
  debugMessage(`Deleting policy ${policy._id}`);
109
- await frodo.authz.policy.deletePolicy(policy._id);
129
+ await deletePolicy(policy._id);
110
130
  } catch (error) {
111
131
  error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;
112
132
  printMessage(error.message, 'error');
@@ -118,7 +138,7 @@ export async function deletePolicySets() {
118
138
  }
119
139
  try {
120
140
  debugMessage(`Deleting policy set ${policySetId}`);
121
- await frodo.authz.policySet.deletePolicySet(policySetId);
141
+ await deletePolicySet(policySetId);
122
142
  updateProgressBar(`Deleted ${policySetId}`);
123
143
  } catch (error) {
124
144
  error.message = `Error deleting policy set ${policySetId}: ${error}`;
@@ -162,9 +182,10 @@ export async function exportPolicySetToFile(policySetId, file, options = {
162
182
  if (file) {
163
183
  fileName = file;
164
184
  }
165
- const exportData = await frodo.authz.policySet.exportPolicySet(policySetId, options);
166
- saveJsonToFile(exportData, fileName);
167
- succeedSpinner(`Exported ${policySetId} to ${fileName}.`);
185
+ const filePath = getFilePath(fileName, true);
186
+ const exportData = await exportPolicySet(policySetId, options);
187
+ saveJsonToFile(exportData, filePath);
188
+ succeedSpinner(`Exported ${policySetId} to ${filePath}.`);
168
189
  outcome = true;
169
190
  } catch (error) {
170
191
  failSpinner(`Error exporting ${policySetId}: ${error.message}`);
@@ -188,13 +209,14 @@ export async function exportPolicySetsToFile(file, options = {
188
209
  debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);
189
210
  showSpinner(`Exporting all policy sets...`);
190
211
  try {
191
- let fileName = getTypedFilename(`all${titleCase(frodo.helper.utils.getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
212
+ let fileName = getTypedFilename(`all${titleCase(getRealmName(state.getRealm()))}PolicySets`, 'policyset.authz');
192
213
  if (file) {
193
214
  fileName = file;
194
215
  }
195
- const exportData = await frodo.authz.policySet.exportPolicySets(options);
196
- saveJsonToFile(exportData, fileName);
197
- succeedSpinner(`Exported all policy sets to ${fileName}.`);
216
+ const filePath = getFilePath(fileName, true);
217
+ const exportData = await exportPolicySets(options);
218
+ saveJsonToFile(exportData, filePath);
219
+ succeedSpinner(`Exported all policy sets to ${filePath}.`);
198
220
  outcome = true;
199
221
  } catch (error) {
200
222
  failSpinner(`Error exporting policy sets: ${error.message}`);
@@ -216,13 +238,13 @@ export async function exportPolicySetsToFiles(options = {
216
238
  debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);
217
239
  const errors = [];
218
240
  try {
219
- const policySets = await frodo.authz.policySet.getPolicySets();
241
+ const policySets = await readPolicySets();
220
242
  createProgressBar(policySets.length, 'Exporting policy sets...');
221
243
  for (const policySet of policySets) {
222
244
  const file = getTypedFilename(policySet.name, 'policyset.authz');
223
245
  try {
224
- const exportData = await frodo.authz.policySet.exportPolicySet(policySet.name, options);
225
- saveJsonToFile(exportData, file);
246
+ const exportData = await exportPolicySet(policySet.name, options);
247
+ saveJsonToFile(exportData, getFilePath(file, true));
226
248
  updateProgressBar(`Exported ${policySet.name}.`);
227
249
  } catch (error) {
228
250
  errors.push(error);
@@ -253,9 +275,9 @@ export async function importPolicySetFromFile(policySetId, file, options = {
253
275
  debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);
254
276
  showSpinner(`Importing ${policySetId}...`);
255
277
  try {
256
- const data = fs.readFileSync(file, 'utf8');
278
+ const data = fs.readFileSync(getFilePath(file), 'utf8');
257
279
  const fileData = JSON.parse(data);
258
- await frodo.authz.policySet.importPolicySet(policySetId, fileData, options);
280
+ await importPolicySet(policySetId, fileData, options);
259
281
  outcome = true;
260
282
  succeedSpinner(`Imported ${policySetId}.`);
261
283
  } catch (error) {
@@ -278,15 +300,16 @@ export async function importFirstPolicySetFromFile(file, options = {
278
300
  }) {
279
301
  let outcome = false;
280
302
  debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);
281
- showSpinner(`Importing ${file}...`);
303
+ const filePath = getFilePath(file);
304
+ showSpinner(`Importing first policy set from ${filePath}...`);
282
305
  try {
283
- const data = fs.readFileSync(file, 'utf8');
306
+ const data = fs.readFileSync(filePath, 'utf8');
284
307
  const fileData = JSON.parse(data);
285
- await frodo.authz.policySet.importFirstPolicySet(fileData, options);
308
+ const policySet = await importFirstPolicySet(fileData, options);
286
309
  outcome = true;
287
- succeedSpinner(`Imported ${file}.`);
310
+ succeedSpinner(`Imported first policy set with name '${policySet.name}' from ${filePath}.`);
288
311
  } catch (error) {
289
- failSpinner(`Error importing ${file}.`);
312
+ failSpinner(`Error importing first policy set from ${filePath}.`);
290
313
  printMessage(error, 'error');
291
314
  }
292
315
  debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);
@@ -305,15 +328,16 @@ export async function importPolicySetsFromFile(file, options = {
305
328
  }) {
306
329
  let outcome = false;
307
330
  debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);
308
- showSpinner(`Importing ${file}...`);
331
+ const filePath = getFilePath(file);
332
+ showSpinner(`Importing ${filePath}...`);
309
333
  try {
310
- const data = fs.readFileSync(file, 'utf8');
334
+ const data = fs.readFileSync(filePath, 'utf8');
311
335
  const fileData = JSON.parse(data);
312
- await frodo.authz.policySet.importPolicySets(fileData, options);
336
+ await importPolicySets(fileData, options);
313
337
  outcome = true;
314
- succeedSpinner(`Imported ${file}.`);
338
+ succeedSpinner(`Imported ${filePath}.`);
315
339
  } catch (error) {
316
- failSpinner(`Error importing ${file}.`);
340
+ failSpinner(`Error importing ${filePath}.`);
317
341
  printMessage(error, 'error');
318
342
  }
319
343
  debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);
@@ -332,8 +356,8 @@ export async function importPolicySetsFromFiles(options = {
332
356
  const errors = [];
333
357
  try {
334
358
  debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);
335
- const names = fs.readdirSync('.');
336
- const files = names.filter(name => name.toLowerCase().endsWith('.policyset.authz.json'));
359
+ const names = fs.readdirSync(getWorkingDirectory());
360
+ const files = names.filter(name => name.toLowerCase().endsWith('.policyset.authz.json')).map(name => getFilePath(name));
337
361
  createProgressBar(files.length, 'Importing policy sets...');
338
362
  let total = 0;
339
363
  for (const file of files) {
@@ -342,7 +366,7 @@ export async function importPolicySetsFromFiles(options = {
342
366
  const fileData = JSON.parse(data);
343
367
  const count = Object.keys(fileData.policyset).length;
344
368
  total += count;
345
- await frodo.authz.policySet.importPolicySets(fileData, options);
369
+ await importPolicySets(fileData, options);
346
370
  updateProgressBar(`Imported ${count} policy sets from ${file}`);
347
371
  } catch (error) {
348
372
  errors.push(error);
@@ -359,4 +383,4 @@ export async function importPolicySetsFromFiles(options = {
359
383
  debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);
360
384
  return 0 === errors.length;
361
385
  }
362
- //# sourceMappingURL=PolicySetOps.js.map
386
+ //# sourceMappingURL=PolicySetOps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","listPolicySets","outcome","policySets","authz","policySet","getPolicySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","getPolicySet","table","toString","deletePolicySet","errors","policies","policy","getPoliciesByPolicySet","_id","deletePolicy","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","exportData","exportPolicySet","exportPolicySetsToFile","helper","utils","getRealmName","getRealm","exportPolicySets","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importPolicySet","importFirstPolicySetFromFile","importFirstPolicySet","importPolicySetsFromFile","importPolicySets","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type {\n PolicySetSkeleton,\n PolicySkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\nimport {\n PolicySetExportInterface,\n PolicySetExportOptions,\n PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await frodo.authz.policySet.getPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await frodo.authz.policySet.getPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySet(policySetId: string): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] =\n await frodo.authz.policy.getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await frodo.authz.policy.deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await frodo.authz.policySet.deletePolicySet(policySetId);\n } catch (error) {\n printMessage(`Error deleting policy set ${policySetId}: ${error}`, 'error');\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await frodo.authz.policySet.getPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] =\n await frodo.authz.policy.getPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await frodo.authz.policy.deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await frodo.authz.policySet.deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.authz.policySet.exportPolicySet(\n policySetId,\n options\n );\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported ${policySetId} to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const exportData = await frodo.authz.policySet.exportPolicySets(options);\n saveJsonToFile(exportData, fileName);\n succeedSpinner(`Exported all policy sets to ${fileName}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] =\n await frodo.authz.policySet.getPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface =\n await frodo.authz.policySet.exportPolicySet(policySet.name, options);\n saveJsonToFile(exportData, file);\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.authz.policySet.importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.authz.policySet.importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n showSpinner(`Importing ${file}...`);\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n await frodo.authz.policySet.importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${file}.`);\n } catch (error) {\n failSpinner(`Error importing ${file}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync('.');\n const files = names.filter((name) =>\n name.toLowerCase().endsWith('.policyset.authz.json')\n );\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await frodo.authz.policySet.importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"PolicySetOps.js","names":["frodo","state","fs","createObjectTable","createProgressBar","debugMessage","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getTypedFilename","saveJsonToFile","titleCase","getRealmName","getFilePath","getWorkingDirectory","utils","readPoliciesByPolicySet","deletePolicy","authz","policy","readPolicySets","readPolicySet","exportPolicySet","exportPolicySets","importPolicySet","importFirstPolicySet","importPolicySets","deletePolicySet","policySet","listPolicySets","outcome","policySets","sort","a","b","name","localeCompare","err","message","describePolicySet","policySetId","json","table","toString","deletePolicySetById","errors","policies","_id","error","push","length","errorMessages","map","join","deletePolicySets","exportPolicySetToFile","file","options","deps","prereqs","useStringArrays","fileName","filePath","exportData","exportPolicySetsToFile","getRealm","exportPolicySetsToFiles","importPolicySetFromFile","data","readFileSync","fileData","JSON","parse","importFirstPolicySetFromFile","importPolicySetsFromFile","importPolicySetsFromFiles","names","readdirSync","files","filter","toLowerCase","endsWith","total","count","Object","keys","policyset"],"sources":["../../src/ops/PolicySetOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport { type PolicySkeleton } from '@rockcarver/frodo-lib/types/api/PoliciesApi';\nimport { type PolicySetSkeleton } from '@rockcarver/frodo-lib/types/api/PolicySetApi';\nimport {\n type PolicySetExportInterface,\n type PolicySetExportOptions,\n type PolicySetImportOptions,\n} from '@rockcarver/frodo-lib/types/ops/PolicySetOps';\nimport fs from 'fs';\n\nimport {\n createObjectTable,\n createProgressBar,\n debugMessage,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getTypedFilename,\n saveJsonToFile,\n titleCase,\n} from '../utils/ExportImportUtils';\n\nconst { getRealmName, getFilePath, getWorkingDirectory } = frodo.utils;\nconst { readPoliciesByPolicySet, deletePolicy } = frodo.authz.policy;\nconst {\n readPolicySets,\n readPolicySet,\n exportPolicySet,\n exportPolicySets,\n importPolicySet,\n importFirstPolicySet,\n importPolicySets,\n deletePolicySet,\n} = frodo.authz.policySet;\n\n/**\n * List policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listPolicySets(): Promise<boolean> {\n let outcome = false;\n try {\n const policySets = await readPolicySets();\n policySets.sort((a, b) => a.name.localeCompare(b.name));\n for (const policySet of policySets) {\n printMessage(`${policySet.name}`, 'data');\n }\n outcome = true;\n } catch (err) {\n printMessage(`listPolicySets ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n return outcome;\n}\n\n/**\n * Describe policy set\n * @param {string} policySetId policy set id/name\n * @param {Object} json JSON output\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describePolicySet(\n policySetId: string,\n json = false\n): Promise<boolean> {\n let outcome = false;\n const policySet = await readPolicySet(policySetId);\n outcome = true;\n if (json) {\n printMessage(policySet, 'data');\n } else {\n const table = createObjectTable(policySet);\n printMessage(table.toString(), 'data');\n }\n return outcome;\n}\n\n/**\n * Delete policy set\n * @param {string} policySetId policy set id/name\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySetById(\n policySetId: string\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySet: begin`);\n showSpinner(`Deleting ${policySetId}...`);\n let outcome = false;\n const errors = [];\n const policies: PolicySkeleton[] = await readPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n failSpinner(`Error deleting ${policySetId}: ${errorMessages}`);\n } else {\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n succeedSpinner(`Deleted ${policySetId}.`);\n outcome = true;\n } catch (error) {\n printMessage(\n `Error deleting policy set ${policySetId}: ${error}`,\n 'error'\n );\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySet: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Delete all policy sets\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deletePolicySets(): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.deletePolicySets: begin`);\n let outcome = false;\n const errors = [];\n let policySets: PolicySetSkeleton[] = [];\n try {\n showSpinner(`Retrieving all policy sets...`);\n try {\n policySets = await readPolicySets();\n succeedSpinner(`Found ${policySets.length} policy sets.`);\n } catch (error) {\n error.message = `Error retrieving all policy sets: ${error.message}`;\n failSpinner(error.message);\n throw error;\n }\n if (policySets.length)\n createProgressBar(\n policySets.length,\n `Deleting ${policySets.length} policy sets...`\n );\n for (const policySet of policySets) {\n const policySetId = policySet.name;\n try {\n const policies: PolicySkeleton[] =\n await readPoliciesByPolicySet(policySetId);\n for (const policy of policies) {\n try {\n debugMessage(`Deleting policy ${policy._id}`);\n await deletePolicy(policy._id);\n } catch (error) {\n error.message = `Error deleting policy ${policy._id} in policy set ${policySetId}: ${error}`;\n printMessage(error.message, 'error');\n errors.push(error);\n }\n }\n } catch (error) {\n errors.push(error);\n }\n try {\n debugMessage(`Deleting policy set ${policySetId}`);\n await deletePolicySet(policySetId);\n updateProgressBar(`Deleted ${policySetId}`);\n } catch (error) {\n error.message = `Error deleting policy set ${policySetId}: ${error}`;\n updateProgressBar(error.message);\n errors.push(error);\n }\n }\n } catch (error) {\n error.message = `Error deleting policy sets: ${error}`;\n errors.push(error);\n } finally {\n if (errors.length) {\n const errorMessages = errors.map((error) => error.message).join('\\n');\n if (policySets.length)\n stopProgressBar(`Error deleting all policy sets: ${errorMessages}`);\n } else {\n if (policySets.length)\n stopProgressBar(`Deleted ${policySets.length} policy sets.`);\n outcome = true;\n }\n }\n debugMessage(`cli.PolicySetOps.deletePolicySets: end [outcome=${outcome}]`);\n return outcome;\n}\n\n/**\n * Export policy set to file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetToFile(\n policySetId: string,\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: begin`);\n showSpinner(`Exporting ${policySetId}...`);\n try {\n let fileName = getTypedFilename(policySetId, 'policyset.authz');\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySet(policySetId, options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported ${policySetId} to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting ${policySetId}: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetToFile: end`);\n return outcome;\n}\n\n/**\n * Export policy sets to file\n * @param {string} file file name\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFile(\n file: string,\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: begin`);\n showSpinner(`Exporting all policy sets...`);\n try {\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}PolicySets`,\n 'policyset.authz'\n );\n if (file) {\n fileName = file;\n }\n const filePath = getFilePath(fileName, true);\n const exportData = await exportPolicySets(options);\n saveJsonToFile(exportData, filePath);\n succeedSpinner(`Exported all policy sets to ${filePath}.`);\n outcome = true;\n } catch (error) {\n failSpinner(`Error exporting policy sets: ${error.message}`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFile: end`);\n return outcome;\n}\n\n/**\n * Export all policy sets to separate files\n * @param {PolicySetExportOptions} options export options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportPolicySetsToFiles(\n options: PolicySetExportOptions = {\n deps: true,\n prereqs: false,\n useStringArrays: true,\n }\n): Promise<boolean> {\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: begin`);\n const errors = [];\n try {\n const policySets: PolicySetSkeleton[] = await readPolicySets();\n createProgressBar(policySets.length, 'Exporting policy sets...');\n for (const policySet of policySets) {\n const file = getTypedFilename(policySet.name, 'policyset.authz');\n try {\n const exportData: PolicySetExportInterface = await exportPolicySet(\n policySet.name,\n options\n );\n saveJsonToFile(exportData, getFilePath(file, true));\n updateProgressBar(`Exported ${policySet.name}.`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error exporting ${policySet.name}.`);\n }\n }\n stopProgressBar(`Export complete.`);\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error exporting policy sets to files`);\n }\n debugMessage(`cli.PolicySetOps.exportPolicySetsToFiles: end`);\n return 0 === errors.length;\n}\n\n/**\n * Import policy set from file\n * @param {string} policySetId policy set id/name\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetFromFile(\n policySetId: string,\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: begin`);\n showSpinner(`Importing ${policySetId}...`);\n try {\n const data = fs.readFileSync(getFilePath(file), 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySet(policySetId, fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${policySetId}.`);\n } catch (error) {\n failSpinner(`Error importing ${policySetId}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import first policy set from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importFirstPolicySetFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing first policy set from ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n const policySet = await importFirstPolicySet(fileData, options);\n outcome = true;\n succeedSpinner(\n `Imported first policy set with name '${policySet.name}' from ${filePath}.`\n );\n } catch (error) {\n failSpinner(`Error importing first policy set from ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importFirstPolicySetFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from file\n * @param {string} file file name\n * @param {PolicySetImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFile(\n file: string,\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n let outcome = false;\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: begin`);\n const filePath = getFilePath(file);\n showSpinner(`Importing ${filePath}...`);\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importPolicySets(fileData, options);\n outcome = true;\n succeedSpinner(`Imported ${filePath}.`);\n } catch (error) {\n failSpinner(`Error importing ${filePath}.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFile: end`);\n return outcome;\n}\n\n/**\n * Import policy sets from files\n * @param {OAuth2ClientImportOptions} options import options\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function importPolicySetsFromFiles(\n options: PolicySetImportOptions = { deps: true, prereqs: false }\n): Promise<boolean> {\n const errors = [];\n try {\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: begin`);\n const names = fs.readdirSync(getWorkingDirectory());\n const files = names\n .filter((name) => name.toLowerCase().endsWith('.policyset.authz.json'))\n .map((name) => getFilePath(name));\n createProgressBar(files.length, 'Importing policy sets...');\n let total = 0;\n for (const file of files) {\n try {\n const data = fs.readFileSync(file, 'utf8');\n const fileData: PolicySetExportInterface = JSON.parse(data);\n const count = Object.keys(fileData.policyset).length;\n total += count;\n await importPolicySets(fileData, options);\n updateProgressBar(`Imported ${count} policy sets from ${file}`);\n } catch (error) {\n errors.push(error);\n updateProgressBar(`Error importing policy sets from ${file}`);\n printMessage(error, 'error');\n }\n }\n stopProgressBar(\n `Finished importing ${total} policy sets from ${files.length} files.`\n );\n } catch (error) {\n errors.push(error);\n stopProgressBar(`Error importing policy sets from files.`);\n printMessage(error, 'error');\n }\n debugMessage(`cli.PolicySetOps.importPolicySetsFromFiles: end`);\n return 0 === errors.length;\n}\n"],"mappings":"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"}
@@ -1,5 +1,10 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import { createKeyValueTable, createTable, printMessage } from '../utils/Console';
3
+ const {
4
+ readRealms,
5
+ readRealmByName,
6
+ updateRealm
7
+ } = frodo.realm;
3
8
 
4
9
  /**
5
10
  * List realms
@@ -7,21 +12,23 @@ import { createKeyValueTable, createTable, printMessage } from '../utils/Console
7
12
  */
8
13
  export async function listRealms(long = false) {
9
14
  try {
10
- const realms = (await frodo.realm.getRealms()).data.result;
15
+ const realms = await readRealms();
11
16
  if (long) {
12
17
  const table = createTable(['Name'['brightCyan'], 'Status'['brightCyan'], 'Custom Domains'['brightCyan'], 'Parent'['brightCyan']]);
13
18
  realms.forEach(realmConfig => {
14
19
  table.push([realmConfig.name, realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'], realmConfig.aliases.join('\n'), realmConfig.parentPath]);
15
20
  });
16
- printMessage(table.toString());
21
+ printMessage(table.toString(), 'data');
17
22
  } else {
18
23
  realms.forEach(realmConfig => {
19
- printMessage(realmConfig.name, 'info');
24
+ printMessage(realmConfig.name, 'data');
20
25
  });
21
26
  }
22
27
  } catch (error) {
28
+ var _error$response;
29
+ printMessage(error, 'error');
23
30
  printMessage(`Error listing realms: ${error.rmessage}`, 'error');
24
- printMessage(error.response.data, 'error');
31
+ printMessage((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data, 'error');
25
32
  }
26
33
  }
27
34
 
@@ -31,14 +38,14 @@ export async function listRealms(long = false) {
31
38
  */
32
39
  export async function describeRealm(realm) {
33
40
  try {
34
- const realmConfig = await frodo.realm.getRealmByName(realm);
41
+ const realmConfig = await readRealmByName(realm);
35
42
  const table = createKeyValueTable();
36
43
  table.push(['Name'['brightCyan'], realmConfig.name]);
37
44
  table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
38
45
  table.push(['Custom Domains'['brightCyan'], realmConfig.aliases.join('\n')]);
39
46
  table.push(['Parent'['brightCyan'], realmConfig.parentPath]);
40
47
  table.push(['Id'['brightCyan'], realmConfig._id]);
41
- printMessage(table.toString());
48
+ printMessage(table.toString(), 'data');
42
49
  } catch (error) {
43
50
  printMessage(`Realm ${realm} not found!`, 'error');
44
51
  }
@@ -51,7 +58,7 @@ export async function describeRealm(realm) {
51
58
  */
52
59
  export async function addCustomDomain(realm, domain) {
53
60
  try {
54
- let realmConfig = await frodo.realm.getRealmByName(realm);
61
+ let realmConfig = await readRealmByName(realm);
55
62
  let exists = false;
56
63
  realmConfig.aliases.forEach(alias => {
57
64
  if (domain.toLowerCase() === alias.toLowerCase()) {
@@ -61,7 +68,7 @@ export async function addCustomDomain(realm, domain) {
61
68
  if (!exists) {
62
69
  try {
63
70
  realmConfig.aliases.push(domain.toLowerCase());
64
- realmConfig = (await frodo.realm.putRealm(realmConfig._id, realmConfig)).data;
71
+ realmConfig = await updateRealm(realmConfig._id, realmConfig);
65
72
  const table = createKeyValueTable();
66
73
  table.push(['Name'['brightCyan'], realmConfig.name]);
67
74
  table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
@@ -85,12 +92,12 @@ export async function addCustomDomain(realm, domain) {
85
92
  */
86
93
  export async function removeCustomDomain(realm, domain) {
87
94
  try {
88
- let realmConfig = await frodo.realm.getRealmByName(realm);
95
+ let realmConfig = await readRealmByName(realm);
89
96
  const aliases = realmConfig.aliases.filter(alias => domain.toLowerCase() !== alias.toLowerCase());
90
97
  if (aliases.length < realmConfig.aliases.length) {
91
98
  try {
92
99
  realmConfig.aliases = aliases;
93
- realmConfig = (await frodo.realm.putRealm(realmConfig._id, realmConfig)).data;
100
+ realmConfig = await updateRealm(realmConfig._id, realmConfig);
94
101
  const table = createKeyValueTable();
95
102
  table.push(['Name'['brightCyan'], realmConfig.name]);
96
103
  table.push(['Status'['brightCyan'], realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed']]);
@@ -106,4 +113,4 @@ export async function removeCustomDomain(realm, domain) {
106
113
  printMessage(`${error.message}`, 'error');
107
114
  }
108
115
  }
109
- //# sourceMappingURL=RealmOps.js.map
116
+ //# sourceMappingURL=RealmOps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","listRealms","long","realms","realm","getRealms","data","result","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","rmessage","response","describeRealm","getRealmByName","_id","addCustomDomain","domain","exists","alias","toLowerCase","putRealm","message","removeCustomDomain","filter","length"],"sources":["ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = (await frodo.realm.getRealms()).data.result;\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString());\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'info');\n });\n }\n } catch (error) {\n printMessage(`Error listing realms: ${error.rmessage}`, 'error');\n printMessage(error.response.data, 'error');\n }\n}\n\n/**\n * Describe realm\n * @param {String} realm realm name\n */\nexport async function describeRealm(realm: string) {\n try {\n const realmConfig = await frodo.realm.getRealmByName(realm);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Realm ${realm} not found!`, 'error');\n }\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function addCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await frodo.realm.getRealmByName(realm);\n let exists = false;\n realmConfig.aliases.forEach((alias) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = (await frodo.realm.putRealm(realmConfig._id, realmConfig))\n .data;\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error adding custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await frodo.realm.getRealmByName(realm);\n const aliases = realmConfig.aliases.filter(\n (alias) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = (await frodo.realm.putRealm(realmConfig._id, realmConfig))\n .data;\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error removing custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RealmOps.js","names":["frodo","createKeyValueTable","createTable","printMessage","readRealms","readRealmByName","updateRealm","realm","listRealms","long","realms","table","forEach","realmConfig","push","name","active","aliases","join","parentPath","toString","error","_error$response","rmessage","response","data","describeRealm","_id","addCustomDomain","domain","exists","alias","toLowerCase","message","removeCustomDomain","filter","length"],"sources":["../../src/ops/RealmOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\n\nimport {\n createKeyValueTable,\n createTable,\n printMessage,\n} from '../utils/Console';\n\nconst { readRealms, readRealmByName, updateRealm } = frodo.realm;\n\n/**\n * List realms\n * @param {boolean} long Long list format with details\n */\nexport async function listRealms(long = false) {\n try {\n const realms = await readRealms();\n if (long) {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Status'['brightCyan'],\n 'Custom Domains'['brightCyan'],\n 'Parent'['brightCyan'],\n ]);\n realms.forEach((realmConfig) => {\n table.push([\n realmConfig.name,\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n realmConfig.aliases.join('\\n'),\n realmConfig.parentPath,\n ]);\n });\n printMessage(table.toString(), 'data');\n } else {\n realms.forEach((realmConfig) => {\n printMessage(realmConfig.name, 'data');\n });\n }\n } catch (error) {\n printMessage(error, 'error');\n printMessage(`Error listing realms: ${error.rmessage}`, 'error');\n printMessage(error.response?.data, 'error');\n }\n}\n\n/**\n * Describe realm\n * @param {String} realm realm name\n */\nexport async function describeRealm(realm: string) {\n try {\n const realmConfig = await readRealmByName(realm);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active ? 'active'['brightGreen'] : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString(), 'data');\n } catch (error) {\n printMessage(`Realm ${realm} not found!`, 'error');\n }\n}\n\n/**\n * Add custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function addCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await readRealmByName(realm);\n let exists = false;\n realmConfig.aliases.forEach((alias) => {\n if (domain.toLowerCase() === alias.toLowerCase()) {\n exists = true;\n }\n });\n if (!exists) {\n try {\n realmConfig.aliases.push(domain.toLowerCase());\n realmConfig = await updateRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error adding custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Remove custom DNS domain name (realm DNS alias)\n * @param {String} realm realm name\n * @param {String} domain domain name\n */\nexport async function removeCustomDomain(realm: string, domain: string) {\n try {\n let realmConfig = await readRealmByName(realm);\n const aliases = realmConfig.aliases.filter(\n (alias) => domain.toLowerCase() !== alias.toLowerCase()\n );\n if (aliases.length < realmConfig.aliases.length) {\n try {\n realmConfig.aliases = aliases;\n realmConfig = await updateRealm(realmConfig._id, realmConfig);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], realmConfig.name]);\n table.push([\n 'Status'['brightCyan'],\n realmConfig.active\n ? 'active'['brightGreen']\n : 'inactive'['brightRed'],\n ]);\n table.push([\n 'Custom Domains'['brightCyan'],\n realmConfig.aliases.join('\\n'),\n ]);\n table.push(['Parent'['brightCyan'], realmConfig.parentPath]);\n table.push(['Id'['brightCyan'], realmConfig._id]);\n printMessage(table.toString());\n } catch (error) {\n printMessage(`Error removing custom domain: ${error.message}`, 'error');\n }\n }\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n }\n}\n"],"mappings":"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"}