@rockcarver/frodo-cli 2.0.0-59 → 2.0.0-60

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 (498) hide show
  1. package/.vscode/launch.json +1 -0
  2. package/CHANGELOG.md +10 -1
  3. package/dist/app.cjs +187368 -0
  4. package/dist/app.cjs.map +1 -0
  5. package/dist/app.d.cts +2 -0
  6. package/dist/chunk-MPPKDFVI.cjs +56 -0
  7. package/dist/chunk-MPPKDFVI.cjs.map +1 -0
  8. package/dist/launch.cjs +27 -0
  9. package/dist/launch.cjs.map +1 -0
  10. package/dist/launch.d.cts +1 -0
  11. package/dist/loader.cjs +836 -0
  12. package/dist/loader.cjs.map +1 -0
  13. package/dist/loader.d.cts +3 -0
  14. package/package.json +37 -53
  15. package/tsup.config.ts +40 -0
  16. package/esm/app.js +0 -80
  17. package/esm/app.js.map +0 -1
  18. package/esm/cli/FrodoCommand.js +0 -181
  19. package/esm/cli/FrodoCommand.js.map +0 -1
  20. package/esm/cli/_template/something-delete.js +0 -20
  21. package/esm/cli/_template/something-delete.js.map +0 -1
  22. package/esm/cli/_template/something-describe.js +0 -20
  23. package/esm/cli/_template/something-describe.js.map +0 -1
  24. package/esm/cli/_template/something-else-delete.js +0 -20
  25. package/esm/cli/_template/something-else-delete.js.map +0 -1
  26. package/esm/cli/_template/something-else-describe.js +0 -20
  27. package/esm/cli/_template/something-else-describe.js.map +0 -1
  28. package/esm/cli/_template/something-else-export.js +0 -20
  29. package/esm/cli/_template/something-else-export.js.map +0 -1
  30. package/esm/cli/_template/something-else-import.js +0 -20
  31. package/esm/cli/_template/something-else-import.js.map +0 -1
  32. package/esm/cli/_template/something-else-list.js +0 -20
  33. package/esm/cli/_template/something-else-list.js.map +0 -1
  34. package/esm/cli/_template/something-else.js +0 -17
  35. package/esm/cli/_template/something-else.js.map +0 -1
  36. package/esm/cli/_template/something-export.js +0 -20
  37. package/esm/cli/_template/something-export.js.map +0 -1
  38. package/esm/cli/_template/something-import.js +0 -20
  39. package/esm/cli/_template/something-import.js.map +0 -1
  40. package/esm/cli/_template/something-list.js +0 -20
  41. package/esm/cli/_template/something-list.js.map +0 -1
  42. package/esm/cli/_template/something-other-delete.js +0 -20
  43. package/esm/cli/_template/something-other-delete.js.map +0 -1
  44. package/esm/cli/_template/something-other-describe.js +0 -20
  45. package/esm/cli/_template/something-other-describe.js.map +0 -1
  46. package/esm/cli/_template/something-other-export.js +0 -20
  47. package/esm/cli/_template/something-other-export.js.map +0 -1
  48. package/esm/cli/_template/something-other-import.js +0 -20
  49. package/esm/cli/_template/something-other-import.js.map +0 -1
  50. package/esm/cli/_template/something-other-list.js +0 -20
  51. package/esm/cli/_template/something-other-list.js.map +0 -1
  52. package/esm/cli/_template/something-other.js +0 -17
  53. package/esm/cli/_template/something-other.js.map +0 -1
  54. package/esm/cli/_template/something.js +0 -20
  55. package/esm/cli/_template/something.js.map +0 -1
  56. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +0 -23
  57. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +0 -1
  58. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +0 -80
  59. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +0 -1
  60. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js +0 -40
  61. package/esm/cli/admin/admin-execute-rfc7523-authz-grant-flow.js.map +0 -1
  62. package/esm/cli/admin/admin-federation-export.js +0 -43
  63. package/esm/cli/admin/admin-federation-export.js.map +0 -1
  64. package/esm/cli/admin/admin-federation-import.js +0 -47
  65. package/esm/cli/admin/admin-federation-import.js.map +0 -1
  66. package/esm/cli/admin/admin-federation-list.js +0 -27
  67. package/esm/cli/admin/admin-federation-list.js.map +0 -1
  68. package/esm/cli/admin/admin-federation.js +0 -21
  69. package/esm/cli/admin/admin-federation.js.map +0 -1
  70. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js +0 -43
  71. package/esm/cli/admin/admin-generate-rfc7523-authz-grant-artefacts.js.map +0 -1
  72. package/esm/cli/admin/admin-get-access-token.js +0 -27
  73. package/esm/cli/admin/admin-get-access-token.js.map +0 -1
  74. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +0 -25
  75. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +0 -1
  76. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +0 -25
  77. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +0 -1
  78. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +0 -24
  79. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +0 -1
  80. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +0 -24
  81. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +0 -1
  82. package/esm/cli/admin/admin-list-static-user-mappings.js +0 -24
  83. package/esm/cli/admin/admin-list-static-user-mappings.js.map +0 -1
  84. package/esm/cli/admin/admin-remove-static-user-mapping.js +0 -24
  85. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +0 -1
  86. package/esm/cli/admin/admin-repair-org-model.js +0 -25
  87. package/esm/cli/admin/admin-repair-org-model.js.map +0 -1
  88. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +0 -25
  89. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +0 -1
  90. package/esm/cli/admin/admin-show-generic-extension-attributes.js +0 -25
  91. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +0 -1
  92. package/esm/cli/admin/admin-train-auto-access-model.js +0 -32
  93. package/esm/cli/admin/admin-train-auto-access-model.js.map +0 -1
  94. package/esm/cli/admin/admin.js +0 -41
  95. package/esm/cli/admin/admin.js.map +0 -1
  96. package/esm/cli/agent/agent-delete.js +0 -38
  97. package/esm/cli/agent/agent-delete.js.map +0 -1
  98. package/esm/cli/agent/agent-describe.js +0 -20
  99. package/esm/cli/agent/agent-describe.js.map +0 -1
  100. package/esm/cli/agent/agent-export.js +0 -43
  101. package/esm/cli/agent/agent-export.js.map +0 -1
  102. package/esm/cli/agent/agent-gateway-delete.js +0 -38
  103. package/esm/cli/agent/agent-gateway-delete.js.map +0 -1
  104. package/esm/cli/agent/agent-gateway-describe.js +0 -20
  105. package/esm/cli/agent/agent-gateway-describe.js.map +0 -1
  106. package/esm/cli/agent/agent-gateway-export.js +0 -43
  107. package/esm/cli/agent/agent-gateway-export.js.map +0 -1
  108. package/esm/cli/agent/agent-gateway-import.js +0 -49
  109. package/esm/cli/agent/agent-gateway-import.js.map +0 -1
  110. package/esm/cli/agent/agent-gateway-list.js +0 -22
  111. package/esm/cli/agent/agent-gateway-list.js.map +0 -1
  112. package/esm/cli/agent/agent-gateway.js +0 -17
  113. package/esm/cli/agent/agent-gateway.js.map +0 -1
  114. package/esm/cli/agent/agent-import.js +0 -49
  115. package/esm/cli/agent/agent-import.js.map +0 -1
  116. package/esm/cli/agent/agent-java-delete.js +0 -38
  117. package/esm/cli/agent/agent-java-delete.js.map +0 -1
  118. package/esm/cli/agent/agent-java-describe.js +0 -20
  119. package/esm/cli/agent/agent-java-describe.js.map +0 -1
  120. package/esm/cli/agent/agent-java-export.js +0 -43
  121. package/esm/cli/agent/agent-java-export.js.map +0 -1
  122. package/esm/cli/agent/agent-java-import.js +0 -49
  123. package/esm/cli/agent/agent-java-import.js.map +0 -1
  124. package/esm/cli/agent/agent-java-list.js +0 -22
  125. package/esm/cli/agent/agent-java-list.js.map +0 -1
  126. package/esm/cli/agent/agent-java.js +0 -17
  127. package/esm/cli/agent/agent-java.js.map +0 -1
  128. package/esm/cli/agent/agent-list.js +0 -22
  129. package/esm/cli/agent/agent-list.js.map +0 -1
  130. package/esm/cli/agent/agent-web-delete.js +0 -38
  131. package/esm/cli/agent/agent-web-delete.js.map +0 -1
  132. package/esm/cli/agent/agent-web-describe.js +0 -20
  133. package/esm/cli/agent/agent-web-describe.js.map +0 -1
  134. package/esm/cli/agent/agent-web-export.js +0 -43
  135. package/esm/cli/agent/agent-web-export.js.map +0 -1
  136. package/esm/cli/agent/agent-web-import.js +0 -49
  137. package/esm/cli/agent/agent-web-import.js.map +0 -1
  138. package/esm/cli/agent/agent-web-list.js +0 -22
  139. package/esm/cli/agent/agent-web-list.js.map +0 -1
  140. package/esm/cli/agent/agent-web.js +0 -17
  141. package/esm/cli/agent/agent-web.js.map +0 -1
  142. package/esm/cli/agent/agent.js +0 -22
  143. package/esm/cli/agent/agent.js.map +0 -1
  144. package/esm/cli/app/app-delete.js +0 -36
  145. package/esm/cli/app/app-delete.js.map +0 -1
  146. package/esm/cli/app/app-describe.js +0 -21
  147. package/esm/cli/app/app-describe.js.map +0 -1
  148. package/esm/cli/app/app-export.js +0 -51
  149. package/esm/cli/app/app-export.js.map +0 -1
  150. package/esm/cli/app/app-import.js +0 -56
  151. package/esm/cli/app/app-import.js.map +0 -1
  152. package/esm/cli/app/app-list.js +0 -25
  153. package/esm/cli/app/app-list.js.map +0 -1
  154. package/esm/cli/app/app.js +0 -18
  155. package/esm/cli/app/app.js.map +0 -1
  156. package/esm/cli/authn/authn-describe.js +0 -28
  157. package/esm/cli/authn/authn-describe.js.map +0 -1
  158. package/esm/cli/authn/authn-export.js +0 -24
  159. package/esm/cli/authn/authn-export.js.map +0 -1
  160. package/esm/cli/authn/authn-import.js +0 -24
  161. package/esm/cli/authn/authn-import.js.map +0 -1
  162. package/esm/cli/authn/authn.js +0 -12
  163. package/esm/cli/authn/authn.js.map +0 -1
  164. package/esm/cli/authz/authz-policy-delete.js +0 -41
  165. package/esm/cli/authz/authz-policy-delete.js.map +0 -1
  166. package/esm/cli/authz/authz-policy-describe.js +0 -28
  167. package/esm/cli/authz/authz-policy-describe.js.map +0 -1
  168. package/esm/cli/authz/authz-policy-export.js +0 -73
  169. package/esm/cli/authz/authz-policy-export.js.map +0 -1
  170. package/esm/cli/authz/authz-policy-import.js +0 -63
  171. package/esm/cli/authz/authz-policy-import.js.map +0 -1
  172. package/esm/cli/authz/authz-policy-list.js +0 -35
  173. package/esm/cli/authz/authz-policy-list.js.map +0 -1
  174. package/esm/cli/authz/authz-policy.js +0 -17
  175. package/esm/cli/authz/authz-policy.js.map +0 -1
  176. package/esm/cli/authz/authz-set-delete.js +0 -35
  177. package/esm/cli/authz/authz-set-delete.js.map +0 -1
  178. package/esm/cli/authz/authz-set-describe.js +0 -28
  179. package/esm/cli/authz/authz-set-describe.js.map +0 -1
  180. package/esm/cli/authz/authz-set-export.js +0 -53
  181. package/esm/cli/authz/authz-set-export.js.map +0 -1
  182. package/esm/cli/authz/authz-set-import.js +0 -59
  183. package/esm/cli/authz/authz-set-import.js.map +0 -1
  184. package/esm/cli/authz/authz-set-list.js +0 -23
  185. package/esm/cli/authz/authz-set-list.js.map +0 -1
  186. package/esm/cli/authz/authz-set.js +0 -17
  187. package/esm/cli/authz/authz-set.js.map +0 -1
  188. package/esm/cli/authz/authz-type-delete.js +0 -41
  189. package/esm/cli/authz/authz-type-delete.js.map +0 -1
  190. package/esm/cli/authz/authz-type-describe.js +0 -32
  191. package/esm/cli/authz/authz-type-describe.js.map +0 -1
  192. package/esm/cli/authz/authz-type-export.js +0 -47
  193. package/esm/cli/authz/authz-type-export.js.map +0 -1
  194. package/esm/cli/authz/authz-type-import.js +0 -53
  195. package/esm/cli/authz/authz-type-import.js.map +0 -1
  196. package/esm/cli/authz/authz-type-list.js +0 -24
  197. package/esm/cli/authz/authz-type-list.js.map +0 -1
  198. package/esm/cli/authz/authz-type.js +0 -17
  199. package/esm/cli/authz/authz-type.js.map +0 -1
  200. package/esm/cli/authz/authz.js +0 -12
  201. package/esm/cli/authz/authz.js.map +0 -1
  202. package/esm/cli/config/config-delete.js +0 -20
  203. package/esm/cli/config/config-delete.js.map +0 -1
  204. package/esm/cli/config/config-describe.js +0 -20
  205. package/esm/cli/config/config-describe.js.map +0 -1
  206. package/esm/cli/config/config-export.js +0 -52
  207. package/esm/cli/config/config-export.js.map +0 -1
  208. package/esm/cli/config/config-import.js +0 -62
  209. package/esm/cli/config/config-import.js.map +0 -1
  210. package/esm/cli/config/config-list.js +0 -20
  211. package/esm/cli/config/config-list.js.map +0 -1
  212. package/esm/cli/config/config.js +0 -22
  213. package/esm/cli/config/config.js.map +0 -1
  214. package/esm/cli/conn/conn-delete.js +0 -21
  215. package/esm/cli/conn/conn-delete.js.map +0 -1
  216. package/esm/cli/conn/conn-describe.js +0 -16
  217. package/esm/cli/conn/conn-describe.js.map +0 -1
  218. package/esm/cli/conn/conn-list.js +0 -16
  219. package/esm/cli/conn/conn-list.js.map +0 -1
  220. package/esm/cli/conn/conn-save.js +0 -106
  221. package/esm/cli/conn/conn-save.js.map +0 -1
  222. package/esm/cli/conn/conn.js +0 -16
  223. package/esm/cli/conn/conn.js.map +0 -1
  224. package/esm/cli/email/email-template-export.js +0 -42
  225. package/esm/cli/email/email-template-export.js.map +0 -1
  226. package/esm/cli/email/email-template-import.js +0 -47
  227. package/esm/cli/email/email-template-import.js.map +0 -1
  228. package/esm/cli/email/email-template-list.js +0 -24
  229. package/esm/cli/email/email-template-list.js.map +0 -1
  230. package/esm/cli/email/email-template.js +0 -13
  231. package/esm/cli/email/email-template.js.map +0 -1
  232. package/esm/cli/email/email.js +0 -9
  233. package/esm/cli/email/email.js.map +0 -1
  234. package/esm/cli/esv/esv-apply.js +0 -61
  235. package/esm/cli/esv/esv-apply.js.map +0 -1
  236. package/esm/cli/esv/esv-secret-create.js +0 -29
  237. package/esm/cli/esv/esv-secret-create.js.map +0 -1
  238. package/esm/cli/esv/esv-secret-delete.js +0 -34
  239. package/esm/cli/esv/esv-secret-delete.js.map +0 -1
  240. package/esm/cli/esv/esv-secret-describe.js +0 -24
  241. package/esm/cli/esv/esv-secret-describe.js.map +0 -1
  242. package/esm/cli/esv/esv-secret-export.js +0 -34
  243. package/esm/cli/esv/esv-secret-export.js.map +0 -1
  244. package/esm/cli/esv/esv-secret-import.js +0 -20
  245. package/esm/cli/esv/esv-secret-import.js.map +0 -1
  246. package/esm/cli/esv/esv-secret-list.js +0 -24
  247. package/esm/cli/esv/esv-secret-list.js.map +0 -1
  248. package/esm/cli/esv/esv-secret-set.js +0 -24
  249. package/esm/cli/esv/esv-secret-set.js.map +0 -1
  250. package/esm/cli/esv/esv-secret-version-activate.js +0 -28
  251. package/esm/cli/esv/esv-secret-version-activate.js.map +0 -1
  252. package/esm/cli/esv/esv-secret-version-create.js +0 -29
  253. package/esm/cli/esv/esv-secret-version-create.js.map +0 -1
  254. package/esm/cli/esv/esv-secret-version-deactivate.js +0 -28
  255. package/esm/cli/esv/esv-secret-version-deactivate.js.map +0 -1
  256. package/esm/cli/esv/esv-secret-version-delete.js +0 -34
  257. package/esm/cli/esv/esv-secret-version-delete.js.map +0 -1
  258. package/esm/cli/esv/esv-secret-version-list.js +0 -24
  259. package/esm/cli/esv/esv-secret-version-list.js.map +0 -1
  260. package/esm/cli/esv/esv-secret-version.js +0 -17
  261. package/esm/cli/esv/esv-secret-version.js.map +0 -1
  262. package/esm/cli/esv/esv-secret.js +0 -25
  263. package/esm/cli/esv/esv-secret.js.map +0 -1
  264. package/esm/cli/esv/esv-variable-create.js +0 -24
  265. package/esm/cli/esv/esv-variable-create.js.map +0 -1
  266. package/esm/cli/esv/esv-variable-delete.js +0 -35
  267. package/esm/cli/esv/esv-variable-delete.js.map +0 -1
  268. package/esm/cli/esv/esv-variable-describe.js +0 -24
  269. package/esm/cli/esv/esv-variable-describe.js.map +0 -1
  270. package/esm/cli/esv/esv-variable-export.js +0 -35
  271. package/esm/cli/esv/esv-variable-export.js.map +0 -1
  272. package/esm/cli/esv/esv-variable-import.js +0 -20
  273. package/esm/cli/esv/esv-variable-import.js.map +0 -1
  274. package/esm/cli/esv/esv-variable-list.js +0 -24
  275. package/esm/cli/esv/esv-variable-list.js.map +0 -1
  276. package/esm/cli/esv/esv-variable-set.js +0 -31
  277. package/esm/cli/esv/esv-variable-set.js.map +0 -1
  278. package/esm/cli/esv/esv-variable.js +0 -23
  279. package/esm/cli/esv/esv-variable.js.map +0 -1
  280. package/esm/cli/esv/esv.js +0 -12
  281. package/esm/cli/esv/esv.js.map +0 -1
  282. package/esm/cli/idm/idm-count.js +0 -24
  283. package/esm/cli/idm/idm-count.js.map +0 -1
  284. package/esm/cli/idm/idm-export.js +0 -50
  285. package/esm/cli/idm/idm-export.js.map +0 -1
  286. package/esm/cli/idm/idm-import.js +0 -54
  287. package/esm/cli/idm/idm-import.js.map +0 -1
  288. package/esm/cli/idm/idm-list.js +0 -28
  289. package/esm/cli/idm/idm-list.js.map +0 -1
  290. package/esm/cli/idm/idm.js +0 -14
  291. package/esm/cli/idm/idm.js.map +0 -1
  292. package/esm/cli/idp/idp-export.js +0 -44
  293. package/esm/cli/idp/idp-export.js.map +0 -1
  294. package/esm/cli/idp/idp-import.js +0 -56
  295. package/esm/cli/idp/idp-import.js.map +0 -1
  296. package/esm/cli/idp/idp-list.js +0 -28
  297. package/esm/cli/idp/idp-list.js.map +0 -1
  298. package/esm/cli/idp/idp.js +0 -12
  299. package/esm/cli/idp/idp.js.map +0 -1
  300. package/esm/cli/info/info.js +0 -52
  301. package/esm/cli/info/info.js.map +0 -1
  302. package/esm/cli/journey/journey-delete.js +0 -36
  303. package/esm/cli/journey/journey-delete.js.map +0 -1
  304. package/esm/cli/journey/journey-describe.js +0 -133
  305. package/esm/cli/journey/journey-describe.js.map +0 -1
  306. package/esm/cli/journey/journey-disable.js +0 -35
  307. package/esm/cli/journey/journey-disable.js.map +0 -1
  308. package/esm/cli/journey/journey-enable.js +0 -35
  309. package/esm/cli/journey/journey-enable.js.map +0 -1
  310. package/esm/cli/journey/journey-export.js +0 -63
  311. package/esm/cli/journey/journey-export.js.map +0 -1
  312. package/esm/cli/journey/journey-import.js +0 -59
  313. package/esm/cli/journey/journey-import.js.map +0 -1
  314. package/esm/cli/journey/journey-list.js +0 -25
  315. package/esm/cli/journey/journey-list.js.map +0 -1
  316. package/esm/cli/journey/journey-prune.js +0 -42
  317. package/esm/cli/journey/journey-prune.js.map +0 -1
  318. package/esm/cli/journey/journey.js +0 -22
  319. package/esm/cli/journey/journey.js.map +0 -1
  320. package/esm/cli/log/log-fetch.js +0 -127
  321. package/esm/cli/log/log-fetch.js.map +0 -1
  322. package/esm/cli/log/log-key-delete.js +0 -33
  323. package/esm/cli/log/log-key-delete.js.map +0 -1
  324. package/esm/cli/log/log-key-describe.js +0 -20
  325. package/esm/cli/log/log-key-describe.js.map +0 -1
  326. package/esm/cli/log/log-key-list.js +0 -24
  327. package/esm/cli/log/log-key-list.js.map +0 -1
  328. package/esm/cli/log/log-key.js +0 -13
  329. package/esm/cli/log/log-key.js.map +0 -1
  330. package/esm/cli/log/log-list.js +0 -89
  331. package/esm/cli/log/log-list.js.map +0 -1
  332. package/esm/cli/log/log-tail.js +0 -81
  333. package/esm/cli/log/log-tail.js.map +0 -1
  334. package/esm/cli/log/log.js +0 -18
  335. package/esm/cli/log/log.js.map +0 -1
  336. package/esm/cli/oauth/oauth-client-delete.js +0 -20
  337. package/esm/cli/oauth/oauth-client-delete.js.map +0 -1
  338. package/esm/cli/oauth/oauth-client-describe.js +0 -20
  339. package/esm/cli/oauth/oauth-client-describe.js.map +0 -1
  340. package/esm/cli/oauth/oauth-client-export.js +0 -50
  341. package/esm/cli/oauth/oauth-client-export.js.map +0 -1
  342. package/esm/cli/oauth/oauth-client-import.js +0 -55
  343. package/esm/cli/oauth/oauth-client-import.js.map +0 -1
  344. package/esm/cli/oauth/oauth-client-list.js +0 -24
  345. package/esm/cli/oauth/oauth-client-list.js.map +0 -1
  346. package/esm/cli/oauth/oauth-client.js +0 -22
  347. package/esm/cli/oauth/oauth-client.js.map +0 -1
  348. package/esm/cli/oauth/oauth.js +0 -11
  349. package/esm/cli/oauth/oauth.js.map +0 -1
  350. package/esm/cli/realm/realm-add-custom-domain.js +0 -24
  351. package/esm/cli/realm/realm-add-custom-domain.js.map +0 -1
  352. package/esm/cli/realm/realm-describe.js +0 -23
  353. package/esm/cli/realm/realm-describe.js.map +0 -1
  354. package/esm/cli/realm/realm-list.js +0 -23
  355. package/esm/cli/realm/realm-list.js.map +0 -1
  356. package/esm/cli/realm/realm-remove-custom-domain.js +0 -26
  357. package/esm/cli/realm/realm-remove-custom-domain.js.map +0 -1
  358. package/esm/cli/realm/realm.js +0 -21
  359. package/esm/cli/realm/realm.js.map +0 -1
  360. package/esm/cli/saml/saml-cot-export.js +0 -42
  361. package/esm/cli/saml/saml-cot-export.js.map +0 -1
  362. package/esm/cli/saml/saml-cot-import.js +0 -48
  363. package/esm/cli/saml/saml-cot-import.js.map +0 -1
  364. package/esm/cli/saml/saml-cot-list.js +0 -25
  365. package/esm/cli/saml/saml-cot-list.js.map +0 -1
  366. package/esm/cli/saml/saml-cot.js +0 -13
  367. package/esm/cli/saml/saml-cot.js.map +0 -1
  368. package/esm/cli/saml/saml-delete.js +0 -37
  369. package/esm/cli/saml/saml-delete.js.map +0 -1
  370. package/esm/cli/saml/saml-describe.js +0 -25
  371. package/esm/cli/saml/saml-describe.js.map +0 -1
  372. package/esm/cli/saml/saml-export.js +0 -48
  373. package/esm/cli/saml/saml-export.js.map +0 -1
  374. package/esm/cli/saml/saml-import.js +0 -56
  375. package/esm/cli/saml/saml-import.js.map +0 -1
  376. package/esm/cli/saml/saml-list.js +0 -25
  377. package/esm/cli/saml/saml-list.js.map +0 -1
  378. package/esm/cli/saml/saml-metadata-export.js +0 -42
  379. package/esm/cli/saml/saml-metadata-export.js.map +0 -1
  380. package/esm/cli/saml/saml-metadata.js +0 -9
  381. package/esm/cli/saml/saml-metadata.js.map +0 -1
  382. package/esm/cli/saml/saml.js +0 -20
  383. package/esm/cli/saml/saml.js.map +0 -1
  384. package/esm/cli/script/script-delete.js +0 -37
  385. package/esm/cli/script/script-delete.js.map +0 -1
  386. package/esm/cli/script/script-describe.js +0 -20
  387. package/esm/cli/script/script-describe.js.map +0 -1
  388. package/esm/cli/script/script-export.js +0 -52
  389. package/esm/cli/script/script-export.js.map +0 -1
  390. package/esm/cli/script/script-import.js +0 -45
  391. package/esm/cli/script/script-import.js.map +0 -1
  392. package/esm/cli/script/script-list.js +0 -25
  393. package/esm/cli/script/script-list.js.map +0 -1
  394. package/esm/cli/script/script.js +0 -18
  395. package/esm/cli/script/script.js.map +0 -1
  396. package/esm/cli/service/service-delete.js +0 -23
  397. package/esm/cli/service/service-delete.js.map +0 -1
  398. package/esm/cli/service/service-export.js +0 -41
  399. package/esm/cli/service/service-export.js.map +0 -1
  400. package/esm/cli/service/service-import.js +0 -65
  401. package/esm/cli/service/service-import.js.map +0 -1
  402. package/esm/cli/service/service-list.js +0 -20
  403. package/esm/cli/service/service-list.js.map +0 -1
  404. package/esm/cli/service/service.js +0 -14
  405. package/esm/cli/service/service.js.map +0 -1
  406. package/esm/cli/shell/shell.js +0 -53
  407. package/esm/cli/shell/shell.js.map +0 -1
  408. package/esm/cli/theme/theme-delete.js +0 -42
  409. package/esm/cli/theme/theme-delete.js.map +0 -1
  410. package/esm/cli/theme/theme-export.js +0 -48
  411. package/esm/cli/theme/theme-export.js.map +0 -1
  412. package/esm/cli/theme/theme-import.js +0 -54
  413. package/esm/cli/theme/theme-import.js.map +0 -1
  414. package/esm/cli/theme/theme-list.js +0 -25
  415. package/esm/cli/theme/theme-list.js.map +0 -1
  416. package/esm/cli/theme/theme.js +0 -14
  417. package/esm/cli/theme/theme.js.map +0 -1
  418. package/esm/help/SampleData.js +0 -7
  419. package/esm/help/SampleData.js.map +0 -1
  420. package/esm/launch.js +0 -15
  421. package/esm/launch.js.map +0 -1
  422. package/esm/loader.js +0 -40
  423. package/esm/loader.js.map +0 -1
  424. package/esm/ops/AdminOps.js +0 -936
  425. package/esm/ops/AdminOps.js.map +0 -1
  426. package/esm/ops/AgentOps.js +0 -1061
  427. package/esm/ops/AgentOps.js.map +0 -1
  428. package/esm/ops/ApplicationOps.js +0 -336
  429. package/esm/ops/ApplicationOps.js.map +0 -1
  430. package/esm/ops/AuthenticateOps.js +0 -23
  431. package/esm/ops/AuthenticateOps.js.map +0 -1
  432. package/esm/ops/AuthenticationSettingsOps.js +0 -89
  433. package/esm/ops/AuthenticationSettingsOps.js.map +0 -1
  434. package/esm/ops/CirclesOfTrustOps.js +0 -265
  435. package/esm/ops/CirclesOfTrustOps.js.map +0 -1
  436. package/esm/ops/ConfigOps.js +0 -213
  437. package/esm/ops/ConfigOps.js.map +0 -1
  438. package/esm/ops/ConnectionProfileOps.js +0 -132
  439. package/esm/ops/ConnectionProfileOps.js.map +0 -1
  440. package/esm/ops/EmailTemplateOps.js +0 -365
  441. package/esm/ops/EmailTemplateOps.js.map +0 -1
  442. package/esm/ops/IdmOps.js +0 -303
  443. package/esm/ops/IdmOps.js.map +0 -1
  444. package/esm/ops/IdpOps.js +0 -267
  445. package/esm/ops/IdpOps.js.map +0 -1
  446. package/esm/ops/JourneyOps.js +0 -815
  447. package/esm/ops/JourneyOps.js.map +0 -1
  448. package/esm/ops/LogOps.js +0 -141
  449. package/esm/ops/LogOps.js.map +0 -1
  450. package/esm/ops/NodeOps.js +0 -97
  451. package/esm/ops/NodeOps.js.map +0 -1
  452. package/esm/ops/OAuth2ClientOps.js +0 -287
  453. package/esm/ops/OAuth2ClientOps.js.map +0 -1
  454. package/esm/ops/OrganizationOps.js +0 -20
  455. package/esm/ops/OrganizationOps.js.map +0 -1
  456. package/esm/ops/PolicyOps.js +0 -515
  457. package/esm/ops/PolicyOps.js.map +0 -1
  458. package/esm/ops/PolicySetOps.js +0 -388
  459. package/esm/ops/PolicySetOps.js.map +0 -1
  460. package/esm/ops/RealmOps.js +0 -116
  461. package/esm/ops/RealmOps.js.map +0 -1
  462. package/esm/ops/ResourceTypeOps.js +0 -439
  463. package/esm/ops/ResourceTypeOps.js.map +0 -1
  464. package/esm/ops/Saml2Ops.js +0 -364
  465. package/esm/ops/Saml2Ops.js.map +0 -1
  466. package/esm/ops/Saml2Ops.test_.js.map +0 -1
  467. package/esm/ops/ScriptOps.js +0 -520
  468. package/esm/ops/ScriptOps.js.map +0 -1
  469. package/esm/ops/ServiceOps.js +0 -275
  470. package/esm/ops/ServiceOps.js.map +0 -1
  471. package/esm/ops/ThemeOps.js +0 -382
  472. package/esm/ops/ThemeOps.js.map +0 -1
  473. package/esm/ops/cloud/AdminFederationOps.js +0 -225
  474. package/esm/ops/cloud/AdminFederationOps.js.map +0 -1
  475. package/esm/ops/cloud/SecretsOps.js +0 -471
  476. package/esm/ops/cloud/SecretsOps.js.map +0 -1
  477. package/esm/ops/cloud/VariablesOps.js +0 -316
  478. package/esm/ops/cloud/VariablesOps.js.map +0 -1
  479. package/esm/ops/templates/GenericExtensionAttributesTemplate.json +0 -412
  480. package/esm/ops/templates/OAuth2ClientTemplate.json +0 -270
  481. package/esm/ops/templates/OAuth2TrustedJwtIssuerTemplate.json +0 -38
  482. package/esm/ops/templates/OrgModelUserAttributesTemplate.json +0 -149
  483. package/esm/ops/templates/autoaccess/IPAddresses.json +0 -202
  484. package/esm/ops/templates/autoaccess/UserAgents.json +0 -35
  485. package/esm/ops/templates/autoaccess/Usernames.json +0 -203
  486. package/esm/ops/templates/cloud/managed.json +0 -4119
  487. package/esm/ops/utils/OpsUtils.js +0 -9
  488. package/esm/ops/utils/OpsUtils.js.map +0 -1
  489. package/esm/ops/utils/Wordwrap.js +0 -5
  490. package/esm/ops/utils/Wordwrap.js.map +0 -1
  491. package/esm/storage/StaticStorage.js +0 -12
  492. package/esm/storage/StaticStorage.js.map +0 -1
  493. package/esm/utils/Config.js +0 -200
  494. package/esm/utils/Config.js.map +0 -1
  495. package/esm/utils/Console.js +0 -614
  496. package/esm/utils/Console.js.map +0 -1
  497. package/esm/utils/Version.js +0 -138
  498. package/esm/utils/Version.js.map +0 -1
@@ -1,9 +0,0 @@
1
- /**
2
- * Deep clone object
3
- * @param {any} obj object to deep clone
4
- * @returns {any} new object cloned from obj
5
- */
6
- export function cloneDeep(obj) {
7
- return JSON.parse(JSON.stringify(obj));
8
- }
9
- //# sourceMappingURL=OpsUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"OpsUtils.js","names":["cloneDeep","obj","JSON","parse","stringify"],"sources":["../../../src/ops/utils/OpsUtils.ts"],"sourcesContent":["/**\n * Deep clone object\n * @param {any} obj object to deep clone\n * @returns {any} new object cloned from obj\n */\nexport function cloneDeep(obj: any): any {\n return JSON.parse(JSON.stringify(obj));\n}\n"],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,SAASA,CAACC,GAAQ,EAAO;EACvC,OAAOC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,SAAS,CAACH,GAAG,CAAC,CAAC;AACxC"}
@@ -1,5 +0,0 @@
1
- export default function wordwrap(str, len, indent = undefined) {
2
- if (!str) return '';
3
- return (str.match(new RegExp(`(\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\s+|$)`, 'g')) || []).join(indent ? `\n${indent}` : '\n');
4
- }
5
- //# sourceMappingURL=Wordwrap.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Wordwrap.js","names":["wordwrap","str","len","indent","undefined","match","RegExp","length","join"],"sources":["../../../src/ops/utils/Wordwrap.ts"],"sourcesContent":["export default function wordwrap(\n str: string,\n len: number,\n indent: string = undefined\n) {\n if (!str) return '';\n return (\n str.match(\n new RegExp(\n `(\\\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\\\s+|$)`,\n 'g'\n )\n ) || []\n ).join(indent ? `\\n${indent}` : '\\n');\n}\n"],"mappings":"AAAA,eAAe,SAASA,QAAQA,CAC9BC,GAAW,EACXC,GAAW,EACXC,MAAc,GAAGC,SAAS,EAC1B;EACA,IAAI,CAACH,GAAG,EAAE,OAAO,EAAE;EACnB,OAAO,CACLA,GAAG,CAACI,KAAK,CACP,IAAIC,MAAM,CACP,WAAUJ,GAAG,GAAG,CAAC,IAAIC,MAAM,GAAGA,MAAM,CAACI,MAAM,GAAG,CAAC,CAAE,cAAa,EAC/D,GACF,CACF,CAAC,IAAI,EAAE,EACPC,IAAI,CAACL,MAAM,GAAI,KAAIA,MAAO,EAAC,GAAG,IAAI,CAAC;AACvC"}
@@ -1,12 +0,0 @@
1
- export const DEFAULT_REALM_KEY = '__default__realm__';
2
- export const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';
3
- export const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';
4
- export const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';
5
- export const DEPLOYMENT_TYPES = [CLASSIC_DEPLOYMENT_TYPE_KEY, CLOUD_DEPLOYMENT_TYPE_KEY, FORGEOPS_DEPLOYMENT_TYPE_KEY];
6
- export const DEPLOYMENT_TYPE_REALM_MAP = {
7
- [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',
8
- [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',
9
- [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/'
10
- };
11
- export const FRODO_METADATA_ID = 'frodo';
12
- //# sourceMappingURL=StaticStorage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"StaticStorage.js","names":["DEFAULT_REALM_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","CLOUD_DEPLOYMENT_TYPE_KEY","FORGEOPS_DEPLOYMENT_TYPE_KEY","DEPLOYMENT_TYPES","DEPLOYMENT_TYPE_REALM_MAP","FRODO_METADATA_ID"],"sources":["../../src/storage/StaticStorage.ts"],"sourcesContent":["export const DEFAULT_REALM_KEY = '__default__realm__';\nexport const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';\nexport const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';\nexport const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';\nexport const DEPLOYMENT_TYPES = [\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n];\nexport const DEPLOYMENT_TYPE_REALM_MAP = {\n [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',\n [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',\n [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/',\n};\nexport const FRODO_METADATA_ID = 'frodo';\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,oBAAoB;AACrD,OAAO,MAAMC,2BAA2B,GAAG,SAAS;AACpD,OAAO,MAAMC,yBAAyB,GAAG,OAAO;AAChD,OAAO,MAAMC,4BAA4B,GAAG,UAAU;AACtD,OAAO,MAAMC,gBAAgB,GAAG,CAC9BH,2BAA2B,EAC3BC,yBAAyB,EACzBC,4BAA4B,CAC7B;AACD,OAAO,MAAME,yBAAyB,GAAG;EACvC,CAACJ,2BAA2B,GAAG,GAAG;EAClC,CAACC,yBAAyB,GAAG,OAAO;EACpC,CAACC,4BAA4B,GAAG;AAClC,CAAC;AACD,OAAO,MAAMG,iBAAiB,GAAG,OAAO"}
@@ -1,200 +0,0 @@
1
- import { frodo, FrodoError, state } from '@rockcarver/frodo-lib';
2
- import fs from 'fs';
3
- import os from 'os';
4
- import slugify from 'slugify';
5
- import { printMessage } from './Console';
6
- const {
7
- getFilePath,
8
- readFiles
9
- } = frodo.utils;
10
- const {
11
- exportFullConfiguration
12
- } = frodo.config;
13
- const {
14
- getDefaultNoiseFilter
15
- } = frodo.cloud.log;
16
- export const FRODO_CONFIG_PATH_KEY = 'FRODO_CONFIG_PATH';
17
- export const FRODO_LOG_NOISEFILTER_FILENAME = 'LoggingNoiseFilter.json';
18
- export function getConfigPath() {
19
- return process.env[FRODO_CONFIG_PATH_KEY] || `${os.homedir()}/.frodo`;
20
- }
21
- function getCustomNoiseFilters() {
22
- const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;
23
- let noiseFilter = [];
24
- try {
25
- const data = fs.readFileSync(filename, 'utf8');
26
- noiseFilter = JSON.parse(data);
27
- } catch (e) {
28
- printMessage(`Error reading ${filename} (${e.message})`, 'error');
29
- }
30
- return noiseFilter;
31
- }
32
- export function getNoiseFilters(defaults) {
33
- const filename = `${getConfigPath()}/${FRODO_LOG_NOISEFILTER_FILENAME}`;
34
- if (defaults) {
35
- printMessage(`Using default logging noise filters.`, 'info');
36
- return getDefaultNoiseFilter();
37
- }
38
- let noiseFilter = getCustomNoiseFilters();
39
- if (noiseFilter.length == 0) {
40
- printMessage(`No custom noise filters defined. Using defaults.`, 'info');
41
- noiseFilter = getDefaultNoiseFilter();
42
- try {
43
- fs.writeFileSync(filename, JSON.stringify(noiseFilter, null, 2));
44
- printMessage(`The default filters were saved in ${filename}. You can change the filters as needed.`, 'info');
45
- } catch (e) {
46
- printMessage(`Error creating noise filter configuration with default values.`, 'error');
47
- }
48
- }
49
- return noiseFilter;
50
- }
51
-
52
- /**
53
- * Gets the full export config from one of three locations:
54
- * 1. The file passed into the function if one is provided.
55
- * 2. The working directory if it exists (provided by the user)
56
- * 3. The cloud tenant if the exports are not locally provided
57
- * @param file The optional file path
58
- * @returns The full export config
59
- */
60
- export async function getFullExportConfig(file = null) {
61
- // Get export from file if it exists
62
- if (file) {
63
- return JSON.parse(fs.readFileSync(getFilePath(file), 'utf8'));
64
- }
65
- // If working directory doesn't exist, export from the cloud
66
- const workingDirectory = state.getDirectory();
67
- if (!workingDirectory) {
68
- return await exportFullConfiguration({
69
- useStringArrays: true,
70
- noDecode: false,
71
- coords: true,
72
- includeDefault: true
73
- });
74
- }
75
- // Go through files in the working directory and reconstruct the full export
76
- return getFullExportConfigFromDirectory(workingDirectory);
77
- }
78
-
79
- /**
80
- * Reconstructs the full export config from files in the given directory
81
- * @param directory The directory
82
- * @return The full export config
83
- */
84
- export async function getFullExportConfigFromDirectory(directory) {
85
- const fullExportConfig = {
86
- meta: {},
87
- agents: {},
88
- application: {},
89
- authentication: {},
90
- config: {},
91
- emailTemplate: {},
92
- idp: {},
93
- managedApplication: {},
94
- policy: {},
95
- policyset: {},
96
- resourcetype: {},
97
- saml: {
98
- hosted: {},
99
- remote: {},
100
- metadata: {},
101
- cot: {}
102
- },
103
- script: {},
104
- secrets: {},
105
- service: {},
106
- theme: {},
107
- trees: {},
108
- variables: {}
109
- };
110
- const files = await readFiles(directory);
111
- const jsonFiles = files.filter(f => f.path.endsWith('.json'));
112
- const idmConfigFiles = jsonFiles.filter(f => f.path.startsWith('config/'));
113
- const samlFiles = jsonFiles.filter(f => f.path.startsWith('saml/') || f.path.startsWith('cot/'));
114
- const otherFiles = jsonFiles.filter(f => !f.path.startsWith('config/') && !f.path.startsWith('saml/') && !f.path.startsWith('cot/'));
115
- const scriptFiles = files.filter(f => f.path.endsWith('.js') || f.path.endsWith('.groovy'));
116
- // Handle json files
117
- for (const f of otherFiles) {
118
- for (const [id, value] of Object.entries(JSON.parse(f.content))) {
119
- if (value == null || fullExportConfig[id] == null) {
120
- continue;
121
- }
122
- Object.assign(fullExportConfig[id], value);
123
- }
124
- }
125
- // Handle saml files
126
- for (const f of samlFiles) {
127
- let content = JSON.parse(f.content);
128
- content = content.saml;
129
- for (const [id, value] of Object.entries(content)) {
130
- Object.assign(fullExportConfig.saml[id], value);
131
- }
132
- }
133
- // Handle idm config files
134
- for (const f of idmConfigFiles) {
135
- const content = JSON.parse(f.content);
136
- fullExportConfig.config[content._id] = content;
137
- }
138
- // Handle extracted scripts, adding them to their corresponding script objects in the export
139
- if (scriptFiles.length > 0 && fullExportConfig.script != null) {
140
- const scriptExports = Object.values(fullExportConfig.script);
141
- for (const f of scriptFiles) {
142
- const name = f.path.substring(f.path.lastIndexOf('/') + 1, f.path.indexOf('.', f.path.lastIndexOf('/')));
143
- const scriptLines = f.content.split('\n');
144
- const script = scriptExports.find(s => slugify(s.name.replace(/^http(s?):\/\//, ''), {
145
- remove: /[^\w\s$*_+~.()'"!\-@]+/g
146
- }) === name);
147
- if (!script) {
148
- throw new FrodoError(`Can't find the script corresponding to the file '${f.path}' in the export files`);
149
- }
150
- script.script = scriptLines;
151
- }
152
- }
153
- return fullExportConfig;
154
- }
155
-
156
- /**
157
- * Determines if a string id is being used anywhere within the given configuration object
158
- * @param configuration The configuration object
159
- * @param id The id being search for
160
- * @param isEsv Whether the id corresponds to an ESV or not
161
- */
162
- export function isIdUsed(
163
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
164
- configuration, id, isEsv) {
165
- return isIdUsedRecurse(configuration, isEsv ?
166
- // For ESV ids, they contain either letters, numbers, dashes, or underscores. The dashes get replaced with periods (escaped with a \ for the regex)
167
- // since anywhere they are being used they will be used with periods, not dashes. Note that the (?:[^a-z0-9._]|$) expressions at the beginning and
168
- // end are meant to ensure that the id found is not a substring of some other id (i.e. the id found must either be at the beginning or end of the
169
- // string, or if in the middle of a string, is not preceded or followed by a character that would be part of another id).
170
- new RegExp(`(?:[^a-z0-9._]|^)${id.replaceAll('-', '\\.')}(?:[^a-z0-9._]|$)`) :
171
- // For normal ids, they contain only letters, numbers, or dashes.
172
- new RegExp(`(?:[^a-z0-9-]|^)${id}(?:[^a-z0-9-]|$)`));
173
- }
174
-
175
- /**
176
- * Recursive helper for isIdUsed that finds any strings contained in the configuration that pass the regex
177
- * @param configuration The configuration (could be anything)
178
- * @param regex The regex test
179
- */
180
- function isIdUsedRecurse(
181
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
182
- configuration, regex) {
183
- const type = typeof configuration;
184
- if (type === 'object' && configuration !== null) {
185
- for (const [id, value] of Object.entries(
186
- // eslint-disable-next-line @typescript-eslint/no-explicit-any
187
- configuration)) {
188
- const isIdUsed = isIdUsedRecurse(value, regex);
189
- if (isIdUsed.used) {
190
- isIdUsed.location = id + (value.name ? `(name: '${value.name}')` : '') + (isIdUsed.location === '' ? '' : '.') + isIdUsed.location;
191
- return isIdUsed;
192
- }
193
- }
194
- }
195
- return {
196
- used: type === 'string' && regex.test(configuration),
197
- location: ''
198
- };
199
- }
200
- //# sourceMappingURL=Config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Config.js","names":["frodo","FrodoError","state","fs","os","slugify","printMessage","getFilePath","readFiles","utils","exportFullConfiguration","config","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","getFullExportConfig","file","workingDirectory","getDirectory","useStringArrays","noDecode","coords","includeDefault","getFullExportConfigFromDirectory","directory","fullExportConfig","meta","agents","application","authentication","emailTemplate","idp","managedApplication","policy","policyset","resourcetype","saml","hosted","remote","metadata","cot","script","secrets","service","theme","trees","variables","files","jsonFiles","filter","f","path","endsWith","idmConfigFiles","startsWith","samlFiles","otherFiles","scriptFiles","id","value","Object","entries","content","assign","_id","scriptExports","values","name","substring","lastIndexOf","indexOf","scriptLines","split","find","s","replace","remove","isIdUsed","configuration","isEsv","isIdUsedRecurse","RegExp","replaceAll","regex","type","used","location","test"],"sources":["../../src/utils/Config.ts"],"sourcesContent":["import { frodo, FrodoError, state } from '@rockcarver/frodo-lib';\nimport { FullExportInterface } from '@rockcarver/frodo-lib/types/ops/ConfigOps';\nimport fs from 'fs';\nimport os from 'os';\nimport slugify from 'slugify';\n\nimport { printMessage } from './Console';\n\nconst { getFilePath, readFiles } = frodo.utils;\n\nconst { exportFullConfiguration } = frodo.config;\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\n/**\n * Gets the full export config from one of three locations:\n * 1. The file passed into the function if one is provided.\n * 2. The working directory if it exists (provided by the user)\n * 3. The cloud tenant if the exports are not locally provided\n * @param file The optional file path\n * @returns The full export config\n */\nexport async function getFullExportConfig(\n file: string | null = null\n): Promise<FullExportInterface> {\n // Get export from file if it exists\n if (file) {\n return JSON.parse(fs.readFileSync(getFilePath(file), 'utf8'));\n }\n // If working directory doesn't exist, export from the cloud\n const workingDirectory = state.getDirectory();\n if (!workingDirectory) {\n return await exportFullConfiguration({\n useStringArrays: true,\n noDecode: false,\n coords: true,\n includeDefault: true,\n });\n }\n // Go through files in the working directory and reconstruct the full export\n return getFullExportConfigFromDirectory(workingDirectory);\n}\n\n/**\n * Reconstructs the full export config from files in the given directory\n * @param directory The directory\n * @return The full export config\n */\nexport async function getFullExportConfigFromDirectory(\n directory: string\n): Promise<FullExportInterface> {\n const fullExportConfig = {\n meta: {},\n agents: {},\n application: {},\n authentication: {},\n config: {},\n emailTemplate: {},\n idp: {},\n managedApplication: {},\n policy: {},\n policyset: {},\n resourcetype: {},\n saml: {\n hosted: {},\n remote: {},\n metadata: {},\n cot: {},\n },\n script: {},\n secrets: {},\n service: {},\n theme: {},\n trees: {},\n variables: {},\n } as FullExportInterface;\n const files = await readFiles(directory);\n const jsonFiles = files.filter((f) => f.path.endsWith('.json'));\n const idmConfigFiles = jsonFiles.filter((f) => f.path.startsWith('config/'));\n const samlFiles = jsonFiles.filter(\n (f) => f.path.startsWith('saml/') || f.path.startsWith('cot/')\n );\n const otherFiles = jsonFiles.filter(\n (f) =>\n !f.path.startsWith('config/') &&\n !f.path.startsWith('saml/') &&\n !f.path.startsWith('cot/')\n );\n const scriptFiles = files.filter(\n (f) => f.path.endsWith('.js') || f.path.endsWith('.groovy')\n );\n // Handle json files\n for (const f of otherFiles) {\n for (const [id, value] of Object.entries(JSON.parse(f.content))) {\n if (value == null || fullExportConfig[id] == null) {\n continue;\n }\n Object.assign(fullExportConfig[id], value);\n }\n }\n // Handle saml files\n for (const f of samlFiles) {\n let content = JSON.parse(f.content);\n content = content.saml;\n for (const [id, value] of Object.entries(content)) {\n Object.assign(fullExportConfig.saml[id], value);\n }\n }\n // Handle idm config files\n for (const f of idmConfigFiles) {\n const content = JSON.parse(f.content);\n fullExportConfig.config[content._id] = content;\n }\n // Handle extracted scripts, adding them to their corresponding script objects in the export\n if (scriptFiles.length > 0 && fullExportConfig.script != null) {\n const scriptExports = Object.values(fullExportConfig.script);\n for (const f of scriptFiles) {\n const name = f.path.substring(\n f.path.lastIndexOf('/') + 1,\n f.path.indexOf('.', f.path.lastIndexOf('/'))\n );\n const scriptLines = f.content.split('\\n');\n const script = scriptExports.find(\n (s) =>\n slugify(s.name.replace(/^http(s?):\\/\\//, ''), {\n remove: /[^\\w\\s$*_+~.()'\"!\\-@]+/g,\n }) === name\n );\n if (!script) {\n throw new FrodoError(\n `Can't find the script corresponding to the file '${f.path}' in the export files`\n );\n }\n script.script = scriptLines;\n }\n }\n return fullExportConfig;\n}\n\n/**\n * Determines if a string id is being used anywhere within the given configuration object\n * @param configuration The configuration object\n * @param id The id being search for\n * @param isEsv Whether the id corresponds to an ESV or not\n */\nexport function isIdUsed(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configuration: any,\n id: string,\n isEsv: boolean\n): {\n used: boolean;\n location: string;\n} {\n return isIdUsedRecurse(\n configuration,\n isEsv\n ? // For ESV ids, they contain either letters, numbers, dashes, or underscores. The dashes get replaced with periods (escaped with a \\ for the regex)\n // since anywhere they are being used they will be used with periods, not dashes. Note that the (?:[^a-z0-9._]|$) expressions at the beginning and\n // end are meant to ensure that the id found is not a substring of some other id (i.e. the id found must either be at the beginning or end of the\n // string, or if in the middle of a string, is not preceded or followed by a character that would be part of another id).\n new RegExp(\n `(?:[^a-z0-9._]|^)${id.replaceAll('-', '\\\\.')}(?:[^a-z0-9._]|$)`\n )\n : // For normal ids, they contain only letters, numbers, or dashes.\n new RegExp(`(?:[^a-z0-9-]|^)${id}(?:[^a-z0-9-]|$)`)\n );\n}\n\n/**\n * Recursive helper for isIdUsed that finds any strings contained in the configuration that pass the regex\n * @param configuration The configuration (could be anything)\n * @param regex The regex test\n */\nfunction isIdUsedRecurse(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configuration: any,\n regex: RegExp\n): {\n used: boolean;\n location: string;\n} {\n const type = typeof configuration;\n if (type === 'object' && configuration !== null) {\n for (const [id, value] of Object.entries(\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n configuration as Record<string, any>\n )) {\n const isIdUsed = isIdUsedRecurse(value, regex);\n if (isIdUsed.used) {\n isIdUsed.location =\n id +\n (value.name ? `(name: '${value.name}')` : '') +\n (isIdUsed.location === '' ? '' : '.') +\n isIdUsed.location;\n return isIdUsed;\n }\n }\n }\n return {\n used: type === 'string' && regex.test(configuration),\n location: '',\n };\n}\n"],"mappings":"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"}