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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (482) hide show
  1. package/CHANGELOG.md +365 -6
  2. package/esm/app.js +20 -3
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +33 -7
  5. package/esm/cli/FrodoCommand.js.map +1 -1
  6. package/esm/cli/_template/something-delete.js +4 -5
  7. package/esm/cli/_template/something-delete.js.map +1 -1
  8. package/esm/cli/_template/something-describe.js +4 -5
  9. package/esm/cli/_template/something-describe.js.map +1 -1
  10. package/esm/cli/_template/something-else-delete.js +4 -5
  11. package/esm/cli/_template/something-else-delete.js.map +1 -1
  12. package/esm/cli/_template/something-else-describe.js +4 -5
  13. package/esm/cli/_template/something-else-describe.js.map +1 -1
  14. package/esm/cli/_template/something-else-export.js +5 -6
  15. package/esm/cli/_template/something-else-export.js.map +1 -1
  16. package/esm/cli/_template/something-else-import.js +4 -5
  17. package/esm/cli/_template/something-else-import.js.map +1 -1
  18. package/esm/cli/_template/something-else-list.js +4 -5
  19. package/esm/cli/_template/something-else-list.js.map +1 -1
  20. package/esm/cli/_template/something-else.js +1 -1
  21. package/esm/cli/_template/something-else.js.map +1 -1
  22. package/esm/cli/_template/something-export.js +5 -6
  23. package/esm/cli/_template/something-export.js.map +1 -1
  24. package/esm/cli/_template/something-import.js +4 -5
  25. package/esm/cli/_template/something-import.js.map +1 -1
  26. package/esm/cli/_template/something-list.js +4 -5
  27. package/esm/cli/_template/something-list.js.map +1 -1
  28. package/esm/cli/_template/something-other-delete.js +4 -5
  29. package/esm/cli/_template/something-other-delete.js.map +1 -1
  30. package/esm/cli/_template/something-other-describe.js +4 -5
  31. package/esm/cli/_template/something-other-describe.js.map +1 -1
  32. package/esm/cli/_template/something-other-export.js +5 -6
  33. package/esm/cli/_template/something-other-export.js.map +1 -1
  34. package/esm/cli/_template/something-other-import.js +4 -5
  35. package/esm/cli/_template/something-other-import.js.map +1 -1
  36. package/esm/cli/_template/something-other-list.js +4 -5
  37. package/esm/cli/_template/something-other-list.js.map +1 -1
  38. package/esm/cli/_template/something-other.js +1 -1
  39. package/esm/cli/_template/something-other.js.map +1 -1
  40. package/esm/cli/_template/something.js +2 -2
  41. package/esm/cli/_template/something.js.map +1 -1
  42. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -5
  43. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  44. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +12 -8
  45. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  46. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +38 -0
  47. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +1 -0
  48. package/esm/cli/admin/admin-federation-export.js +41 -0
  49. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  50. package/esm/cli/admin/admin-federation-import.js +45 -0
  51. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  52. package/esm/cli/admin/admin-federation-list.js +25 -0
  53. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  54. package/esm/cli/admin/admin-federation.js +13 -0
  55. package/esm/cli/admin/admin-federation.js.map +1 -0
  56. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +41 -0
  57. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +1 -0
  58. package/esm/cli/admin/admin-get-access-token.js +10 -7
  59. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  60. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +11 -8
  61. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  62. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +9 -6
  63. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  64. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +9 -6
  65. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  66. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +9 -6
  67. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  68. package/esm/cli/admin/admin-list-static-user-mappings.js +10 -7
  69. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  70. package/esm/cli/admin/admin-remove-static-user-mapping.js +10 -6
  71. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  72. package/esm/cli/admin/admin-repair-org-model.js +9 -6
  73. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  74. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +10 -7
  75. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  76. package/esm/cli/admin/admin-show-generic-extension-attributes.js +9 -6
  77. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  78. package/esm/cli/admin/admin-train-auto-access-model.js +30 -0
  79. package/esm/cli/admin/admin-train-auto-access-model.js.map +1 -0
  80. package/esm/cli/admin/admin.js +8 -2
  81. package/esm/cli/admin/admin.js.map +1 -1
  82. package/esm/cli/agent/agent-delete.js +11 -7
  83. package/esm/cli/agent/agent-delete.js.map +1 -1
  84. package/esm/cli/agent/agent-describe.js +4 -5
  85. package/esm/cli/agent/agent-describe.js.map +1 -1
  86. package/esm/cli/agent/agent-export.js +9 -10
  87. package/esm/cli/agent/agent-export.js.map +1 -1
  88. package/esm/cli/agent/agent-gateway-delete.js +11 -7
  89. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-gateway-describe.js +4 -5
  91. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-gateway-export.js +9 -10
  93. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  94. package/esm/cli/agent/agent-gateway-import.js +5 -6
  95. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  96. package/esm/cli/agent/agent-gateway-list.js +4 -5
  97. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  98. package/esm/cli/agent/agent-gateway.js +1 -1
  99. package/esm/cli/agent/agent-gateway.js.map +1 -1
  100. package/esm/cli/agent/agent-import.js +5 -6
  101. package/esm/cli/agent/agent-import.js.map +1 -1
  102. package/esm/cli/agent/agent-java-delete.js +11 -7
  103. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  104. package/esm/cli/agent/agent-java-describe.js +4 -5
  105. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  106. package/esm/cli/agent/agent-java-export.js +9 -10
  107. package/esm/cli/agent/agent-java-export.js.map +1 -1
  108. package/esm/cli/agent/agent-java-import.js +5 -6
  109. package/esm/cli/agent/agent-java-import.js.map +1 -1
  110. package/esm/cli/agent/agent-java-list.js +4 -5
  111. package/esm/cli/agent/agent-java-list.js.map +1 -1
  112. package/esm/cli/agent/agent-java.js +1 -1
  113. package/esm/cli/agent/agent-java.js.map +1 -1
  114. package/esm/cli/agent/agent-list.js +4 -5
  115. package/esm/cli/agent/agent-list.js.map +1 -1
  116. package/esm/cli/agent/agent-web-delete.js +11 -7
  117. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  118. package/esm/cli/agent/agent-web-describe.js +4 -5
  119. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  120. package/esm/cli/agent/agent-web-export.js +9 -10
  121. package/esm/cli/agent/agent-web-export.js.map +1 -1
  122. package/esm/cli/agent/agent-web-import.js +5 -6
  123. package/esm/cli/agent/agent-web-import.js.map +1 -1
  124. package/esm/cli/agent/agent-web-list.js +4 -5
  125. package/esm/cli/agent/agent-web-list.js.map +1 -1
  126. package/esm/cli/agent/agent-web.js +3 -3
  127. package/esm/cli/agent/agent-web.js.map +1 -1
  128. package/esm/cli/agent/agent.js +2 -2
  129. package/esm/cli/agent/agent.js.map +1 -1
  130. package/esm/cli/app/app-delete.js +24 -9
  131. package/esm/cli/app/app-delete.js.map +1 -1
  132. package/esm/cli/app/app-describe.js +6 -6
  133. package/esm/cli/app/app-describe.js.map +1 -1
  134. package/esm/cli/app/app-export.js +14 -14
  135. package/esm/cli/app/app-export.js.map +1 -1
  136. package/esm/cli/app/app-import.js +18 -18
  137. package/esm/cli/app/app-import.js.map +1 -1
  138. package/esm/cli/app/app-list.js +9 -9
  139. package/esm/cli/app/app-list.js.map +1 -1
  140. package/esm/cli/app/app.js +8 -12
  141. package/esm/cli/app/app.js.map +1 -1
  142. package/esm/cli/authn/authn-describe.js +26 -0
  143. package/esm/cli/authn/authn-describe.js.map +1 -0
  144. package/esm/cli/authn/authn-export.js +22 -0
  145. package/esm/cli/authn/authn-export.js.map +1 -0
  146. package/esm/cli/authn/authn-import.js +22 -0
  147. package/esm/cli/authn/authn-import.js.map +1 -0
  148. package/esm/cli/authn/authn.js +12 -0
  149. package/esm/cli/authn/authn.js.map +1 -0
  150. package/esm/cli/authz/authz-policy-delete.js +8 -9
  151. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  152. package/esm/cli/authz/authz-policy-describe.js +5 -6
  153. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  154. package/esm/cli/authz/authz-policy-export.js +15 -16
  155. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  156. package/esm/cli/authz/authz-policy-import.js +8 -9
  157. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  158. package/esm/cli/authz/authz-policy-list.js +8 -9
  159. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  160. package/esm/cli/authz/authz-policy.js +1 -1
  161. package/esm/cli/authz/authz-policy.js.map +1 -1
  162. package/esm/cli/authz/authz-set-delete.js +8 -9
  163. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  164. package/esm/cli/authz/authz-set-describe.js +5 -6
  165. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  166. package/esm/cli/authz/authz-set-export.js +11 -12
  167. package/esm/cli/authz/authz-set-export.js.map +1 -1
  168. package/esm/cli/authz/authz-set-import.js +8 -9
  169. package/esm/cli/authz/authz-set-import.js.map +1 -1
  170. package/esm/cli/authz/authz-set-list.js +6 -7
  171. package/esm/cli/authz/authz-set-list.js.map +1 -1
  172. package/esm/cli/authz/authz-set.js +1 -1
  173. package/esm/cli/authz/authz-set.js.map +1 -1
  174. package/esm/cli/authz/authz-type-delete.js +10 -11
  175. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  176. package/esm/cli/authz/authz-type-describe.js +6 -7
  177. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  178. package/esm/cli/authz/authz-type-export.js +13 -14
  179. package/esm/cli/authz/authz-type-export.js.map +1 -1
  180. package/esm/cli/authz/authz-type-import.js +11 -12
  181. package/esm/cli/authz/authz-type-import.js.map +1 -1
  182. package/esm/cli/authz/authz-type-list.js +6 -7
  183. package/esm/cli/authz/authz-type-list.js.map +1 -1
  184. package/esm/cli/authz/authz-type.js +1 -1
  185. package/esm/cli/authz/authz-type.js.map +1 -1
  186. package/esm/cli/authz/authz.js +2 -2
  187. package/esm/cli/authz/authz.js.map +1 -1
  188. package/esm/cli/config/config-delete.js +18 -0
  189. package/esm/cli/config/config-delete.js.map +1 -0
  190. package/esm/cli/config/config-describe.js +18 -0
  191. package/esm/cli/config/config-describe.js.map +1 -0
  192. package/esm/cli/config/config-export.js +45 -0
  193. package/esm/cli/config/config-export.js.map +1 -0
  194. package/esm/cli/config/config-import.js +54 -0
  195. package/esm/cli/config/config-import.js.map +1 -0
  196. package/esm/cli/config/config-list.js +18 -0
  197. package/esm/cli/config/config-list.js.map +1 -0
  198. package/esm/cli/config/config.js +19 -0
  199. package/esm/cli/config/config.js.map +1 -0
  200. package/esm/cli/conn/conn-delete.js +2 -3
  201. package/esm/cli/conn/conn-delete.js.map +1 -1
  202. package/esm/cli/conn/conn-describe.js +2 -3
  203. package/esm/cli/conn/conn-describe.js.map +1 -1
  204. package/esm/cli/conn/conn-list.js +2 -3
  205. package/esm/cli/conn/conn-list.js.map +1 -1
  206. package/esm/cli/conn/conn-save.js +25 -15
  207. package/esm/cli/conn/conn-save.js.map +1 -1
  208. package/esm/cli/conn/conn.js +2 -2
  209. package/esm/cli/conn/conn.js.map +1 -1
  210. package/esm/cli/email/email-template-export.js +12 -12
  211. package/esm/cli/email/email-template-export.js.map +1 -1
  212. package/esm/cli/email/email-template-import.js +12 -13
  213. package/esm/cli/email/email-template-import.js.map +1 -1
  214. package/esm/cli/email/email-template-list.js +6 -7
  215. package/esm/cli/email/email-template-list.js.map +1 -1
  216. package/esm/cli/email/email-template.js +1 -1
  217. package/esm/cli/email/email-template.js.map +1 -1
  218. package/esm/cli/email/email.js +2 -2
  219. package/esm/cli/email/email.js.map +1 -1
  220. package/esm/cli/esv/esv-apply.js +16 -9
  221. package/esm/cli/esv/esv-apply.js.map +1 -1
  222. package/esm/cli/esv/esv-secret-create.js +13 -8
  223. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  224. package/esm/cli/esv/esv-secret-delete.js +10 -10
  225. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  226. package/esm/cli/esv/esv-secret-describe.js +7 -7
  227. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  228. package/esm/cli/esv/esv-secret-export.js +20 -7
  229. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  230. package/esm/cli/esv/esv-secret-import.js +4 -5
  231. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  232. package/esm/cli/esv/esv-secret-list.js +8 -8
  233. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  234. package/esm/cli/esv/esv-secret-set.js +7 -7
  235. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  236. package/esm/cli/esv/esv-secret-version-activate.js +7 -8
  237. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  238. package/esm/cli/esv/esv-secret-version-create.js +13 -8
  239. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  240. package/esm/cli/esv/esv-secret-version-deactivate.js +7 -8
  241. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  242. package/esm/cli/esv/esv-secret-version-delete.js +10 -10
  243. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  244. package/esm/cli/esv/esv-secret-version-list.js +7 -7
  245. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  246. package/esm/cli/esv/esv-secret-version.js +1 -1
  247. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  248. package/esm/cli/esv/esv-secret.js +2 -3
  249. package/esm/cli/esv/esv-secret.js.map +1 -1
  250. package/esm/cli/esv/esv-variable-create.js +9 -8
  251. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  252. package/esm/cli/esv/esv-variable-delete.js +10 -9
  253. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  254. package/esm/cli/esv/esv-variable-describe.js +8 -8
  255. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  256. package/esm/cli/esv/esv-variable-export.js +21 -7
  257. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  258. package/esm/cli/esv/esv-variable-import.js +4 -5
  259. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  260. package/esm/cli/esv/esv-variable-list.js +8 -8
  261. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  262. package/esm/cli/esv/esv-variable-set.js +10 -9
  263. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  264. package/esm/cli/esv/esv-variable.js +2 -3
  265. package/esm/cli/esv/esv-variable.js.map +1 -1
  266. package/esm/cli/esv/esv.js +2 -2
  267. package/esm/cli/esv/esv.js.map +1 -1
  268. package/esm/cli/idm/idm-count.js +7 -8
  269. package/esm/cli/idm/idm-count.js.map +1 -1
  270. package/esm/cli/idm/idm-export.js +22 -16
  271. package/esm/cli/idm/idm-export.js.map +1 -1
  272. package/esm/cli/idm/idm-import.js +20 -14
  273. package/esm/cli/idm/idm-import.js.map +1 -1
  274. package/esm/cli/idm/idm-list.js +7 -8
  275. package/esm/cli/idm/idm-list.js.map +1 -1
  276. package/esm/cli/idm/idm.js +2 -2
  277. package/esm/cli/idm/idm.js.map +1 -1
  278. package/esm/cli/idp/idp-export.js +10 -10
  279. package/esm/cli/idp/idp-export.js.map +1 -1
  280. package/esm/cli/idp/idp-import.js +22 -14
  281. package/esm/cli/idp/idp-import.js.map +1 -1
  282. package/esm/cli/idp/idp-list.js +7 -7
  283. package/esm/cli/idp/idp-list.js.map +1 -1
  284. package/esm/cli/idp/idp.js +2 -2
  285. package/esm/cli/idp/idp.js.map +1 -1
  286. package/esm/cli/info/info.js +11 -7
  287. package/esm/cli/info/info.js.map +1 -1
  288. package/esm/cli/journey/journey-delete.js +12 -8
  289. package/esm/cli/journey/journey-delete.js.map +1 -1
  290. package/esm/cli/journey/journey-describe.js +20 -12
  291. package/esm/cli/journey/journey-describe.js.map +1 -1
  292. package/esm/cli/journey/journey-disable.js +8 -12
  293. package/esm/cli/journey/journey-disable.js.map +1 -1
  294. package/esm/cli/journey/journey-enable.js +8 -12
  295. package/esm/cli/journey/journey-enable.js.map +1 -1
  296. package/esm/cli/journey/journey-export.js +27 -16
  297. package/esm/cli/journey/journey-export.js.map +1 -1
  298. package/esm/cli/journey/journey-import.js +12 -13
  299. package/esm/cli/journey/journey-import.js.map +1 -1
  300. package/esm/cli/journey/journey-list.js +6 -6
  301. package/esm/cli/journey/journey-list.js.map +1 -1
  302. package/esm/cli/journey/journey-prune.js +21 -13
  303. package/esm/cli/journey/journey-prune.js.map +1 -1
  304. package/esm/cli/journey/journey.js +2 -2
  305. package/esm/cli/journey/journey.js.map +1 -1
  306. package/esm/cli/log/log-fetch.js +65 -35
  307. package/esm/cli/log/log-fetch.js.map +1 -1
  308. package/esm/cli/log/log-key-delete.js +6 -7
  309. package/esm/cli/log/log-key-delete.js.map +1 -1
  310. package/esm/cli/log/log-key-describe.js +4 -5
  311. package/esm/cli/log/log-key-describe.js.map +1 -1
  312. package/esm/cli/log/log-key-list.js +4 -5
  313. package/esm/cli/log/log-key-list.js.map +1 -1
  314. package/esm/cli/log/log-key.js +1 -1
  315. package/esm/cli/log/log-key.js.map +1 -1
  316. package/esm/cli/log/log-list.js +62 -33
  317. package/esm/cli/log/log-list.js.map +1 -1
  318. package/esm/cli/log/log-tail.js +63 -34
  319. package/esm/cli/log/log-tail.js.map +1 -1
  320. package/esm/cli/log/log.js +2 -2
  321. package/esm/cli/log/log.js.map +1 -1
  322. package/esm/cli/oauth/oauth-client-delete.js +18 -0
  323. package/esm/cli/oauth/oauth-client-delete.js.map +1 -0
  324. package/esm/cli/oauth/oauth-client-describe.js +18 -0
  325. package/esm/cli/oauth/oauth-client-describe.js.map +1 -0
  326. package/esm/cli/oauth/oauth-client-export.js +48 -0
  327. package/esm/cli/oauth/oauth-client-export.js.map +1 -0
  328. package/esm/cli/oauth/oauth-client-import.js +53 -0
  329. package/esm/cli/oauth/oauth-client-import.js.map +1 -0
  330. package/esm/cli/oauth/oauth-client-list.js +21 -0
  331. package/esm/cli/oauth/oauth-client-list.js.map +1 -0
  332. package/esm/cli/oauth/oauth-client.js +14 -0
  333. package/esm/cli/oauth/oauth-client.js.map +1 -0
  334. package/esm/cli/oauth/oauth.js +13 -0
  335. package/esm/cli/oauth/oauth.js.map +1 -0
  336. package/esm/cli/realm/realm-add-custom-domain.js +6 -6
  337. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  338. package/esm/cli/realm/realm-describe.js +6 -6
  339. package/esm/cli/realm/realm-describe.js.map +1 -1
  340. package/esm/cli/realm/realm-list.js +5 -6
  341. package/esm/cli/realm/realm-list.js.map +1 -1
  342. package/esm/cli/realm/realm-remove-custom-domain.js +9 -6
  343. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  344. package/esm/cli/realm/realm.js +2 -2
  345. package/esm/cli/realm/realm.js.map +1 -1
  346. package/esm/cli/saml/saml-cot-export.js +12 -12
  347. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  348. package/esm/cli/saml/saml-cot-import.js +13 -13
  349. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  350. package/esm/cli/saml/saml-cot-list.js +7 -7
  351. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  352. package/esm/cli/saml/saml-cot.js +1 -1
  353. package/esm/cli/saml/saml-cot.js.map +1 -1
  354. package/esm/cli/saml/saml-delete.js +12 -8
  355. package/esm/cli/saml/saml-delete.js.map +1 -1
  356. package/esm/cli/saml/saml-describe.js +7 -7
  357. package/esm/cli/saml/saml-describe.js.map +1 -1
  358. package/esm/cli/saml/saml-export.js +18 -12
  359. package/esm/cli/saml/saml-export.js.map +1 -1
  360. package/esm/cli/saml/saml-import.js +22 -14
  361. package/esm/cli/saml/saml-import.js.map +1 -1
  362. package/esm/cli/saml/saml-list.js +7 -7
  363. package/esm/cli/saml/saml-list.js.map +1 -1
  364. package/esm/cli/saml/saml-metadata-export.js +8 -8
  365. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  366. package/esm/cli/saml/saml-metadata.js +1 -1
  367. package/esm/cli/saml/saml-metadata.js.map +1 -1
  368. package/esm/cli/saml/saml.js +2 -2
  369. package/esm/cli/saml/saml.js.map +1 -1
  370. package/esm/cli/script/script-delete.js +19 -8
  371. package/esm/cli/script/script-delete.js.map +1 -1
  372. package/esm/cli/script/script-describe.js +4 -5
  373. package/esm/cli/script/script-describe.js.map +1 -1
  374. package/esm/cli/script/script-export.js +10 -15
  375. package/esm/cli/script/script-export.js.map +1 -1
  376. package/esm/cli/script/script-import.js +16 -10
  377. package/esm/cli/script/script-import.js.map +1 -1
  378. package/esm/cli/script/script-list.js +8 -8
  379. package/esm/cli/script/script-list.js.map +1 -1
  380. package/esm/cli/script/script.js +3 -5
  381. package/esm/cli/script/script.js.map +1 -1
  382. package/esm/cli/service/service-delete.js +5 -5
  383. package/esm/cli/service/service-delete.js.map +1 -1
  384. package/esm/cli/service/service-export.js +10 -11
  385. package/esm/cli/service/service-export.js.map +1 -1
  386. package/esm/cli/service/service-import.js +29 -14
  387. package/esm/cli/service/service-import.js.map +1 -1
  388. package/esm/cli/service/service-list.js +4 -4
  389. package/esm/cli/service/service-list.js.map +1 -1
  390. package/esm/cli/service/service.js +2 -2
  391. package/esm/cli/service/service.js.map +1 -1
  392. package/esm/cli/shell/shell.js +55 -0
  393. package/esm/cli/shell/shell.js.map +1 -0
  394. package/esm/cli/theme/theme-delete.js +11 -11
  395. package/esm/cli/theme/theme-delete.js.map +1 -1
  396. package/esm/cli/theme/theme-export.js +14 -14
  397. package/esm/cli/theme/theme-export.js.map +1 -1
  398. package/esm/cli/theme/theme-import.js +14 -14
  399. package/esm/cli/theme/theme-import.js.map +1 -1
  400. package/esm/cli/theme/theme-list.js +6 -6
  401. package/esm/cli/theme/theme-list.js.map +1 -1
  402. package/esm/cli/theme/theme.js +2 -2
  403. package/esm/cli/theme/theme.js.map +1 -1
  404. package/esm/help/SampleData.js +1 -1
  405. package/esm/help/SampleData.js.map +1 -1
  406. package/esm/launch.js +1 -1
  407. package/esm/launch.js.map +1 -1
  408. package/esm/loader.js +2 -2
  409. package/esm/loader.js.map +1 -1
  410. package/esm/ops/AdminFederationOps.js +231 -0
  411. package/esm/ops/AdminFederationOps.js.map +1 -0
  412. package/esm/ops/AdminOps.js +151 -0
  413. package/esm/ops/AdminOps.js.map +1 -0
  414. package/esm/ops/AgentOps.js +213 -150
  415. package/esm/ops/AgentOps.js.map +1 -1
  416. package/esm/ops/ApplicationOps.js +324 -0
  417. package/esm/ops/ApplicationOps.js.map +1 -0
  418. package/esm/ops/AuthenticateOps.js +28 -0
  419. package/esm/ops/AuthenticateOps.js.map +1 -0
  420. package/esm/ops/AuthenticationSettingsOps.js +90 -0
  421. package/esm/ops/AuthenticationSettingsOps.js.map +1 -0
  422. package/esm/ops/CirclesOfTrustOps.js +98 -78
  423. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  424. package/esm/ops/ConfigOps.js +168 -0
  425. package/esm/ops/ConfigOps.js.map +1 -0
  426. package/esm/ops/ConnectionProfileOps.js +13 -6
  427. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  428. package/esm/ops/EmailTemplateOps.js +122 -127
  429. package/esm/ops/EmailTemplateOps.js.map +1 -1
  430. package/esm/ops/IdmOps.js +101 -182
  431. package/esm/ops/IdmOps.js.map +1 -1
  432. package/esm/ops/IdpOps.js +108 -75
  433. package/esm/ops/IdpOps.js.map +1 -1
  434. package/esm/ops/JourneyOps.js +182 -116
  435. package/esm/ops/JourneyOps.js.map +1 -1
  436. package/esm/ops/LogOps.js +22 -12
  437. package/esm/ops/LogOps.js.map +1 -1
  438. package/esm/ops/NodeOps.js +14 -3
  439. package/esm/ops/NodeOps.js.map +1 -1
  440. package/esm/ops/OAuth2ClientOps.js +71 -49
  441. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  442. package/esm/ops/OrganizationOps.js +14 -22
  443. package/esm/ops/OrganizationOps.js.map +1 -1
  444. package/esm/ops/PolicyOps.js +127 -86
  445. package/esm/ops/PolicyOps.js.map +1 -1
  446. package/esm/ops/PolicySetOps.js +108 -76
  447. package/esm/ops/PolicySetOps.js.map +1 -1
  448. package/esm/ops/RealmOps.js +15 -10
  449. package/esm/ops/RealmOps.js.map +1 -1
  450. package/esm/ops/ResourceTypeOps.js +105 -87
  451. package/esm/ops/ResourceTypeOps.js.map +1 -1
  452. package/esm/ops/Saml2Ops.js +138 -91
  453. package/esm/ops/Saml2Ops.js.map +1 -1
  454. package/esm/ops/Saml2Ops.test_.js.map +1 -1
  455. package/esm/ops/ScriptOps.js +222 -90
  456. package/esm/ops/ScriptOps.js.map +1 -1
  457. package/esm/ops/SecretsOps.js +333 -79
  458. package/esm/ops/SecretsOps.js.map +1 -1
  459. package/esm/ops/ServiceOps.js +97 -54
  460. package/esm/ops/ServiceOps.js.map +1 -1
  461. package/esm/ops/ThemeOps.js +164 -158
  462. package/esm/ops/ThemeOps.js.map +1 -1
  463. package/esm/ops/VariablesOps.js +252 -65
  464. package/esm/ops/VariablesOps.js.map +1 -1
  465. package/esm/ops/utils/OpsUtils.js +1 -1
  466. package/esm/ops/utils/OpsUtils.js.map +1 -1
  467. package/esm/ops/utils/Wordwrap.js +1 -1
  468. package/esm/ops/utils/Wordwrap.js.map +1 -1
  469. package/esm/storage/StaticStorage.js +1 -1
  470. package/esm/storage/StaticStorage.js.map +1 -1
  471. package/esm/utils/Config.js +164 -4
  472. package/esm/utils/Config.js.map +1 -1
  473. package/esm/utils/Console.js +78 -35
  474. package/esm/utils/Console.js.map +1 -1
  475. package/esm/utils/Version.js +20 -17
  476. package/esm/utils/Version.js.map +1 -1
  477. package/global-jest-setup.js +5 -0
  478. package/package.json +56 -37
  479. package/esm/cli/theme/theme-delete.e2e.test_.js.map +0 -1
  480. package/esm/cli/theme/theme-list.e2e.test_.js.map +0 -1
  481. package/esm/utils/ExportImportUtils.js +0 -90
  482. package/esm/utils/ExportImportUtils.js.map +0 -1
@@ -1,39 +1,39 @@
1
- import { FrodoCommand } from '../FrodoCommand';
2
1
  import { Option } from 'commander';
3
- import { frodo } from '@rockcarver/frodo-lib';
4
- import { verboseMessage } from '../../utils/Console';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
5
3
  import { importFirstResourceTypeFromFile, importResourceTypeByNameFromFile, importResourceTypeFromFile, importResourceTypesFromFile, importResourceTypesFromFiles } from '../../ops/ResourceTypeOps';
4
+ import { verboseMessage } from '../../utils/Console';
5
+ import { FrodoCommand } from '../FrodoCommand';
6
6
  const program = new FrodoCommand('frodo authz type import');
7
7
  program.description('Import authorization resource types.').addOption(new Option('-i, --type-id <type-uuid>', 'Resource type uuid. If specified, -a and -A are ignored.')).addOption(new Option('-n, --type-name <type-name>', 'Resource type name. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-a, --all', 'Import all resource types from single file. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all resource types from separate files (*.resourcetype.authz.json) in the current directory. Ignored with -i, -n, or -a.')).action(
8
8
  // implement command logic inside action handler
9
9
  async (host, realm, user, password, options, command) => {
10
10
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
11
  // import by uuid
12
- if (options.typeId && (await frodo.login.getTokens())) {
12
+ if (options.typeId && (await getTokens())) {
13
13
  verboseMessage('Importing authorization resource type by uuid from file...');
14
- const outcome = importResourceTypeFromFile(options.typeId, options.file);
14
+ const outcome = await importResourceTypeFromFile(options.typeId, options.file);
15
15
  if (!outcome) process.exitCode = 1;
16
16
  }
17
17
  // import by name
18
- else if (options.typeName && (await frodo.login.getTokens())) {
18
+ else if (options.typeName && (await getTokens())) {
19
19
  verboseMessage('Importing authorization resource type by name from file...');
20
- const outcome = importResourceTypeByNameFromFile(options.typeName, options.file);
20
+ const outcome = await importResourceTypeByNameFromFile(options.typeName, options.file);
21
21
  if (!outcome) process.exitCode = 1;
22
22
  }
23
23
  // -a/--all
24
- else if (options.all && (await frodo.login.getTokens())) {
24
+ else if (options.all && (await getTokens())) {
25
25
  verboseMessage('Importing all authorization resource types from file...');
26
26
  const outcome = await importResourceTypesFromFile(options.file);
27
27
  if (!outcome) process.exitCode = 1;
28
28
  }
29
29
  // -A/--all-separate
30
- else if (options.allSeparate && (await frodo.login.getTokens())) {
30
+ else if (options.allSeparate && (await getTokens())) {
31
31
  verboseMessage('Importing all authorization resource types from separate files...');
32
32
  const outcome = await importResourceTypesFromFiles();
33
33
  if (!outcome) process.exitCode = 1;
34
34
  }
35
35
  // import first
36
- else if (options.file && (await frodo.login.getTokens())) {
36
+ else if (options.file && (await getTokens())) {
37
37
  verboseMessage(`Importing first authorization resource type from file "${options.file}"...`);
38
38
  const outcome = await importFirstResourceTypeFromFile(options.file);
39
39
  if (!outcome) process.exitCode = 1;
@@ -47,6 +47,5 @@ async (host, realm, user, password, options, command) => {
47
47
  }
48
48
  // end command logic inside action handler
49
49
  );
50
-
51
50
  program.parse();
52
- //# sourceMappingURL=authz-type-import.js.map
51
+ //# sourceMappingURL=authz-type-import.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authz-type-import.js","names":["FrodoCommand","Option","frodo","verboseMessage","importFirstResourceTypeFromFile","importResourceTypeByNameFromFile","importResourceTypeFromFile","importResourceTypesFromFile","importResourceTypesFromFiles","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","typeId","login","getTokens","outcome","file","process","exitCode","typeName","all","allSeparate","help","parse"],"sources":["cli/authz/authz-type-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console';\nimport {\n importFirstResourceTypeFromFile,\n importResourceTypeByNameFromFile,\n importResourceTypeFromFile,\n importResourceTypesFromFile,\n importResourceTypesFromFiles,\n} from '../../ops/ResourceTypeOps';\n\nconst program = new FrodoCommand('frodo authz type import');\n\nprogram\n .description('Import authorization resource types.')\n .addOption(\n new Option(\n '-i, --type-id <type-uuid>',\n 'Resource type uuid. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-n, --type-name <type-name>',\n 'Resource type name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all resource types from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all resource types from separate files (*.resourcetype.authz.json) in the current directory. Ignored with -i, -n, or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by uuid\n if (options.typeId && (await frodo.login.getTokens())) {\n verboseMessage(\n 'Importing authorization resource type by uuid from file...'\n );\n const outcome = importResourceTypeFromFile(\n options.typeId,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // import by name\n else if (options.typeName && (await frodo.login.getTokens())) {\n verboseMessage(\n 'Importing authorization resource type by name from file...'\n );\n const outcome = importResourceTypeByNameFromFile(\n options.typeName,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await frodo.login.getTokens())) {\n verboseMessage(\n 'Importing all authorization resource types from file...'\n );\n const outcome = await importResourceTypesFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // -A/--all-separate\n else if (options.allSeparate && (await frodo.login.getTokens())) {\n verboseMessage(\n 'Importing all authorization resource types from separate files...'\n );\n const outcome = await importResourceTypesFromFiles();\n if (!outcome) process.exitCode = 1;\n }\n // import first\n else if (options.file && (await frodo.login.getTokens())) {\n verboseMessage(\n `Importing first authorization resource type from file \"${options.file}\"...`\n );\n const outcome = await importFirstResourceTypeFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"authz-type-import.js","names":["Option","getTokens","importFirstResourceTypeFromFile","importResourceTypeByNameFromFile","importResourceTypeFromFile","importResourceTypesFromFile","importResourceTypesFromFiles","verboseMessage","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","typeId","outcome","file","process","exitCode","typeName","all","allSeparate","help","parse"],"sources":["../../../src/cli/authz/authz-type-import.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importFirstResourceTypeFromFile,\n importResourceTypeByNameFromFile,\n importResourceTypeFromFile,\n importResourceTypesFromFile,\n importResourceTypesFromFiles,\n} from '../../ops/ResourceTypeOps';\nimport { verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo authz type import');\n\nprogram\n .description('Import authorization resource types.')\n .addOption(\n new Option(\n '-i, --type-id <type-uuid>',\n 'Resource type uuid. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-n, --type-name <type-name>',\n 'Resource type name. If specified, -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all resource types from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all resource types from separate files (*.resourcetype.authz.json) in the current directory. Ignored with -i, -n, or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // import by uuid\n if (options.typeId && (await getTokens())) {\n verboseMessage(\n 'Importing authorization resource type by uuid from file...'\n );\n const outcome = await importResourceTypeFromFile(\n options.typeId,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // import by name\n else if (options.typeName && (await getTokens())) {\n verboseMessage(\n 'Importing authorization resource type by name from file...'\n );\n const outcome = await importResourceTypeByNameFromFile(\n options.typeName,\n options.file\n );\n if (!outcome) process.exitCode = 1;\n }\n // -a/--all\n else if (options.all && (await getTokens())) {\n verboseMessage(\n 'Importing all authorization resource types from file...'\n );\n const outcome = await importResourceTypesFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // -A/--all-separate\n else if (options.allSeparate && (await getTokens())) {\n verboseMessage(\n 'Importing all authorization resource types from separate files...'\n );\n const outcome = await importResourceTypesFromFiles();\n if (!outcome) process.exitCode = 1;\n }\n // import first\n else if (options.file && (await getTokens())) {\n verboseMessage(\n `Importing first authorization resource type from file \"${options.file}\"...`\n );\n const outcome = await importFirstResourceTypeFromFile(options.file);\n if (!outcome) process.exitCode = 1;\n }\n // unrecognized combination of options or no options\n else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,16 +1,16 @@
1
- import { FrodoCommand } from '../FrodoCommand';
2
1
  import { Option } from 'commander';
3
- import { frodo } from '@rockcarver/frodo-lib';
4
- import { verboseMessage } from '../../utils/Console.js';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
5
3
  import { listResourceTypes } from '../../ops/ResourceTypeOps';
4
+ import { verboseMessage } from '../../utils/Console.js';
5
+ import { FrodoCommand } from '../FrodoCommand';
6
6
  const program = new FrodoCommand('frodo authz type list');
7
7
  program.description('List authorization resource types.').addOption(new Option('-l, --long', 'Long with more fields.').default(false, 'false')).action(
8
8
  // implement command logic inside action handler
9
9
  async (host, realm, user, password, options, command) => {
10
10
  command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
11
- if (await frodo.login.getTokens()) {
11
+ if (await getTokens()) {
12
12
  verboseMessage('Listing resource types...');
13
- const outcome = listResourceTypes(options.long);
13
+ const outcome = await listResourceTypes(options.long);
14
14
  if (!outcome) process.exitCode = 1;
15
15
  } else {
16
16
  process.exitCode = 1;
@@ -18,6 +18,5 @@ async (host, realm, user, password, options, command) => {
18
18
  }
19
19
  // end command logic inside action handler
20
20
  );
21
-
22
21
  program.parse();
23
- //# sourceMappingURL=authz-type-list.js.map
22
+ //# sourceMappingURL=authz-type-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authz-type-list.js","names":["FrodoCommand","Option","frodo","verboseMessage","listResourceTypes","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","login","getTokens","outcome","long","process","exitCode","parse"],"sources":["cli/authz/authz-type-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { frodo } from '@rockcarver/frodo-lib';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { listResourceTypes } from '../../ops/ResourceTypeOps';\n\nconst program = new FrodoCommand('frodo authz type list');\n\nprogram\n .description('List authorization resource types.')\n .addOption(\n new Option('-l, --long', 'Long with more fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await frodo.login.getTokens()) {\n verboseMessage('Listing resource types...');\n const outcome = listResourceTypes(options.long);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,KAAK,QAAQ,uBAAuB;AAC7C,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,iBAAiB,QAAQ,2BAA2B;AAE7D,MAAMC,OAAO,GAAG,IAAIL,YAAY,CAAC,uBAAuB,CAAC;AAEzDK,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,SAAS,CACR,IAAIN,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAACO,OAAO,CAAC,KAAK,EAAE,OAAO,CAC3E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMb,KAAK,CAACe,KAAK,CAACC,SAAS,CAAC,CAAC,EAAE;IACjCf,cAAc,CAAC,2BAA2B,CAAC;IAC3C,MAAMgB,OAAO,GAAGf,iBAAiB,CAACU,OAAO,CAACM,IAAI,CAAC;IAC/C,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;;AAEHjB,OAAO,CAACkB,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"authz-type-list.js","names":["Option","getTokens","listResourceTypes","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","outcome","long","process","exitCode","parse"],"sources":["../../../src/cli/authz/authz-type-list.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { listResourceTypes } from '../../ops/ResourceTypeOps';\nimport { verboseMessage } from '../../utils/Console.js';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo authz type list');\n\nprogram\n .description('List authorization resource types.')\n .addOption(\n new Option('-l, --long', 'Long with more fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n verboseMessage('Listing resource types...');\n const outcome = await listResourceTypes(options.long);\n if (!outcome) process.exitCode = 1;\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,iBAAiB,QAAQ,2BAA2B;AAC7D,SAASC,cAAc,QAAQ,wBAAwB;AACvD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,uBAAuB,CAAC;AAEzDC,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,SAAS,CACR,IAAIP,MAAM,CAAC,YAAY,EAAE,wBAAwB,CAAC,CAACQ,OAAO,CAAC,KAAK,EAAE,OAAO,CAC3E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMd,SAAS,CAAC,CAAC,EAAE;IACrBE,cAAc,CAAC,2BAA2B,CAAC;IAC3C,MAAMc,OAAO,GAAG,MAAMf,iBAAiB,CAACY,OAAO,CAACI,IAAI,CAAC;IACrD,IAAI,CAACD,OAAO,EAAEE,OAAO,CAACC,QAAQ,GAAG,CAAC;EACpC,CAAC,MAAM;IACLD,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHf,OAAO,CAACgB,KAAK,CAAC,CAAC"}
@@ -7,4 +7,4 @@ program.command('export', 'Export authorization resource types.');
7
7
  program.command('import', 'Import authorization resource types.');
8
8
  program.command('list', 'List authorization resource types.');
9
9
  program.parse();
10
- //# sourceMappingURL=authz-type.js.map
10
+ //# sourceMappingURL=authz-type.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authz-type.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["cli/authz/authz-type.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo authz type');\n\nprogram.description('Manage authorization resource types.');\n\nprogram.command('delete', 'Delete authorization resource types.');\n\nprogram.command('describe', 'Describe authorization resource types.');\n\nprogram.command('export', 'Export authorization resource types.');\n\nprogram.command('import', 'Import authorization resource types.');\n\nprogram.command('list', 'List authorization resource types.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,kBAAkB,CAAC;AAExDC,OAAO,CAACC,WAAW,CAAC,sCAAsC,CAAC;AAE3DD,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AAEjEF,OAAO,CAACE,OAAO,CAAC,UAAU,EAAE,wCAAwC,CAAC;AAErEF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AAEjEF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AAEjEF,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,oCAAoC,CAAC;AAE7DF,OAAO,CAACG,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"authz-type.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["../../../src/cli/authz/authz-type.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo authz type');\n\nprogram.description('Manage authorization resource types.');\n\nprogram.command('delete', 'Delete authorization resource types.');\n\nprogram.command('describe', 'Describe authorization resource types.');\n\nprogram.command('export', 'Export authorization resource types.');\n\nprogram.command('import', 'Import authorization resource types.');\n\nprogram.command('list', 'List authorization resource types.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,kBAAkB,CAAC;AAExDC,OAAO,CAACC,WAAW,CAAC,sCAAsC,CAAC;AAE3DD,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AAEjEF,OAAO,CAACE,OAAO,CAAC,UAAU,EAAE,wCAAwC,CAAC;AAErEF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AAEjEF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,sCAAsC,CAAC;AAEjEF,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,oCAAoC,CAAC;AAE7DF,OAAO,CAACG,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
- import { FrodoStubCommand } from '../FrodoCommand';
2
1
  import path from 'path';
3
2
  import { fileURLToPath } from 'url';
3
+ import { FrodoStubCommand } from '../FrodoCommand';
4
4
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
5
  export default function setup() {
6
6
  const program = new FrodoStubCommand('authz').description('Manage authotiztion policies, policy sets, and resource types.').executableDir(__dirname);
@@ -9,4 +9,4 @@ export default function setup() {
9
9
  program.command('type', 'Manage resource types.');
10
10
  return program;
11
11
  }
12
- //# sourceMappingURL=authz.js.map
12
+ //# sourceMappingURL=authz.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"authz.js","names":["FrodoStubCommand","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["cli/authz/authz.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new FrodoStubCommand('authz')\n .description(\n 'Manage authotiztion policies, policy sets, and resource types.'\n )\n .executableDir(__dirname);\n\n program.command('set', 'Manage policy sets.');\n\n program.command('policy', 'Manages policies.');\n\n program.command('type', 'Manage resource types.');\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAClD,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIT,gBAAgB,CAAC,OAAO,CAAC,CAC1CU,WAAW,CACV,gEACF,CAAC,CACAC,aAAa,CAACR,SAAS,CAAC;EAE3BM,OAAO,CAACG,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC;EAE7CH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;EAE9CH,OAAO,CAACG,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC;EAEjD,OAAOH,OAAO;AAChB"}
1
+ {"version":3,"file":"authz.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["../../../src/cli/authz/authz.ts"],"sourcesContent":["import path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FrodoStubCommand } from '../FrodoCommand';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new FrodoStubCommand('authz')\n .description(\n 'Manage authotiztion policies, policy sets, and resource types.'\n )\n .executableDir(__dirname);\n\n program.command('set', 'Manage policy sets.');\n\n program.command('policy', 'Manages policies.');\n\n program.command('type', 'Manage resource types.');\n\n return program;\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,SAAS,GAAGH,IAAI,CAACI,OAAO,CAACH,aAAa,CAACI,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIP,gBAAgB,CAAC,OAAO,CAAC,CAC1CQ,WAAW,CACV,gEACF,CAAC,CACAC,aAAa,CAACR,SAAS,CAAC;EAE3BM,OAAO,CAACG,OAAO,CAAC,KAAK,EAAE,qBAAqB,CAAC;EAE7CH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;EAE9CH,OAAO,CAACG,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC;EAEjD,OAAOH,OAAO;AAChB"}
@@ -0,0 +1,18 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { FrodoCommand } from '../FrodoCommand';
4
+ const program = new FrodoCommand('frodo config delete');
5
+ program.description('Delete full cloud configuration.').addOption(new Option('-i, --config-id <config-id>', 'Configuration id. If specified, -a and -A are ignored.')).addOption(new Option('-a, --all', 'Delete full cloud configuration. Ignored with -i.')).addOption(new Option('--no-deep', 'No deep delete. This leaves orphaned configuration artifacts behind.')).action(
6
+ // implement command logic inside action handler
7
+ async (host, realm, user, password, options, command) => {
8
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
9
+ if (await getTokens()) {
10
+ // code goes here
11
+ } else {
12
+ process.exitCode = 1;
13
+ }
14
+ }
15
+ // end command logic inside action handler
16
+ );
17
+ program.parse();
18
+ //# sourceMappingURL=config-delete.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-delete.js","names":["Option","getTokens","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/config/config-delete.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo config delete');\n\nprogram\n .description('Delete full cloud configuration.')\n .addOption(\n new Option(\n '-i, --config-id <config-id>',\n 'Configuration id. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option('-a, --all', 'Delete full cloud configuration. Ignored with -i.')\n )\n .addOption(\n new Option(\n '--no-deep',\n 'No deep delete. This leaves orphaned configuration artifacts behind.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,qBAAqB,CAAC;AAEvDC,OAAO,CACJC,WAAW,CAAC,kCAAkC,CAAC,CAC/CC,SAAS,CACR,IAAIL,MAAM,CACR,6BAA6B,EAC7B,wDACF,CACF,CAAC,CACAK,SAAS,CACR,IAAIL,MAAM,CAAC,WAAW,EAAE,mDAAmD,CAC7E,CAAC,CACAK,SAAS,CACR,IAAIL,MAAM,CACR,WAAW,EACX,sEACF,CACF,CAAC,CACAM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { FrodoCommand } from '../FrodoCommand';
4
+ const program = new FrodoCommand('frodo config describe');
5
+ program.description('Describe full cloud configuration.').addOption(new Option('-i, --config-id <config-id>', 'Configuration id.')).action(
6
+ // implement command logic inside action handler
7
+ async (host, realm, user, password, options, command) => {
8
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
9
+ if (await getTokens()) {
10
+ // code goes here
11
+ } else {
12
+ process.exitCode = 1;
13
+ }
14
+ }
15
+ // end command logic inside action handler
16
+ );
17
+ program.parse();
18
+ //# sourceMappingURL=config-describe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-describe.js","names":["Option","getTokens","FrodoCommand","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/config/config-describe.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo config describe');\n\nprogram\n .description('Describe full cloud configuration.')\n .addOption(new Option('-i, --config-id <config-id>', 'Configuration id.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,uBAAuB,CAAC;AAEzDC,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,SAAS,CAAC,IAAIL,MAAM,CAAC,6BAA6B,EAAE,mBAAmB,CAAC,CAAC,CACzEM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMX,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHZ,OAAO,CAACa,KAAK,CAAC,CAAC"}
@@ -0,0 +1,45 @@
1
+ import { state } from '@rockcarver/frodo-lib';
2
+ import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
4
+ import { exportEverythingToFile, exportEverythingToFiles } from '../../ops/ConfigOps';
5
+ import { printMessage, verboseMessage } from '../../utils/Console';
6
+ import { FrodoCommand } from '../FrodoCommand';
7
+ const program = new FrodoCommand('frodo config export');
8
+ program.description('Export full cloud configuration for all ops that currently support export.').addOption(new Option('-f, --file <file>', 'Name of the export file.')).addOption(new Option('-a, --all', 'Export everything to a single file.')).addOption(new Option('-A, --all-separate', 'Export everything to separate files in the -D directory. Ignored with -a.')).addOption(new Option('--use-string-arrays', 'Where applicable, use string arrays to store multi-line text (e.g. scripts).').default(false, 'off')).addOption(new Option('--no-decode', 'Do not include decoded variable value in variable export').default(false, 'false')).addOption(new Option('-x, --extract', 'Extract scripts from the exported file, and save it to a separate file. Ignored with -a.')).addOption(new Option('-N, --no-metadata', 'Does not include metadata in the export file.')).addOption(new Option('--no-coords', 'Do not include the x and y coordinate positions of the journey/tree nodes.')).addOption(new Option('-d, --default', 'Export all scripts including the default scripts.')).action(
9
+ // implement command logic inside action handler
10
+ async (host, realm, user, password, options, command) => {
11
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
12
+ // --all -a
13
+ if (options.all && (await getTokens())) {
14
+ verboseMessage('Exporting everything to a single file...');
15
+ await exportEverythingToFile(options.file, options.metadata, {
16
+ useStringArrays: options.useStringArrays,
17
+ noDecode: options.decode,
18
+ coords: options.coords,
19
+ includeDefault: options.default
20
+ });
21
+ // require --directory -D for all-separate function
22
+ } else if (options.allSeparate && !state.getDirectory()) {
23
+ printMessage('-D or --directory required when using -A or --all-separate', 'error');
24
+ program.help();
25
+ process.exitCode = 1;
26
+ // --all-separate -A
27
+ } else if (options.allSeparate && (await getTokens())) {
28
+ verboseMessage('Exporting everything to separate files...');
29
+ await exportEverythingToFiles(options.extract, options.metadata, {
30
+ useStringArrays: options.useStringArrays,
31
+ noDecode: options.decode,
32
+ coords: options.coords,
33
+ includeDefault: options.default
34
+ });
35
+ // unrecognized combination of options or no options
36
+ } else {
37
+ verboseMessage('Unrecognized combination of options or no options...');
38
+ program.help();
39
+ process.exitCode = 1;
40
+ }
41
+ }
42
+ // end command logic inside action handler
43
+ );
44
+ program.parse();
45
+ //# sourceMappingURL=config-export.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-export.js","names":["state","Option","getTokens","exportEverythingToFile","exportEverythingToFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","all","file","metadata","useStringArrays","noDecode","decode","coords","includeDefault","allSeparate","getDirectory","help","process","exitCode","extract","parse"],"sources":["../../../src/cli/config/config-export.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n exportEverythingToFile,\n exportEverythingToFiles,\n} from '../../ops/ConfigOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo config export');\n\nprogram\n .description(\n 'Export full cloud configuration for all ops that currently support export.'\n )\n .addOption(new Option('-f, --file <file>', 'Name of the export file.'))\n .addOption(new Option('-a, --all', 'Export everything to a single file.'))\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export everything to separate files in the -D directory. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '--use-string-arrays',\n 'Where applicable, use string arrays to store multi-line text (e.g. scripts).'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--no-decode',\n 'Do not include decoded variable value in variable export'\n ).default(false, 'false')\n )\n .addOption(\n new Option(\n '-x, --extract',\n 'Extract scripts from the exported file, and save it to a separate file. Ignored with -a.'\n )\n )\n .addOption(\n new Option(\n '-N, --no-metadata',\n 'Does not include metadata in the export file.'\n )\n )\n .addOption(\n new Option(\n '--no-coords',\n 'Do not include the x and y coordinate positions of the journey/tree nodes.'\n )\n )\n .addOption(\n new Option(\n '-d, --default',\n 'Export all scripts including the default scripts.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // --all -a\n if (options.all && (await getTokens())) {\n verboseMessage('Exporting everything to a single file...');\n await exportEverythingToFile(options.file, options.metadata, {\n useStringArrays: options.useStringArrays,\n noDecode: options.decode,\n coords: options.coords,\n includeDefault: options.default,\n });\n // require --directory -D for all-separate function\n } else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n // --all-separate -A\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Exporting everything to separate files...');\n await exportEverythingToFiles(options.extract, options.metadata, {\n useStringArrays: options.useStringArrays,\n noDecode: options.decode,\n coords: options.coords,\n includeDefault: options.default,\n });\n // unrecognized combination of options or no options\n } else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { state } from '@rockcarver/frodo-lib';
2
+ import { Option } from 'commander';
3
+ import { getTokens } from '../../ops/AuthenticateOps';
4
+ import { importEverythingFromFile, importEverythingFromFiles } from '../../ops/ConfigOps';
5
+ import { printMessage, verboseMessage } from '../../utils/Console';
6
+ import { FrodoCommand } from '../FrodoCommand';
7
+ const program = new FrodoCommand('frodo config import');
8
+ program.description('Import full cloud configuration.').addOption(new Option('-f, --file <file>', 'Name of the file to import.')).addOption(new Option('-a, --all', 'Import all configuration from the single file -f. Ignored with -i.')).addOption(new Option('-A, --all-separate', 'Import all configuration from separate (.json) files in the (working) directory -D. Ignored with -i or -a.')).addOption(new Option('-C, --clean', 'Remove existing service(s) before importing.')).addOption(new Option('-g, --global', 'Import service(s) as global service(s).')).addOption(new Option('-r, --current-realm', 'Import service(s) into the current realm.')).addOption(new Option('--re-uuid-journeys', 'Generate new UUIDs for all journey nodes during import.').default(false, 'off')).addOption(new Option('--re-uuid-scripts', 'Create new UUIDs for the scripts upon import. Use this to duplicate scripts or create a new versions of the same scripts.').default(false, 'off')).addOption(new Option('-d, --default', 'Import all scripts including the default scripts.')).action(
9
+ // implement command logic inside action handler
10
+ async (host, realm, user, password, options, command) => {
11
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
12
+ // Require --file -f for all function
13
+ if (options.all && !options.file) {
14
+ printMessage('-f or --file required when using -a or --all', 'error');
15
+ program.help();
16
+ process.exitCode = 1;
17
+ // --all -a
18
+ } else if (options.all && (await getTokens())) {
19
+ verboseMessage('Exporting everything from a single file...');
20
+ await importEverythingFromFile(options.file, {
21
+ reUuidJourneys: options.reUuidJourneys,
22
+ reUuidScripts: options.reUuidScripts,
23
+ cleanServices: options.clean,
24
+ global: options.global,
25
+ realm: options.realm,
26
+ includeDefault: options.default
27
+ });
28
+ // require --directory -D for all-separate function
29
+ } else if (options.allSeparate && !state.getDirectory()) {
30
+ printMessage('-D or --directory required when using -A or --all-separate', 'error');
31
+ program.help();
32
+ process.exitCode = 1;
33
+ // --all-separate -A
34
+ } else if (options.allSeparate && (await getTokens())) {
35
+ verboseMessage('Importing everything from separate files...');
36
+ await importEverythingFromFiles({
37
+ reUuidJourneys: options.reUuidJourneys,
38
+ reUuidScripts: options.reUuidScripts,
39
+ cleanServices: options.clean,
40
+ global: options.global,
41
+ realm: options.realm,
42
+ includeDefault: options.default
43
+ });
44
+ // unrecognized combination of options or no options
45
+ } else {
46
+ verboseMessage('Unrecognized combination of options or no options...');
47
+ program.help();
48
+ process.exitCode = 1;
49
+ }
50
+ }
51
+ // end command logic inside action handler
52
+ );
53
+ program.parse();
54
+ //# sourceMappingURL=config-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-import.js","names":["state","Option","getTokens","importEverythingFromFile","importEverythingFromFiles","printMessage","verboseMessage","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","all","file","help","process","exitCode","reUuidJourneys","reUuidScripts","cleanServices","clean","global","includeDefault","allSeparate","getDirectory","parse"],"sources":["../../../src/cli/config/config-import.ts"],"sourcesContent":["import { state } from '@rockcarver/frodo-lib';\nimport { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport {\n importEverythingFromFile,\n importEverythingFromFiles,\n} from '../../ops/ConfigOps';\nimport { printMessage, verboseMessage } from '../../utils/Console';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo config import');\n\nprogram\n .description('Import full cloud configuration.')\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all configuration from the single file -f. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all configuration from separate (.json) files in the (working) directory -D. Ignored with -i or -a.'\n )\n )\n .addOption(\n new Option('-C, --clean', 'Remove existing service(s) before importing.')\n )\n .addOption(\n new Option('-g, --global', 'Import service(s) as global service(s).')\n )\n .addOption(\n new Option(\n '-r, --current-realm',\n 'Import service(s) into the current realm.'\n )\n )\n .addOption(\n new Option(\n '--re-uuid-journeys',\n 'Generate new UUIDs for all journey nodes during import.'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '--re-uuid-scripts',\n 'Create new UUIDs for the scripts upon import. Use this to duplicate scripts or create a new versions of the same scripts.'\n ).default(false, 'off')\n )\n .addOption(\n new Option(\n '-d, --default',\n 'Import all scripts including the default scripts.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n // Require --file -f for all function\n if (options.all && !options.file) {\n printMessage('-f or --file required when using -a or --all', 'error');\n program.help();\n process.exitCode = 1;\n // --all -a\n } else if (options.all && (await getTokens())) {\n verboseMessage('Exporting everything from a single file...');\n await importEverythingFromFile(options.file, {\n reUuidJourneys: options.reUuidJourneys,\n reUuidScripts: options.reUuidScripts,\n cleanServices: options.clean,\n global: options.global,\n realm: options.realm,\n includeDefault: options.default,\n });\n // require --directory -D for all-separate function\n } else if (options.allSeparate && !state.getDirectory()) {\n printMessage(\n '-D or --directory required when using -A or --all-separate',\n 'error'\n );\n program.help();\n process.exitCode = 1;\n // --all-separate -A\n } else if (options.allSeparate && (await getTokens())) {\n verboseMessage('Importing everything from separate files...');\n await importEverythingFromFiles({\n reUuidJourneys: options.reUuidJourneys,\n reUuidScripts: options.reUuidScripts,\n cleanServices: options.clean,\n global: options.global,\n realm: options.realm,\n includeDefault: options.default,\n });\n // unrecognized combination of options or no options\n } else {\n verboseMessage('Unrecognized combination of options or no options...');\n program.help();\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1,18 @@
1
+ import { Option } from 'commander';
2
+ import { getTokens } from '../../ops/AuthenticateOps';
3
+ import { FrodoCommand } from '../FrodoCommand';
4
+ const program = new FrodoCommand('frodo config list');
5
+ program.description('List full cloud configuration.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
6
+ // implement command logic inside action handler
7
+ async (host, realm, user, password, options, command) => {
8
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
9
+ if (await getTokens()) {
10
+ // code goes here
11
+ } else {
12
+ process.exitCode = 1;
13
+ }
14
+ }
15
+ // end command logic inside action handler
16
+ );
17
+ program.parse();
18
+ //# sourceMappingURL=config-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config-list.js","names":["Option","getTokens","FrodoCommand","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["../../../src/cli/config/config-list.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { getTokens } from '../../ops/AuthenticateOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo config list');\n\nprogram\n .description('List full cloud configuration.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,SAAS,QAAQ,2BAA2B;AACrD,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,mBAAmB,CAAC;AAErDC,OAAO,CACJC,WAAW,CAAC,gCAAgC,CAAC,CAC7CC,SAAS,CACR,IAAIL,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACM,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OACF,CAAC;EACD,IAAI,MAAMZ,SAAS,CAAC,CAAC,EAAE;IACrB;EAAA,CACD,MAAM;IACLc,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AACF,CAAC;AAEHb,OAAO,CAACc,KAAK,CAAC,CAAC"}
@@ -0,0 +1,19 @@
1
+ import path from 'path';
2
+ import { fileURLToPath } from 'url';
3
+ import { FrodoStubCommand } from '../FrodoCommand';
4
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
+ export default function setup() {
6
+ const program = new FrodoStubCommand('config').description('Manage full cloud configuration.').executableDir(__dirname);
7
+
8
+ //program.command('list', 'List full cloud configuration.');
9
+
10
+ //program.command('describe', 'Describe full cloud configuration.');
11
+
12
+ program.command('export', 'Export full cloud configuration for all ops that currently support export..');
13
+ program.command('import', 'Import full cloud configuration for all ops that currently support import.');
14
+
15
+ //program.command('delete', 'Delete full cloud configuration.');
16
+
17
+ return program;
18
+ }
19
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","names":["path","fileURLToPath","FrodoStubCommand","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["../../../src/cli/config/config.ts"],"sourcesContent":["import path from 'path';\nimport { fileURLToPath } from 'url';\n\nimport { FrodoStubCommand } from '../FrodoCommand';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new FrodoStubCommand('config')\n .description('Manage full cloud configuration.')\n .executableDir(__dirname);\n\n //program.command('list', 'List full cloud configuration.');\n\n //program.command('describe', 'Describe full cloud configuration.');\n\n program.command(\n 'export',\n 'Export full cloud configuration for all ops that currently support export..'\n );\n\n program.command(\n 'import',\n 'Import full cloud configuration for all ops that currently support import.'\n );\n\n //program.command('delete', 'Delete full cloud configuration.');\n\n return program;\n}\n"],"mappings":"AAAA,OAAOA,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,SAASC,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,SAAS,GAAGH,IAAI,CAACI,OAAO,CAACH,aAAa,CAACI,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAKA,CAAA,EAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIP,gBAAgB,CAAC,QAAQ,CAAC,CAC3CQ,WAAW,CAAC,kCAAkC,CAAC,CAC/CC,aAAa,CAACR,SAAS,CAAC;;EAE3B;;EAEA;;EAEAM,OAAO,CAACG,OAAO,CACb,QAAQ,EACR,6EACF,CAAC;EAEDH,OAAO,CAACG,OAAO,CACb,QAAQ,EACR,4EACF,CAAC;;EAED;;EAEA,OAAOH,OAAO;AAChB"}
@@ -1,5 +1,5 @@
1
- import { FrodoCommand } from '../FrodoCommand';
2
1
  import { frodo } from '@rockcarver/frodo-lib';
2
+ import { FrodoCommand } from '../FrodoCommand';
3
3
  const program = new FrodoCommand('frodo conn delete', ['realm', 'username', 'password', 'type', 'insecure', 'curlirize']);
4
4
  program.description('Delete connection profiles.').action(
5
5
  // implement command logic inside action handler
@@ -9,6 +9,5 @@ async (host, options, command) => {
9
9
  }
10
10
  // end command logic inside action handler
11
11
  );
12
-
13
12
  program.parse();
14
- //# sourceMappingURL=conn-delete.js.map
13
+ //# sourceMappingURL=conn-delete.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conn-delete.js","names":["FrodoCommand","frodo","program","description","action","host","options","command","handleDefaultArgsAndOpts","conn","deleteConnectionProfile","parse"],"sources":["cli/conn/conn-delete.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { frodo } from '@rockcarver/frodo-lib';\n\nconst program = new FrodoCommand('frodo conn delete', [\n 'realm',\n 'username',\n 'password',\n 'type',\n 'insecure',\n 'curlirize',\n]);\n\nprogram.description('Delete connection profiles.').action(\n // implement command logic inside action handler\n async (host, options, command) => {\n command.handleDefaultArgsAndOpts(host, options, command);\n frodo.conn.deleteConnectionProfile(host);\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,KAAK,QAAQ,uBAAuB;AAE7C,MAAMC,OAAO,GAAG,IAAIF,YAAY,CAAC,mBAAmB,EAAE,CACpD,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAC;AAEFE,OAAO,CAACC,WAAW,CAAC,6BAA6B,CAAC,CAACC,MAAM;AACvD;AACA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAChCA,OAAO,CAACC,wBAAwB,CAACH,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxDN,KAAK,CAACQ,IAAI,CAACC,uBAAuB,CAACL,IAAI,CAAC;AAC1C;AACA;AACF,CAAC;;AAEDH,OAAO,CAACS,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"conn-delete.js","names":["frodo","FrodoCommand","program","description","action","host","options","command","handleDefaultArgsAndOpts","conn","deleteConnectionProfile","parse"],"sources":["../../../src/cli/conn/conn-delete.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\n\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo conn delete', [\n 'realm',\n 'username',\n 'password',\n 'type',\n 'insecure',\n 'curlirize',\n]);\n\nprogram.description('Delete connection profiles.').action(\n // implement command logic inside action handler\n async (host, options, command) => {\n command.handleDefaultArgsAndOpts(host, options, command);\n frodo.conn.deleteConnectionProfile(host);\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAE7C,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,mBAAmB,EAAE,CACpD,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAC;AAEFC,OAAO,CAACC,WAAW,CAAC,6BAA6B,CAAC,CAACC,MAAM;AACvD;AACA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAChCA,OAAO,CAACC,wBAAwB,CAACH,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxDP,KAAK,CAACS,IAAI,CAACC,uBAAuB,CAACL,IAAI,CAAC;AAC1C;AACA;AACF,CAAC;AAEDH,OAAO,CAACS,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
+ import { Option } from 'commander';
1
2
  import { describeConnectionProfile } from '../../ops/ConnectionProfileOps';
2
3
  import { FrodoCommand } from '../FrodoCommand';
3
- import { Option } from 'commander';
4
4
  const program = new FrodoCommand('frodo conn describe', ['realm', 'username', 'password', 'type', 'insecure', 'curlirize']);
5
5
  program.description('Describe connection profile.').addOption(new Option('--show-secrets', 'Show passwords and secrets.')).action(
6
6
  // implement command logic inside action handler
@@ -10,6 +10,5 @@ async (host, options, command) => {
10
10
  }
11
11
  // end command logic inside action handler
12
12
  );
13
-
14
13
  program.parse();
15
- //# sourceMappingURL=conn-describe.js.map
14
+ //# sourceMappingURL=conn-describe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conn-describe.js","names":["describeConnectionProfile","FrodoCommand","Option","program","description","addOption","action","host","options","command","handleDefaultArgsAndOpts","showSecrets","parse"],"sources":["cli/conn/conn-describe.ts"],"sourcesContent":["import { describeConnectionProfile } from '../../ops/ConnectionProfileOps';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\n\nconst program = new FrodoCommand('frodo conn describe', [\n 'realm',\n 'username',\n 'password',\n 'type',\n 'insecure',\n 'curlirize',\n]);\n\nprogram\n .description('Describe connection profile.')\n .addOption(new Option('--show-secrets', 'Show passwords and secrets.'))\n .action(\n // implement command logic inside action handler\n async (host, options, command) => {\n command.handleDefaultArgsAndOpts(host, options, command);\n describeConnectionProfile(host, options.showSecrets);\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,yBAAyB,QAAQ,gCAAgC;AAC1E,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAElC,MAAMC,OAAO,GAAG,IAAIF,YAAY,CAAC,qBAAqB,EAAE,CACtD,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAC;AAEFE,OAAO,CACJC,WAAW,CAAC,8BAA8B,CAAC,CAC3CC,SAAS,CAAC,IAAIH,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,CAAC,CACtEI,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAChCA,OAAO,CAACC,wBAAwB,CAACH,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxDT,yBAAyB,CAACO,IAAI,EAAEC,OAAO,CAACG,WAAW,CAAC;AACtD;AACA;AACF,CAAC;;AAEHR,OAAO,CAACS,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"conn-describe.js","names":["Option","describeConnectionProfile","FrodoCommand","program","description","addOption","action","host","options","command","handleDefaultArgsAndOpts","showSecrets","parse"],"sources":["../../../src/cli/conn/conn-describe.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { describeConnectionProfile } from '../../ops/ConnectionProfileOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo conn describe', [\n 'realm',\n 'username',\n 'password',\n 'type',\n 'insecure',\n 'curlirize',\n]);\n\nprogram\n .description('Describe connection profile.')\n .addOption(new Option('--show-secrets', 'Show passwords and secrets.'))\n .action(\n // implement command logic inside action handler\n async (host, options, command) => {\n command.handleDefaultArgsAndOpts(host, options, command);\n describeConnectionProfile(host, options.showSecrets);\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,yBAAyB,QAAQ,gCAAgC;AAC1E,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,qBAAqB,EAAE,CACtD,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAC;AAEFC,OAAO,CACJC,WAAW,CAAC,8BAA8B,CAAC,CAC3CC,SAAS,CAAC,IAAIL,MAAM,CAAC,gBAAgB,EAAE,6BAA6B,CAAC,CAAC,CACtEM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,OAAO,EAAEC,OAAO,KAAK;EAChCA,OAAO,CAACC,wBAAwB,CAACH,IAAI,EAAEC,OAAO,EAAEC,OAAO,CAAC;EACxDR,yBAAyB,CAACM,IAAI,EAAEC,OAAO,CAACG,WAAW,CAAC;AACtD;AACA;AACF,CAAC;AAEHR,OAAO,CAACS,KAAK,CAAC,CAAC"}
@@ -1,6 +1,6 @@
1
+ import { Option } from 'commander';
1
2
  import { listConnectionProfiles } from '../../ops/ConnectionProfileOps';
2
3
  import { FrodoCommand } from '../FrodoCommand';
3
- import { Option } from 'commander';
4
4
  const program = new FrodoCommand('frodo conn list', ['host', 'realm', 'username', 'password', 'type', 'insecure', 'curlirize']);
5
5
  program.description('List connection profiles.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
6
6
  // implement command logic inside action handler
@@ -10,6 +10,5 @@ async (options, command) => {
10
10
  }
11
11
  // end command logic inside action handler
12
12
  );
13
-
14
13
  program.parse();
15
- //# sourceMappingURL=conn-list.js.map
14
+ //# sourceMappingURL=conn-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"conn-list.js","names":["listConnectionProfiles","FrodoCommand","Option","program","description","addOption","default","action","options","command","handleDefaultArgsAndOpts","long","parse"],"sources":["cli/conn/conn-list.ts"],"sourcesContent":["import { listConnectionProfiles } from '../../ops/ConnectionProfileOps';\nimport { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\n\nconst program = new FrodoCommand('frodo conn list', [\n 'host',\n 'realm',\n 'username',\n 'password',\n 'type',\n 'insecure',\n 'curlirize',\n]);\n\nprogram\n .description('List connection profiles.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (options, command) => {\n command.handleDefaultArgsAndOpts(options, command);\n listConnectionProfiles(options.long);\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAElC,MAAMC,OAAO,GAAG,IAAIF,YAAY,CAAC,iBAAiB,EAAE,CAClD,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAC;AAEFE,OAAO,CACJC,WAAW,CAAC,2BAA2B,CAAC,CACxCC,SAAS,CACR,IAAIH,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACI,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,OAAO,EAAEC,OAAO,KAAK;EAC1BA,OAAO,CAACC,wBAAwB,CAACF,OAAO,EAAEC,OAAO,CAAC;EAClDT,sBAAsB,CAACQ,OAAO,CAACG,IAAI,CAAC;AACtC;AACA;AACF,CAAC;;AAEHR,OAAO,CAACS,KAAK,CAAC,CAAC"}
1
+ {"version":3,"file":"conn-list.js","names":["Option","listConnectionProfiles","FrodoCommand","program","description","addOption","default","action","options","command","handleDefaultArgsAndOpts","long","parse"],"sources":["../../../src/cli/conn/conn-list.ts"],"sourcesContent":["import { Option } from 'commander';\n\nimport { listConnectionProfiles } from '../../ops/ConnectionProfileOps';\nimport { FrodoCommand } from '../FrodoCommand';\n\nconst program = new FrodoCommand('frodo conn list', [\n 'host',\n 'realm',\n 'username',\n 'password',\n 'type',\n 'insecure',\n 'curlirize',\n]);\n\nprogram\n .description('List connection profiles.')\n .addOption(\n new Option('-l, --long', 'Long with all fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (options, command) => {\n command.handleDefaultArgsAndOpts(options, command);\n listConnectionProfiles(options.long);\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,MAAM,QAAQ,WAAW;AAElC,SAASC,sBAAsB,QAAQ,gCAAgC;AACvE,SAASC,YAAY,QAAQ,iBAAiB;AAE9C,MAAMC,OAAO,GAAG,IAAID,YAAY,CAAC,iBAAiB,EAAE,CAClD,MAAM,EACN,OAAO,EACP,UAAU,EACV,UAAU,EACV,MAAM,EACN,UAAU,EACV,WAAW,CACZ,CAAC;AAEFC,OAAO,CACJC,WAAW,CAAC,2BAA2B,CAAC,CACxCC,SAAS,CACR,IAAIL,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACM,OAAO,CAAC,KAAK,EAAE,OAAO,CAC1E,CAAC,CACAC,MAAM;AACL;AACA,OAAOC,OAAO,EAAEC,OAAO,KAAK;EAC1BA,OAAO,CAACC,wBAAwB,CAACF,OAAO,EAAEC,OAAO,CAAC;EAClDR,sBAAsB,CAACO,OAAO,CAACG,IAAI,CAAC;AACtC;AACA;AACF,CAAC;AAEHR,OAAO,CAACS,KAAK,CAAC,CAAC"}