@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
@@ -1,133 +1,320 @@
1
- import { frodo } from '@rockcarver/frodo-lib';
2
- import { createKeyValueTable, createProgressBar, createTable, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
1
+ import { frodo, state } from '@rockcarver/frodo-lib';
2
+ import { getFullExportConfig, isIdUsed } from '../utils/Config';
3
+ import { createKeyValueTable, createProgressIndicator, createTable, debugMessage, printMessage, stopProgressIndicator, updateProgressIndicator } from '../utils/Console';
3
4
  import wordwrap from './utils/Wordwrap';
5
+ const {
6
+ decodeBase64,
7
+ getFilePath,
8
+ getTypedFilename,
9
+ saveJsonToFile,
10
+ saveToFile,
11
+ titleCase
12
+ } = frodo.utils;
13
+ const {
14
+ resolvePerpetratorUuid
15
+ } = frodo.idm.managed;
16
+ const {
17
+ readVariables,
18
+ readVariable,
19
+ exportVariable,
20
+ exportVariables,
21
+ deleteVariable,
22
+ updateVariableDescription,
23
+ updateVariable: _updateVariable
24
+ } = frodo.cloud.variable;
4
25
 
5
26
  /**
6
27
  * List variables
7
- * @param {boolean} long Long version, all the fields
28
+ * @param {boolean} long Long version, all the fields besides usage
29
+ * @param {boolean} usage Display usage field
30
+ * @param {String | null} file Optional filename to determine usage
31
+ * @returns {Promise<boolean>} true if successful, false otherwise
8
32
  */
9
- export async function listVariables(long) {
33
+ export async function listVariables(long = false, usage = false, file = null) {
34
+ let spinnerId;
10
35
  let variables = [];
11
36
  try {
12
- variables = (await frodo.cloud.variable.getVariables()).result;
37
+ spinnerId = createProgressIndicator('indeterminate', 0, `Reading variables...`);
38
+ variables = await readVariables();
13
39
  variables.sort((a, b) => a._id.localeCompare(b._id));
40
+ stopProgressIndicator(spinnerId, `Successfully read ${variables.length} variables.`, 'success');
14
41
  } catch (error) {
15
- printMessage(`${error.message}`, 'error');
16
- printMessage(error.response.data, 'error');
42
+ var _error$response;
43
+ stopProgressIndicator(spinnerId, `Error reading variables: ${((_error$response = error.response) === null || _error$response === void 0 ? void 0 : _error$response.data) || error.message}`, 'fail');
44
+ return false;
17
45
  }
18
- if (long) {
19
- const table = createTable(['Id'['brightCyan'], 'Value'['brightCyan'], 'Status'['brightCyan'], 'Description'['brightCyan'], 'Modifier'['brightCyan'], 'Modified'['brightCyan']]);
20
- for (const variable of variables) {
21
- table.push([variable._id, wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40),
22
- // eslint-disable-next-line no-await-in-loop
23
- await frodo.idm.managed.resolveUserName('teammember', variable.lastChangedBy), new Date(variable.lastChangeDate).toLocaleString()]);
24
- }
25
- printMessage(table.toString(), 'data');
26
- } else {
27
- variables.forEach(secret => {
28
- printMessage(secret._id, 'data');
46
+ if (!long && !usage) {
47
+ variables.forEach(variable => {
48
+ printMessage(variable._id, 'data');
29
49
  });
50
+ return true;
51
+ }
52
+ let fullExport = null;
53
+ const headers = long ? ['Id'['brightCyan'], 'Value'['brightCyan'], 'Status'['brightCyan'], 'Description'['brightCyan'], 'Modifier'['brightCyan'], 'Modified (UTC)'['brightCyan']] : ['Id'['brightCyan']];
54
+ if (usage) {
55
+ try {
56
+ fullExport = await getFullExportConfig(file);
57
+ } catch (error) {
58
+ var _error$response2;
59
+ printMessage(`Error getting full export: ${((_error$response2 = error.response) === null || _error$response2 === void 0 ? void 0 : _error$response2.data) || error.message}`, 'error');
60
+ return false;
61
+ }
62
+ //Delete variables from full export so they aren't mistakenly used for determining usage
63
+ delete fullExport.variables;
64
+ headers.push('Used'['brightCyan']);
65
+ }
66
+ const table = createTable(headers);
67
+ for (const variable of variables) {
68
+ const values = long ? [variable._id, wordwrap(decodeBase64(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40), state.getUseBearerTokenForAmApis() ? variable.lastChangedBy : await resolvePerpetratorUuid(variable.lastChangedBy), new Date(variable.lastChangeDate).toUTCString()] : [variable._id];
69
+ if (usage) {
70
+ const isEsvUsed = isIdUsed(fullExport, variable._id, true);
71
+ values.push(isEsvUsed.used ? `${'yes'['brightGreen']} (at ${isEsvUsed.location})` : 'no'['brightRed']);
72
+ }
73
+ table.push(values);
30
74
  }
75
+ printMessage(table.toString(), 'data');
76
+ return true;
31
77
  }
32
78
 
33
79
  /**
34
80
  * Create variable
35
- * @param {String} variableId variable id
36
- * @param {String} value variable value
37
- * @param {String} description variable description
81
+ * @param {string} variableId variable id
82
+ * @param {string} value variable value
83
+ * @param {string} description variable description
84
+ * @param {VariableExpressionType} type variable type
85
+ * @returns {Promise<boolean>} true if successful, false otherwise
38
86
  */
39
- export async function createVariable(variableId, value, description) {
40
- showSpinner(`Creating variable ${variableId}...`);
87
+ export async function createVariable(variableId, value, description, type = 'string') {
88
+ let outcome = false;
89
+ const spinnerId = createProgressIndicator('indeterminate', 0, `Creating variable ${variableId}...`);
41
90
  try {
42
- await frodo.cloud.variable.putVariable(variableId, value, description);
43
- succeedSpinner(`Created variable ${variableId}`);
91
+ await _updateVariable(variableId, value, description, type);
92
+ stopProgressIndicator(spinnerId, `Created variable ${variableId}`, 'success');
93
+ outcome = true;
44
94
  } catch (error) {
45
- failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
95
+ stopProgressIndicator(spinnerId, error.response ? `Error: ${error.response.data.code} - ${error.response.data.message}` : error, 'fail');
46
96
  }
97
+ return outcome;
47
98
  }
48
99
 
49
100
  /**
50
101
  * Update variable
51
- * @param {String} variableId variable id
52
- * @param {String} value variable value
53
- * @param {String} description variable description
102
+ * @param {string} variableId variable id
103
+ * @param {string} value variable value
104
+ * @param {string} description variable description
105
+ * @returns {Promise<boolean>} true if successful, false otherwise
54
106
  */
55
107
  export async function updateVariable(variableId, value, description) {
56
- showSpinner(`Updating variable ${variableId}...`);
108
+ let outcome = false;
109
+ const spinnerId = createProgressIndicator('indeterminate', 0, `Updating variable ${variableId}...`);
57
110
  try {
58
- await frodo.cloud.variable.putVariable(variableId, value, description);
59
- succeedSpinner(`Updated variable ${variableId}`);
111
+ await _updateVariable(variableId, value, description);
112
+ stopProgressIndicator(spinnerId, `Updated variable ${variableId}`, 'success');
113
+ outcome = true;
60
114
  } catch (error) {
61
- failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
115
+ stopProgressIndicator(spinnerId, `Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
62
116
  }
117
+ return outcome;
63
118
  }
64
119
 
65
120
  /**
66
121
  * Set description of variable
67
- * @param {String} variableId variable id
68
- * @param {String} description variable description
122
+ * @param {string} variableId variable id
123
+ * @param {string} description variable description
124
+ * @returns {Promise<boolean>} true if successful, false otherwise
69
125
  */
70
126
  export async function setVariableDescription(variableId, description) {
71
- showSpinner(`Setting description of variable ${variableId}...`);
127
+ let outcome = false;
128
+ const spinnerId = createProgressIndicator('indeterminate', 0, `Setting description of variable ${variableId}...`);
72
129
  try {
73
- await frodo.cloud.variable.setVariableDescription(variableId, description);
74
- succeedSpinner(`Set description of variable ${variableId}`);
130
+ await updateVariableDescription(variableId, description);
131
+ stopProgressIndicator(spinnerId, `Set description of variable ${variableId}`, 'success');
132
+ outcome = true;
75
133
  } catch (error) {
76
- failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
134
+ stopProgressIndicator(spinnerId, `Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
77
135
  }
136
+ return outcome;
78
137
  }
79
138
 
80
139
  /**
81
140
  * Delete a variable
82
- * @param {String} variableId variable id
141
+ * @param {string} variableId variable id
142
+ * @returns {Promise<boolean>} true if successful, false otherwise
83
143
  */
84
- export async function deleteVariable(variableId) {
85
- showSpinner(`Deleting variable ${variableId}...`);
144
+ export async function deleteVariableById(variableId) {
145
+ let outcome = false;
146
+ const spinnerId = createProgressIndicator('indeterminate', 0, `Deleting variable ${variableId}...`);
86
147
  try {
87
- await frodo.cloud.variable.deleteVariable(variableId);
88
- succeedSpinner(`Deleted variable ${variableId}`);
148
+ await deleteVariable(variableId);
149
+ stopProgressIndicator(spinnerId, `Deleted variable ${variableId}`, 'success');
150
+ outcome = true;
89
151
  } catch (error) {
90
- failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
152
+ stopProgressIndicator(spinnerId, `Error: ${error.response.data.code} - ${error.response.data.message}`, 'fail');
91
153
  }
154
+ return outcome;
92
155
  }
93
156
 
94
157
  /**
95
158
  * Delete all variables
159
+ * @returns {Promise<boolean>} true if successful, false otherwise
96
160
  */
97
161
  export async function deleteVariables() {
162
+ let outcome = false;
163
+ let indicatorId;
98
164
  try {
99
- const variables = (await frodo.cloud.variable.getVariables()).result;
100
- createProgressBar(variables.length, `Deleting variable...`);
165
+ const variables = await readVariables();
166
+ indicatorId = createProgressIndicator('determinate', variables.length, `Deleting variable...`);
101
167
  for (const variable of variables) {
102
168
  try {
103
- // eslint-disable-next-line no-await-in-loop
104
- await frodo.cloud.variable.deleteVariable(variable._id);
105
- updateProgressBar(`Deleted variable ${variable._id}`);
169
+ await deleteVariable(variable._id);
170
+ updateProgressIndicator(indicatorId, `Deleted variable ${variable._id}`);
106
171
  } catch (error) {
107
172
  printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
108
173
  }
109
174
  }
110
- stopProgressBar(`Variables deleted.`);
175
+ outcome = true;
176
+ stopProgressIndicator(indicatorId, `Variables deleted.`);
111
177
  } catch (error) {
112
- stopProgressBar(`Error: ${error.response.data.code} - ${error.response.data.message}`);
178
+ stopProgressIndicator(indicatorId, `Error: ${error.response.data.code} - ${error.response.data.message}`);
113
179
  printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
114
180
  }
181
+ return outcome;
115
182
  }
116
183
 
117
184
  /**
118
185
  * Describe a variable
119
- * @param {String} variableId variable id
186
+ * @param {string} variableId variable id
187
+ * @returns {Promise<boolean>} true if successful, false otherwise
120
188
  */
121
- export async function describeVariable(variableId) {
122
- const variable = await frodo.cloud.variable.getVariable(variableId);
123
- const table = createKeyValueTable();
124
- table.push(['Name'['brightCyan'], variable._id]);
125
- table.push(['Value'['brightCyan'], wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40)]);
126
- table.push(['Status'['brightCyan'], variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
127
- table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);
128
- table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
129
- table.push(['Modifier'['brightCyan'], await frodo.idm.managed.resolveUserName('teammember', variable.lastChangedBy)]);
130
- table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
131
- printMessage(table.toString());
189
+ export async function describeVariable(variableId, json = false) {
190
+ let outcome = false;
191
+ const spinnerId = createProgressIndicator('indeterminate', 0, `Describing variable ${variableId}...`);
192
+ try {
193
+ const variable = await readVariable(variableId);
194
+ stopProgressIndicator(spinnerId, `Successfully retrieved variable ${variableId}`, 'success');
195
+ if (json) {
196
+ printMessage(variable, 'data');
197
+ } else {
198
+ const table = createKeyValueTable();
199
+ table.push(['Name'['brightCyan'], variable._id]);
200
+ table.push(['Value'['brightCyan'], wordwrap(decodeBase64(variable.valueBase64), 40)]);
201
+ table.push(['Type'['brightCyan'], variable.expressionType]);
202
+ table.push(['Status'['brightCyan'], variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
203
+ table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);
204
+ table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
205
+ let modifierName;
206
+ try {
207
+ modifierName = await resolvePerpetratorUuid(variable.lastChangedBy);
208
+ } catch (error) {
209
+ // ignore
210
+ }
211
+ if (modifierName && modifierName !== variable.lastChangedBy) {
212
+ table.push(['Modifier'['brightCyan'], modifierName]);
213
+ }
214
+ table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
215
+ printMessage(table.toString(), 'data');
216
+ }
217
+ outcome = true;
218
+ } catch (error) {
219
+ stopProgressIndicator(spinnerId, `Error describing variable ${variableId}`, 'fail');
220
+ }
221
+ return outcome;
222
+ }
223
+
224
+ /**
225
+ * Export a single variable to file
226
+ * @param {String} variableId Variable id
227
+ * @param {String} file Optional filename
228
+ * @param {boolean} noDecode Do not include decoded variable value in export
229
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
230
+ * @returns {Promise<boolean>} true if successful, false otherwise
231
+ */
232
+ export async function exportVariableToFile(variableId, file, noDecode, includeMeta) {
233
+ debugMessage(`Cli.VariablesOps.exportVariableToFile: start [variableId=${variableId}, file=${file}]`);
234
+ let outcome = false;
235
+ let fileName = file;
236
+ if (!fileName) {
237
+ fileName = getTypedFilename(variableId, 'variable');
238
+ }
239
+ const filePath = getFilePath(fileName, true);
240
+ let indicatorId;
241
+ try {
242
+ indicatorId = createProgressIndicator('determinate', 1, `Exporting variable ${variableId}`);
243
+ const fileData = await exportVariable(variableId, noDecode);
244
+ saveJsonToFile(fileData, filePath, includeMeta);
245
+ updateProgressIndicator(indicatorId, `Exported variable ${variableId}`);
246
+ stopProgressIndicator(indicatorId,
247
+ // @ts-expect-error - brightCyan colors the string, even though it is not a property of string
248
+ `Exported ${variableId.brightCyan} to ${filePath.brightCyan}.`);
249
+ outcome = true;
250
+ } catch (err) {
251
+ stopProgressIndicator(indicatorId, `${err}`);
252
+ printMessage(err, 'error');
253
+ }
254
+ debugMessage(`Cli.VariablesOps.exportVariableToFile: end [variableId=${variableId}, file=${file}]`);
255
+ return outcome;
256
+ }
257
+
258
+ /**
259
+ * Export all variables to single file
260
+ * @param {string} file Optional filename
261
+ * @param {boolean} noDecode Do not include decoded variable value in export
262
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
263
+ * @returns {Promise<boolean>} true if successful, false otherwise
264
+ */
265
+ export async function exportVariablesToFile(file, noDecode, includeMeta) {
266
+ debugMessage(`Cli.VariablesOps.exportVariablesToFile: start [file=${file}]`);
267
+ let outcome = false;
268
+ const spinnerId = createProgressIndicator('indeterminate', 0, `Exporting variables...`);
269
+ if (!file) {
270
+ file = getTypedFilename(`all${titleCase(state.getRealm())}Variables`, 'variable');
271
+ }
272
+ try {
273
+ const variablesExport = await exportVariables(noDecode);
274
+ saveJsonToFile(variablesExport, getFilePath(file, true), includeMeta);
275
+ stopProgressIndicator(spinnerId, `Exported variables to ${file}`, 'success');
276
+ outcome = true;
277
+ } catch (error) {
278
+ var _error$response3;
279
+ stopProgressIndicator(spinnerId, `Error exporting variables: ${((_error$response3 = error.response) === null || _error$response3 === void 0 ? void 0 : _error$response3.status) || error.message}`, 'fail');
280
+ }
281
+ debugMessage(`Cli.VariablesOps.exportVariablesToFile: end [outcome=${outcome}, file=${file}]`);
282
+ return outcome;
283
+ }
284
+
285
+ /**
286
+ * Export all variables to seperate files
287
+ * @param {boolean} noDecode Do not include decoded variable value in export
288
+ * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true
289
+ * @returns {Promise<boolean>} true if successful, false otherwise
290
+ */
291
+ export async function exportVariablesToFiles(noDecode, includeMeta) {
292
+ let outcome = false;
293
+ let spinnerId;
294
+ let indicatorId;
295
+ let variableList = [];
296
+ try {
297
+ spinnerId = createProgressIndicator('indeterminate', 0, `Retrieving variables...`);
298
+ variableList = await readVariables();
299
+ stopProgressIndicator(spinnerId, `Successfully retrieved ${variableList.length} variables`, 'success');
300
+ } catch (error) {
301
+ stopProgressIndicator(spinnerId, `Error retrieving variables: ${error.message}`, 'fail');
302
+ }
303
+ try {
304
+ const indicatorId = createProgressIndicator('determinate', variableList.length, 'Exporting variables');
305
+ for (const variable of variableList) {
306
+ if (!noDecode) {
307
+ variable.value = decodeBase64(variable.valueBase64);
308
+ }
309
+ updateProgressIndicator(indicatorId, `Writing variable ${variable._id}`);
310
+ const fileName = getTypedFilename(variable._id, 'variable');
311
+ saveToFile('variable', variable, '_id', getFilePath(fileName, true), includeMeta);
312
+ }
313
+ stopProgressIndicator(indicatorId, `${variableList.length} variables exported`);
314
+ outcome = true;
315
+ } catch (error) {
316
+ stopProgressIndicator(indicatorId, `Error exporting variables: ${error.message}`);
317
+ }
318
+ return outcome;
132
319
  }
133
- //# sourceMappingURL=VariablesOps.js.map
320
+ //# sourceMappingURL=VariablesOps.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"VariablesOps.js","names":["frodo","createKeyValueTable","createProgressBar","createTable","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","wordwrap","listVariables","long","variables","cloud","variable","getVariables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","push","helper","base64","decode","valueBase64","loaded","description","idm","managed","resolveUserName","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","putVariable","code","updateVariable","setVariableDescription","deleteVariable","deleteVariables","length","describeVariable","getVariable"],"sources":["ops/VariablesOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport {\n createKeyValueTable,\n createProgressBar,\n createTable,\n failSpinner,\n printMessage,\n showSpinner,\n stopProgressBar,\n succeedSpinner,\n updateProgressBar,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields\n */\nexport async function listVariables(long) {\n let variables = [];\n try {\n variables = (await frodo.cloud.variable.getVariables()).result;\n variables.sort((a, b) => a._id.localeCompare(b._id));\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.data, 'error');\n }\n if (long) {\n const table = createTable([\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified'['brightCyan'],\n ]);\n for (const variable of variables) {\n table.push([\n variable._id,\n wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n // eslint-disable-next-line no-await-in-loop\n await frodo.idm.managed.resolveUserName(\n 'teammember',\n variable.lastChangedBy\n ),\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n }\n printMessage(table.toString(), 'data');\n } else {\n variables.forEach((secret) => {\n printMessage(secret._id, 'data');\n });\n }\n}\n\n/**\n * Create variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function createVariable(variableId, value, description) {\n showSpinner(`Creating variable ${variableId}...`);\n try {\n await frodo.cloud.variable.putVariable(variableId, value, description);\n succeedSpinner(`Created variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Update variable\n * @param {String} variableId variable id\n * @param {String} value variable value\n * @param {String} description variable description\n */\nexport async function updateVariable(variableId, value, description) {\n showSpinner(`Updating variable ${variableId}...`);\n try {\n await frodo.cloud.variable.putVariable(variableId, value, description);\n succeedSpinner(`Updated variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Set description of variable\n * @param {String} variableId variable id\n * @param {String} description variable description\n */\nexport async function setVariableDescription(variableId, description) {\n showSpinner(`Setting description of variable ${variableId}...`);\n try {\n await frodo.cloud.variable.setVariableDescription(variableId, description);\n succeedSpinner(`Set description of variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete a variable\n * @param {String} variableId variable id\n */\nexport async function deleteVariable(variableId) {\n showSpinner(`Deleting variable ${variableId}...`);\n try {\n await frodo.cloud.variable.deleteVariable(variableId);\n succeedSpinner(`Deleted variable ${variableId}`);\n } catch (error) {\n failSpinner(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n }\n}\n\n/**\n * Delete all variables\n */\nexport async function deleteVariables() {\n try {\n const variables = (await frodo.cloud.variable.getVariables()).result;\n createProgressBar(variables.length, `Deleting variable...`);\n for (const variable of variables) {\n try {\n // eslint-disable-next-line no-await-in-loop\n await frodo.cloud.variable.deleteVariable(variable._id);\n updateProgressBar(`Deleted variable ${variable._id}`);\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n stopProgressBar(`Variables deleted.`);\n } catch (error) {\n stopProgressBar(\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n}\n\n/**\n * Describe a variable\n * @param {String} variableId variable id\n */\nexport async function describeVariable(variableId) {\n const variable = await frodo.cloud.variable.getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40),\n ]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n table.push([\n 'Modifier'['brightCyan'],\n await frodo.idm.managed.resolveUserName(\n 'teammember',\n variable.lastChangedBy\n ),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"VariablesOps.js","names":["frodo","state","getFullExportConfig","isIdUsed","createKeyValueTable","createProgressIndicator","createTable","debugMessage","printMessage","stopProgressIndicator","updateProgressIndicator","wordwrap","decodeBase64","getFilePath","getTypedFilename","saveJsonToFile","saveToFile","titleCase","utils","resolvePerpetratorUuid","idm","managed","readVariables","readVariable","exportVariable","exportVariables","deleteVariable","updateVariableDescription","updateVariable","_updateVariable","cloud","variable","listVariables","long","usage","file","spinnerId","variables","sort","a","b","_id","localeCompare","length","error","_error$response","response","data","message","forEach","fullExport","headers","_error$response2","push","table","values","valueBase64","loaded","description","getUseBearerTokenForAmApis","lastChangedBy","Date","lastChangeDate","toUTCString","isEsvUsed","used","location","toString","createVariable","variableId","value","type","outcome","code","setVariableDescription","deleteVariableById","deleteVariables","indicatorId","describeVariable","json","expressionType","toLocaleString","modifierName","exportVariableToFile","noDecode","includeMeta","fileName","filePath","fileData","brightCyan","err","exportVariablesToFile","getRealm","variablesExport","_error$response3","status","exportVariablesToFiles","variableList"],"sources":["../../src/ops/VariablesOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport {\n VariableExpressionType,\n VariableSkeleton,\n} from '@rockcarver/frodo-lib/types/api/cloud/VariablesApi';\n\nimport { getFullExportConfig, isIdUsed } from '../utils/Config';\nimport {\n createKeyValueTable,\n createProgressIndicator,\n createTable,\n debugMessage,\n printMessage,\n stopProgressIndicator,\n updateProgressIndicator,\n} from '../utils/Console';\nimport wordwrap from './utils/Wordwrap';\n\nconst {\n decodeBase64,\n getFilePath,\n getTypedFilename,\n saveJsonToFile,\n saveToFile,\n titleCase,\n} = frodo.utils;\nconst { resolvePerpetratorUuid } = frodo.idm.managed;\nconst {\n readVariables,\n readVariable,\n exportVariable,\n exportVariables,\n deleteVariable,\n updateVariableDescription,\n updateVariable: _updateVariable,\n} = frodo.cloud.variable;\n\n/**\n * List variables\n * @param {boolean} long Long version, all the fields besides usage\n * @param {boolean} usage Display usage field\n * @param {String | null} file Optional filename to determine usage\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function listVariables(\n long: boolean = false,\n usage: boolean = false,\n file: string | null = null\n): Promise<boolean> {\n let spinnerId: string;\n let variables: VariableSkeleton[] = [];\n try {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Reading variables...`\n );\n variables = await readVariables();\n variables.sort((a, b) => a._id.localeCompare(b._id));\n stopProgressIndicator(\n spinnerId,\n `Successfully read ${variables.length} variables.`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error reading variables: ${error.response?.data || error.message}`,\n 'fail'\n );\n return false;\n }\n if (!long && !usage) {\n variables.forEach((variable) => {\n printMessage(variable._id, 'data');\n });\n return true;\n }\n let fullExport = null;\n const headers = long\n ? [\n 'Id'['brightCyan'],\n 'Value'['brightCyan'],\n 'Status'['brightCyan'],\n 'Description'['brightCyan'],\n 'Modifier'['brightCyan'],\n 'Modified (UTC)'['brightCyan'],\n ]\n : ['Id'['brightCyan']];\n if (usage) {\n try {\n fullExport = await getFullExportConfig(file);\n } catch (error) {\n printMessage(\n `Error getting full export: ${error.response?.data || error.message}`,\n 'error'\n );\n return false;\n }\n //Delete variables from full export so they aren't mistakenly used for determining usage\n delete fullExport.variables;\n headers.push('Used'['brightCyan']);\n }\n const table = createTable(headers);\n for (const variable of variables) {\n const values = long\n ? [\n variable._id,\n wordwrap(decodeBase64(variable.valueBase64), 40),\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n wordwrap(variable.description, 40),\n state.getUseBearerTokenForAmApis()\n ? variable.lastChangedBy\n : await resolvePerpetratorUuid(variable.lastChangedBy),\n new Date(variable.lastChangeDate).toUTCString(),\n ]\n : [variable._id];\n if (usage) {\n const isEsvUsed = isIdUsed(fullExport, variable._id, true);\n values.push(\n isEsvUsed.used\n ? `${'yes'['brightGreen']} (at ${isEsvUsed.location})`\n : 'no'['brightRed']\n );\n }\n table.push(values);\n }\n printMessage(table.toString(), 'data');\n return true;\n}\n\n/**\n * Create variable\n * @param {string} variableId variable id\n * @param {string} value variable value\n * @param {string} description variable description\n * @param {VariableExpressionType} type variable type\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function createVariable(\n variableId: string,\n value: string,\n description: string,\n type: VariableExpressionType = 'string'\n): Promise<boolean> {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Creating variable ${variableId}...`\n );\n try {\n await _updateVariable(variableId, value, description, type);\n stopProgressIndicator(\n spinnerId,\n `Created variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n error.response\n ? `Error: ${error.response.data.code} - ${error.response.data.message}`\n : error,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Update variable\n * @param {string} variableId variable id\n * @param {string} value variable value\n * @param {string} description variable description\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function updateVariable(variableId, value, description) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Updating variable ${variableId}...`\n );\n try {\n await _updateVariable(variableId, value, description);\n stopProgressIndicator(\n spinnerId,\n `Updated variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Set description of variable\n * @param {string} variableId variable id\n * @param {string} description variable description\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function setVariableDescription(variableId, description) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Setting description of variable ${variableId}...`\n );\n try {\n await updateVariableDescription(variableId, description);\n stopProgressIndicator(\n spinnerId,\n `Set description of variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Delete a variable\n * @param {string} variableId variable id\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteVariableById(variableId) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Deleting variable ${variableId}...`\n );\n try {\n await deleteVariable(variableId);\n stopProgressIndicator(\n spinnerId,\n `Deleted variable ${variableId}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Delete all variables\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function deleteVariables() {\n let outcome = false;\n let indicatorId: string;\n try {\n const variables = await readVariables();\n indicatorId = createProgressIndicator(\n 'determinate',\n variables.length,\n `Deleting variable...`\n );\n for (const variable of variables) {\n try {\n await deleteVariable(variable._id);\n updateProgressIndicator(\n indicatorId,\n `Deleted variable ${variable._id}`\n );\n } catch (error) {\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n }\n outcome = true;\n stopProgressIndicator(indicatorId, `Variables deleted.`);\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error: ${error.response.data.code} - ${error.response.data.message}`\n );\n printMessage(\n `Error: ${error.response.data.code} - ${error.response.data.message}`,\n 'error'\n );\n }\n return outcome;\n}\n\n/**\n * Describe a variable\n * @param {string} variableId variable id\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function describeVariable(variableId, json = false) {\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Describing variable ${variableId}...`\n );\n try {\n const variable = await readVariable(variableId);\n stopProgressIndicator(\n spinnerId,\n `Successfully retrieved variable ${variableId}`,\n 'success'\n );\n if (json) {\n printMessage(variable, 'data');\n } else {\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(decodeBase64(variable.valueBase64), 40),\n ]);\n table.push(['Type'['brightCyan'], variable.expressionType]);\n table.push([\n 'Status'['brightCyan'],\n variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'],\n ]);\n table.push([\n 'Description'['brightCyan'],\n wordwrap(variable.description, 60),\n ]);\n table.push([\n 'Modified'['brightCyan'],\n new Date(variable.lastChangeDate).toLocaleString(),\n ]);\n let modifierName: string;\n try {\n modifierName = await resolvePerpetratorUuid(variable.lastChangedBy);\n } catch (error) {\n // ignore\n }\n if (modifierName && modifierName !== variable.lastChangedBy) {\n table.push(['Modifier'['brightCyan'], modifierName]);\n }\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString(), 'data');\n }\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error describing variable ${variableId}`,\n 'fail'\n );\n }\n return outcome;\n}\n\n/**\n * Export a single variable to file\n * @param {String} variableId Variable id\n * @param {String} file Optional filename\n * @param {boolean} noDecode Do not include decoded variable value in export\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportVariableToFile(\n variableId: string,\n file: string | null,\n noDecode: boolean,\n includeMeta: boolean\n) {\n debugMessage(\n `Cli.VariablesOps.exportVariableToFile: start [variableId=${variableId}, file=${file}]`\n );\n let outcome = false;\n let fileName = file;\n if (!fileName) {\n fileName = getTypedFilename(variableId, 'variable');\n }\n const filePath = getFilePath(fileName, true);\n let indicatorId: string;\n try {\n indicatorId = createProgressIndicator(\n 'determinate',\n 1,\n `Exporting variable ${variableId}`\n );\n const fileData = await exportVariable(variableId, noDecode);\n saveJsonToFile(fileData, filePath, includeMeta);\n updateProgressIndicator(indicatorId, `Exported variable ${variableId}`);\n stopProgressIndicator(\n indicatorId,\n // @ts-expect-error - brightCyan colors the string, even though it is not a property of string\n `Exported ${variableId.brightCyan} to ${filePath.brightCyan}.`\n );\n outcome = true;\n } catch (err) {\n stopProgressIndicator(indicatorId, `${err}`);\n printMessage(err, 'error');\n }\n debugMessage(\n `Cli.VariablesOps.exportVariableToFile: end [variableId=${variableId}, file=${file}]`\n );\n return outcome;\n}\n\n/**\n * Export all variables to single file\n * @param {string} file Optional filename\n * @param {boolean} noDecode Do not include decoded variable value in export\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportVariablesToFile(\n file: string | null,\n noDecode: boolean,\n includeMeta: boolean\n) {\n debugMessage(`Cli.VariablesOps.exportVariablesToFile: start [file=${file}]`);\n let outcome = false;\n const spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Exporting variables...`\n );\n if (!file) {\n file = getTypedFilename(\n `all${titleCase(state.getRealm())}Variables`,\n 'variable'\n );\n }\n try {\n const variablesExport = await exportVariables(noDecode);\n saveJsonToFile(variablesExport, getFilePath(file, true), includeMeta);\n stopProgressIndicator(\n spinnerId,\n `Exported variables to ${file}`,\n 'success'\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error exporting variables: ${error.response?.status || error.message}`,\n 'fail'\n );\n }\n debugMessage(\n `Cli.VariablesOps.exportVariablesToFile: end [outcome=${outcome}, file=${file}]`\n );\n return outcome;\n}\n\n/**\n * Export all variables to seperate files\n * @param {boolean} noDecode Do not include decoded variable value in export\n * @param {boolean} includeMeta true to include metadata, false otherwise. Default: true\n * @returns {Promise<boolean>} true if successful, false otherwise\n */\nexport async function exportVariablesToFiles(\n noDecode: boolean,\n includeMeta: boolean\n) {\n let outcome = false;\n let spinnerId: string;\n let indicatorId: string;\n let variableList: VariableSkeleton[] = [];\n try {\n spinnerId = createProgressIndicator(\n 'indeterminate',\n 0,\n `Retrieving variables...`\n );\n variableList = await readVariables();\n stopProgressIndicator(\n spinnerId,\n `Successfully retrieved ${variableList.length} variables`,\n 'success'\n );\n } catch (error) {\n stopProgressIndicator(\n spinnerId,\n `Error retrieving variables: ${error.message}`,\n 'fail'\n );\n }\n try {\n const indicatorId = createProgressIndicator(\n 'determinate',\n variableList.length,\n 'Exporting variables'\n );\n for (const variable of variableList) {\n if (!noDecode) {\n variable.value = decodeBase64(variable.valueBase64);\n }\n updateProgressIndicator(indicatorId, `Writing variable ${variable._id}`);\n const fileName = getTypedFilename(variable._id, 'variable');\n saveToFile(\n 'variable',\n variable,\n '_id',\n getFilePath(fileName, true),\n includeMeta\n );\n }\n stopProgressIndicator(\n indicatorId,\n `${variableList.length} variables exported`\n );\n outcome = true;\n } catch (error) {\n stopProgressIndicator(\n indicatorId,\n `Error exporting variables: ${error.message}`\n );\n }\n return outcome;\n}\n"],"mappings":"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"}
@@ -6,4 +6,4 @@
6
6
  export function cloneDeep(obj) {
7
7
  return JSON.parse(JSON.stringify(obj));
8
8
  }
9
- //# sourceMappingURL=OpsUtils.js.map
9
+ //# sourceMappingURL=OpsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"OpsUtils.js","names":["cloneDeep","obj","JSON","parse","stringify"],"sources":["ops/utils/OpsUtils.ts"],"sourcesContent":["/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CAACC,GAAG,EAAE;EAC7B,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;AACxC"}
1
+ {"version":3,"file":"OpsUtils.js","names":["cloneDeep","obj","JSON","parse","stringify"],"sources":["../../../src/ops/utils/OpsUtils.ts"],"sourcesContent":["/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CAACC,GAAG,EAAE;EAC7B,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;AACxC"}
@@ -2,4 +2,4 @@ export default function wordwrap(str, len, indent = undefined) {
2
2
  if (!str) return '';
3
3
  return (str.match(new RegExp(`(\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\s+|$)`, 'g')) || []).join(indent ? `\n${indent}` : '\n');
4
4
  }
5
- //# sourceMappingURL=Wordwrap.js.map
5
+ //# sourceMappingURL=Wordwrap.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Wordwrap.js","names":["wordwrap","str","len","indent","undefined","match","RegExp","length","join"],"sources":["ops/utils/Wordwrap.ts"],"sourcesContent":["export default function wordwrap(str, len, indent = undefined) {\n if (!str) return '';\n return (\n str.match(\n new RegExp(\n `(\\\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\\\s+|$)`,\n 'g'\n )\n ) || []\n ).join(indent ? `\\n${indent}` : '\\n');\n}\n"],"mappings":"AAAA,eAAe,SAASA,QAAQA,CAACC,GAAG,EAAEC,GAAG,EAAEC,MAAM,GAAGC,SAAS,EAAE;EAC7D,IAAI,CAACH,GAAG,EAAE,OAAO,EAAE;EACnB,OAAO,CACLA,GAAG,CAACI,KAAK,CACP,IAAIC,MAAM,CACP,WAAUJ,GAAG,GAAG,CAAC,IAAIC,MAAM,GAAGA,MAAM,CAACI,MAAM,GAAG,CAAC,CAAE,cAAa,EAC/D,GACF,CACF,CAAC,IAAI,EAAE,EACPC,IAAI,CAACL,MAAM,GAAI,KAAIA,MAAO,EAAC,GAAG,IAAI,CAAC;AACvC"}
1
+ {"version":3,"file":"Wordwrap.js","names":["wordwrap","str","len","indent","undefined","match","RegExp","length","join"],"sources":["../../../src/ops/utils/Wordwrap.ts"],"sourcesContent":["export default function wordwrap(\n str: string,\n len: number,\n indent: string = undefined\n) {\n if (!str) return '';\n return (\n str.match(\n new RegExp(\n `(\\\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\\\s+|$)`,\n 'g'\n )\n ) || []\n ).join(indent ? `\\n${indent}` : '\\n');\n}\n"],"mappings":"AAAA,eAAe,SAASA,QAAQA,CAC9BC,GAAW,EACXC,GAAW,EACXC,MAAc,GAAGC,SAAS,EAC1B;EACA,IAAI,CAACH,GAAG,EAAE,OAAO,EAAE;EACnB,OAAO,CACLA,GAAG,CAACI,KAAK,CACP,IAAIC,MAAM,CACP,WAAUJ,GAAG,GAAG,CAAC,IAAIC,MAAM,GAAGA,MAAM,CAACI,MAAM,GAAG,CAAC,CAAE,cAAa,EAC/D,GACF,CACF,CAAC,IAAI,EAAE,EACPC,IAAI,CAACL,MAAM,GAAI,KAAIA,MAAO,EAAC,GAAG,IAAI,CAAC;AACvC"}
@@ -9,4 +9,4 @@ export const DEPLOYMENT_TYPE_REALM_MAP = {
9
9
  [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/'
10
10
  };
11
11
  export const FRODO_METADATA_ID = 'frodo';
12
- //# sourceMappingURL=StaticStorage.js.map
12
+ //# sourceMappingURL=StaticStorage.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"StaticStorage.js","names":["DEFAULT_REALM_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","CLOUD_DEPLOYMENT_TYPE_KEY","FORGEOPS_DEPLOYMENT_TYPE_KEY","DEPLOYMENT_TYPES","DEPLOYMENT_TYPE_REALM_MAP","FRODO_METADATA_ID"],"sources":["storage/StaticStorage.ts"],"sourcesContent":["export const DEFAULT_REALM_KEY = '__default__realm__';\nexport const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';\nexport const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';\nexport const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';\nexport const DEPLOYMENT_TYPES = [\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n];\nexport const DEPLOYMENT_TYPE_REALM_MAP = {\n [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',\n [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',\n [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/',\n};\nexport const FRODO_METADATA_ID = 'frodo';\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,oBAAoB;AACrD,OAAO,MAAMC,2BAA2B,GAAG,SAAS;AACpD,OAAO,MAAMC,yBAAyB,GAAG,OAAO;AAChD,OAAO,MAAMC,4BAA4B,GAAG,UAAU;AACtD,OAAO,MAAMC,gBAAgB,GAAG,CAC9BH,2BAA2B,EAC3BC,yBAAyB,EACzBC,4BAA4B,CAC7B;AACD,OAAO,MAAME,yBAAyB,GAAG;EACvC,CAACJ,2BAA2B,GAAG,GAAG;EAClC,CAACC,yBAAyB,GAAG,OAAO;EACpC,CAACC,4BAA4B,GAAG;AAClC,CAAC;AACD,OAAO,MAAMG,iBAAiB,GAAG,OAAO"}
1
+ {"version":3,"file":"StaticStorage.js","names":["DEFAULT_REALM_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","CLOUD_DEPLOYMENT_TYPE_KEY","FORGEOPS_DEPLOYMENT_TYPE_KEY","DEPLOYMENT_TYPES","DEPLOYMENT_TYPE_REALM_MAP","FRODO_METADATA_ID"],"sources":["../../src/storage/StaticStorage.ts"],"sourcesContent":["export const DEFAULT_REALM_KEY = '__default__realm__';\nexport const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';\nexport const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';\nexport const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';\nexport const DEPLOYMENT_TYPES = [\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n];\nexport const DEPLOYMENT_TYPE_REALM_MAP = {\n [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',\n [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',\n [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/',\n};\nexport const FRODO_METADATA_ID = 'frodo';\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,oBAAoB;AACrD,OAAO,MAAMC,2BAA2B,GAAG,SAAS;AACpD,OAAO,MAAMC,yBAAyB,GAAG,OAAO;AAChD,OAAO,MAAMC,4BAA4B,GAAG,UAAU;AACtD,OAAO,MAAMC,gBAAgB,GAAG,CAC9BH,2BAA2B,EAC3BC,yBAAyB,EACzBC,4BAA4B,CAC7B;AACD,OAAO,MAAME,yBAAyB,GAAG;EACvC,CAACJ,2BAA2B,GAAG,GAAG;EAClC,CAACC,yBAAyB,GAAG,OAAO;EACpC,CAACC,4BAA4B,GAAG;AAClC,CAAC;AACD,OAAO,MAAMG,iBAAiB,GAAG,OAAO"}