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

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 (344) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/esm/app.js +4 -1
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/_template/something-delete.js +4 -1
  5. package/esm/cli/_template/something-delete.js.map +1 -1
  6. package/esm/cli/_template/something-describe.js +4 -1
  7. package/esm/cli/_template/something-describe.js.map +1 -1
  8. package/esm/cli/_template/something-else-delete.js +4 -1
  9. package/esm/cli/_template/something-else-delete.js.map +1 -1
  10. package/esm/cli/_template/something-else-describe.js +4 -1
  11. package/esm/cli/_template/something-else-describe.js.map +1 -1
  12. package/esm/cli/_template/something-else-export.js +4 -1
  13. package/esm/cli/_template/something-else-export.js.map +1 -1
  14. package/esm/cli/_template/something-else-import.js +4 -1
  15. package/esm/cli/_template/something-else-import.js.map +1 -1
  16. package/esm/cli/_template/something-else-list.js +4 -1
  17. package/esm/cli/_template/something-else-list.js.map +1 -1
  18. package/esm/cli/_template/something-export.js +4 -1
  19. package/esm/cli/_template/something-export.js.map +1 -1
  20. package/esm/cli/_template/something-import.js +4 -1
  21. package/esm/cli/_template/something-import.js.map +1 -1
  22. package/esm/cli/_template/something-list.js +4 -1
  23. package/esm/cli/_template/something-list.js.map +1 -1
  24. package/esm/cli/_template/something-other-delete.js +4 -1
  25. package/esm/cli/_template/something-other-delete.js.map +1 -1
  26. package/esm/cli/_template/something-other-describe.js +4 -1
  27. package/esm/cli/_template/something-other-describe.js.map +1 -1
  28. package/esm/cli/_template/something-other-export.js +4 -1
  29. package/esm/cli/_template/something-other-export.js.map +1 -1
  30. package/esm/cli/_template/something-other-import.js +4 -1
  31. package/esm/cli/_template/something-other-import.js.map +1 -1
  32. package/esm/cli/_template/something-other-list.js +4 -1
  33. package/esm/cli/_template/something-other-list.js.map +1 -1
  34. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -2
  35. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  36. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +10 -3
  37. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  38. package/esm/cli/admin/admin-federation-export.js +45 -0
  39. package/esm/cli/admin/admin-federation-export.js.map +1 -0
  40. package/esm/cli/admin/admin-federation-import.js +49 -0
  41. package/esm/cli/admin/admin-federation-import.js.map +1 -0
  42. package/esm/cli/admin/admin-federation-list.js +29 -0
  43. package/esm/cli/admin/admin-federation-list.js.map +1 -0
  44. package/esm/cli/admin/admin-federation.js +13 -0
  45. package/esm/cli/admin/admin-federation.js.map +1 -0
  46. package/esm/cli/admin/admin-get-access-token.js +8 -2
  47. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  48. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +8 -2
  49. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  50. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +8 -2
  51. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  52. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +8 -2
  53. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  54. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +8 -2
  55. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  56. package/esm/cli/admin/admin-list-static-user-mappings.js +8 -2
  57. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  58. package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -2
  59. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  60. package/esm/cli/admin/admin-repair-org-model.js +8 -2
  61. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  62. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +8 -2
  63. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  64. package/esm/cli/admin/admin-show-generic-extension-attributes.js +8 -2
  65. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  66. package/esm/cli/admin/admin.js +1 -0
  67. package/esm/cli/admin/admin.js.map +1 -1
  68. package/esm/cli/agent/agent-delete.js +10 -3
  69. package/esm/cli/agent/agent-delete.js.map +1 -1
  70. package/esm/cli/agent/agent-describe.js +4 -1
  71. package/esm/cli/agent/agent-describe.js.map +1 -1
  72. package/esm/cli/agent/agent-export.js +4 -1
  73. package/esm/cli/agent/agent-export.js.map +1 -1
  74. package/esm/cli/agent/agent-gateway-delete.js +10 -3
  75. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  76. package/esm/cli/agent/agent-gateway-describe.js +4 -1
  77. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  78. package/esm/cli/agent/agent-gateway-export.js +4 -1
  79. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  80. package/esm/cli/agent/agent-gateway-import.js +4 -1
  81. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  82. package/esm/cli/agent/agent-gateway-list.js +4 -1
  83. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  84. package/esm/cli/agent/agent-import.js +4 -1
  85. package/esm/cli/agent/agent-import.js.map +1 -1
  86. package/esm/cli/agent/agent-java-delete.js +10 -3
  87. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  88. package/esm/cli/agent/agent-java-describe.js +4 -1
  89. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  90. package/esm/cli/agent/agent-java-export.js +4 -1
  91. package/esm/cli/agent/agent-java-export.js.map +1 -1
  92. package/esm/cli/agent/agent-java-import.js +4 -1
  93. package/esm/cli/agent/agent-java-import.js.map +1 -1
  94. package/esm/cli/agent/agent-java-list.js +4 -1
  95. package/esm/cli/agent/agent-java-list.js.map +1 -1
  96. package/esm/cli/agent/agent-list.js +4 -1
  97. package/esm/cli/agent/agent-list.js.map +1 -1
  98. package/esm/cli/agent/agent-web-delete.js +10 -3
  99. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  100. package/esm/cli/agent/agent-web-describe.js +4 -1
  101. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  102. package/esm/cli/agent/agent-web-export.js +4 -1
  103. package/esm/cli/agent/agent-web-export.js.map +1 -1
  104. package/esm/cli/agent/agent-web-import.js +4 -1
  105. package/esm/cli/agent/agent-web-import.js.map +1 -1
  106. package/esm/cli/agent/agent-web-list.js +4 -1
  107. package/esm/cli/agent/agent-web-list.js.map +1 -1
  108. package/esm/cli/app/app-delete.js +4 -1
  109. package/esm/cli/app/app-delete.js.map +1 -1
  110. package/esm/cli/app/app-describe.js +4 -1
  111. package/esm/cli/app/app-describe.js.map +1 -1
  112. package/esm/cli/app/app-export.js +6 -3
  113. package/esm/cli/app/app-export.js.map +1 -1
  114. package/esm/cli/app/app-import.js +7 -4
  115. package/esm/cli/app/app-import.js.map +1 -1
  116. package/esm/cli/app/app-list.js +4 -1
  117. package/esm/cli/app/app-list.js.map +1 -1
  118. package/esm/cli/authz/authz-policy-delete.js +6 -3
  119. package/esm/cli/authz/authz-policy-delete.js.map +1 -1
  120. package/esm/cli/authz/authz-policy-describe.js +4 -1
  121. package/esm/cli/authz/authz-policy-describe.js.map +1 -1
  122. package/esm/cli/authz/authz-policy-export.js +8 -5
  123. package/esm/cli/authz/authz-policy-export.js.map +1 -1
  124. package/esm/cli/authz/authz-policy-import.js +7 -4
  125. package/esm/cli/authz/authz-policy-import.js.map +1 -1
  126. package/esm/cli/authz/authz-policy-list.js +5 -2
  127. package/esm/cli/authz/authz-policy-list.js.map +1 -1
  128. package/esm/cli/authz/authz-set-delete.js +5 -2
  129. package/esm/cli/authz/authz-set-delete.js.map +1 -1
  130. package/esm/cli/authz/authz-set-describe.js +4 -1
  131. package/esm/cli/authz/authz-set-describe.js.map +1 -1
  132. package/esm/cli/authz/authz-set-export.js +6 -3
  133. package/esm/cli/authz/authz-set-export.js.map +1 -1
  134. package/esm/cli/authz/authz-set-import.js +7 -4
  135. package/esm/cli/authz/authz-set-import.js.map +1 -1
  136. package/esm/cli/authz/authz-set-list.js +4 -1
  137. package/esm/cli/authz/authz-set-list.js.map +1 -1
  138. package/esm/cli/authz/authz-type-delete.js +6 -3
  139. package/esm/cli/authz/authz-type-delete.js.map +1 -1
  140. package/esm/cli/authz/authz-type-describe.js +5 -2
  141. package/esm/cli/authz/authz-type-describe.js.map +1 -1
  142. package/esm/cli/authz/authz-type-export.js +7 -4
  143. package/esm/cli/authz/authz-type-export.js.map +1 -1
  144. package/esm/cli/authz/authz-type-import.js +8 -5
  145. package/esm/cli/authz/authz-type-import.js.map +1 -1
  146. package/esm/cli/authz/authz-type-list.js +4 -1
  147. package/esm/cli/authz/authz-type-list.js.map +1 -1
  148. package/esm/cli/conn/conn-save.js +18 -5
  149. package/esm/cli/conn/conn-save.js.map +1 -1
  150. package/esm/cli/email/email-template-export.js +6 -3
  151. package/esm/cli/email/email-template-export.js.map +1 -1
  152. package/esm/cli/email/email-template-import.js +7 -4
  153. package/esm/cli/email/email-template-import.js.map +1 -1
  154. package/esm/cli/email/email-template-list.js +4 -1
  155. package/esm/cli/email/email-template-list.js.map +1 -1
  156. package/esm/cli/esv/esv-apply.js +15 -5
  157. package/esm/cli/esv/esv-apply.js.map +1 -1
  158. package/esm/cli/esv/esv-secret-create.js +4 -1
  159. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  160. package/esm/cli/esv/esv-secret-delete.js +5 -2
  161. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  162. package/esm/cli/esv/esv-secret-describe.js +4 -1
  163. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  164. package/esm/cli/esv/esv-secret-export.js +4 -1
  165. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  166. package/esm/cli/esv/esv-secret-import.js +4 -1
  167. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  168. package/esm/cli/esv/esv-secret-list.js +4 -1
  169. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  170. package/esm/cli/esv/esv-secret-set.js +4 -1
  171. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  172. package/esm/cli/esv/esv-secret-version-activate.js +4 -1
  173. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  174. package/esm/cli/esv/esv-secret-version-create.js +4 -1
  175. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  176. package/esm/cli/esv/esv-secret-version-deactivate.js +4 -1
  177. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  178. package/esm/cli/esv/esv-secret-version-delete.js +5 -2
  179. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  180. package/esm/cli/esv/esv-secret-version-list.js +4 -1
  181. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  182. package/esm/cli/esv/esv-variable-create.js +4 -1
  183. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  184. package/esm/cli/esv/esv-variable-delete.js +5 -2
  185. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  186. package/esm/cli/esv/esv-variable-describe.js +4 -1
  187. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  188. package/esm/cli/esv/esv-variable-export.js +4 -1
  189. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  190. package/esm/cli/esv/esv-variable-import.js +4 -1
  191. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  192. package/esm/cli/esv/esv-variable-list.js +4 -1
  193. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  194. package/esm/cli/esv/esv-variable-set.js +5 -2
  195. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  196. package/esm/cli/idm/idm-count.js +4 -1
  197. package/esm/cli/idm/idm-count.js.map +1 -1
  198. package/esm/cli/idm/idm-export.js +6 -3
  199. package/esm/cli/idm/idm-export.js.map +1 -1
  200. package/esm/cli/idm/idm-import.js +7 -4
  201. package/esm/cli/idm/idm-import.js.map +1 -1
  202. package/esm/cli/idm/idm-list.js +4 -1
  203. package/esm/cli/idm/idm-list.js.map +1 -1
  204. package/esm/cli/idp/idp-export.js +4 -1
  205. package/esm/cli/idp/idp-export.js.map +1 -1
  206. package/esm/cli/idp/idp-import.js +7 -4
  207. package/esm/cli/idp/idp-import.js.map +1 -1
  208. package/esm/cli/idp/idp-list.js +4 -1
  209. package/esm/cli/idp/idp-list.js.map +1 -1
  210. package/esm/cli/info/info.js +8 -2
  211. package/esm/cli/info/info.js.map +1 -1
  212. package/esm/cli/journey/journey-delete.js +5 -2
  213. package/esm/cli/journey/journey-delete.js.map +1 -1
  214. package/esm/cli/journey/journey-describe.js +14 -6
  215. package/esm/cli/journey/journey-describe.js.map +1 -1
  216. package/esm/cli/journey/journey-disable.js +8 -2
  217. package/esm/cli/journey/journey-disable.js.map +1 -1
  218. package/esm/cli/journey/journey-enable.js +8 -2
  219. package/esm/cli/journey/journey-enable.js.map +1 -1
  220. package/esm/cli/journey/journey-export.js +6 -3
  221. package/esm/cli/journey/journey-export.js.map +1 -1
  222. package/esm/cli/journey/journey-import.js +7 -4
  223. package/esm/cli/journey/journey-import.js.map +1 -1
  224. package/esm/cli/journey/journey-list.js +4 -1
  225. package/esm/cli/journey/journey-list.js.map +1 -1
  226. package/esm/cli/journey/journey-prune.js +10 -3
  227. package/esm/cli/journey/journey-prune.js.map +1 -1
  228. package/esm/cli/log/log-fetch.js +16 -6
  229. package/esm/cli/log/log-fetch.js.map +1 -1
  230. package/esm/cli/log/log-key-delete.js +5 -2
  231. package/esm/cli/log/log-key-delete.js.map +1 -1
  232. package/esm/cli/log/log-key-describe.js +4 -1
  233. package/esm/cli/log/log-key-describe.js.map +1 -1
  234. package/esm/cli/log/log-key-list.js +4 -1
  235. package/esm/cli/log/log-key-list.js.map +1 -1
  236. package/esm/cli/log/log-list.js +14 -4
  237. package/esm/cli/log/log-list.js.map +1 -1
  238. package/esm/cli/log/log-tail.js +16 -6
  239. package/esm/cli/log/log-tail.js.map +1 -1
  240. package/esm/cli/realm/realm-add-custom-domain.js +4 -1
  241. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  242. package/esm/cli/realm/realm-describe.js +4 -1
  243. package/esm/cli/realm/realm-describe.js.map +1 -1
  244. package/esm/cli/realm/realm-list.js +4 -1
  245. package/esm/cli/realm/realm-list.js.map +1 -1
  246. package/esm/cli/realm/realm-remove-custom-domain.js +8 -2
  247. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  248. package/esm/cli/saml/saml-cot-export.js +6 -3
  249. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  250. package/esm/cli/saml/saml-cot-import.js +7 -4
  251. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  252. package/esm/cli/saml/saml-cot-list.js +4 -1
  253. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  254. package/esm/cli/saml/saml-delete.js +11 -4
  255. package/esm/cli/saml/saml-delete.js.map +1 -1
  256. package/esm/cli/saml/saml-describe.js +4 -1
  257. package/esm/cli/saml/saml-describe.js.map +1 -1
  258. package/esm/cli/saml/saml-export.js +6 -3
  259. package/esm/cli/saml/saml-export.js.map +1 -1
  260. package/esm/cli/saml/saml-import.js +7 -4
  261. package/esm/cli/saml/saml-import.js.map +1 -1
  262. package/esm/cli/saml/saml-list.js +4 -1
  263. package/esm/cli/saml/saml-list.js.map +1 -1
  264. package/esm/cli/saml/saml-metadata-export.js +5 -2
  265. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  266. package/esm/cli/script/script-delete.js +4 -1
  267. package/esm/cli/script/script-delete.js.map +1 -1
  268. package/esm/cli/script/script-describe.js +4 -1
  269. package/esm/cli/script/script-describe.js.map +1 -1
  270. package/esm/cli/script/script-export.js +4 -1
  271. package/esm/cli/script/script-export.js.map +1 -1
  272. package/esm/cli/script/script-import.js +4 -1
  273. package/esm/cli/script/script-import.js.map +1 -1
  274. package/esm/cli/script/script-list.js +4 -1
  275. package/esm/cli/script/script-list.js.map +1 -1
  276. package/esm/cli/service/service-delete.js +5 -2
  277. package/esm/cli/service/service-delete.js.map +1 -1
  278. package/esm/cli/service/service-export.js +6 -3
  279. package/esm/cli/service/service-export.js.map +1 -1
  280. package/esm/cli/service/service-import.js +7 -4
  281. package/esm/cli/service/service-import.js.map +1 -1
  282. package/esm/cli/service/service-list.js +4 -1
  283. package/esm/cli/service/service-list.js.map +1 -1
  284. package/esm/cli/theme/theme-delete.js +6 -3
  285. package/esm/cli/theme/theme-delete.js.map +1 -1
  286. package/esm/cli/theme/theme-export.js +7 -4
  287. package/esm/cli/theme/theme-export.js.map +1 -1
  288. package/esm/cli/theme/theme-import.js +8 -5
  289. package/esm/cli/theme/theme-import.js.map +1 -1
  290. package/esm/cli/theme/theme-list.js +4 -1
  291. package/esm/cli/theme/theme-list.js.map +1 -1
  292. package/esm/ops/AdminFederationOps.js +216 -0
  293. package/esm/ops/AdminFederationOps.js.map +1 -0
  294. package/esm/ops/AgentOps.js +62 -36
  295. package/esm/ops/AgentOps.js.map +1 -1
  296. package/esm/ops/CirclesOfTrustOps.js +22 -10
  297. package/esm/ops/CirclesOfTrustOps.js.map +1 -1
  298. package/esm/ops/ConnectionProfileOps.js +10 -3
  299. package/esm/ops/ConnectionProfileOps.js.map +1 -1
  300. package/esm/ops/EmailTemplateOps.js +23 -15
  301. package/esm/ops/EmailTemplateOps.js.map +1 -1
  302. package/esm/ops/IdmOps.js +34 -21
  303. package/esm/ops/IdmOps.js.map +1 -1
  304. package/esm/ops/IdpOps.js +17 -9
  305. package/esm/ops/IdpOps.js.map +1 -1
  306. package/esm/ops/JourneyOps.js +46 -30
  307. package/esm/ops/JourneyOps.js.map +1 -1
  308. package/esm/ops/LogOps.js +21 -11
  309. package/esm/ops/LogOps.js.map +1 -1
  310. package/esm/ops/NodeOps.js +5 -2
  311. package/esm/ops/NodeOps.js.map +1 -1
  312. package/esm/ops/OAuth2ClientOps.js +26 -13
  313. package/esm/ops/OAuth2ClientOps.js.map +1 -1
  314. package/esm/ops/OrganizationOps.js +8 -2
  315. package/esm/ops/OrganizationOps.js.map +1 -1
  316. package/esm/ops/PolicyOps.js +36 -21
  317. package/esm/ops/PolicyOps.js.map +1 -1
  318. package/esm/ops/PolicySetOps.js +35 -18
  319. package/esm/ops/PolicySetOps.js.map +1 -1
  320. package/esm/ops/RealmOps.js +11 -6
  321. package/esm/ops/RealmOps.js.map +1 -1
  322. package/esm/ops/ResourceTypeOps.js +34 -18
  323. package/esm/ops/ResourceTypeOps.js.map +1 -1
  324. package/esm/ops/Saml2Ops.js +43 -23
  325. package/esm/ops/Saml2Ops.js.map +1 -1
  326. package/esm/ops/ScriptOps.js +18 -10
  327. package/esm/ops/ScriptOps.js.map +1 -1
  328. package/esm/ops/SecretsOps.js +28 -14
  329. package/esm/ops/SecretsOps.js.map +1 -1
  330. package/esm/ops/ServiceOps.js +38 -17
  331. package/esm/ops/ServiceOps.js.map +1 -1
  332. package/esm/ops/ThemeOps.js +35 -19
  333. package/esm/ops/ThemeOps.js.map +1 -1
  334. package/esm/ops/VariablesOps.js +23 -12
  335. package/esm/ops/VariablesOps.js.map +1 -1
  336. package/esm/utils/Config.js +6 -3
  337. package/esm/utils/Config.js.map +1 -1
  338. package/esm/utils/Console.js +5 -2
  339. package/esm/utils/Console.js.map +1 -1
  340. package/esm/utils/ExportImportUtils.js +6 -3
  341. package/esm/utils/ExportImportUtils.js.map +1 -1
  342. package/esm/utils/Version.js +7 -3
  343. package/esm/utils/Version.js.map +1 -1
  344. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"ServiceOps.js","names":["frodo","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","listServices","long","globalConfig","services","service","getListOfServices","sort","a","b","_id","localeCompare","table","push","name","toString","error","stack","exportServicesToFile","file","exportData","exportServices","fileName","utils","impex","getTypedFilename","titleCase","helper","getRealmName","getRealm","saveJsonToFile","exportServiceToFile","serviceId","exportService","exportServicesToFiles","getFullServices","_type","createServiceExportTemplate","importServiceFromFile","clean","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importService","importError","_importError$response","_importError$response2","_importError$response3","_importError$response4","message","response","detail","importFirstServiceFromFile","Object","keys","length","_importError$response5","_importError$response6","_importError$response7","_importError$response8","importServicesFromFile","importServices","status","importServicesFromFiles","names","readdirSync","getWorkingDirectory","agentFiles","filter","toLowerCase","endsWith","deleteService","deleteFullService","_error$response","_error$response$data","deleteServices","deleteFullServices"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { ServiceExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\n/**\n * List services\n */\nexport async function listServices(long = false, globalConfig = false) {\n try {\n const services = await frodo.service.getListOfServices(globalConfig);\n services.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable(['Service Id', 'Service Name']);\n for (const service of services) {\n table.push([service._id, service.name]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const service of services) {\n printMessage(`${service._id}`, 'data');\n }\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all services to file\n * @param {string} file file name\n */\nexport async function exportServicesToFile(file, globalConfig = false) {\n const exportData = await frodo.service.exportServices(globalConfig);\n let fileName = frodo.utils.impex.getTypedFilename(\n `all${frodo.utils.impex.titleCase(\n frodo.helper.utils.getRealmName(state.getRealm())\n )}Services`,\n `service`\n );\n if (file) {\n fileName = file;\n }\n frodo.utils.impex.saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export service to file\n * @param {string} serviceId service id\n * @param {string} file file name\n */\nexport async function exportServiceToFile(\n serviceId: string,\n file: string,\n globalConfig = false\n) {\n const exportData = await frodo.service.exportService(serviceId, globalConfig);\n let fileName = frodo.utils.impex.getTypedFilename(serviceId, `service`);\n if (file) {\n fileName = file;\n }\n frodo.utils.impex.saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all services to separate files\n */\nexport async function exportServicesToFiles(globalConfig = false) {\n debugMessage(`cli.ServiceOps.exportServicesToFiles: start`);\n const services = await frodo.service.getFullServices(globalConfig);\n for (const service of services) {\n const fileName = frodo.utils.impex.getTypedFilename(\n service._type._id,\n `service`\n );\n const exportData = frodo.service.createServiceExportTemplate();\n exportData.service[service._type._id] = service;\n debugMessage(\n `cli.ServiceOps.exportServicesToFiles: exporting ${service._type._id} to ${fileName}`\n );\n frodo.utils.impex.saveJsonToFile(exportData, fileName);\n }\n debugMessage(`cli.ServiceOps.exportServicesToFiles: end.`);\n}\n\n/**\n * Import a service from file\n * @param {string} serviceId service id/name\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServiceFromFile(\n serviceId: string,\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: start [serviceId=${serviceId}, file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && importData.service[serviceId]) {\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await frodo.service.importService(\n serviceId,\n importData,\n clean,\n globalConfig\n );\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${serviceId} not found!`);\n }\n });\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: end [serviceId=${serviceId}, file=${file}]`\n );\n}\n\n/**\n * Import first service from file\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importFirstServiceFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: start [file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && Object.keys(importData.service).length) {\n const serviceId = Object.keys(importData.service)[0];\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await frodo.service.importService(\n serviceId,\n importData,\n clean,\n globalConfig\n );\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing service...`);\n failSpinner(`No service found in ${file}!`);\n }\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: end [file=${file}]`\n );\n });\n}\n\n/**\n * Import services from file\n * @param {String} file file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServiceFromFile: start [file=${file}]`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.ServiceOps.importServiceFromFile: importing ${file}`);\n const importData = JSON.parse(data) as ServiceExportInterface;\n try {\n await frodo.service.importServices(importData, clean, globalConfig);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.ServiceOps.importServiceFromFile: end [file=${file}]`);\n });\n}\n\n/**\n * Import all services from separate files\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFiles(\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServicesFromFiles: start`);\n const names = fs.readdirSync(frodo.utils.impex.getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.service.json')\n );\n for (const file of agentFiles) {\n await importServicesFromFile(file, clean, globalConfig);\n }\n debugMessage(`cli.ServiceOps.importServicesFromFiles: end`);\n}\n\n/**\n * Delete a service by id/name\n * @param {string} serviceId Reference to the service to delete\n */\nexport async function deleteService(serviceId: string, globalConfig = false) {\n try {\n await frodo.service.deleteFullService(serviceId, globalConfig);\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete service '${serviceId}': ${message}`, 'error');\n }\n}\n\n/**\n * Delete all services\n */\nexport async function deleteServices(globalConfig = false) {\n await frodo.service.deleteFullServices(globalConfig);\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ServiceOps.js","names":["frodo","state","fs","printMessage","createTable","debugMessage","showSpinner","succeedSpinner","failSpinner","getRealmName","helper","utils","getTypedFilename","titleCase","saveJsonToFile","getWorkingDirectory","impex","getListOfServices","exportServices","exportService","getFullServices","createServiceExportTemplate","importService","importServices","deleteFullService","deleteFullServices","service","listServices","long","globalConfig","services","sort","a","b","_id","localeCompare","table","push","name","toString","error","stack","exportServicesToFile","file","exportData","fileName","getRealm","exportServiceToFile","serviceId","exportServicesToFiles","_type","importServiceFromFile","clean","verbose","getVerbose","readFile","err","data","importData","JSON","parse","importError","_importError$response","_importError$response2","_importError$response3","_importError$response4","message","response","detail","importFirstServiceFromFile","Object","keys","length","_importError$response5","_importError$response6","_importError$response7","_importError$response8","importServicesFromFile","status","importServicesFromFiles","names","readdirSync","agentFiles","filter","toLowerCase","endsWith","deleteService","_error$response","_error$response$data","deleteServices"],"sources":["ops/ServiceOps.ts"],"sourcesContent":["import { frodo, state } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport {\n printMessage,\n createTable,\n debugMessage,\n showSpinner,\n succeedSpinner,\n failSpinner,\n} from '../utils/Console';\nimport type { ServiceExportInterface } from '@rockcarver/frodo-lib/types/ops/OpsTypes';\n\nconst { getRealmName } = frodo.helper.utils;\nconst { getTypedFilename, titleCase, saveJsonToFile, getWorkingDirectory } =\n frodo.utils.impex;\nconst {\n getListOfServices,\n exportServices,\n exportService,\n getFullServices,\n createServiceExportTemplate,\n importService,\n importServices,\n deleteFullService,\n deleteFullServices,\n} = frodo.service;\n\n/**\n * List services\n */\nexport async function listServices(long = false, globalConfig = false) {\n try {\n const services = await getListOfServices(globalConfig);\n services.sort((a, b) => a._id.localeCompare(b._id));\n if (long) {\n const table = createTable(['Service Id', 'Service Name']);\n for (const service of services) {\n table.push([service._id, service.name]);\n }\n printMessage(table.toString(), 'data');\n } else {\n for (const service of services) {\n printMessage(`${service._id}`, 'data');\n }\n }\n } catch (error) {\n printMessage(`Error listing agents - ${error}`, 'error');\n printMessage(error.stack, 'error');\n }\n}\n\n/**\n * Export all services to file\n * @param {string} file file name\n */\nexport async function exportServicesToFile(file, globalConfig = false) {\n const exportData = await exportServices(globalConfig);\n let fileName = getTypedFilename(\n `all${titleCase(getRealmName(state.getRealm()))}Services`,\n `service`\n );\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export service to file\n * @param {string} serviceId service id\n * @param {string} file file name\n */\nexport async function exportServiceToFile(\n serviceId: string,\n file: string,\n globalConfig = false\n) {\n const exportData = await exportService(serviceId, globalConfig);\n let fileName = getTypedFilename(serviceId, `service`);\n if (file) {\n fileName = file;\n }\n saveJsonToFile(exportData, fileName);\n}\n\n/**\n * Export all services to separate files\n */\nexport async function exportServicesToFiles(globalConfig = false) {\n debugMessage(`cli.ServiceOps.exportServicesToFiles: start`);\n const services = await getFullServices(globalConfig);\n for (const service of services) {\n const fileName = getTypedFilename(service._type._id, `service`);\n const exportData = createServiceExportTemplate();\n exportData.service[service._type._id] = service;\n debugMessage(\n `cli.ServiceOps.exportServicesToFiles: exporting ${service._type._id} to ${fileName}`\n );\n saveJsonToFile(exportData, fileName);\n }\n debugMessage(`cli.ServiceOps.exportServicesToFiles: end.`);\n}\n\n/**\n * Import a service from file\n * @param {string} serviceId service id/name\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServiceFromFile(\n serviceId: string,\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: start [serviceId=${serviceId}, file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && importData.service[serviceId]) {\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await importService(serviceId, importData, clean, globalConfig);\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${serviceId} not found!`);\n }\n });\n debugMessage(\n `cli.ServiceOps.importServiceFromFile: end [serviceId=${serviceId}, file=${file}]`\n );\n}\n\n/**\n * Import first service from file\n * @param {string} file import file name\n * @param {boolean} clean remove existing service\n */\nexport async function importFirstServiceFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: start [file=${file}]`\n );\n const verbose = state.getVerbose();\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const importData = JSON.parse(data);\n if (importData && Object.keys(importData.service).length) {\n const serviceId = Object.keys(importData.service)[0];\n if (!verbose) showSpinner(`Importing ${serviceId}...`);\n try {\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n await importService(serviceId, importData, clean, globalConfig);\n succeedSpinner(`Imported ${serviceId}.`);\n } catch (importError) {\n const message = importError.response?.data?.message;\n const detail = importError.response?.data?.detail;\n if (verbose) showSpinner(`Importing ${serviceId}...`);\n failSpinner(`${detail ? message + ' - ' + detail : message}`);\n }\n } else {\n showSpinner(`Importing service...`);\n failSpinner(`No service found in ${file}!`);\n }\n debugMessage(\n `cli.ServiceOps.importFirstServiceFromFile: end [file=${file}]`\n );\n });\n}\n\n/**\n * Import services from file\n * @param {String} file file name\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFile(\n file: string,\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServiceFromFile: start [file=${file}]`);\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n debugMessage(`cli.ServiceOps.importServiceFromFile: importing ${file}`);\n const importData = JSON.parse(data) as ServiceExportInterface;\n try {\n await importServices(importData, clean, globalConfig);\n } catch (error) {\n printMessage(`${error.message}`, 'error');\n printMessage(error.response.status, 'error');\n }\n debugMessage(`cli.ServiceOps.importServiceFromFile: end [file=${file}]`);\n });\n}\n\n/**\n * Import all services from separate files\n * @param {boolean} clean remove existing service\n */\nexport async function importServicesFromFiles(\n clean: boolean,\n globalConfig = false\n) {\n debugMessage(`cli.ServiceOps.importServicesFromFiles: start`);\n const names = fs.readdirSync(getWorkingDirectory());\n const agentFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.service.json')\n );\n for (const file of agentFiles) {\n await importServicesFromFile(file, clean, globalConfig);\n }\n debugMessage(`cli.ServiceOps.importServicesFromFiles: end`);\n}\n\n/**\n * Delete a service by id/name\n * @param {string} serviceId Reference to the service to delete\n */\nexport async function deleteService(serviceId: string, globalConfig = false) {\n try {\n await deleteFullService(serviceId, globalConfig);\n } catch (error) {\n const message = error.response?.data?.message;\n printMessage(`Delete service '${serviceId}': ${message}`, 'error');\n }\n}\n\n/**\n * Delete all services\n */\nexport async function deleteServices(globalConfig = false) {\n await deleteFullServices(globalConfig);\n}\n"],"mappings":"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"}
@@ -2,6 +2,22 @@ import { frodo } from '@rockcarver/frodo-lib';
2
2
  import fs from 'fs';
3
3
  import { printMessage, createTable, createProgressIndicator, updateProgressIndicator, stopProgressIndicator } from '../utils/Console';
4
4
  import { saveToFile, getTypedFilename } from '../utils/ExportImportUtils';
5
+ const {
6
+ getRealmString,
7
+ validateImport
8
+ } = frodo.utils.impex;
9
+ const {
10
+ getThemes,
11
+ getThemeByName,
12
+ getTheme,
13
+ putThemeByName,
14
+ putTheme,
15
+ putThemes,
16
+ deleteTheme,
17
+ deleteThemeByName,
18
+ deleteThemes
19
+ } = frodo.theme;
20
+
5
21
  /**
6
22
  * Get a one-line description of the theme
7
23
  * @param {ThemeSkeleton} themeObj theme object to describe
@@ -38,7 +54,7 @@ export function getTableRowMd(themeObj) {
38
54
  * @param {boolean} long Long version, more fields
39
55
  */
40
56
  export async function listThemes(long = false) {
41
- const themeList = await frodo.theme.getThemes();
57
+ const themeList = await getThemes();
42
58
  themeList.sort((a, b) => a.name.localeCompare(b.name));
43
59
  if (!long) {
44
60
  themeList.forEach(theme => {
@@ -65,7 +81,7 @@ export async function exportThemeByName(name, file) {
65
81
  }
66
82
  createProgressIndicator('determinate', 1, `Exporting ${name}`);
67
83
  try {
68
- const themeData = await frodo.theme.getThemeByName(name);
84
+ const themeData = await getThemeByName(name);
69
85
  updateProgressIndicator(`Writing file ${fileName}`);
70
86
  saveToFile('theme', [themeData], '_id', fileName);
71
87
  stopProgressIndicator(`Successfully exported theme ${name}.`);
@@ -87,7 +103,7 @@ export async function exportThemeById(id, file) {
87
103
  }
88
104
  createProgressIndicator('determinate', 1, `Exporting ${id}`);
89
105
  try {
90
- const themeData = await frodo.theme.getTheme(id);
106
+ const themeData = await getTheme(id);
91
107
  updateProgressIndicator(`Writing file ${fileName}`);
92
108
  saveToFile('theme', [themeData], '_id', fileName);
93
109
  stopProgressIndicator(`Successfully exported theme ${id}.`);
@@ -102,11 +118,11 @@ export async function exportThemeById(id, file) {
102
118
  * @param {String} file optional export file name
103
119
  */
104
120
  export async function exportThemesToFile(file) {
105
- let fileName = getTypedFilename(`all${frodo.utils.impex.getRealmString()}Themes`, 'theme');
121
+ let fileName = getTypedFilename(`all${getRealmString()}Themes`, 'theme');
106
122
  if (file) {
107
123
  fileName = file;
108
124
  }
109
- const allThemesData = await frodo.theme.getThemes();
125
+ const allThemesData = await getThemes();
110
126
  createProgressIndicator('determinate', allThemesData.length, 'Exporting themes');
111
127
  for (const themeData of allThemesData) {
112
128
  updateProgressIndicator(`Exporting theme ${themeData.name}`);
@@ -119,7 +135,7 @@ export async function exportThemesToFile(file) {
119
135
  * Export all themes to separate files
120
136
  */
121
137
  export async function exportThemesToFiles() {
122
- const allThemesData = await frodo.theme.getThemes();
138
+ const allThemesData = await getThemes();
123
139
  createProgressIndicator('determinate', allThemesData.length, 'Exporting themes');
124
140
  for (const themeData of allThemesData) {
125
141
  updateProgressIndicator(`Writing theme ${themeData.name}`);
@@ -138,7 +154,7 @@ export async function importThemeByName(name, file) {
138
154
  fs.readFile(file, 'utf8', async (err, data) => {
139
155
  if (err) throw err;
140
156
  const themeData = JSON.parse(data);
141
- if (frodo.utils.impex.validateImport(themeData.meta)) {
157
+ if (validateImport(themeData.meta)) {
142
158
  createProgressIndicator('determinate', 1, 'Importing theme...');
143
159
  let found = false;
144
160
  for (const id in themeData.theme) {
@@ -147,7 +163,7 @@ export async function importThemeByName(name, file) {
147
163
  found = true;
148
164
  updateProgressIndicator(`Importing ${themeData.theme[id].name}`);
149
165
  try {
150
- await frodo.theme.putThemeByName(name, themeData.theme[id]);
166
+ await putThemeByName(name, themeData.theme[id]);
151
167
  stopProgressIndicator(`Successfully imported theme ${name}.`);
152
168
  } catch (error) {
153
169
  stopProgressIndicator(`Error importing theme ${themeData.theme[id].name}: ${error.message}`);
@@ -175,7 +191,7 @@ export async function importThemeById(id, file) {
175
191
  fs.readFile(file, 'utf8', async (err, data) => {
176
192
  if (err) throw err;
177
193
  const themeData = JSON.parse(data);
178
- if (frodo.utils.impex.validateImport(themeData.meta)) {
194
+ if (validateImport(themeData.meta)) {
179
195
  createProgressIndicator('determinate', 1, 'Importing theme...');
180
196
  let found = false;
181
197
  for (const themeId in themeData.theme) {
@@ -184,7 +200,7 @@ export async function importThemeById(id, file) {
184
200
  found = true;
185
201
  updateProgressIndicator(`Importing ${themeData.theme[themeId]._id}`);
186
202
  try {
187
- await frodo.theme.putTheme(themeId, themeData.theme[themeId]);
203
+ await putTheme(themeId, themeData.theme[themeId]);
188
204
  stopProgressIndicator(`Successfully imported theme ${id}.`);
189
205
  } catch (error) {
190
206
  stopProgressIndicator(`Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`);
@@ -211,14 +227,14 @@ export async function importThemesFromFile(file) {
211
227
  fs.readFile(file, 'utf8', (err, data) => {
212
228
  if (err) throw err;
213
229
  const fileData = JSON.parse(data);
214
- if (frodo.utils.impex.validateImport(fileData.meta)) {
230
+ if (validateImport(fileData.meta)) {
215
231
  createProgressIndicator('determinate', Object.keys(fileData.theme).length, 'Importing themes...');
216
232
  for (const id in fileData.theme) {
217
233
  if ({}.hasOwnProperty.call(fileData.theme, id)) {
218
234
  updateProgressIndicator(`Importing ${fileData.theme[id].name}`);
219
235
  }
220
236
  }
221
- frodo.theme.putThemes(fileData.theme).then(result => {
237
+ putThemes(fileData.theme).then(result => {
222
238
  if (result == null) {
223
239
  stopProgressIndicator(`Error importing ${Object.keys(fileData.theme).length} themes!`);
224
240
  printMessage(`Error importing ${Object.keys(fileData.theme).length} themes from ${file}`, 'error');
@@ -246,10 +262,10 @@ export async function importThemesFromFiles() {
246
262
  for (const file of jsonFiles) {
247
263
  const data = fs.readFileSync(file, 'utf8');
248
264
  fileData = JSON.parse(data);
249
- if (frodo.utils.impex.validateImport(fileData.meta)) {
265
+ if (validateImport(fileData.meta)) {
250
266
  count = Object.keys(fileData.theme).length;
251
267
  // eslint-disable-next-line no-await-in-loop
252
- const result = await frodo.theme.putThemes(fileData.theme);
268
+ const result = await putThemes(fileData.theme);
253
269
  if (result == null) {
254
270
  printMessage(`Error importing ${count} themes from ${file}`, 'error');
255
271
  } else {
@@ -272,12 +288,12 @@ export async function importFirstThemeFromFile(file) {
272
288
  fs.readFile(file, 'utf8', (err, data) => {
273
289
  if (err) throw err;
274
290
  const themeData = JSON.parse(data);
275
- if (frodo.utils.impex.validateImport(themeData.meta)) {
291
+ if (validateImport(themeData.meta)) {
276
292
  createProgressIndicator('determinate', 1, 'Importing theme...');
277
293
  for (const id in themeData.theme) {
278
294
  if ({}.hasOwnProperty.call(themeData.theme, id)) {
279
295
  updateProgressIndicator(`Importing ${themeData.theme[id].name}`);
280
- frodo.theme.putTheme(id, themeData.theme[id]).then(result => {
296
+ putTheme(id, themeData.theme[id]).then(result => {
281
297
  if (result == null) {
282
298
  stopProgressIndicator(`Error importing theme ${themeData.theme[id].name}`);
283
299
  printMessage(`Error importing theme ${themeData.theme[id].name}`, 'error');
@@ -301,7 +317,7 @@ export async function importFirstThemeFromFile(file) {
301
317
  export async function deleteThemeCmd(id) {
302
318
  createProgressIndicator('indeterminate', undefined, `Deleting ${id}...`);
303
319
  try {
304
- await frodo.theme.deleteTheme(id);
320
+ await deleteTheme(id);
305
321
  stopProgressIndicator(`Deleted ${id}.`, 'success');
306
322
  } catch (error) {
307
323
  stopProgressIndicator(`Error: ${error.message}`, 'fail');
@@ -315,7 +331,7 @@ export async function deleteThemeCmd(id) {
315
331
  export async function deleteThemeByNameCmd(name) {
316
332
  createProgressIndicator('indeterminate', undefined, `Deleting ${name}...`);
317
333
  try {
318
- await frodo.theme.deleteThemeByName(name);
334
+ await deleteThemeByName(name);
319
335
  stopProgressIndicator(`Deleted ${name}.`, 'success');
320
336
  } catch (error) {
321
337
  stopProgressIndicator(`Error: ${error.message}`, 'fail');
@@ -328,7 +344,7 @@ export async function deleteThemeByNameCmd(name) {
328
344
  export async function deleteAllThemes() {
329
345
  createProgressIndicator('indeterminate', undefined, `Deleting all realm themes...`);
330
346
  try {
331
- await frodo.theme.deleteThemes();
347
+ await deleteThemes();
332
348
  stopProgressIndicator(`Deleted all realm themes.`, 'success');
333
349
  } catch (error) {
334
350
  stopProgressIndicator(`Error: ${error.message}`, 'fail');
@@ -1 +1 @@
1
- {"version":3,"file":"ThemeOps.js","names":["frodo","fs","printMessage","createTable","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","saveToFile","getTypedFilename","getOneLineDescription","themeObj","description","_id","name","linkedTrees","join","getTableHeaderMd","markdown","getTableRowMd","row","listThemes","long","themeList","theme","getThemes","sort","a","b","localeCompare","forEach","isDefault","table","push","toString","exportThemeByName","file","fileName","themeData","getThemeByName","error","message","exportThemeById","id","getTheme","exportThemesToFile","utils","impex","getRealmString","allThemesData","length","exportThemesToFiles","importThemeByName","readFile","err","data","JSON","parse","validateImport","meta","found","hasOwnProperty","call","putThemeByName","importThemeById","themeId","putTheme","importThemesFromFile","fileData","Object","keys","putThemes","then","result","importThemesFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","count","total","files","readFileSync","importFirstThemeFromFile","deleteThemeCmd","undefined","deleteTheme","deleteThemeByNameCmd","deleteThemeByName","deleteAllThemes","deleteThemes","deleteThemesCmd"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type { ThemeSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n printMessage,\n createTable,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { saveToFile, getTypedFilename } from '../utils/ExportImportUtils';\n/**\n * Get a one-line description of the theme\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(themeObj: ThemeSkeleton): string {\n const description = `[${themeObj._id['brightCyan']}] ${themeObj.name}${\n themeObj.linkedTrees\n ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')'\n : ''\n }`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name | Linked Journey(s) | Id |\\n';\n markdown += '| ---- | ----------------- | ---|';\n return markdown;\n}\n\n/**\n * Get a table-row of the theme in markdown\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a table-row of the theme in markdown\n */\nexport function getTableRowMd(themeObj: ThemeSkeleton): string {\n const row = `| ${themeObj.name} | ${\n themeObj.linkedTrees ? themeObj.linkedTrees.join(', ') : ''\n } | \\`${themeObj._id}\\` |`;\n return row;\n}\n\n/**\n * List all the themes\n * @param {boolean} long Long version, more fields\n */\nexport async function listThemes(long = false) {\n const themeList = await frodo.theme.getThemes();\n themeList.sort((a, b) => a.name.localeCompare(b.name));\n if (!long) {\n themeList.forEach((theme) => {\n printMessage(\n `${theme.isDefault ? theme.name['brightCyan'] : theme.name}`,\n 'data'\n );\n });\n } else {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Id'['brightCyan'],\n 'Default'['brightCyan'],\n ]);\n themeList.forEach((theme) => {\n table.push([\n `${theme.name}`,\n `${theme._id}`,\n `${theme.isDefault ? 'Yes'['brightGreen'] : ''}`,\n ]);\n });\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export theme by name to file\n * @param {String} name theme name\n * @param {String} file optional export file name\n */\nexport async function exportThemeByName(name, file) {\n let fileName = getTypedFilename(name, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${name}`);\n try {\n const themeData = await frodo.theme.getThemeByName(name);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export theme by uuid to file\n * @param {String} id theme uuid\n * @param {String} file optional export file name\n */\nexport async function exportThemeById(id, file) {\n let fileName = getTypedFilename(id, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${id}`);\n try {\n const themeData = await frodo.theme.getTheme(id);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export all themes to file\n * @param {String} file optional export file name\n */\nexport async function exportThemesToFile(file) {\n let fileName = getTypedFilename(\n `all${frodo.utils.impex.getRealmString()}Themes`,\n 'theme'\n );\n if (file) {\n fileName = file;\n }\n const allThemesData = await frodo.theme.getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Exporting theme ${themeData.name}`);\n }\n saveToFile('theme', allThemesData, '_id', fileName);\n stopProgressIndicator(\n `${allThemesData.length} themes exported to ${fileName}.`\n );\n}\n\n/**\n * Export all themes to separate files\n */\nexport async function exportThemesToFiles() {\n const allThemesData = await frodo.theme.getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Writing theme ${themeData.name}`);\n const fileName = getTypedFilename(themeData.name, 'theme');\n saveToFile('theme', themeData, '_id', fileName);\n }\n stopProgressIndicator(`${allThemesData.length} themes exported.`);\n}\n\n/**\n * Import theme by name from file\n * @param {String} name theme name\n * @param {String} file import file name\n */\nexport async function importThemeByName(name, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n if (themeData.theme[id].name === name) {\n found = true;\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n try {\n await frodo.theme.putThemeByName(name, themeData.theme[id]);\n stopProgressIndicator(`Successfully imported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${name} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import theme by uuid from file\n * @param {String} id theme uuid\n * @param {String} file import file name\n */\nexport async function importThemeById(id, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const themeId in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, themeId)) {\n if (themeId === id) {\n found = true;\n updateProgressIndicator(\n `Importing ${themeData.theme[themeId]._id}`\n );\n try {\n await frodo.theme.putTheme(themeId, themeData.theme[themeId]);\n stopProgressIndicator(`Successfully imported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${id} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all themes from single file\n * @param {String} file import file name\n */\nexport async function importThemesFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(fileData.meta)) {\n createProgressIndicator(\n 'determinate',\n Object.keys(fileData.theme).length,\n 'Importing themes...'\n );\n for (const id in fileData.theme) {\n if ({}.hasOwnProperty.call(fileData.theme, id)) {\n updateProgressIndicator(`Importing ${fileData.theme[id].name}`);\n }\n }\n frodo.theme.putThemes(fileData.theme).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing ${Object.keys(fileData.theme).length} themes!`\n );\n printMessage(\n `Error importing ${\n Object.keys(fileData.theme).length\n } themes from ${file}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported ${\n Object.keys(fileData.theme).length\n } themes.`\n );\n }\n });\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import themes from separate files\n */\nexport async function importThemesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.theme.json')\n );\n\n createProgressIndicator(\n 'determinate',\n jsonFiles.length,\n 'Importing themes...'\n );\n let fileData = null;\n let count = 0;\n let total = 0;\n let files = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n fileData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(fileData.meta)) {\n count = Object.keys(fileData.theme).length;\n // eslint-disable-next-line no-await-in-loop\n const result = await frodo.theme.putThemes(fileData.theme);\n if (result == null) {\n printMessage(`Error importing ${count} themes from ${file}`, 'error');\n } else {\n files += 1;\n total += count;\n updateProgressIndicator(`Imported ${count} theme(s) from ${file}`);\n }\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} theme(s) from ${files} file(s).`\n );\n}\n\n/**\n * Import first theme from file\n * @param {String} file import file name\n */\nexport async function importFirstThemeFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (frodo.utils.impex.validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n frodo.theme.putTheme(id, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported theme ${themeData.theme[id].name}`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Delete theme by id\n * @param {String} id theme id\n */\nexport async function deleteThemeCmd(id) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${id}...`);\n try {\n await frodo.theme.deleteTheme(id);\n stopProgressIndicator(`Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete theme by name\n * @param {String} name theme name\n */\nexport async function deleteThemeByNameCmd(name) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${name}...`);\n try {\n await frodo.theme.deleteThemeByName(name);\n stopProgressIndicator(`Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n */\nexport async function deleteAllThemes() {\n createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting all realm themes...`\n );\n try {\n await frodo.theme.deleteThemes();\n stopProgressIndicator(`Deleted all realm themes.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n * @deprecated since version 0.14.0\n */\nexport async function deleteThemesCmd() {\n return deleteAllThemes();\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"ThemeOps.js","names":["frodo","fs","printMessage","createTable","createProgressIndicator","updateProgressIndicator","stopProgressIndicator","saveToFile","getTypedFilename","getRealmString","validateImport","utils","impex","getThemes","getThemeByName","getTheme","putThemeByName","putTheme","putThemes","deleteTheme","deleteThemeByName","deleteThemes","theme","getOneLineDescription","themeObj","description","_id","name","linkedTrees","join","getTableHeaderMd","markdown","getTableRowMd","row","listThemes","long","themeList","sort","a","b","localeCompare","forEach","isDefault","table","push","toString","exportThemeByName","file","fileName","themeData","error","message","exportThemeById","id","exportThemesToFile","allThemesData","length","exportThemesToFiles","importThemeByName","readFile","err","data","JSON","parse","meta","found","hasOwnProperty","call","importThemeById","themeId","importThemesFromFile","fileData","Object","keys","then","result","importThemesFromFiles","names","readdirSync","jsonFiles","filter","toLowerCase","endsWith","count","total","files","readFileSync","importFirstThemeFromFile","deleteThemeCmd","undefined","deleteThemeByNameCmd","deleteAllThemes","deleteThemesCmd"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport type { ThemeSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n printMessage,\n createTable,\n createProgressIndicator,\n updateProgressIndicator,\n stopProgressIndicator,\n} from '../utils/Console';\nimport { saveToFile, getTypedFilename } from '../utils/ExportImportUtils';\n\nconst { getRealmString, validateImport } = frodo.utils.impex;\nconst {\n getThemes,\n getThemeByName,\n getTheme,\n putThemeByName,\n putTheme,\n putThemes,\n deleteTheme,\n deleteThemeByName,\n deleteThemes,\n} = frodo.theme;\n\n/**\n * Get a one-line description of the theme\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(themeObj: ThemeSkeleton): string {\n const description = `[${themeObj._id['brightCyan']}] ${themeObj.name}${\n themeObj.linkedTrees\n ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')'\n : ''\n }`;\n return description;\n}\n\n/**\n * Get markdown table header\n * @returns {string} markdown table header\n */\nexport function getTableHeaderMd(): string {\n let markdown = '';\n markdown += '| Name | Linked Journey(s) | Id |\\n';\n markdown += '| ---- | ----------------- | ---|';\n return markdown;\n}\n\n/**\n * Get a table-row of the theme in markdown\n * @param {ThemeSkeleton} themeObj theme object to describe\n * @returns {string} a table-row of the theme in markdown\n */\nexport function getTableRowMd(themeObj: ThemeSkeleton): string {\n const row = `| ${themeObj.name} | ${\n themeObj.linkedTrees ? themeObj.linkedTrees.join(', ') : ''\n } | \\`${themeObj._id}\\` |`;\n return row;\n}\n\n/**\n * List all the themes\n * @param {boolean} long Long version, more fields\n */\nexport async function listThemes(long = false) {\n const themeList = await getThemes();\n themeList.sort((a, b) => a.name.localeCompare(b.name));\n if (!long) {\n themeList.forEach((theme) => {\n printMessage(\n `${theme.isDefault ? theme.name['brightCyan'] : theme.name}`,\n 'data'\n );\n });\n } else {\n const table = createTable([\n 'Name'['brightCyan'],\n 'Id'['brightCyan'],\n 'Default'['brightCyan'],\n ]);\n themeList.forEach((theme) => {\n table.push([\n `${theme.name}`,\n `${theme._id}`,\n `${theme.isDefault ? 'Yes'['brightGreen'] : ''}`,\n ]);\n });\n printMessage(table.toString(), 'data');\n }\n}\n\n/**\n * Export theme by name to file\n * @param {String} name theme name\n * @param {String} file optional export file name\n */\nexport async function exportThemeByName(name, file) {\n let fileName = getTypedFilename(name, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${name}`);\n try {\n const themeData = await getThemeByName(name);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export theme by uuid to file\n * @param {String} id theme uuid\n * @param {String} file optional export file name\n */\nexport async function exportThemeById(id, file) {\n let fileName = getTypedFilename(id, 'theme');\n if (file) {\n fileName = file;\n }\n createProgressIndicator('determinate', 1, `Exporting ${id}`);\n try {\n const themeData = await getTheme(id);\n updateProgressIndicator(`Writing file ${fileName}`);\n saveToFile('theme', [themeData], '_id', fileName);\n stopProgressIndicator(`Successfully exported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(`${error.message}`);\n printMessage(`${error.message}`, 'error');\n }\n}\n\n/**\n * Export all themes to file\n * @param {String} file optional export file name\n */\nexport async function exportThemesToFile(file) {\n let fileName = getTypedFilename(`all${getRealmString()}Themes`, 'theme');\n if (file) {\n fileName = file;\n }\n const allThemesData = await getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Exporting theme ${themeData.name}`);\n }\n saveToFile('theme', allThemesData, '_id', fileName);\n stopProgressIndicator(\n `${allThemesData.length} themes exported to ${fileName}.`\n );\n}\n\n/**\n * Export all themes to separate files\n */\nexport async function exportThemesToFiles() {\n const allThemesData = await getThemes();\n createProgressIndicator(\n 'determinate',\n allThemesData.length,\n 'Exporting themes'\n );\n for (const themeData of allThemesData) {\n updateProgressIndicator(`Writing theme ${themeData.name}`);\n const fileName = getTypedFilename(themeData.name, 'theme');\n saveToFile('theme', themeData, '_id', fileName);\n }\n stopProgressIndicator(`${allThemesData.length} themes exported.`);\n}\n\n/**\n * Import theme by name from file\n * @param {String} name theme name\n * @param {String} file import file name\n */\nexport async function importThemeByName(name, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n if (themeData.theme[id].name === name) {\n found = true;\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n try {\n await putThemeByName(name, themeData.theme[id]);\n stopProgressIndicator(`Successfully imported theme ${name}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${name} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import theme by uuid from file\n * @param {String} id theme uuid\n * @param {String} file import file name\n */\nexport async function importThemeById(id, file) {\n fs.readFile(file, 'utf8', async (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n let found = false;\n for (const themeId in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, themeId)) {\n if (themeId === id) {\n found = true;\n updateProgressIndicator(\n `Importing ${themeData.theme[themeId]._id}`\n );\n try {\n await putTheme(themeId, themeData.theme[themeId]);\n stopProgressIndicator(`Successfully imported theme ${id}.`);\n } catch (error) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[themeId]._id}: ${error.message}`,\n 'error'\n );\n }\n break;\n }\n }\n }\n if (!found) {\n stopProgressIndicator(`Theme ${id} not found!`);\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import all themes from single file\n * @param {String} file import file name\n */\nexport async function importThemesFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n createProgressIndicator(\n 'determinate',\n Object.keys(fileData.theme).length,\n 'Importing themes...'\n );\n for (const id in fileData.theme) {\n if ({}.hasOwnProperty.call(fileData.theme, id)) {\n updateProgressIndicator(`Importing ${fileData.theme[id].name}`);\n }\n }\n putThemes(fileData.theme).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing ${Object.keys(fileData.theme).length} themes!`\n );\n printMessage(\n `Error importing ${\n Object.keys(fileData.theme).length\n } themes from ${file}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported ${\n Object.keys(fileData.theme).length\n } themes.`\n );\n }\n });\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Import themes from separate files\n */\nexport async function importThemesFromFiles() {\n const names = fs.readdirSync('.');\n const jsonFiles = names.filter((name) =>\n name.toLowerCase().endsWith('.theme.json')\n );\n\n createProgressIndicator(\n 'determinate',\n jsonFiles.length,\n 'Importing themes...'\n );\n let fileData = null;\n let count = 0;\n let total = 0;\n let files = 0;\n for (const file of jsonFiles) {\n const data = fs.readFileSync(file, 'utf8');\n fileData = JSON.parse(data);\n if (validateImport(fileData.meta)) {\n count = Object.keys(fileData.theme).length;\n // eslint-disable-next-line no-await-in-loop\n const result = await putThemes(fileData.theme);\n if (result == null) {\n printMessage(`Error importing ${count} themes from ${file}`, 'error');\n } else {\n files += 1;\n total += count;\n updateProgressIndicator(`Imported ${count} theme(s) from ${file}`);\n }\n } else {\n printMessage(`Validation of ${file} failed!`, 'error');\n }\n }\n stopProgressIndicator(\n `Finished importing ${total} theme(s) from ${files} file(s).`\n );\n}\n\n/**\n * Import first theme from file\n * @param {String} file import file name\n */\nexport async function importFirstThemeFromFile(file) {\n fs.readFile(file, 'utf8', (err, data) => {\n if (err) throw err;\n const themeData = JSON.parse(data);\n if (validateImport(themeData.meta)) {\n createProgressIndicator('determinate', 1, 'Importing theme...');\n for (const id in themeData.theme) {\n if ({}.hasOwnProperty.call(themeData.theme, id)) {\n updateProgressIndicator(`Importing ${themeData.theme[id].name}`);\n putTheme(id, themeData.theme[id]).then((result) => {\n if (result == null) {\n stopProgressIndicator(\n `Error importing theme ${themeData.theme[id].name}`\n );\n printMessage(\n `Error importing theme ${themeData.theme[id].name}`,\n 'error'\n );\n } else {\n stopProgressIndicator(\n `Successfully imported theme ${themeData.theme[id].name}`\n );\n }\n });\n break;\n }\n }\n } else {\n printMessage('Import validation failed...', 'error');\n }\n });\n}\n\n/**\n * Delete theme by id\n * @param {String} id theme id\n */\nexport async function deleteThemeCmd(id) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${id}...`);\n try {\n await deleteTheme(id);\n stopProgressIndicator(`Deleted ${id}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete theme by name\n * @param {String} name theme name\n */\nexport async function deleteThemeByNameCmd(name) {\n createProgressIndicator('indeterminate', undefined, `Deleting ${name}...`);\n try {\n await deleteThemeByName(name);\n stopProgressIndicator(`Deleted ${name}.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n */\nexport async function deleteAllThemes() {\n createProgressIndicator(\n 'indeterminate',\n undefined,\n `Deleting all realm themes...`\n );\n try {\n await deleteThemes();\n stopProgressIndicator(`Deleted all realm themes.`, 'success');\n } catch (error) {\n stopProgressIndicator(`Error: ${error.message}`, 'fail');\n }\n}\n\n/**\n * Delete all themes\n * @deprecated since version 0.14.0\n */\nexport async function deleteThemesCmd() {\n return deleteAllThemes();\n}\n"],"mappings":"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"}
@@ -1,6 +1,17 @@
1
1
  import { frodo } from '@rockcarver/frodo-lib';
2
2
  import { createKeyValueTable, createProgressBar, createTable, failSpinner, printMessage, showSpinner, stopProgressBar, succeedSpinner, updateProgressBar } from '../utils/Console';
3
3
  import wordwrap from './utils/Wordwrap';
4
+ const {
5
+ decode
6
+ } = frodo.helper.base64;
7
+ const {
8
+ resolveUserName
9
+ } = frodo.idm.managed;
10
+ const {
11
+ getVariables,
12
+ getVariable,
13
+ putVariable
14
+ } = frodo.cloud.variable;
4
15
 
5
16
  /**
6
17
  * List variables
@@ -9,7 +20,7 @@ import wordwrap from './utils/Wordwrap';
9
20
  export async function listVariables(long) {
10
21
  let variables = [];
11
22
  try {
12
- variables = (await frodo.cloud.variable.getVariables()).result;
23
+ variables = (await getVariables()).result;
13
24
  variables.sort((a, b) => a._id.localeCompare(b._id));
14
25
  } catch (error) {
15
26
  printMessage(`${error.message}`, 'error');
@@ -18,9 +29,9 @@ export async function listVariables(long) {
18
29
  if (long) {
19
30
  const table = createTable(['Id'['brightCyan'], 'Value'['brightCyan'], 'Status'['brightCyan'], 'Description'['brightCyan'], 'Modifier'['brightCyan'], 'Modified'['brightCyan']]);
20
31
  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),
32
+ table.push([variable._id, wordwrap(decode(variable.valueBase64), 40), variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed'], wordwrap(variable.description, 40),
22
33
  // eslint-disable-next-line no-await-in-loop
23
- await frodo.idm.managed.resolveUserName('teammember', variable.lastChangedBy), new Date(variable.lastChangeDate).toLocaleString()]);
34
+ await resolveUserName('teammember', variable.lastChangedBy), new Date(variable.lastChangeDate).toLocaleString()]);
24
35
  }
25
36
  printMessage(table.toString(), 'data');
26
37
  } else {
@@ -39,7 +50,7 @@ export async function listVariables(long) {
39
50
  export async function createVariable(variableId, value, description) {
40
51
  showSpinner(`Creating variable ${variableId}...`);
41
52
  try {
42
- await frodo.cloud.variable.putVariable(variableId, value, description);
53
+ await putVariable(variableId, value, description);
43
54
  succeedSpinner(`Created variable ${variableId}`);
44
55
  } catch (error) {
45
56
  failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
@@ -55,7 +66,7 @@ export async function createVariable(variableId, value, description) {
55
66
  export async function updateVariable(variableId, value, description) {
56
67
  showSpinner(`Updating variable ${variableId}...`);
57
68
  try {
58
- await frodo.cloud.variable.putVariable(variableId, value, description);
69
+ await putVariable(variableId, value, description);
59
70
  succeedSpinner(`Updated variable ${variableId}`);
60
71
  } catch (error) {
61
72
  failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
@@ -70,7 +81,7 @@ export async function updateVariable(variableId, value, description) {
70
81
  export async function setVariableDescription(variableId, description) {
71
82
  showSpinner(`Setting description of variable ${variableId}...`);
72
83
  try {
73
- await frodo.cloud.variable.setVariableDescription(variableId, description);
84
+ await setVariableDescription(variableId, description);
74
85
  succeedSpinner(`Set description of variable ${variableId}`);
75
86
  } catch (error) {
76
87
  failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
@@ -84,7 +95,7 @@ export async function setVariableDescription(variableId, description) {
84
95
  export async function deleteVariable(variableId) {
85
96
  showSpinner(`Deleting variable ${variableId}...`);
86
97
  try {
87
- await frodo.cloud.variable.deleteVariable(variableId);
98
+ await deleteVariable(variableId);
88
99
  succeedSpinner(`Deleted variable ${variableId}`);
89
100
  } catch (error) {
90
101
  failSpinner(`Error: ${error.response.data.code} - ${error.response.data.message}`);
@@ -96,12 +107,12 @@ export async function deleteVariable(variableId) {
96
107
  */
97
108
  export async function deleteVariables() {
98
109
  try {
99
- const variables = (await frodo.cloud.variable.getVariables()).result;
110
+ const variables = (await getVariables()).result;
100
111
  createProgressBar(variables.length, `Deleting variable...`);
101
112
  for (const variable of variables) {
102
113
  try {
103
114
  // eslint-disable-next-line no-await-in-loop
104
- await frodo.cloud.variable.deleteVariable(variable._id);
115
+ await deleteVariable(variable._id);
105
116
  updateProgressBar(`Deleted variable ${variable._id}`);
106
117
  } catch (error) {
107
118
  printMessage(`Error: ${error.response.data.code} - ${error.response.data.message}`, 'error');
@@ -119,14 +130,14 @@ export async function deleteVariables() {
119
130
  * @param {String} variableId variable id
120
131
  */
121
132
  export async function describeVariable(variableId) {
122
- const variable = await frodo.cloud.variable.getVariable(variableId);
133
+ const variable = await getVariable(variableId);
123
134
  const table = createKeyValueTable();
124
135
  table.push(['Name'['brightCyan'], variable._id]);
125
- table.push(['Value'['brightCyan'], wordwrap(frodo.helper.base64.decode(variable.valueBase64), 40)]);
136
+ table.push(['Value'['brightCyan'], wordwrap(decode(variable.valueBase64), 40)]);
126
137
  table.push(['Status'['brightCyan'], variable.loaded ? 'loaded'['brightGreen'] : 'unloaded'['brightRed']]);
127
138
  table.push(['Description'['brightCyan'], wordwrap(variable.description, 60)]);
128
139
  table.push(['Modified'['brightCyan'], new Date(variable.lastChangeDate).toLocaleString()]);
129
- table.push(['Modifier'['brightCyan'], await frodo.idm.managed.resolveUserName('teammember', variable.lastChangedBy)]);
140
+ table.push(['Modifier'['brightCyan'], await resolveUserName('teammember', variable.lastChangedBy)]);
130
141
  table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);
131
142
  printMessage(table.toString());
132
143
  }
@@ -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","createKeyValueTable","createProgressBar","createTable","failSpinner","printMessage","showSpinner","stopProgressBar","succeedSpinner","updateProgressBar","wordwrap","decode","helper","base64","resolveUserName","idm","managed","getVariables","getVariable","putVariable","cloud","variable","listVariables","long","variables","result","sort","a","b","_id","localeCompare","error","message","response","data","table","push","valueBase64","loaded","description","lastChangedBy","Date","lastChangeDate","toLocaleString","toString","forEach","secret","createVariable","variableId","value","code","updateVariable","setVariableDescription","deleteVariable","deleteVariables","length","describeVariable"],"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\nconst { decode } = frodo.helper.base64;\nconst { resolveUserName } = frodo.idm.managed;\nconst { getVariables, getVariable, putVariable } = frodo.cloud.variable;\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 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(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 resolveUserName('teammember', variable.lastChangedBy),\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 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 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 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 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 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 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 getVariable(variableId);\n const table = createKeyValueTable();\n table.push(['Name'['brightCyan'], variable._id]);\n table.push([\n 'Value'['brightCyan'],\n wordwrap(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 resolveUserName('teammember', variable.lastChangedBy),\n ]);\n table.push(['Modifier UUID'['brightCyan'], variable.lastChangedBy]);\n printMessage(table.toString());\n}\n"],"mappings":"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"}
@@ -1,7 +1,10 @@
1
+ import { frodo } from '@rockcarver/frodo-lib';
1
2
  import fs from 'fs';
2
3
  import os from 'os';
3
- import { frodo } from '@rockcarver/frodo-lib';
4
4
  import { printMessage } from './Console';
5
+ const {
6
+ getDefaultNoiseFilter
7
+ } = frodo.cloud.log;
5
8
  export const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';
6
9
  export const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';
7
10
  export function getConfigPath() {
@@ -22,12 +25,12 @@ export function getNoiseFilters(defaults) {
22
25
  const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;
23
26
  if (defaults) {
24
27
  printMessage(`Using default logging noise filters.`, 'info');
25
- return frodo.cloud.log.getDefaultNoiseFilter();
28
+ return getDefaultNoiseFilter();
26
29
  }
27
30
  let noiseFilter = getCustomNoiseFilters();
28
31
  if (noiseFilter.length == 0) {
29
32
  printMessage(`No custom noise filters defined. Using defaults.`, 'info');
30
- noiseFilter = frodo.cloud.log.getDefaultNoiseFilter();
33
+ noiseFilter = getDefaultNoiseFilter();
31
34
  try {
32
35
  fs.writeFileSync(filename, JSON.stringify(noiseFilter, null, 2));
33
36
  printMessage(`The default filters were saved in ${filename}. You can change the filters as needed.`, 'info');
@@ -1 +1 @@
1
- {"version":3,"file":"Config.js","names":["fs","os","frodo","printMessage","FRODO_CONFIG_PATH_KEY","FRODO_LOG_NOISEFILTER_FILENAME","getConfigPath","process","env","homedir","getCustomNoiseFilters","filename","noiseFilter","data","readFileSync","JSON","parse","e","message","getNoiseFilters","defaults","cloud","log","getDefaultNoiseFilter","length","writeFileSync","stringify"],"sources":["utils/Config.ts"],"sourcesContent":["import fs from 'fs';\nimport os from 'os';\nimport { frodo } from '@rockcarver/frodo-lib';\n\nimport { printMessage } from './Console';\n\nexport const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';\nexport const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';\n\nexport function getConfigPath(): string {\n return process.env[FRODO_CONFIG_PATH_KEY] || `${os.homedir()}/.frodo`;\n}\n\nfunction getCustomNoiseFilters(): Array<string> {\n const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;\n let noiseFilter = [];\n try {\n const data = fs.readFileSync(filename, 'utf8');\n noiseFilter = JSON.parse(data);\n } catch (e) {\n printMessage(`Error reading ${filename} (${e.message})`, 'error');\n }\n return noiseFilter;\n}\n\nexport function getNoiseFilters(defaults: boolean): Array<string> {\n const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;\n if (defaults) {\n printMessage(`Using default logging noise filters.`, 'info');\n return frodo.cloud.log.getDefaultNoiseFilter();\n }\n let noiseFilter = getCustomNoiseFilters();\n if (noiseFilter.length == 0) {\n printMessage(`No custom noise filters defined. Using defaults.`, 'info');\n noiseFilter = frodo.cloud.log.getDefaultNoiseFilter();\n try {\n fs.writeFileSync(filename, JSON.stringify(noiseFilter, null, 2));\n printMessage(\n `The default filters were saved in ${filename}. You can change the filters as needed.`,\n 'info'\n );\n } catch (e) {\n printMessage(\n `Error creating noise filter configuration with default values.`,\n 'error'\n );\n }\n }\n return noiseFilter;\n}\n"],"mappings":"AAAA,OAAOA,EAAE,MAAM,IAAI;AACnB,OAAOC,EAAE,MAAM,IAAI;AACnB,SAASC,KAAK,QAAQ,uBAAuB;AAE7C,SAASC,YAAY,QAAQ,WAAW;AAExC,OAAO,MAAMC,qBAAqB,GAAG,mBAAmB;AACxD,OAAO,MAAMC,8BAA8B,GAAG,yBAAyB;AAEvE,OAAO,SAASC,aAAaA,CAAA,EAAW;EACtC,OAAOC,OAAO,CAACC,GAAG,CAACJ,qBAAqB,CAAC,IAAK,GAAEH,EAAE,CAACQ,OAAO,CAAC,CAAE,SAAQ;AACvE;AAEA,SAASC,qBAAqBA,CAAA,EAAkB;EAC9C,MAAMC,QAAQ,GAAI,GAAEL,aAAa,CAAC,CAAE,IAAGD,8BAA+B,EAAC;EACvE,IAAIO,WAAW,GAAG,EAAE;EACpB,IAAI;IACF,MAAMC,IAAI,GAAGb,EAAE,CAACc,YAAY,CAACH,QAAQ,EAAE,MAAM,CAAC;IAC9CC,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;EAChC,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVd,YAAY,CAAE,iBAAgBQ,QAAS,KAAIM,CAAC,CAACC,OAAQ,GAAE,EAAE,OAAO,CAAC;EACnE;EACA,OAAON,WAAW;AACpB;AAEA,OAAO,SAASO,eAAeA,CAACC,QAAiB,EAAiB;EAChE,MAAMT,QAAQ,GAAI,GAAEL,aAAa,CAAC,CAAE,IAAGD,8BAA+B,EAAC;EACvE,IAAIe,QAAQ,EAAE;IACZjB,YAAY,CAAE,sCAAqC,EAAE,MAAM,CAAC;IAC5D,OAAOD,KAAK,CAACmB,KAAK,CAACC,GAAG,CAACC,qBAAqB,CAAC,CAAC;EAChD;EACA,IAAIX,WAAW,GAAGF,qBAAqB,CAAC,CAAC;EACzC,IAAIE,WAAW,CAACY,MAAM,IAAI,CAAC,EAAE;IAC3BrB,YAAY,CAAE,kDAAiD,EAAE,MAAM,CAAC;IACxES,WAAW,GAAGV,KAAK,CAACmB,KAAK,CAACC,GAAG,CAACC,qBAAqB,CAAC,CAAC;IACrD,IAAI;MACFvB,EAAE,CAACyB,aAAa,CAACd,QAAQ,EAAEI,IAAI,CAACW,SAAS,CAACd,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;MAChET,YAAY,CACT,qCAAoCQ,QAAS,yCAAwC,EACtF,MACF,CAAC;IACH,CAAC,CAAC,OAAOM,CAAC,EAAE;MACVd,YAAY,CACT,gEAA+D,EAChE,OACF,CAAC;IACH;EACF;EACA,OAAOS,WAAW;AACpB"}
1
+ {"version":3,"file":"Config.js","names":["frodo","fs","os","printMessage","getDefaultNoiseFilter","cloud","log","FRODO_CONFIG_PATH_KEY","FRODO_LOG_NOISEFILTER_FILENAME","getConfigPath","process","env","homedir","getCustomNoiseFilters","filename","noiseFilter","data","readFileSync","JSON","parse","e","message","getNoiseFilters","defaults","length","writeFileSync","stringify"],"sources":["utils/Config.ts"],"sourcesContent":["import { frodo } from '@rockcarver/frodo-lib';\nimport fs from 'fs';\nimport os from 'os';\nimport { printMessage } from './Console';\n\nconst { getDefaultNoiseFilter } = frodo.cloud.log;\n\nexport const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';\nexport const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';\n\nexport function getConfigPath(): string {\n return process.env[FRODO_CONFIG_PATH_KEY] || `${os.homedir()}/.frodo`;\n}\n\nfunction getCustomNoiseFilters(): Array<string> {\n const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;\n let noiseFilter = [];\n try {\n const data = fs.readFileSync(filename, 'utf8');\n noiseFilter = JSON.parse(data);\n } catch (e) {\n printMessage(`Error reading ${filename} (${e.message})`, 'error');\n }\n return noiseFilter;\n}\n\nexport function getNoiseFilters(defaults: boolean): Array<string> {\n const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;\n if (defaults) {\n printMessage(`Using default logging noise filters.`, 'info');\n return getDefaultNoiseFilter();\n }\n let noiseFilter = getCustomNoiseFilters();\n if (noiseFilter.length == 0) {\n printMessage(`No custom noise filters defined. Using defaults.`, 'info');\n noiseFilter = getDefaultNoiseFilter();\n try {\n fs.writeFileSync(filename, JSON.stringify(noiseFilter, null, 2));\n printMessage(\n `The default filters were saved in ${filename}. You can change the filters as needed.`,\n 'info'\n );\n } catch (e) {\n printMessage(\n `Error creating noise filter configuration with default values.`,\n 'error'\n );\n }\n }\n return noiseFilter;\n}\n"],"mappings":"AAAA,SAASA,KAAK,QAAQ,uBAAuB;AAC7C,OAAOC,EAAE,MAAM,IAAI;AACnB,OAAOC,EAAE,MAAM,IAAI;AACnB,SAASC,YAAY,QAAQ,WAAW;AAExC,MAAM;EAAEC;AAAsB,CAAC,GAAGJ,KAAK,CAACK,KAAK,CAACC,GAAG;AAEjD,OAAO,MAAMC,qBAAqB,GAAG,mBAAmB;AACxD,OAAO,MAAMC,8BAA8B,GAAG,yBAAyB;AAEvE,OAAO,SAASC,aAAaA,CAAA,EAAW;EACtC,OAAOC,OAAO,CAACC,GAAG,CAACJ,qBAAqB,CAAC,IAAK,GAAEL,EAAE,CAACU,OAAO,CAAC,CAAE,SAAQ;AACvE;AAEA,SAASC,qBAAqBA,CAAA,EAAkB;EAC9C,MAAMC,QAAQ,GAAI,GAAEL,aAAa,CAAC,CAAE,IAAGD,8BAA+B,EAAC;EACvE,IAAIO,WAAW,GAAG,EAAE;EACpB,IAAI;IACF,MAAMC,IAAI,GAAGf,EAAE,CAACgB,YAAY,CAACH,QAAQ,EAAE,MAAM,CAAC;IAC9CC,WAAW,GAAGG,IAAI,CAACC,KAAK,CAACH,IAAI,CAAC;EAChC,CAAC,CAAC,OAAOI,CAAC,EAAE;IACVjB,YAAY,CAAE,iBAAgBW,QAAS,KAAIM,CAAC,CAACC,OAAQ,GAAE,EAAE,OAAO,CAAC;EACnE;EACA,OAAON,WAAW;AACpB;AAEA,OAAO,SAASO,eAAeA,CAACC,QAAiB,EAAiB;EAChE,MAAMT,QAAQ,GAAI,GAAEL,aAAa,CAAC,CAAE,IAAGD,8BAA+B,EAAC;EACvE,IAAIe,QAAQ,EAAE;IACZpB,YAAY,CAAE,sCAAqC,EAAE,MAAM,CAAC;IAC5D,OAAOC,qBAAqB,CAAC,CAAC;EAChC;EACA,IAAIW,WAAW,GAAGF,qBAAqB,CAAC,CAAC;EACzC,IAAIE,WAAW,CAACS,MAAM,IAAI,CAAC,EAAE;IAC3BrB,YAAY,CAAE,kDAAiD,EAAE,MAAM,CAAC;IACxEY,WAAW,GAAGX,qBAAqB,CAAC,CAAC;IACrC,IAAI;MACFH,EAAE,CAACwB,aAAa,CAACX,QAAQ,EAAEI,IAAI,CAACQ,SAAS,CAACX,WAAW,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;MAChEZ,YAAY,CACT,qCAAoCW,QAAS,yCAAwC,EACtF,MACF,CAAC;IACH,CAAC,CAAC,OAAOM,CAAC,EAAE;MACVjB,YAAY,CACT,gEAA+D,EAChE,OACF,CAAC;IACH;EACF;EACA,OAAOY,WAAW;AACpB"}