@rockcarver/frodo-cli 2.0.0-4 → 2.0.0-41

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 (486) hide show
  1. package/CHANGELOG.md +312 -5
  2. package/esm/app.js +22 -5
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +33 -7
  5. package/esm/cli/FrodoCommand.js.map +1 -1
  6. package/esm/cli/_template/something-delete.js +7 -5
  7. package/esm/cli/_template/something-delete.js.map +1 -1
  8. package/esm/cli/_template/something-describe.js +7 -5
  9. package/esm/cli/_template/something-describe.js.map +1 -1
  10. package/esm/cli/_template/something-else-delete.js +7 -5
  11. package/esm/cli/_template/something-else-delete.js.map +1 -1
  12. package/esm/cli/_template/something-else-describe.js +7 -5
  13. package/esm/cli/_template/something-else-describe.js.map +1 -1
  14. package/esm/cli/_template/something-else-export.js +8 -6
  15. package/esm/cli/_template/something-else-export.js.map +1 -1
  16. package/esm/cli/_template/something-else-import.js +7 -5
  17. package/esm/cli/_template/something-else-import.js.map +1 -1
  18. package/esm/cli/_template/something-else-list.js +7 -5
  19. package/esm/cli/_template/something-else-list.js.map +1 -1
  20. package/esm/cli/_template/something-else.js +1 -1
  21. package/esm/cli/_template/something-else.js.map +1 -1
  22. package/esm/cli/_template/something-export.js +8 -6
  23. package/esm/cli/_template/something-export.js.map +1 -1
  24. package/esm/cli/_template/something-import.js +7 -5
  25. package/esm/cli/_template/something-import.js.map +1 -1
  26. package/esm/cli/_template/something-list.js +7 -5
  27. package/esm/cli/_template/something-list.js.map +1 -1
  28. package/esm/cli/_template/something-other-delete.js +7 -5
  29. package/esm/cli/_template/something-other-delete.js.map +1 -1
  30. package/esm/cli/_template/something-other-describe.js +7 -5
  31. package/esm/cli/_template/something-other-describe.js.map +1 -1
  32. package/esm/cli/_template/something-other-export.js +8 -6
  33. package/esm/cli/_template/something-other-export.js.map +1 -1
  34. package/esm/cli/_template/something-other-import.js +7 -5
  35. package/esm/cli/_template/something-other-import.js.map +1 -1
  36. package/esm/cli/_template/something-other-list.js +7 -5
  37. package/esm/cli/_template/something-other-list.js.map +1 -1
  38. package/esm/cli/_template/something-other.js +1 -1
  39. package/esm/cli/_template/something-other.js.map +1 -1
  40. package/esm/cli/_template/something.js +2 -2
  41. package/esm/cli/_template/something.js.map +1 -1
  42. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +10 -5
  43. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  44. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +14 -8
  45. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  46. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +41 -0
  47. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
  48. package/esm/cli/admin/admin-federation-export.js +44 -0
  49. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  50. package/esm/cli/admin/admin-federation-import.js +48 -0
  51. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  52. package/esm/cli/admin/admin-federation-list.js +28 -0
  53. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  54. package/esm/cli/admin/admin-federation.js +13 -0
  55. package/esm/cli/admin/admin-federation.js.map +1 -0
  56. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +43 -0
  57. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -0
  58. package/esm/cli/admin/admin-get-access-token.js +12 -7
  59. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  60. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +13 -8
  61. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  62. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +11 -6
  63. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  64. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +11 -6
  65. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +11 -6
  67. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  68. package/esm/cli/admin/admin-list-static-user-mappings.js +12 -7
  69. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  70. package/esm/cli/admin/admin-remove-static-user-mapping.js +12 -6
  71. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  72. package/esm/cli/admin/admin-repair-org-model.js +11 -6
  73. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  74. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +12 -7
  75. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  76. package/esm/cli/admin/admin-show-generic-extension-attributes.js +11 -6
  77. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  78. package/esm/cli/admin/admin-train-auto-access-model.js +32 -0
  79. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
  80. package/esm/cli/admin/admin.js +8 -2
  81. package/esm/cli/admin/admin.js.map +1 -1
  82. package/esm/cli/agent/agent-delete.js +13 -7
  83. package/esm/cli/agent/agent-delete.js.map +1 -1
  84. package/esm/cli/agent/agent-describe.js +7 -5
  85. package/esm/cli/agent/agent-describe.js.map +1 -1
  86. package/esm/cli/agent/agent-export.js +12 -10
  87. package/esm/cli/agent/agent-export.js.map +1 -1
  88. package/esm/cli/agent/agent-gateway-delete.js +13 -7
  89. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-gateway-describe.js +7 -5
  91. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-gateway-export.js +12 -10
  93. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  94. package/esm/cli/agent/agent-gateway-import.js +8 -6
  95. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  96. package/esm/cli/agent/agent-gateway-list.js +7 -5
  97. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  98. package/esm/cli/agent/agent-gateway.js +1 -1
  99. package/esm/cli/agent/agent-gateway.js.map +1 -1
  100. package/esm/cli/agent/agent-import.js +8 -6
  101. package/esm/cli/agent/agent-import.js.map +1 -1
  102. package/esm/cli/agent/agent-java-delete.js +13 -7
  103. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  104. package/esm/cli/agent/agent-java-describe.js +7 -5
  105. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  106. package/esm/cli/agent/agent-java-export.js +12 -10
  107. package/esm/cli/agent/agent-java-export.js.map +1 -1
  108. package/esm/cli/agent/agent-java-import.js +8 -6
  109. package/esm/cli/agent/agent-java-import.js.map +1 -1
  110. package/esm/cli/agent/agent-java-list.js +7 -5
  111. package/esm/cli/agent/agent-java-list.js.map +1 -1
  112. package/esm/cli/agent/agent-java.js +1 -1
  113. package/esm/cli/agent/agent-java.js.map +1 -1
  114. package/esm/cli/agent/agent-list.js +7 -5
  115. package/esm/cli/agent/agent-list.js.map +1 -1
  116. package/esm/cli/agent/agent-web-delete.js +13 -7
  117. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  118. package/esm/cli/agent/agent-web-describe.js +7 -5
  119. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  120. package/esm/cli/agent/agent-web-export.js +12 -10
  121. package/esm/cli/agent/agent-web-export.js.map +1 -1
  122. package/esm/cli/agent/agent-web-import.js +8 -6
  123. package/esm/cli/agent/agent-web-import.js.map +1 -1
  124. package/esm/cli/agent/agent-web-list.js +7 -5
  125. package/esm/cli/agent/agent-web-list.js.map +1 -1
  126. package/esm/cli/agent/agent-web.js +3 -3
  127. package/esm/cli/agent/agent-web.js.map +1 -1
  128. package/esm/cli/agent/agent.js +2 -2
  129. package/esm/cli/agent/agent.js.map +1 -1
  130. package/esm/cli/app/app-delete.js +27 -9
  131. package/esm/cli/app/app-delete.js.map +1 -1
  132. package/esm/cli/app/app-describe.js +9 -6
  133. package/esm/cli/app/app-describe.js.map +1 -1
  134. package/esm/cli/app/app-export.js +17 -14
  135. package/esm/cli/app/app-export.js.map +1 -1
  136. package/esm/cli/app/app-import.js +21 -18
  137. package/esm/cli/app/app-import.js.map +1 -1
  138. package/esm/cli/app/app-list.js +12 -9
  139. package/esm/cli/app/app-list.js.map +1 -1
  140. package/esm/cli/app/app.js +8 -12
  141. package/esm/cli/app/app.js.map +1 -1
  142. package/esm/cli/authn/authn-describe.js +29 -0
  143. package/esm/cli/authn/authn-describe.js.map +1 -0
  144. package/esm/cli/authn/authn-export.js +25 -0
  145. package/esm/cli/authn/authn-export.js.map +1 -0
  146. package/esm/cli/authn/authn-import.js +25 -0
  147. package/esm/cli/authn/authn-import.js.map +1 -0
  148. package/esm/cli/authn/authn.js +12 -0
  149. package/esm/cli/authn/authn.js.map +1 -0
  150. package/esm/cli/authz/authz-policy-delete.js +11 -9
  151. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  152. package/esm/cli/authz/authz-policy-describe.js +8 -6
  153. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  154. package/esm/cli/authz/authz-policy-export.js +18 -16
  155. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  156. package/esm/cli/authz/authz-policy-import.js +11 -9
  157. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  158. package/esm/cli/authz/authz-policy-list.js +11 -9
  159. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  160. package/esm/cli/authz/authz-policy.js +1 -1
  161. package/esm/cli/authz/authz-policy.js.map +1 -1
  162. package/esm/cli/authz/authz-set-delete.js +11 -9
  163. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  164. package/esm/cli/authz/authz-set-describe.js +8 -6
  165. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  166. package/esm/cli/authz/authz-set-export.js +14 -12
  167. package/esm/cli/authz/authz-set-export.js.map +1 -1
  168. package/esm/cli/authz/authz-set-import.js +11 -9
  169. package/esm/cli/authz/authz-set-import.js.map +1 -1
  170. package/esm/cli/authz/authz-set-list.js +8 -6
  171. package/esm/cli/authz/authz-set-list.js.map +1 -1
  172. package/esm/cli/authz/authz-set.js +1 -1
  173. package/esm/cli/authz/authz-set.js.map +1 -1
  174. package/esm/cli/authz/authz-type-delete.js +13 -11
  175. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  176. package/esm/cli/authz/authz-type-describe.js +9 -7
  177. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  178. package/esm/cli/authz/authz-type-export.js +16 -14
  179. package/esm/cli/authz/authz-type-export.js.map +1 -1
  180. package/esm/cli/authz/authz-type-import.js +14 -12
  181. package/esm/cli/authz/authz-type-import.js.map +1 -1
  182. package/esm/cli/authz/authz-type-list.js +9 -7
  183. package/esm/cli/authz/authz-type-list.js.map +1 -1
  184. package/esm/cli/authz/authz-type.js +1 -1
  185. package/esm/cli/authz/authz-type.js.map +1 -1
  186. package/esm/cli/authz/authz.js +2 -2
  187. package/esm/cli/authz/authz.js.map +1 -1
  188. package/esm/cli/config/config-delete.js +21 -0
  189. package/esm/cli/config/config-delete.js.map +1 -0
  190. package/esm/cli/config/config-describe.js +21 -0
  191. package/esm/cli/config/config-describe.js.map +1 -0
  192. package/esm/cli/config/config-export.js +43 -0
  193. package/esm/cli/config/config-export.js.map +1 -0
  194. package/esm/cli/config/config-import.js +54 -0
  195. package/esm/cli/config/config-import.js.map +1 -0
  196. package/esm/cli/config/config-list.js +21 -0
  197. package/esm/cli/config/config-list.js.map +1 -0
  198. package/esm/cli/config/config.js +19 -0
  199. package/esm/cli/config/config.js.map +1 -0
  200. package/esm/cli/conn/conn-delete.js +2 -3
  201. package/esm/cli/conn/conn-delete.js.map +1 -1
  202. package/esm/cli/conn/conn-describe.js +2 -3
  203. package/esm/cli/conn/conn-describe.js.map +1 -1
  204. package/esm/cli/conn/conn-list.js +2 -3
  205. package/esm/cli/conn/conn-list.js.map +1 -1
  206. package/esm/cli/conn/conn-save.js +31 -16
  207. package/esm/cli/conn/conn-save.js.map +1 -1
  208. package/esm/cli/conn/conn.js +2 -2
  209. package/esm/cli/conn/conn.js.map +1 -1
  210. package/esm/cli/email/email-template-export.js +14 -12
  211. package/esm/cli/email/email-template-export.js.map +1 -1
  212. package/esm/cli/email/email-template-import.js +15 -13
  213. package/esm/cli/email/email-template-import.js.map +1 -1
  214. package/esm/cli/email/email-template-list.js +9 -7
  215. package/esm/cli/email/email-template-list.js.map +1 -1
  216. package/esm/cli/email/email-template.js +1 -1
  217. package/esm/cli/email/email-template.js.map +1 -1
  218. package/esm/cli/email/email.js +2 -2
  219. package/esm/cli/email/email.js.map +1 -1
  220. package/esm/cli/esv/esv-apply.js +18 -9
  221. package/esm/cli/esv/esv-apply.js.map +1 -1
  222. package/esm/cli/esv/esv-secret-create.js +10 -7
  223. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  224. package/esm/cli/esv/esv-secret-delete.js +13 -10
  225. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  226. package/esm/cli/esv/esv-secret-describe.js +10 -7
  227. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  228. package/esm/cli/esv/esv-secret-export.js +22 -7
  229. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  230. package/esm/cli/esv/esv-secret-import.js +7 -5
  231. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  232. package/esm/cli/esv/esv-secret-list.js +11 -8
  233. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  234. package/esm/cli/esv/esv-secret-set.js +10 -7
  235. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  236. package/esm/cli/esv/esv-secret-version-activate.js +10 -8
  237. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  238. package/esm/cli/esv/esv-secret-version-create.js +10 -7
  239. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  240. package/esm/cli/esv/esv-secret-version-deactivate.js +10 -8
  241. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  242. package/esm/cli/esv/esv-secret-version-delete.js +13 -10
  243. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  244. package/esm/cli/esv/esv-secret-version-list.js +10 -7
  245. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  246. package/esm/cli/esv/esv-secret-version.js +1 -1
  247. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  248. package/esm/cli/esv/esv-secret.js +2 -3
  249. package/esm/cli/esv/esv-secret.js.map +1 -1
  250. package/esm/cli/esv/esv-variable-create.js +11 -7
  251. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  252. package/esm/cli/esv/esv-variable-delete.js +13 -9
  253. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  254. package/esm/cli/esv/esv-variable-describe.js +11 -8
  255. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  256. package/esm/cli/esv/esv-variable-export.js +23 -7
  257. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  258. package/esm/cli/esv/esv-variable-import.js +7 -5
  259. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  260. package/esm/cli/esv/esv-variable-list.js +11 -8
  261. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  262. package/esm/cli/esv/esv-variable-set.js +12 -8
  263. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  264. package/esm/cli/esv/esv-variable.js +2 -3
  265. package/esm/cli/esv/esv-variable.js.map +1 -1
  266. package/esm/cli/esv/esv.js +2 -2
  267. package/esm/cli/esv/esv.js.map +1 -1
  268. package/esm/cli/idm/idm-count.js +10 -8
  269. package/esm/cli/idm/idm-count.js.map +1 -1
  270. package/esm/cli/idm/idm-export.js +24 -16
  271. package/esm/cli/idm/idm-export.js.map +1 -1
  272. package/esm/cli/idm/idm-import.js +22 -14
  273. package/esm/cli/idm/idm-import.js.map +1 -1
  274. package/esm/cli/idm/idm-list.js +9 -7
  275. package/esm/cli/idm/idm-list.js.map +1 -1
  276. package/esm/cli/idm/idm.js +2 -2
  277. package/esm/cli/idm/idm.js.map +1 -1
  278. package/esm/cli/idp/idp-export.js +12 -10
  279. package/esm/cli/idp/idp-export.js.map +1 -1
  280. package/esm/cli/idp/idp-import.js +24 -14
  281. package/esm/cli/idp/idp-import.js.map +1 -1
  282. package/esm/cli/idp/idp-list.js +8 -6
  283. package/esm/cli/idp/idp-list.js.map +1 -1
  284. package/esm/cli/idp/idp.js +2 -2
  285. package/esm/cli/idp/idp.js.map +1 -1
  286. package/esm/cli/info/info.js +13 -8
  287. package/esm/cli/info/info.js.map +1 -1
  288. package/esm/cli/journey/journey-delete.js +14 -8
  289. package/esm/cli/journey/journey-delete.js.map +1 -1
  290. package/esm/cli/journey/journey-describe.js +22 -12
  291. package/esm/cli/journey/journey-describe.js.map +1 -1
  292. package/esm/cli/journey/journey-disable.js +11 -12
  293. package/esm/cli/journey/journey-disable.js.map +1 -1
  294. package/esm/cli/journey/journey-enable.js +11 -12
  295. package/esm/cli/journey/journey-enable.js.map +1 -1
  296. package/esm/cli/journey/journey-export.js +24 -13
  297. package/esm/cli/journey/journey-export.js.map +1 -1
  298. package/esm/cli/journey/journey-import.js +15 -13
  299. package/esm/cli/journey/journey-import.js.map +1 -1
  300. package/esm/cli/journey/journey-list.js +7 -5
  301. package/esm/cli/journey/journey-list.js.map +1 -1
  302. package/esm/cli/journey/journey-prune.js +23 -13
  303. package/esm/cli/journey/journey-prune.js.map +1 -1
  304. package/esm/cli/journey/journey.js +2 -2
  305. package/esm/cli/journey/journey.js.map +1 -1
  306. package/esm/cli/{logging/logs-fetch.js → log/log-fetch.js} +68 -36
  307. package/esm/cli/log/log-fetch.js.map +1 -0
  308. package/esm/cli/log/log-key-delete.js +34 -0
  309. package/esm/cli/log/log-key-delete.js.map +1 -0
  310. package/esm/cli/log/log-key-describe.js +21 -0
  311. package/esm/cli/log/log-key-describe.js.map +1 -0
  312. package/esm/cli/log/log-key-list.js +25 -0
  313. package/esm/cli/log/log-key-list.js.map +1 -0
  314. package/esm/cli/log/log-key.js +8 -0
  315. package/esm/cli/log/log-key.js.map +1 -0
  316. package/esm/cli/log/log-list.js +80 -0
  317. package/esm/cli/log/log-list.js.map +1 -0
  318. package/esm/cli/log/log-tail.js +77 -0
  319. package/esm/cli/log/log-tail.js.map +1 -0
  320. package/esm/cli/{logging/logs.js → log/log.js} +6 -3
  321. package/esm/cli/log/log.js.map +1 -0
  322. package/esm/cli/oauth/oauth-client-delete.js +21 -0
  323. package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
  324. package/esm/cli/oauth/oauth-client-describe.js +21 -0
  325. package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
  326. package/esm/cli/oauth/oauth-client-export.js +51 -0
  327. package/esm/cli/oauth/oauth-client-export.js.map +1 -0
  328. package/esm/cli/oauth/oauth-client-import.js +56 -0
  329. package/esm/cli/oauth/oauth-client-import.js.map +1 -0
  330. package/esm/cli/oauth/oauth-client-list.js +24 -0
  331. package/esm/cli/oauth/oauth-client-list.js.map +1 -0
  332. package/esm/cli/oauth/oauth-client.js +14 -0
  333. package/esm/cli/oauth/oauth-client.js.map +1 -0
  334. package/esm/cli/oauth/oauth.js +13 -0
  335. package/esm/cli/oauth/oauth.js.map +1 -0
  336. package/esm/cli/realm/realm-add-custom-domain.js +8 -6
  337. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  338. package/esm/cli/realm/realm-describe.js +8 -6
  339. package/esm/cli/realm/realm-describe.js.map +1 -1
  340. package/esm/cli/realm/realm-list.js +8 -6
  341. package/esm/cli/realm/realm-list.js.map +1 -1
  342. package/esm/cli/realm/realm-remove-custom-domain.js +11 -6
  343. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  344. package/esm/cli/realm/realm.js +2 -2
  345. package/esm/cli/realm/realm.js.map +1 -1
  346. package/esm/cli/saml/saml-cot-export.js +14 -12
  347. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  348. package/esm/cli/saml/saml-cot-import.js +15 -13
  349. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  350. package/esm/cli/saml/saml-cot-list.js +9 -7
  351. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  352. package/esm/cli/saml/saml-cot.js +1 -1
  353. package/esm/cli/saml/saml-cot.js.map +1 -1
  354. package/esm/cli/saml/saml-delete.js +14 -8
  355. package/esm/cli/saml/saml-delete.js.map +1 -1
  356. package/esm/cli/saml/saml-describe.js +9 -7
  357. package/esm/cli/saml/saml-describe.js.map +1 -1
  358. package/esm/cli/saml/saml-export.js +14 -12
  359. package/esm/cli/saml/saml-export.js.map +1 -1
  360. package/esm/cli/saml/saml-import.js +24 -14
  361. package/esm/cli/saml/saml-import.js.map +1 -1
  362. package/esm/cli/saml/saml-list.js +9 -7
  363. package/esm/cli/saml/saml-list.js.map +1 -1
  364. package/esm/cli/saml/saml-metadata-export.js +10 -8
  365. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  366. package/esm/cli/saml/saml-metadata.js +1 -1
  367. package/esm/cli/saml/saml-metadata.js.map +1 -1
  368. package/esm/cli/saml/saml.js +2 -2
  369. package/esm/cli/saml/saml.js.map +1 -1
  370. package/esm/cli/script/script-delete.js +21 -8
  371. package/esm/cli/script/script-delete.js.map +1 -1
  372. package/esm/cli/script/script-describe.js +7 -5
  373. package/esm/cli/script/script-describe.js.map +1 -1
  374. package/esm/cli/script/script-export.js +12 -14
  375. package/esm/cli/script/script-export.js.map +1 -1
  376. package/esm/cli/script/script-import.js +9 -7
  377. package/esm/cli/script/script-import.js.map +1 -1
  378. package/esm/cli/script/script-list.js +10 -8
  379. package/esm/cli/script/script-list.js.map +1 -1
  380. package/esm/cli/script/script.js +3 -5
  381. package/esm/cli/script/script.js.map +1 -1
  382. package/esm/cli/service/service-delete.js +8 -5
  383. package/esm/cli/service/service-delete.js.map +1 -1
  384. package/esm/cli/service/service-export.js +13 -11
  385. package/esm/cli/service/service-export.js.map +1 -1
  386. package/esm/cli/service/service-import.js +32 -14
  387. package/esm/cli/service/service-import.js.map +1 -1
  388. package/esm/cli/service/service-list.js +7 -4
  389. package/esm/cli/service/service-list.js.map +1 -1
  390. package/esm/cli/service/service.js +2 -2
  391. package/esm/cli/service/service.js.map +1 -1
  392. package/esm/cli/shell/shell.js +57 -0
  393. package/esm/cli/shell/shell.js.map +1 -0
  394. package/esm/cli/theme/theme-delete.js +13 -11
  395. package/esm/cli/theme/theme-delete.js.map +1 -1
  396. package/esm/cli/theme/theme-export.js +16 -14
  397. package/esm/cli/theme/theme-export.js.map +1 -1
  398. package/esm/cli/theme/theme-import.js +16 -14
  399. package/esm/cli/theme/theme-import.js.map +1 -1
  400. package/esm/cli/theme/theme-list.js +8 -6
  401. package/esm/cli/theme/theme-list.js.map +1 -1
  402. package/esm/cli/theme/theme.js +2 -2
  403. package/esm/cli/theme/theme.js.map +1 -1
  404. package/esm/help/SampleData.js +7 -0
  405. package/esm/help/SampleData.js.map +1 -0
  406. package/esm/launch.js +1 -1
  407. package/esm/launch.js.map +1 -1
  408. package/esm/loader.js +2 -2
  409. package/esm/loader.js.map +1 -1
  410. package/esm/ops/AdminFederationOps.js +231 -0
  411. package/esm/ops/AdminFederationOps.js.map +1 -0
  412. package/esm/ops/AdminOps.js +151 -0
  413. package/esm/ops/AdminOps.js.map +1 -0
  414. package/esm/ops/AgentOps.js +213 -150
  415. package/esm/ops/AgentOps.js.map +1 -1
  416. package/esm/ops/ApplicationOps.js +324 -0
  417. package/esm/ops/ApplicationOps.js.map +1 -0
  418. package/esm/ops/AuthenticationSettingsOps.js +90 -0
  419. package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
  420. package/esm/ops/CirclesOfTrustOps.js +98 -78
  421. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  422. package/esm/ops/ConfigOps.js +162 -0
  423. package/esm/ops/ConfigOps.js.map +1 -0
  424. package/esm/ops/ConnectionProfileOps.js +12 -6
  425. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  426. package/esm/ops/EmailTemplateOps.js +122 -127
  427. package/esm/ops/EmailTemplateOps.js.map +1 -1
  428. package/esm/ops/IdmOps.js +101 -182
  429. package/esm/ops/IdmOps.js.map +1 -1
  430. package/esm/ops/IdpOps.js +118 -73
  431. package/esm/ops/IdpOps.js.map +1 -1
  432. package/esm/ops/JourneyOps.js +176 -114
  433. package/esm/ops/JourneyOps.js.map +1 -1
  434. package/esm/ops/LogOps.js +92 -30
  435. package/esm/ops/LogOps.js.map +1 -1
  436. package/esm/ops/NodeOps.js +6 -3
  437. package/esm/ops/NodeOps.js.map +1 -1
  438. package/esm/ops/OAuth2ClientOps.js +71 -49
  439. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  440. package/esm/ops/OrganizationOps.js +14 -22
  441. package/esm/ops/OrganizationOps.js.map +1 -1
  442. package/esm/ops/PolicyOps.js +127 -86
  443. package/esm/ops/PolicyOps.js.map +1 -1
  444. package/esm/ops/PolicySetOps.js +108 -76
  445. package/esm/ops/PolicySetOps.js.map +1 -1
  446. package/esm/ops/RealmOps.js +18 -11
  447. package/esm/ops/RealmOps.js.map +1 -1
  448. package/esm/ops/ResourceTypeOps.js +105 -87
  449. package/esm/ops/ResourceTypeOps.js.map +1 -1
  450. package/esm/ops/Saml2Ops.js +132 -91
  451. package/esm/ops/Saml2Ops.js.map +1 -1
  452. package/esm/ops/Saml2Ops.test_.js.map +1 -1
  453. package/esm/ops/ScriptOps.js +205 -82
  454. package/esm/ops/ScriptOps.js.map +1 -1
  455. package/esm/ops/SecretsOps.js +289 -79
  456. package/esm/ops/SecretsOps.js.map +1 -1
  457. package/esm/ops/ServiceOps.js +97 -54
  458. package/esm/ops/ServiceOps.js.map +1 -1
  459. package/esm/ops/ThemeOps.js +164 -158
  460. package/esm/ops/ThemeOps.js.map +1 -1
  461. package/esm/ops/VariablesOps.js +252 -65
  462. package/esm/ops/VariablesOps.js.map +1 -1
  463. package/esm/ops/utils/OpsUtils.js +1 -1
  464. package/esm/ops/utils/OpsUtils.js.map +1 -1
  465. package/esm/ops/utils/Wordwrap.js +1 -1
  466. package/esm/ops/utils/Wordwrap.js.map +1 -1
  467. package/esm/storage/StaticStorage.js +1 -1
  468. package/esm/storage/StaticStorage.js.map +1 -1
  469. package/esm/utils/Config.js +162 -4
  470. package/esm/utils/Config.js.map +1 -1
  471. package/esm/utils/Console.js +78 -35
  472. package/esm/utils/Console.js.map +1 -1
  473. package/esm/utils/Version.js +19 -16
  474. package/esm/utils/Version.js.map +1 -1
  475. package/global-jest-setup.js +4 -0
  476. package/package.json +55 -37
  477. package/esm/cli/logging/logs-fetch.js.map +0 -1
  478. package/esm/cli/logging/logs-list.js +0 -49
  479. package/esm/cli/logging/logs-list.js.map +0 -1
  480. package/esm/cli/logging/logs-tail.js +0 -46
  481. package/esm/cli/logging/logs-tail.js.map +0 -1
  482. package/esm/cli/logging/logs.js.map +0 -1
  483. package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
  484. package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
  485. package/esm/utils/ExportImportUtils.js +0 -90
  486. package/esm/utils/ExportImportUtils.js.map +0 -1
package/esm/ops/IdpOps.js CHANGED
@@ -1,7 +1,23 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
- import { createProgressBar, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
4
- import { getRealmString, getTypedFilename, saveJsonToFile } from '../utils/ExportImportUtils';
3
+ import { createProgressIndicator, debugMessage, printMessage, stopProgressIndicator, updateProgressIndicator } from '../utils/Console';
4
+ const {
5
+ getRealmString,
6
+ getTypedFilename,
7
+ saveJsonToFile
8
+ } = frodo.utils;
9
+ const {
10
+ readSocialIdentityProviders,
11
+ exportSocialIdentityProvider,
12
+ exportSocialIdentityProviders,
13
+ importFirstSocialIdentityProvider,
14
+ importSocialIdentityProvider,
15
+ importSocialIdentityProviders
16
+ } = frodo.oauth2oidc.external;
17
+ const {
18
+ getFilePath,
19
+ getWorkingDirectory
20
+ } = frodo.utils;
5
21
 
6
22
  /**
7
23
  * Get a one-line description of the social idp object
@@ -39,7 +55,7 @@ export function getTableRowMd(socialIdpObj) {
39
55
  */
40
56
  export async function listSocialProviders() {
41
57
  try {
42
- const providers = await frodo.oauth2oidc.external.getSocialIdentityProviders();
58
+ const providers = await readSocialIdentityProviders();
43
59
  providers.sort((a, b) => a._id.localeCompare(b._id));
44
60
  providers.forEach(socialIdentityProvider => {
45
61
  printMessage(`${socialIdentityProvider._id}`, 'data');
@@ -54,139 +70,168 @@ export async function listSocialProviders() {
54
70
  * Export provider by id
55
71
  * @param {string} providerId provider id/name
56
72
  * @param {string} file optional export file name
73
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
57
74
  */
58
- export async function exportSocialProviderToFile(providerId, file = '') {
75
+ export async function exportSocialIdentityProviderToFile(providerId, file = '', includeMeta = true) {
76
+ debugMessage(`cli.IdpOps.exportSocialIdentityProviderToFile: start`);
59
77
  let fileName = file;
60
78
  if (!fileName) {
61
79
  fileName = getTypedFilename(providerId, 'idp');
62
80
  }
63
- createProgressBar(1, `Exporting ${providerId}`);
81
+ const filePath = getFilePath(fileName, true);
82
+ const indicatorId = createProgressIndicator('determinate', 1, `Exporting ${providerId}`);
64
83
  try {
65
- updateProgressBar(`Writing file ${fileName}`);
66
- const fileData = await frodo.oauth2oidc.external.exportSocialProvider(providerId);
67
- saveJsonToFile(fileData, fileName);
68
- stopProgressBar(`Exported ${providerId['brightCyan']} to ${fileName['brightCyan']}.`);
84
+ updateProgressIndicator(indicatorId, `Writing file ${filePath}`);
85
+ const fileData = await exportSocialIdentityProvider(providerId);
86
+ saveJsonToFile(fileData, filePath, includeMeta);
87
+ stopProgressIndicator(indicatorId, `Exported ${providerId['brightCyan']} to ${filePath['brightCyan']}.`);
69
88
  } catch (err) {
70
- stopProgressBar(`${err}`);
89
+ stopProgressIndicator(indicatorId, `${err}`);
71
90
  printMessage(`${err}`, 'error');
72
91
  }
92
+ debugMessage(`cli.IdpOps.exportSocialIdentityProviderToFile: end`);
73
93
  }
74
94
 
75
95
  /**
76
96
  * Export all providers
77
97
  * @param {string} file optional export file name
98
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
78
99
  */
79
- export async function exportSocialProvidersToFile(file = '') {
100
+ export async function exportSocialIdentityProvidersToFile(file = '', includeMeta = true) {
80
101
  let fileName = file;
81
102
  if (!fileName) {
82
103
  fileName = getTypedFilename(`all${getRealmString()}Providers`, 'idp');
83
104
  }
84
- const fileData = await frodo.oauth2oidc.external.exportSocialProviders();
85
- saveJsonToFile(fileData, fileName);
105
+ const fileData = await exportSocialIdentityProviders();
106
+ saveJsonToFile(fileData, getFilePath(fileName, true), includeMeta);
86
107
  }
87
108
 
88
109
  /**
89
110
  * Export all providers to individual files
111
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
90
112
  */
91
- export async function exportSocialProvidersToFiles() {
92
- const allIdpsData = await frodo.oauth2oidc.external.getSocialIdentityProviders();
93
- // printMessage(allIdpsData, 'data');
94
- createProgressBar(allIdpsData.length, 'Exporting providers');
95
- for (const idpData of allIdpsData) {
96
- updateProgressBar(`Writing provider ${idpData._id}`);
97
- const fileName = getTypedFilename(idpData._id, 'idp');
98
- const fileData = await frodo.oauth2oidc.external.exportSocialProvider(idpData._id);
99
- saveJsonToFile(fileData, fileName);
113
+ export async function exportSocialIdentityProvidersToFiles(includeMeta = true) {
114
+ debugMessage(`cli.IdpOps.exportSocialIdentityProvidersToFiles: start`);
115
+ let indicatorId;
116
+ try {
117
+ const allIdpsData = await readSocialIdentityProviders();
118
+ indicatorId = createProgressIndicator('determinate', allIdpsData.length, 'Exporting providers');
119
+ for (const idpData of allIdpsData) {
120
+ try {
121
+ const fileName = getTypedFilename(idpData._id, 'idp');
122
+ const fileData = await exportSocialIdentityProvider(idpData._id);
123
+ saveJsonToFile(fileData, getFilePath(fileName, true), includeMeta);
124
+ updateProgressIndicator(indicatorId, `Exported provider ${idpData._id}`);
125
+ } catch (error) {
126
+ printMessage(`Error exporting ${idpData._id}: ${error}`, 'error');
127
+ }
128
+ }
129
+ stopProgressIndicator(indicatorId, `${allIdpsData.length} providers exported.`);
130
+ } catch (error) {
131
+ stopProgressIndicator(indicatorId, `${error}`);
132
+ printMessage(`${error}`, 'error');
100
133
  }
101
- stopProgressBar(`${allIdpsData.length} providers exported.`);
134
+ debugMessage(`cli.IdpOps.exportSocialIdentityProvidersToFiles: end`);
102
135
  }
103
136
 
104
137
  /**
105
138
  * Import provider by id/name
106
139
  * @param {string} providerId provider id/name
107
140
  * @param {string} file import file name
141
+ * @param {SocialIdentityProviderImportOptions} options import options
108
142
  * @returns {Promise<boolean>} true if provider was imported successfully, false otherwise
109
143
  */
110
- export async function importSocialProviderFromFile(providerId, file) {
144
+ export async function importSocialIdentityProviderFromFile(providerId, file, options = {
145
+ deps: true
146
+ }) {
111
147
  let outcome = false;
112
- showSpinner(`Importing provider ${providerId} from ${file}...`);
113
- fs.readFile(file, 'utf8', async (err, data) => {
114
- if (err) throw err;
115
- try {
116
- const fileData = JSON.parse(data);
117
- outcome = await frodo.oauth2oidc.external.importSocialProvider(providerId, fileData);
118
- succeedSpinner(`Successfully imported provider ${providerId} from ${file}.`);
119
- } catch (error) {
120
- var _error$response;
121
- failSpinner(`Error importing provider ${providerId} from ${file}.`);
122
- printMessage(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error, 'error');
123
- }
124
- });
148
+ const filePath = getFilePath(file);
149
+ const indicatorId = createProgressIndicator('indeterminate', 0, `Importing provider ${providerId} from ${filePath}...`);
150
+ try {
151
+ const data = fs.readFileSync(filePath, 'utf8');
152
+ const fileData = JSON.parse(data);
153
+ await importSocialIdentityProvider(providerId, fileData, options);
154
+ outcome = true;
155
+ stopProgressIndicator(indicatorId, `Successfully imported provider ${providerId} from ${filePath}.`, 'success');
156
+ } catch (error) {
157
+ var _error$response;
158
+ stopProgressIndicator(indicatorId, `Error importing provider ${providerId} from ${filePath}.`, 'fail');
159
+ printMessage(((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error, 'error');
160
+ }
125
161
  return outcome;
126
162
  }
127
163
 
128
164
  /**
129
165
  * Import first provider from file
130
166
  * @param {String} file import file name
167
+ * @param {SocialIdentityProviderImportOptions} options import options
131
168
  * @returns {Promise<boolean>} true if first provider was imported successfully, false otherwise
132
169
  */
133
- export async function importFirstSocialProviderFromFile(file) {
170
+ export async function importFirstSocialIdentityProviderFromFile(file, options = {
171
+ deps: true
172
+ }) {
134
173
  let outcome = false;
135
- showSpinner(`Importing first provider from ${file}...`);
136
- fs.readFile(file, 'utf8', async (err, data) => {
137
- if (err) throw err;
138
- try {
139
- const fileData = JSON.parse(data);
140
- outcome = await frodo.oauth2oidc.external.importFirstSocialProvider(fileData);
141
- succeedSpinner(`Successfully imported first provider from ${file}.`);
142
- } catch (error) {
143
- var _error$response2;
144
- failSpinner(`Error importing first provider from ${file}.`);
145
- printMessage(((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error, 'error');
146
- }
147
- });
174
+ const filePath = getFilePath(file);
175
+ const indicatorId = createProgressIndicator('indeterminate', 0, `Importing first provider from ${filePath}...`);
176
+ try {
177
+ const data = fs.readFileSync(filePath, 'utf8');
178
+ const fileData = JSON.parse(data);
179
+ await importFirstSocialIdentityProvider(fileData, options);
180
+ outcome = true;
181
+ stopProgressIndicator(indicatorId, `Successfully imported first provider from ${filePath}.`, 'success');
182
+ } catch (error) {
183
+ var _error$response2;
184
+ stopProgressIndicator(indicatorId, `Error importing first provider from ${filePath}.`, 'fail');
185
+ printMessage(((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error, 'error');
186
+ }
148
187
  return outcome;
149
188
  }
150
189
 
151
190
  /**
152
191
  * Import all providers from file
153
192
  * @param {string} file import file name
193
+ * @param {SocialIdentityProviderImportOptions} options import options
154
194
  * @returns {Promise<boolean>} true if all providers were imported successfully, false otherwise
155
195
  */
156
- export async function importSocialProvidersFromFile(file) {
196
+ export async function importSocialIdentityProvidersFromFile(file, options = {
197
+ deps: true
198
+ }) {
157
199
  let outcome = false;
158
- showSpinner(`Importing providers from ${file}...`);
159
- fs.readFile(file, 'utf8', async (err, data) => {
160
- if (err) throw err;
161
- try {
162
- const fileData = JSON.parse(data);
163
- outcome = await frodo.oauth2oidc.external.importSocialProviders(fileData);
164
- succeedSpinner(`Successfully imported providers from ${file}.`);
165
- } catch (error) {
166
- var _error$response3;
167
- failSpinner(`Error importing providers from ${file}.`);
168
- printMessage(((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data) || error, 'error');
169
- }
170
- });
200
+ const filePath = getFilePath(file);
201
+ const indicatorId = createProgressIndicator('indeterminate', 0, `Importing providers from ${filePath}...`);
202
+ const data = fs.readFileSync(filePath, 'utf8');
203
+ try {
204
+ const fileData = JSON.parse(data);
205
+ await importSocialIdentityProviders(fileData, options);
206
+ outcome = true;
207
+ stopProgressIndicator(indicatorId, `Successfully imported providers from ${filePath}.`, 'success');
208
+ } catch (error) {
209
+ var _error$response3;
210
+ stopProgressIndicator(indicatorId, `Error importing providers from ${filePath}.`, 'fail');
211
+ printMessage(((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.data) || error, 'error');
212
+ }
171
213
  return outcome;
172
214
  }
173
215
 
174
216
  /**
175
217
  * Import providers from *.idp.json files in current working directory
218
+ * @param {SocialIdentityProviderImportOptions} options import options
176
219
  */
177
- export async function importSocialProvidersFromFiles() {
178
- const names = fs.readdirSync('.');
179
- const jsonFiles = names.filter(name => name.toLowerCase().endsWith('.idp.json'));
180
- createProgressBar(jsonFiles.length, 'Importing providers...');
220
+ export async function importSocialIdentityProvidersFromFiles(options = {
221
+ deps: true
222
+ }) {
223
+ const names = fs.readdirSync(getWorkingDirectory());
224
+ const jsonFiles = names.filter(name => name.toLowerCase().endsWith('.idp.json')).map(name => getFilePath(name));
225
+ const indicatorId = createProgressIndicator('determinate', jsonFiles.length, 'Importing providers...');
181
226
  let total = 0;
182
227
  for (const file of jsonFiles) {
183
228
  const data = fs.readFileSync(file, 'utf8');
184
229
  const fileData = JSON.parse(data);
185
230
  const count = Object.keys(fileData.idp).length;
186
231
  total += count;
187
- await frodo.oauth2oidc.external.importSocialProviders(fileData);
188
- updateProgressBar(`Imported ${count} provider(s) from ${file}`);
232
+ await importSocialIdentityProviders(fileData, options);
233
+ updateProgressIndicator(indicatorId, `Imported ${count} provider(s) from ${file}`);
189
234
  }
190
- stopProgressBar(`Finished importing ${total} provider(s) from ${jsonFiles.length} file(s).`);
235
+ stopProgressIndicator(indicatorId, `Finished importing ${total} provider(s) from ${jsonFiles.length} file(s).`);
191
236
  }
192
- //# sourceMappingURL=IdpOps.js.map
237
+ //# sourceMappingURL=IdpOps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IdpOps.js","names":["frodo","fs","createProgressBar","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","getRealmString","getTypedFilename","saveJsonToFile","getOneLineDescription","socialIdpObj","description","_id","_type","getTableHeaderMd","markdown","getTableRowMd","row","enabled","name","listSocialProviders","providers","oauth2oidc","external","getSocialIdentityProviders","sort","a","b","localeCompare","forEach","socialIdentityProvider","err","message","exportSocialProviderToFile","providerId","file","fileName","fileData","exportSocialProvider","exportSocialProvidersToFile","exportSocialProviders","exportSocialProvidersToFiles","allIdpsData","length","idpData","importSocialProviderFromFile","outcome","readFile","data","JSON","parse","importSocialProvider","error","_error$response","response","importFirstSocialProviderFromFile","importFirstSocialProvider","_error$response2","importSocialProvidersFromFile","importSocialProviders","_error$response3","importSocialProvidersFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","total","readFileSync","count","Object","keys","idp"],"sources":["ops/IdpOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type { SocialIdpSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n createProgressBar,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport {\n getRealmString,\n getTypedFilename,\n saveJsonToFile,\n} from '../utils/ExportImportUtils';\n\n/**\n * Get a one-line description of the social idp object\n * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(socialIdpObj: SocialIdpSkeleton): string {\n const description = `[${socialIdpObj._id['brightCyan']}] ${socialIdpObj._type._id}`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name/Id | Status | Type |\\n';\n markdown += '| ------- | ------ | ---- |';\n return markdown;\n}\n\n/**\n * Get a table-row of the social idp in markdown\n * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe\n * @returns {string} a table-row of the social idp in markdown\n */\nexport function getTableRowMd(socialIdpObj: SocialIdpSkeleton): string {\n const row = `| ${socialIdpObj._id} | ${\n socialIdpObj.enabled === false\n ? ':o: `disabled`'\n : ':white_check_mark: `enabled`'\n } | ${socialIdpObj._type.name} |`;\n return row;\n}\n\n/**\n * List providers\n */\nexport async function listSocialProviders() {\n try {\n const providers =\n await frodo.oauth2oidc.external.getSocialIdentityProviders();\n providers.sort((a, b) => a._id.localeCompare(b._id));\n providers.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n } catch (err) {\n printMessage(`listSocialProviders ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n}\n\n/**\n * Export provider by id\n * @param {string} providerId provider id/name\n * @param {string} file optional export file name\n */\nexport async function exportSocialProviderToFile(\n providerId: string,\n file = ''\n) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'idp');\n }\n createProgressBar(1, `Exporting ${providerId}`);\n try {\n updateProgressBar(`Writing file ${fileName}`);\n const fileData = await frodo.oauth2oidc.external.exportSocialProvider(\n providerId\n );\n saveJsonToFile(fileData, fileName);\n stopProgressBar(\n `Exported ${providerId['brightCyan']} to ${fileName['brightCyan']}.`\n );\n } catch (err) {\n stopProgressBar(`${err}`);\n printMessage(`${err}`, 'error');\n }\n}\n\n/**\n * Export all providers\n * @param {string} file optional export file name\n */\nexport async function exportSocialProvidersToFile(file = '') {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`all${getRealmString()}Providers`, 'idp');\n }\n const fileData = await frodo.oauth2oidc.external.exportSocialProviders();\n saveJsonToFile(fileData, fileName);\n}\n\n/**\n * Export all providers to individual files\n */\nexport async function exportSocialProvidersToFiles() {\n const allIdpsData =\n await frodo.oauth2oidc.external.getSocialIdentityProviders();\n // printMessage(allIdpsData, 'data');\n createProgressBar(allIdpsData.length, 'Exporting providers');\n for (const idpData of allIdpsData) {\n updateProgressBar(`Writing provider ${idpData._id}`);\n const fileName = getTypedFilename(idpData._id, 'idp');\n const fileData = await frodo.oauth2oidc.external.exportSocialProvider(\n idpData._id\n );\n saveJsonToFile(fileData, fileName);\n }\n stopProgressBar(`${allIdpsData.length} providers exported.`);\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if provider was imported successfully, false otherwise\n */\nexport async function importSocialProviderFromFile(\n providerId: string,\n file: string\n): Promise<boolean> {\n let outcome = false;\n showSpinner(`Importing provider ${providerId} from ${file}...`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n try {\n const fileData = JSON.parse(data);\n outcome = await frodo.oauth2oidc.external.importSocialProvider(\n providerId,\n fileData\n );\n succeedSpinner(\n `Successfully imported provider ${providerId} from ${file}.`\n );\n } catch (error) {\n failSpinner(`Error importing provider ${providerId} from ${file}.`);\n printMessage(error.response?.data || error, 'error');\n }\n });\n return outcome;\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n * @returns {Promise<boolean>} true if first provider was imported successfully, false otherwise\n */\nexport async function importFirstSocialProviderFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n showSpinner(`Importing first provider from ${file}...`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n try {\n const fileData = JSON.parse(data);\n outcome = await frodo.oauth2oidc.external.importFirstSocialProvider(\n fileData\n );\n succeedSpinner(`Successfully imported first provider from ${file}.`);\n } catch (error) {\n failSpinner(`Error importing first provider from ${file}.`);\n printMessage(error.response?.data || error, 'error');\n }\n });\n return outcome;\n}\n\n/**\n * Import all providers from file\n * @param {string} file import file name\n * @returns {Promise<boolean>} true if all providers were imported successfully, false otherwise\n */\nexport async function importSocialProvidersFromFile(\n file: string\n): Promise<boolean> {\n let outcome = false;\n showSpinner(`Importing providers from ${file}...`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n try {\n const fileData = JSON.parse(data);\n outcome = await frodo.oauth2oidc.external.importSocialProviders(fileData);\n succeedSpinner(`Successfully imported providers from ${file}.`);\n } catch (error) {\n failSpinner(`Error importing providers from ${file}.`);\n printMessage(error.response?.data || error, 'error');\n }\n });\n return outcome;\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n */\nexport async function importSocialProvidersFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.idp.json')\n );\n\n createProgressBar(jsonFiles.length, 'Importing providers...');\n let total = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n const count = Object.keys(fileData.idp).length;\n total += count;\n await frodo.oauth2oidc.external.importSocialProviders(fileData);\n updateProgressBar(`Imported ${count} provider(s) from ${file}`);\n }\n stopProgressBar(\n `Finished importing ${total} provider(s) from ${jsonFiles.length} file(s).`\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"IdpOps.js","names":["frodo","fs","createProgressIndicator","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","getRealmString","getTypedFilename","saveJsonToFile","utils","readSocialIdentityProviders","exportSocialIdentityProvider","exportSocialIdentityProviders","importFirstSocialIdentityProvider","importSocialIdentityProvider","importSocialIdentityProviders","oauth2oidc","external","getFilePath","getWorkingDirectory","getOneLineDescription","socialIdpObj","description","_id","_type","getTableHeaderMd","markdown","getTableRowMd","row","enabled","name","listSocialProviders","providers","sort","a","b","localeCompare","forEach","socialIdentityProvider","err","message","exportSocialIdentityProviderToFile","providerId","file","includeMeta","fileName","filePath","indicatorId","fileData","exportSocialIdentityProvidersToFile","exportSocialIdentityProvidersToFiles","allIdpsData","length","idpData","error","importSocialIdentityProviderFromFile","options","deps","outcome","data","readFileSync","JSON","parse","_error$response","response","importFirstSocialIdentityProviderFromFile","_error$response2","importSocialIdentityProvidersFromFile","_error$response3","importSocialIdentityProvidersFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","map","total","count","Object","keys","idp"],"sources":["../../src/ops/IdpOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport { SocialIdpSkeleton } from '@rockcarver/frodo-lib/types/api/SocialIdentityProvidersApi';\nimport { type SocialIdentityProviderImportOptions } from '@rockcarver/frodo-lib/types/ops/IdpOps';\nimport fs from 'fs';\n\nimport {\n createProgressIndicator,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\n\nconst { getRealmString, getTypedFilename, saveJsonToFile } = frodo.utils;\nconst {\n readSocialIdentityProviders,\n exportSocialIdentityProvider,\n exportSocialIdentityProviders,\n importFirstSocialIdentityProvider,\n importSocialIdentityProvider,\n importSocialIdentityProviders,\n} = frodo.oauth2oidc.external;\n\nconst { getFilePath, getWorkingDirectory } = frodo.utils;\n\n/**\n * Get a one-line description of the social idp object\n * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(socialIdpObj: SocialIdpSkeleton): string {\n const description = `[${socialIdpObj._id['brightCyan']}] ${socialIdpObj._type._id}`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name/Id | Status | Type |\\n';\n markdown += '| ------- | ------ | ---- |';\n return markdown;\n}\n\n/**\n * Get a table-row of the social idp in markdown\n * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe\n * @returns {string} a table-row of the social idp in markdown\n */\nexport function getTableRowMd(socialIdpObj: SocialIdpSkeleton): string {\n const row = `| ${socialIdpObj._id} | ${\n socialIdpObj.enabled === false\n ? ':o: `disabled`'\n : ':white_check_mark: `enabled`'\n } | ${socialIdpObj._type.name} |`;\n return row;\n}\n\n/**\n * List providers\n */\nexport async function listSocialProviders() {\n try {\n const providers = await readSocialIdentityProviders();\n providers.sort((a, b) => a._id.localeCompare(b._id));\n providers.forEach((socialIdentityProvider) => {\n printMessage(`${socialIdentityProvider._id}`, 'data');\n });\n } catch (err) {\n printMessage(`listSocialProviders ERROR: ${err.message}`, 'error');\n printMessage(err, 'error');\n }\n}\n\n/**\n * Export provider by id\n * @param {string} providerId provider id/name\n * @param {string} file optional export file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportSocialIdentityProviderToFile(\n providerId: string,\n file = '',\n includeMeta = true\n) {\n debugMessage(`cli.IdpOps.exportSocialIdentityProviderToFile: start`);\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(providerId, 'idp');\n }\n const filePath = getFilePath(fileName, true);\n const indicatorId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting ${providerId}`\n );\n try {\n updateProgressIndicator(indicatorId, `Writing file ${filePath}`);\n const fileData = await exportSocialIdentityProvider(providerId);\n saveJsonToFile(fileData, filePath, includeMeta);\n stopProgressIndicator(\n indicatorId,\n `Exported ${providerId['brightCyan']} to ${filePath['brightCyan']}.`\n );\n } catch (err) {\n stopProgressIndicator(indicatorId, `${err}`);\n printMessage(`${err}`, 'error');\n }\n debugMessage(`cli.IdpOps.exportSocialIdentityProviderToFile: end`);\n}\n\n/**\n * Export all providers\n * @param {string} file optional export file name\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportSocialIdentityProvidersToFile(\n file = '',\n includeMeta = true\n) {\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(`all${getRealmString()}Providers`, 'idp');\n }\n const fileData = await exportSocialIdentityProviders();\n saveJsonToFile(fileData, getFilePath(fileName, true), includeMeta);\n}\n\n/**\n * Export all providers to individual files\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n */\nexport async function exportSocialIdentityProvidersToFiles(includeMeta = true) {\n debugMessage(`cli.IdpOps.exportSocialIdentityProvidersToFiles: start`);\n let indicatorId: string;\n try {\n const allIdpsData = await readSocialIdentityProviders();\n indicatorId = createProgressIndicator(\n 'determinate',\n allIdpsData.length,\n 'Exporting providers'\n );\n for (const idpData of allIdpsData) {\n try {\n const fileName = getTypedFilename(idpData._id, 'idp');\n const fileData = await exportSocialIdentityProvider(idpData._id);\n saveJsonToFile(fileData, getFilePath(fileName, true), includeMeta);\n updateProgressIndicator(\n indicatorId,\n `Exported provider ${idpData._id}`\n );\n } catch (error) {\n printMessage(`Error exporting ${idpData._id}: ${error}`, 'error');\n }\n }\n stopProgressIndicator(\n indicatorId,\n `${allIdpsData.length} providers exported.`\n );\n } catch (error) {\n stopProgressIndicator(indicatorId, `${error}`);\n printMessage(`${error}`, 'error');\n }\n debugMessage(`cli.IdpOps.exportSocialIdentityProvidersToFiles: end`);\n}\n\n/**\n * Import provider by id/name\n * @param {string} providerId provider id/name\n * @param {string} file import file name\n * @param {SocialIdentityProviderImportOptions} options import options\n * @returns {Promise<boolean>} true if provider was imported successfully, false otherwise\n */\nexport async function importSocialIdentityProviderFromFile(\n providerId: string,\n file: string,\n options: SocialIdentityProviderImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n const indicatorId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing provider ${providerId} from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importSocialIdentityProvider(providerId, fileData, options);\n outcome = true;\n stopProgressIndicator(\n indicatorId,\n `Successfully imported provider ${providerId} from ${filePath}.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error importing provider ${providerId} from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import first provider from file\n * @param {String} file import file name\n * @param {SocialIdentityProviderImportOptions} options import options\n * @returns {Promise<boolean>} true if first provider was imported successfully, false otherwise\n */\nexport async function importFirstSocialIdentityProviderFromFile(\n file: string,\n options: SocialIdentityProviderImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n const indicatorId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing first provider from ${filePath}...`\n );\n try {\n const data = fs.readFileSync(filePath, 'utf8');\n const fileData = JSON.parse(data);\n await importFirstSocialIdentityProvider(fileData, options);\n outcome = true;\n stopProgressIndicator(\n indicatorId,\n `Successfully imported first provider from ${filePath}.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error importing first provider from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import all providers from file\n * @param {string} file import file name\n * @param {SocialIdentityProviderImportOptions} options import options\n * @returns {Promise<boolean>} true if all providers were imported successfully, false otherwise\n */\nexport async function importSocialIdentityProvidersFromFile(\n file: string,\n options: SocialIdentityProviderImportOptions = { deps: true }\n): Promise<boolean> {\n let outcome = false;\n const filePath = getFilePath(file);\n const indicatorId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Importing providers from ${filePath}...`\n );\n const data = fs.readFileSync(filePath, 'utf8');\n try {\n const fileData = JSON.parse(data);\n await importSocialIdentityProviders(fileData, options);\n outcome = true;\n stopProgressIndicator(\n indicatorId,\n `Successfully imported providers from ${filePath}.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error importing providers from ${filePath}.`,\n 'fail'\n );\n printMessage(error.response?.data || error, 'error');\n }\n return outcome;\n}\n\n/**\n * Import providers from *.idp.json files in current working directory\n * @param {SocialIdentityProviderImportOptions} options import options\n */\nexport async function importSocialIdentityProvidersFromFiles(\n options: SocialIdentityProviderImportOptions = { deps: true }\n) {\n const names = fs.readdirSync(getWorkingDirectory());\n const jsonFiles = names\n .filter((name) => name.toLowerCase().endsWith('.idp.json'))\n .map((name) => getFilePath(name));\n\n const indicatorId = createProgressIndicator(\n 'determinate',\n jsonFiles.length,\n 'Importing providers...'\n );\n let total = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n const fileData = JSON.parse(data);\n const count = Object.keys(fileData.idp).length;\n total += count;\n await importSocialIdentityProviders(fileData, options);\n updateProgressIndicator(\n indicatorId,\n `Imported ${count} provider(s) from ${file}`\n );\n }\n stopProgressIndicator(\n indicatorId,\n `Finished importing ${total} provider(s) from ${jsonFiles.length} file(s).`\n );\n}\n"],"mappings":"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"}