@rockcarver/frodo-cli 0.15.0 → 0.15.1

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 (272) hide show
  1. package/CHANGELOG.md +17 -1
  2. package/esm/app.js +55 -0
  3. package/esm/app.js.map +1 -0
  4. package/esm/cli/_template/cmd-delete.js +22 -0
  5. package/esm/cli/_template/cmd-delete.js.map +1 -0
  6. package/esm/cli/_template/cmd-describe.js +22 -0
  7. package/esm/cli/_template/cmd-describe.js.map +1 -0
  8. package/esm/cli/_template/cmd-export.js +22 -0
  9. package/esm/cli/_template/cmd-export.js.map +1 -0
  10. package/esm/cli/_template/cmd-import.js +22 -0
  11. package/esm/cli/_template/cmd-import.js.map +1 -0
  12. package/esm/cli/_template/cmd-list.js +22 -0
  13. package/esm/cli/_template/cmd-list.js.map +1 -0
  14. package/esm/cli/_template/cmd-sub1-delete.js +22 -0
  15. package/esm/cli/_template/cmd-sub1-delete.js.map +1 -0
  16. package/esm/cli/_template/cmd-sub1-describe.js +22 -0
  17. package/esm/cli/_template/cmd-sub1-describe.js.map +1 -0
  18. package/esm/cli/_template/cmd-sub1-export.js +22 -0
  19. package/esm/cli/_template/cmd-sub1-export.js.map +1 -0
  20. package/esm/cli/_template/cmd-sub1-import.js +22 -0
  21. package/esm/cli/_template/cmd-sub1-import.js.map +1 -0
  22. package/esm/cli/_template/cmd-sub1-list.js +22 -0
  23. package/esm/cli/_template/cmd-sub1-list.js.map +1 -0
  24. package/esm/cli/_template/cmd-sub1.js +10 -0
  25. package/esm/cli/_template/cmd-sub1.js.map +1 -0
  26. package/esm/cli/_template/cmd-sub2-delete.js +22 -0
  27. package/esm/cli/_template/cmd-sub2-delete.js.map +1 -0
  28. package/esm/cli/_template/cmd-sub2-describe.js +22 -0
  29. package/esm/cli/_template/cmd-sub2-describe.js.map +1 -0
  30. package/esm/cli/_template/cmd-sub2-export.js +22 -0
  31. package/esm/cli/_template/cmd-sub2-export.js.map +1 -0
  32. package/esm/cli/_template/cmd-sub2-import.js +22 -0
  33. package/esm/cli/_template/cmd-sub2-import.js.map +1 -0
  34. package/esm/cli/_template/cmd-sub2-list.js +22 -0
  35. package/esm/cli/_template/cmd-sub2-list.js.map +1 -0
  36. package/esm/cli/_template/cmd-sub2.js +10 -0
  37. package/esm/cli/_template/cmd-sub2.js.map +1 -0
  38. package/esm/cli/_template/cmd.js +19 -0
  39. package/esm/cli/_template/cmd.js.map +1 -0
  40. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +28 -0
  41. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -0
  42. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +85 -0
  43. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -0
  44. package/esm/cli/admin/admin-get-access-token.js +28 -0
  45. package/esm/cli/admin/admin-get-access-token.js.map +1 -0
  46. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +28 -0
  47. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -0
  48. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +28 -0
  49. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -0
  50. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +31 -0
  51. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -0
  52. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +31 -0
  53. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -0
  54. package/esm/cli/admin/admin-list-static-user-mappings.js +31 -0
  55. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -0
  56. package/esm/cli/admin/admin-remove-static-user-mapping.js +28 -0
  57. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -0
  58. package/esm/cli/admin/admin-repair-org-model.js +28 -0
  59. package/esm/cli/admin/admin-repair-org-model.js.map +1 -0
  60. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +28 -0
  61. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -0
  62. package/esm/cli/admin/admin-show-generic-extension-attributes.js +28 -0
  63. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -0
  64. package/esm/cli/admin/admin.js +24 -0
  65. package/esm/cli/admin/admin.js.map +1 -0
  66. package/esm/cli/app/app-delete.js +22 -0
  67. package/esm/cli/app/app-delete.js.map +1 -0
  68. package/esm/cli/app/app-describe.js +22 -0
  69. package/esm/cli/app/app-describe.js.map +1 -0
  70. package/esm/cli/app/app-export.js +44 -0
  71. package/esm/cli/app/app-export.js.map +1 -0
  72. package/esm/cli/app/app-import.js +45 -0
  73. package/esm/cli/app/app-import.js.map +1 -0
  74. package/esm/cli/app/app-list.js +27 -0
  75. package/esm/cli/app/app-list.js.map +1 -0
  76. package/esm/cli/app/app.js +20 -0
  77. package/esm/cli/app/app.js.map +1 -0
  78. package/esm/cli/cmd_common.js +77 -0
  79. package/esm/cli/cmd_common.js.map +1 -0
  80. package/esm/cli/conn/conn-add.js +37 -0
  81. package/esm/cli/conn/conn-add.js.map +1 -0
  82. package/esm/cli/conn/conn-delete.js +14 -0
  83. package/esm/cli/conn/conn-delete.js.map +1 -0
  84. package/esm/cli/conn/conn-describe.js +14 -0
  85. package/esm/cli/conn/conn-describe.js.map +1 -0
  86. package/esm/cli/conn/conn-list.js +16 -0
  87. package/esm/cli/conn/conn-list.js.map +1 -0
  88. package/esm/cli/conn/conn.js +17 -0
  89. package/esm/cli/conn/conn.js.map +1 -0
  90. package/esm/cli/email/email-template-export.js +44 -0
  91. package/esm/cli/email/email-template-export.js.map +1 -0
  92. package/esm/cli/email/email-template-import.js +49 -0
  93. package/esm/cli/email/email-template-import.js.map +1 -0
  94. package/esm/cli/email/email-template-list.js +27 -0
  95. package/esm/cli/email/email-template-list.js.map +1 -0
  96. package/esm/cli/email/email-template.js +8 -0
  97. package/esm/cli/email/email-template.js.map +1 -0
  98. package/esm/cli/email/email.js +13 -0
  99. package/esm/cli/email/email.js.map +1 -0
  100. package/esm/cli/esv/esv-apply.js +67 -0
  101. package/esm/cli/esv/esv-apply.js.map +1 -0
  102. package/esm/cli/esv/esv-secret-create.js +27 -0
  103. package/esm/cli/esv/esv-secret-create.js.map +1 -0
  104. package/esm/cli/esv/esv-secret-delete.js +39 -0
  105. package/esm/cli/esv/esv-secret-delete.js.map +1 -0
  106. package/esm/cli/esv/esv-secret-describe.js +27 -0
  107. package/esm/cli/esv/esv-secret-describe.js.map +1 -0
  108. package/esm/cli/esv/esv-secret-export.js +22 -0
  109. package/esm/cli/esv/esv-secret-export.js.map +1 -0
  110. package/esm/cli/esv/esv-secret-import.js +22 -0
  111. package/esm/cli/esv/esv-secret-import.js.map +1 -0
  112. package/esm/cli/esv/esv-secret-list.js +27 -0
  113. package/esm/cli/esv/esv-secret-list.js.map +1 -0
  114. package/esm/cli/esv/esv-secret-set.js +27 -0
  115. package/esm/cli/esv/esv-secret-set.js.map +1 -0
  116. package/esm/cli/esv/esv-secret-version-activate.js +34 -0
  117. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -0
  118. package/esm/cli/esv/esv-secret-version-create.js +27 -0
  119. package/esm/cli/esv/esv-secret-version-create.js.map +1 -0
  120. package/esm/cli/esv/esv-secret-version-deactivate.js +34 -0
  121. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -0
  122. package/esm/cli/esv/esv-secret-version-delete.js +39 -0
  123. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -0
  124. package/esm/cli/esv/esv-secret-version-list.js +27 -0
  125. package/esm/cli/esv/esv-secret-version-list.js.map +1 -0
  126. package/esm/cli/esv/esv-secret-version.js +10 -0
  127. package/esm/cli/esv/esv-secret-version.js.map +1 -0
  128. package/esm/cli/esv/esv-secret.js +13 -0
  129. package/esm/cli/esv/esv-secret.js.map +1 -0
  130. package/esm/cli/esv/esv-variable-create.js +27 -0
  131. package/esm/cli/esv/esv-variable-create.js.map +1 -0
  132. package/esm/cli/esv/esv-variable-delete.js +39 -0
  133. package/esm/cli/esv/esv-variable-delete.js.map +1 -0
  134. package/esm/cli/esv/esv-variable-describe.js +27 -0
  135. package/esm/cli/esv/esv-variable-describe.js.map +1 -0
  136. package/esm/cli/esv/esv-variable-export.js +22 -0
  137. package/esm/cli/esv/esv-variable-export.js.map +1 -0
  138. package/esm/cli/esv/esv-variable-import.js +22 -0
  139. package/esm/cli/esv/esv-variable-import.js.map +1 -0
  140. package/esm/cli/esv/esv-variable-list.js +27 -0
  141. package/esm/cli/esv/esv-variable-list.js.map +1 -0
  142. package/esm/cli/esv/esv-variable-set.js +37 -0
  143. package/esm/cli/esv/esv-variable-set.js.map +1 -0
  144. package/esm/cli/esv/esv-variable.js +12 -0
  145. package/esm/cli/esv/esv-variable.js.map +1 -0
  146. package/esm/cli/esv/esv.js +15 -0
  147. package/esm/cli/esv/esv.js.map +1 -0
  148. package/esm/cli/idm/idm-count.js +27 -0
  149. package/esm/cli/idm/idm-count.js.map +1 -0
  150. package/esm/cli/idm/idm-export.js +44 -0
  151. package/esm/cli/idm/idm-export.js.map +1 -0
  152. package/esm/cli/idm/idm-list.js +30 -0
  153. package/esm/cli/idm/idm-list.js.map +1 -0
  154. package/esm/cli/idm/idm.js +16 -0
  155. package/esm/cli/idm/idm.js.map +1 -0
  156. package/esm/cli/idp/idp-export.js +44 -0
  157. package/esm/cli/idp/idp-export.js.map +1 -0
  158. package/esm/cli/idp/idp-import.js +49 -0
  159. package/esm/cli/idp/idp-import.js.map +1 -0
  160. package/esm/cli/idp/idp-list.js +30 -0
  161. package/esm/cli/idp/idp-list.js.map +1 -0
  162. package/esm/cli/idp/idp.js +15 -0
  163. package/esm/cli/idp/idp.js.map +1 -0
  164. package/esm/cli/info/info.js +48 -0
  165. package/esm/cli/info/info.js.map +1 -0
  166. package/esm/cli/journey/journey-delete.e2e.test_.js.map +1 -0
  167. package/esm/cli/journey/journey-delete.js +39 -0
  168. package/esm/cli/journey/journey-delete.js.map +1 -0
  169. package/esm/cli/journey/journey-describe.js +100 -0
  170. package/esm/cli/journey/journey-describe.js.map +1 -0
  171. package/esm/cli/journey/journey-disable.js +46 -0
  172. package/esm/cli/journey/journey-disable.js.map +1 -0
  173. package/esm/cli/journey/journey-enable.js +46 -0
  174. package/esm/cli/journey/journey-enable.js.map +1 -0
  175. package/esm/cli/journey/journey-export.js +56 -0
  176. package/esm/cli/journey/journey-export.js.map +1 -0
  177. package/esm/cli/journey/journey-import.js +65 -0
  178. package/esm/cli/journey/journey-import.js.map +1 -0
  179. package/esm/cli/journey/journey-list.e2e.test_.js.map +1 -0
  180. package/esm/cli/journey/journey-list.js +27 -0
  181. package/esm/cli/journey/journey-list.js.map +1 -0
  182. package/esm/cli/journey/journey-prune.js +41 -0
  183. package/esm/cli/journey/journey-prune.js.map +1 -0
  184. package/esm/cli/journey/journey.js +20 -0
  185. package/esm/cli/journey/journey.js.map +1 -0
  186. package/esm/cli/logging/logs-list.js +66 -0
  187. package/esm/cli/logging/logs-list.js.map +1 -0
  188. package/esm/cli/logging/logs-tail.js +60 -0
  189. package/esm/cli/logging/logs-tail.js.map +1 -0
  190. package/esm/cli/logging/logs.js +13 -0
  191. package/esm/cli/logging/logs.js.map +1 -0
  192. package/esm/cli/realm/realm-add-custom-domain.js +27 -0
  193. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -0
  194. package/esm/cli/realm/realm-describe.js +30 -0
  195. package/esm/cli/realm/realm-describe.js.map +1 -0
  196. package/esm/cli/realm/realm-list.js +27 -0
  197. package/esm/cli/realm/realm-list.js.map +1 -0
  198. package/esm/cli/realm/realm-remove-custom-domain.js +27 -0
  199. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -0
  200. package/esm/cli/realm/realm.js +18 -0
  201. package/esm/cli/realm/realm.js.map +1 -0
  202. package/esm/cli/saml/saml-cot-export.js +44 -0
  203. package/esm/cli/saml/saml-cot-export.js.map +1 -0
  204. package/esm/cli/saml/saml-cot-import.js +49 -0
  205. package/esm/cli/saml/saml-cot-import.js.map +1 -0
  206. package/esm/cli/saml/saml-cot-list.js +27 -0
  207. package/esm/cli/saml/saml-cot-list.js.map +1 -0
  208. package/esm/cli/saml/saml-cot.js +8 -0
  209. package/esm/cli/saml/saml-cot.js.map +1 -0
  210. package/esm/cli/saml/saml-describe.js +27 -0
  211. package/esm/cli/saml/saml-describe.js.map +1 -0
  212. package/esm/cli/saml/saml-export.js +44 -0
  213. package/esm/cli/saml/saml-export.js.map +1 -0
  214. package/esm/cli/saml/saml-import.js +49 -0
  215. package/esm/cli/saml/saml-import.js.map +1 -0
  216. package/esm/cli/saml/saml-list.js +27 -0
  217. package/esm/cli/saml/saml-list.js.map +1 -0
  218. package/esm/cli/saml/saml-metadata-export.js +39 -0
  219. package/esm/cli/saml/saml-metadata-export.js.map +1 -0
  220. package/esm/cli/saml/saml-metadata.js +6 -0
  221. package/esm/cli/saml/saml-metadata.js.map +1 -0
  222. package/esm/cli/saml/saml.js +18 -0
  223. package/esm/cli/saml/saml.js.map +1 -0
  224. package/esm/cli/script/script-delete.js +22 -0
  225. package/esm/cli/script/script-delete.js.map +1 -0
  226. package/esm/cli/script/script-describe.js +22 -0
  227. package/esm/cli/script/script-describe.js.map +1 -0
  228. package/esm/cli/script/script-export.js +55 -0
  229. package/esm/cli/script/script-export.js.map +1 -0
  230. package/esm/cli/script/script-import.js +28 -0
  231. package/esm/cli/script/script-import.js.map +1 -0
  232. package/esm/cli/script/script-list.js +27 -0
  233. package/esm/cli/script/script-list.js.map +1 -0
  234. package/esm/cli/script/script.js +17 -0
  235. package/esm/cli/script/script.js.map +1 -0
  236. package/esm/cli/theme/theme-delete.e2e.test_.js.map +1 -0
  237. package/esm/cli/theme/theme-delete.js +44 -0
  238. package/esm/cli/theme/theme-delete.js.map +1 -0
  239. package/esm/cli/theme/theme-export.js +49 -0
  240. package/esm/cli/theme/theme-export.js.map +1 -0
  241. package/esm/cli/theme/theme-import.js +54 -0
  242. package/esm/cli/theme/theme-import.js.map +1 -0
  243. package/esm/cli/theme/theme-list.e2e.test_.js.map +1 -0
  244. package/esm/cli/theme/theme-list.js +27 -0
  245. package/esm/cli/theme/theme-list.js.map +1 -0
  246. package/esm/cli/theme/theme.js +16 -0
  247. package/esm/cli/theme/theme.js.map +1 -0
  248. package/esm/ops/CirclesOfTrustOps.js +12 -0
  249. package/esm/ops/CirclesOfTrustOps.js.map +1 -0
  250. package/esm/ops/EmailTemplateOps.js +10 -0
  251. package/esm/ops/EmailTemplateOps.js.map +1 -0
  252. package/esm/ops/IdpOps.js +10 -0
  253. package/esm/ops/IdpOps.js.map +1 -0
  254. package/esm/ops/JourneyOps.js +203 -0
  255. package/esm/ops/JourneyOps.js.map +1 -0
  256. package/esm/ops/NodeOps.js +36 -0
  257. package/esm/ops/NodeOps.js.map +1 -0
  258. package/esm/ops/Saml2Ops.js +23 -0
  259. package/esm/ops/Saml2Ops.js.map +1 -0
  260. package/esm/ops/ScriptOps.js +10 -0
  261. package/esm/ops/ScriptOps.js.map +1 -0
  262. package/esm/ops/ThemeOps.js +10 -0
  263. package/esm/ops/ThemeOps.js.map +1 -0
  264. package/esm/ops/utils/Wordwrap.js +5 -0
  265. package/esm/ops/utils/Wordwrap.js.map +1 -0
  266. package/esm/storage/StaticStorage.js +12 -0
  267. package/esm/storage/StaticStorage.js.map +1 -0
  268. package/esm/utils/Config.js +54 -0
  269. package/esm/utils/Config.js.map +1 -0
  270. package/esm/utils/Console.js +532 -0
  271. package/esm/utils/Console.js.map +1 -0
  272. package/package.json +3 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-export.js","names":["Command","Option","Authenticate","Theme","state","common","getTokens","exportThemeById","exportThemeByName","exportThemesToFile","exportThemesToFiles","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","themeName","console","log","getRealm","file","themeId","all","allSeparate","help","parse"],"sources":["cli/theme/theme-export.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Theme, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\n\nconst {\n exportThemeById,\n exportThemeByName,\n exportThemesToFile,\n exportThemesToFiles,\n} = Theme;\n\nconst program = new Command('frodo theme export');\n\nprogram\n .description('Export themes.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.realmArgument)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(\n new Option(\n '-n, --theme-name <name>',\n 'Name of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-i, --theme-id <uuid>',\n 'Uuid of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file [file]',\n 'Name of the file to write the exported theme(s) to. Ignored with -A.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Export all the themes in a realm to a single file. Ignored with -n and -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Export all the themes in a realm as separate files <theme name>.theme.json. Ignored with -n, -i, and -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n if (await getTokens()) {\n // export by name\n if (options.themeName) {\n console.log(\n `Exporting theme \"${\n options.themeName\n }\" from realm \"${state.default.session.getRealm()}\"...`\n );\n exportThemeByName(options.themeName, options.file);\n }\n // export by id\n else if (options.themeId) {\n console.log(\n `Exporting theme \"${\n options.themeId\n }\" from realm \"${state.default.session.getRealm()}\"...`\n );\n exportThemeById(options.themeId, options.file);\n }\n // --all -a\n else if (options.all) {\n console.log('Exporting all themes to a single file...');\n exportThemesToFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate) {\n console.log('Exporting all themes to separate files...');\n exportThemesToFiles();\n }\n // unrecognized combination of options or no options\n else {\n console.log(\n 'Unrecognized combination of options or no options...',\n 'error'\n );\n program.help();\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { Command, Option } from 'commander';
2
+ import { Authenticate, Theme, state } from '@rockcarver/frodo-lib';
3
+ import * as common from '../cmd_common.js';
4
+ const {
5
+ getTokens
6
+ } = Authenticate;
7
+ const {
8
+ importFirstThemeFromFile,
9
+ importThemeById,
10
+ importThemeByName,
11
+ importThemesFromFile,
12
+ importThemesFromFiles
13
+ } = Theme;
14
+ const program = new Command('frodo theme import');
15
+ program.description('Import themes.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(new Option('-n, --theme-name <name>', 'Name of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-i, --theme-id <uuid>', 'Uuid of the theme. If specified, -a and -A are ignored.')).addOption(new Option('-f, --file <file>', 'Name of the file to import the theme(s) from.')).addOption(new Option('-a, --all', 'Import all the themes from single file. Ignored with -n or -i.')).addOption(new Option('-A, --all-separate', 'Import all the themes from separate files (*.json) in the current directory. Ignored with -n or -i or -a.')).action( // implement command logic inside action handler
16
+ async (host, realm, user, password, options) => {
17
+ state.default.session.setTenant(host);
18
+ state.default.session.setRealm(realm);
19
+ state.default.session.setUsername(user);
20
+ state.default.session.setPassword(password);
21
+ state.default.session.setDeploymentType(options.type);
22
+ state.default.session.setAllowInsecureConnection(options.insecure);
23
+
24
+ if (await getTokens()) {
25
+ // import by name
26
+ if (options.file && options.themeName) {
27
+ console.log(`Importing theme with name "${options.themeName}" into realm "${state.default.session.getRealm()}"...`);
28
+ importThemeByName(options.themeName, options.file);
29
+ } // import by id
30
+ else if (options.file && options.themeId) {
31
+ console.log(`Importing theme with id "${options.themeId}" into realm "${state.default.session.getRealm()}"...`);
32
+ importThemeById(options.themeId, options.file);
33
+ } // --all -a
34
+ else if (options.all && options.file) {
35
+ console.log(`Importing all themes from a single file (${options.file})...`);
36
+ importThemesFromFile(options.file);
37
+ } // --all-separate -A
38
+ else if (options.allSeparate && !options.file) {
39
+ console.log('Importing all themes from separate files in current directory...');
40
+ importThemesFromFiles();
41
+ } // import single theme from file
42
+ else if (options.file) {
43
+ console.log(`Importing first theme from file "${options.file}" into realm "${state.default.session.getRealm()}"...`);
44
+ importFirstThemeFromFile(options.file);
45
+ } // unrecognized combination of options or no options
46
+ else {
47
+ console.log('Unrecognized combination of options or no options...');
48
+ program.help();
49
+ }
50
+ }
51
+ } // end command logic inside action handler
52
+ );
53
+ program.parse();
54
+ //# sourceMappingURL=theme-import.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-import.js","names":["Command","Option","Authenticate","Theme","state","common","getTokens","importFirstThemeFromFile","importThemeById","importThemeByName","importThemesFromFile","importThemesFromFiles","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","file","themeName","console","log","getRealm","themeId","all","allSeparate","help","parse"],"sources":["cli/theme/theme-import.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Theme, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\n\nconst {\n importFirstThemeFromFile,\n importThemeById,\n importThemeByName,\n importThemesFromFile,\n importThemesFromFiles,\n} = Theme;\n\nconst program = new Command('frodo theme import');\n\nprogram\n .description('Import themes.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.realmArgument)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(\n new Option(\n '-n, --theme-name <name>',\n 'Name of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-i, --theme-id <uuid>',\n 'Uuid of the theme. If specified, -a and -A are ignored.'\n )\n )\n .addOption(\n new Option(\n '-f, --file <file>',\n 'Name of the file to import the theme(s) from.'\n )\n )\n .addOption(\n new Option(\n '-a, --all',\n 'Import all the themes from single file. Ignored with -n or -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all the themes from separate files (*.json) in the current directory. Ignored with -n or -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n if (await getTokens()) {\n // import by name\n if (options.file && options.themeName) {\n console.log(\n `Importing theme with name \"${\n options.themeName\n }\" into realm \"${state.default.session.getRealm()}\"...`\n );\n importThemeByName(options.themeName, options.file);\n }\n // import by id\n else if (options.file && options.themeId) {\n console.log(\n `Importing theme with id \"${\n options.themeId\n }\" into realm \"${state.default.session.getRealm()}\"...`\n );\n importThemeById(options.themeId, options.file);\n }\n // --all -a\n else if (options.all && options.file) {\n console.log(\n `Importing all themes from a single file (${options.file})...`\n );\n importThemesFromFile(options.file);\n }\n // --all-separate -A\n else if (options.allSeparate && !options.file) {\n console.log(\n 'Importing all themes from separate files in current directory...'\n );\n importThemesFromFiles();\n }\n // import single theme from file\n else if (options.file) {\n console.log(\n `Importing first theme from file \"${\n options.file\n }\" into realm \"${state.default.session.getRealm()}\"...`\n );\n importFirstThemeFromFile(options.file);\n }\n // unrecognized combination of options or no options\n else {\n console.log('Unrecognized combination of options or no options...');\n program.help();\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-list.e2e.test_.js","names":["spawn","spawnSync","ansiEscapeCodes","beforeAll","deleteThemesCmd","status","console","error","stderr","toString","log","stdout","importBaselineThemesCmd","cwd","describe","it","done","themeList","expected","join","chunks","on","chunk","push","output","Buffer","concat","replace","expect","toBe","expectedLong"],"sources":["cli/theme/theme-list.e2e.test_.ts"],"sourcesContent":["// import { jest } from '@jest/globals';\nimport { spawn, spawnSync } from 'child_process';\n\nconst ansiEscapeCodes =\n // eslint-disable-next-line no-control-regex\n /[\\u001b\\u009b][[()#;?]*(?:[0-9]{1,4}(?:;[0-9]{0,4})*)?[0-9A-ORZcf-nqry=><]/g;\n\n/**\n * delete all themes and import baseline and additional test themes\n */\nbeforeAll(async () => {\n // delete all themes\n const deleteThemesCmd = spawnSync('frodo', [\n 'theme',\n 'delete',\n '--all',\n 'frodo-dev',\n ]);\n if (deleteThemesCmd.status > 0) {\n console.error(deleteThemesCmd.stderr.toString());\n console.log(deleteThemesCmd.stdout.toString());\n }\n\n // import baseline themes\n const importBaselineThemesCmd = spawnSync(\n 'frodo',\n ['theme', 'import', '--all-separate', 'frodo-dev'],\n {\n cwd: `test/e2e/theme/baseline`,\n }\n );\n if (importBaselineThemesCmd.status > 0) {\n console.error(importBaselineThemesCmd.stderr.toString());\n console.log(importBaselineThemesCmd.stdout.toString());\n }\n});\n\ndescribe('frodo theme list', () => {\n it('\"frodo theme list\": should list the names of the default themes', (done) => {\n const themeList = spawn('frodo', ['theme', 'list', 'frodo-dev']);\n const expected = [\n 'Contrast',\n 'Highlander',\n 'Robroy',\n 'Starter Theme',\n 'Zardoz',\n '',\n ].join('\\n');\n\n const chunks = [];\n themeList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n themeList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expected);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n const expectedLong = [\n 'Name │Id │Default',\n 'Contrast │cd6c93e2-52e2-4340-9770-66a588343841│ ',\n 'Highlander │00203891-dde0-4114-b27a-219ae0b43a61│ ',\n 'Robroy │b82755e8-fe9a-4d27-b66b-45e37ae12345│ ',\n 'Starter Theme│86ce2f64-586d-44fe-8593-b12a85aac68d│Yes ',\n 'Zardoz │4ded6d91-ceea-400a-ae3f-42209f1b0e06│ ',\n '',\n ].join('\\n');\n\n it('\"frodo theme list -l\": should list the names, ids, and default flag of the baseline themes', (done) => {\n const themeList = spawn('frodo', ['theme', 'list', '-l', 'frodo-dev']);\n\n const chunks = [];\n themeList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n themeList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expectedLong);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n\n it('\"frodo theme list --long\": should list the names, status, and default flag of the baseline themes', (done) => {\n const themeList = spawn('frodo', ['theme', 'list', '--long', 'frodo-dev']);\n\n const chunks = [];\n themeList.stdout.on('data', (chunk) => {\n chunks.push(chunk);\n });\n\n themeList.stdout.on('end', () => {\n const output = Buffer.concat(chunks)\n .toString()\n .replace(ansiEscapeCodes, '');\n try {\n expect(output).toBe(expectedLong);\n done();\n } catch (error) {\n done(error);\n }\n });\n });\n});\n"],"mappings":"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"}
@@ -0,0 +1,27 @@
1
+ import { Command, Option } from 'commander';
2
+ import { Authenticate, Theme, state } from '@rockcarver/frodo-lib';
3
+ import * as common from '../cmd_common.js';
4
+ const {
5
+ getTokens
6
+ } = Authenticate;
7
+ const {
8
+ listThemes
9
+ } = Theme;
10
+ const program = new Command('frodo theme list');
11
+ program.description('List themes.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(new Option('-l, --long', 'Long with more fields.').default(false, 'false')).action( // implement command logic inside action handler
12
+ async (host, realm, user, password, options) => {
13
+ state.default.session.setTenant(host);
14
+ state.default.session.setRealm(realm);
15
+ state.default.session.setUsername(user);
16
+ state.default.session.setPassword(password);
17
+ state.default.session.setDeploymentType(options.type);
18
+ state.default.session.setAllowInsecureConnection(options.insecure);
19
+
20
+ if (await getTokens()) {
21
+ console.log(`Listing themes in realm "${state.default.session.getRealm()}"...`);
22
+ listThemes(options.long);
23
+ }
24
+ } // end command logic inside action handler
25
+ );
26
+ program.parse();
27
+ //# sourceMappingURL=theme-list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme-list.js","names":["Command","Option","Authenticate","Theme","state","common","getTokens","listThemes","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","default","action","host","realm","user","password","options","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","console","log","getRealm","long","parse"],"sources":["cli/theme/theme-list.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Theme, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\nconst { listThemes } = Theme;\n\nconst program = new Command('frodo theme list');\n\nprogram\n .description('List themes.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.realmArgument)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.deploymentOption)\n .addOption(common.insecureOption)\n .addOption(\n new Option('-l, --long', 'Long with more fields.').default(false, 'false')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n if (await getTokens()) {\n console.log(\n `Listing themes in realm \"${state.default.session.getRealm()}\"...`\n );\n listThemes(options.long);\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAT,EAAkBC,MAAlB,QAAgC,WAAhC;AACA,SAASC,YAAT,EAAuBC,KAAvB,EAA8BC,KAA9B,QAA2C,uBAA3C;AACA,OAAO,KAAKC,MAAZ,MAAwB,kBAAxB;AAEA,MAAM;EAAEC;AAAF,IAAgBJ,YAAtB;AACA,MAAM;EAAEK;AAAF,IAAiBJ,KAAvB;AAEA,MAAMK,OAAO,GAAG,IAAIR,OAAJ,CAAY,kBAAZ,CAAhB;AAEAQ,OAAO,CACJC,WADH,CACe,cADf,EAEGC,UAFH,CAEc,YAFd,EAE4B,MAF5B,EAGGC,kBAHH,GAIGC,WAJH,CAIeP,MAAM,CAACQ,aAJtB,EAKGD,WALH,CAKeP,MAAM,CAACS,aALtB,EAMGF,WANH,CAMeP,MAAM,CAACU,YANtB,EAOGH,WAPH,CAOeP,MAAM,CAACW,gBAPtB,EAQGC,SARH,CAQaZ,MAAM,CAACa,gBARpB,EASGD,SATH,CASaZ,MAAM,CAACc,cATpB,EAUGF,SAVH,CAWI,IAAIhB,MAAJ,CAAW,YAAX,EAAyB,wBAAzB,EAAmDmB,OAAnD,CAA2D,KAA3D,EAAkE,OAAlE,CAXJ,EAaGC,MAbH,EAcI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CtB,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBC,SAAtB,CAAgCN,IAAhC;EACAlB,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBE,QAAtB,CAA+BN,KAA/B;EACAnB,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBG,WAAtB,CAAkCN,IAAlC;EACApB,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBI,WAAtB,CAAkCN,QAAlC;EACArB,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBK,iBAAtB,CAAwCN,OAAO,CAACO,IAAhD;EACA7B,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBO,0BAAtB,CAAiDR,OAAO,CAACS,QAAzD;;EACA,IAAI,MAAM7B,SAAS,EAAnB,EAAuB;IACrB8B,OAAO,CAACC,GAAR,CACG,4BAA2BjC,KAAK,CAACgB,OAAN,CAAcO,OAAd,CAAsBW,QAAtB,EAAiC,MAD/D;IAGA/B,UAAU,CAACmB,OAAO,CAACa,IAAT,CAAV;EACD;AACF,CA5BL,CA6BI;AA7BJ;AAgCA/B,OAAO,CAACgC,KAAR"}
@@ -0,0 +1,16 @@
1
+ import { Command } from 'commander';
2
+ import path from 'path';
3
+ import { fileURLToPath } from 'url';
4
+
5
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
6
+
7
+ export default function setup() {
8
+ const program = new Command('theme').helpOption('-h, --help', 'Help').description('Manage themes.').executableDir(__dirname);
9
+ program.command('list', 'List themes.').showHelpAfterError();
10
+ program.command('export', 'Export themes.').showHelpAfterError();
11
+ program.command('import', 'Import themes.').showHelpAfterError();
12
+ program.command('delete', 'Delete themes.').showHelpAfterError();
13
+ program.showHelpAfterError();
14
+ return program;
15
+ }
16
+ //# sourceMappingURL=theme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"theme.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","helpOption","description","executableDir","command","showHelpAfterError"],"sources":["cli/theme/theme.ts"],"sourcesContent":["import { Command } from 'commander';\nimport path from 'path';\nimport { fileURLToPath } from 'url';\n\nconst __dirname = path.dirname(fileURLToPath(import.meta.url));\n\nexport default function setup() {\n const program = new Command('theme')\n .helpOption('-h, --help', 'Help')\n .description('Manage themes.')\n .executableDir(__dirname);\n\n program.command('list', 'List themes.').showHelpAfterError();\n\n program.command('export', 'Export themes.').showHelpAfterError();\n\n program.command('import', 'Import themes.').showHelpAfterError();\n\n program.command('delete', 'Delete themes.').showHelpAfterError();\n\n program.showHelpAfterError();\n return program;\n}\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,aAAT,QAA8B,KAA9B;;AAEA,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAL,CAAaF,aAAa,CAACG,MAAM,CAACC,IAAP,CAAYC,GAAb,CAA1B,CAAlB;;AAEA,eAAe,SAASC,KAAT,GAAiB;EAC9B,MAAMC,OAAO,GAAG,IAAIT,OAAJ,CAAY,OAAZ,EACbU,UADa,CACF,YADE,EACY,MADZ,EAEbC,WAFa,CAED,gBAFC,EAGbC,aAHa,CAGCT,SAHD,CAAhB;EAKAM,OAAO,CAACI,OAAR,CAAgB,MAAhB,EAAwB,cAAxB,EAAwCC,kBAAxC;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,gBAA1B,EAA4CC,kBAA5C;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,gBAA1B,EAA4CC,kBAA5C;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,gBAA1B,EAA4CC,kBAA5C;EAEAL,OAAO,CAACK,kBAAR;EACA,OAAOL,OAAP;AACD"}
@@ -0,0 +1,12 @@
1
+ // import { CircleOfTrustSkeleton } from "@rockcarver/frodo-lib/types/api/ApiTypes";
2
+
3
+ /**
4
+ * Get a one-line description of the circle of trust object
5
+ * @param {CircleOfTrustSkeleton} cotObj circle of trust object to describe
6
+ * @returns {string} a one-line description
7
+ */
8
+ export function getOneLineDescription(cotObj) {
9
+ const description = `[${cotObj._id['brightCyan']}]`;
10
+ return description;
11
+ }
12
+ //# sourceMappingURL=CirclesOfTrustOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CirclesOfTrustOps.js","names":["getOneLineDescription","cotObj","description","_id"],"sources":["ops/CirclesOfTrustOps.ts"],"sourcesContent":["// import { CircleOfTrustSkeleton } from \"@rockcarver/frodo-lib/types/api/ApiTypes\";\nimport { TypesRaw } from '@rockcarver/frodo-lib';\n\n/**\n * Get a one-line description of the circle of trust object\n * @param {CircleOfTrustSkeleton} cotObj circle of trust object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(cotObj: TypesRaw.CircleOfTrustSkeleton): string {\n const description = `[${cotObj._id['brightCyan']}]`;\n return description;\n}\n"],"mappings":"AAAA;;AAGA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAT,CAA+BC,MAA/B,EAA+E;EACpF,MAAMC,WAAW,GAAI,IAAGD,MAAM,CAACE,GAAP,CAAW,YAAX,CAAyB,GAAjD;EACA,OAAOD,WAAP;AACD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get a one-line description of the email template
3
+ * @param {EmailTemplateSkeleton} templateObj email template object to describe
4
+ * @returns {string} a one-line description
5
+ */
6
+ export function getOneLineDescription(templateObj) {
7
+ const description = `[${templateObj._id.split('/')[1]['brightCyan']}] ${templateObj.displayName ? templateObj.displayName : ''} - ${templateObj.defaultLocale ? templateObj.subject[templateObj.defaultLocale] : Object.values(templateObj.subject)[0]}`;
8
+ return description;
9
+ }
10
+ //# sourceMappingURL=EmailTemplateOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailTemplateOps.js","names":["getOneLineDescription","templateObj","description","_id","split","displayName","defaultLocale","subject","Object","values"],"sources":["ops/EmailTemplateOps.ts"],"sourcesContent":["import { EmailTemplateSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\n\n/**\n * Get a one-line description of the email template\n * @param {EmailTemplateSkeleton} templateObj email template object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n templateObj: EmailTemplateSkeleton\n): string {\n const description = `[${templateObj._id.split('/')[1]['brightCyan']}] ${\n templateObj.displayName ? templateObj.displayName : ''\n } - ${\n templateObj.defaultLocale\n ? templateObj.subject[templateObj.defaultLocale]\n : Object.values(templateObj.subject)[0]\n }`;\n return description;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAT,CACLC,WADK,EAEG;EACR,MAAMC,WAAW,GAAI,IAAGD,WAAW,CAACE,GAAZ,CAAgBC,KAAhB,CAAsB,GAAtB,EAA2B,CAA3B,EAA8B,YAA9B,CAA4C,KAClEH,WAAW,CAACI,WAAZ,GAA0BJ,WAAW,CAACI,WAAtC,GAAoD,EACrD,MACCJ,WAAW,CAACK,aAAZ,GACIL,WAAW,CAACM,OAAZ,CAAoBN,WAAW,CAACK,aAAhC,CADJ,GAEIE,MAAM,CAACC,MAAP,CAAcR,WAAW,CAACM,OAA1B,EAAmC,CAAnC,CACL,EAND;EAOA,OAAOL,WAAP;AACD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get a one-line description of the social idp object
3
+ * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe
4
+ * @returns {string} a one-line description
5
+ */
6
+ export function getOneLineDescription(socialIdpObj) {
7
+ const description = `[${socialIdpObj._id['brightCyan']}] ${socialIdpObj._type._id}`;
8
+ return description;
9
+ }
10
+ //# sourceMappingURL=IdpOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IdpOps.js","names":["getOneLineDescription","socialIdpObj","description","_id","_type"],"sources":["ops/IdpOps.ts"],"sourcesContent":["import { SocialIdpSkeleton } from \"@rockcarver/frodo-lib/types/api/ApiTypes\";\n\n/**\n * Get a one-line description of the social idp object\n * @param {SocialIdpSkeleton} socialIdpObj social idp object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(socialIdpObj: SocialIdpSkeleton): string {\n const description = `[${socialIdpObj._id['brightCyan']}] ${socialIdpObj._type._id}`;\n return description;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAT,CAA+BC,YAA/B,EAAwE;EAC7E,MAAMC,WAAW,GAAI,IAAGD,YAAY,CAACE,GAAb,CAAiB,YAAjB,CAA+B,KAAIF,YAAY,CAACG,KAAb,CAAmBD,GAAI,EAAlF;EACA,OAAOD,WAAP;AACD"}
@@ -0,0 +1,203 @@
1
+ import { printMessage } from '../utils/Console';
2
+ import { Journey, Types, state } from '@rockcarver/frodo-lib';
3
+ import * as CirclesOfTrust from './CirclesOfTrustOps';
4
+ import * as EmailTemplate from './EmailTemplateOps';
5
+ import * as Idp from './IdpOps';
6
+ import * as Node from './NodeOps';
7
+ import * as Saml2 from './Saml2Ops';
8
+ import * as Script from './ScriptOps';
9
+ import * as Theme from './ThemeOps';
10
+ const {
11
+ onlineTreeExportResolver,
12
+ getTreeDescendents,
13
+ getNodeRef
14
+ } = Journey;
15
+ /**
16
+ * Get journey classification
17
+ * @param {SingleTreeExportInterface} journey journey export
18
+ * @returns {stringp[]} Colored string array of classifications
19
+ */
20
+
21
+ export function getJourneyClassification(journey) {
22
+ return Journey.getJourneyClassification(journey).map(it => {
23
+ switch (it) {
24
+ case Types.JourneyClassification.STANDARD:
25
+ return it.toString()['brightGreen'];
26
+
27
+ case Types.JourneyClassification.CLOUD:
28
+ return it.toString()['brightMagenta'];
29
+
30
+ case Types.JourneyClassification.CUSTOM:
31
+ return it.toString()['brightRed'];
32
+
33
+ case Types.JourneyClassification.PREMIUM:
34
+ return it.toString()['brightYellow'];
35
+ }
36
+ });
37
+ }
38
+ /**
39
+ * Get a one-line description of the tree object
40
+ * @param {TreeSkeleton} treeObj circle of trust object to describe
41
+ * @returns {string} a one-line description
42
+ */
43
+
44
+ export function getOneLineDescription(treeObj) {
45
+ const description = `[${treeObj._id['brightCyan']}]`;
46
+ return description;
47
+ }
48
+ /**
49
+ * Helper function to render a nested list of dependent trees
50
+ * @param {TreeDependencyMapInterface} descendents tree dependency map
51
+ * @param {number} depth level of nesting
52
+ */
53
+
54
+ function describeTreeDescendents(descendents, depth = 0) {
55
+ if (depth || Object.values(descendents)[0].length) {
56
+ // heading
57
+ if (depth === 0) {
58
+ printMessage(`\nInner Tree Dependencies (${Object.values(descendents)[0].length}):`, 'data');
59
+ }
60
+
61
+ const indent = Array(depth * 2).fill(' ').join('');
62
+ const [tree] = Object.keys(descendents);
63
+ printMessage(`${indent}- ${tree['brightCyan']}`, 'data');
64
+
65
+ for (const descendent of descendents[tree]) {
66
+ describeTreeDescendents(descendent, depth + 1);
67
+ }
68
+ }
69
+ }
70
+ /**
71
+ * Describe a journey:
72
+ * - Properties, tags, description, name, metadata
73
+ * - Inner tree dependency tree
74
+ * - Node type summary
75
+ * - Nodes
76
+ * - Themes
77
+ * - Scripts
78
+ * - Email templates
79
+ * - Social identity providers
80
+ * - SAML2 entity providers
81
+ * - SAML2 circles of trust
82
+ * @param {SingleTreeExportInterface} journeyData journey export object
83
+ * @param {TreeExportResolverInterface} resolveTreeExport tree export resolver callback function
84
+ */
85
+
86
+
87
+ export async function describeJourney(journeyData, resolveTreeExport = onlineTreeExportResolver) {
88
+ var _journeyData$meta, _journeyData$tree$uiC, _journeyData$themes;
89
+
90
+ const allNodes = { ...journeyData.nodes,
91
+ ...journeyData.innerNodes
92
+ };
93
+ const nodeTypeMap = {};
94
+
95
+ for (const nodeData of Object.values(allNodes)) {
96
+ if (nodeTypeMap[nodeData._type._id]) {
97
+ nodeTypeMap[nodeData._type._id] += 1;
98
+ } else {
99
+ nodeTypeMap[nodeData._type._id] = 1;
100
+ }
101
+ } // Journey Name
102
+
103
+
104
+ printMessage(`${getOneLineDescription(journeyData.tree)}`, 'data');
105
+ printMessage(Array(`[${journeyData.tree._id}]`['length']).fill('=').join('')); // Description
106
+
107
+ if (journeyData.tree.description) {
108
+ printMessage(`\n${journeyData.tree.description}`, 'data');
109
+ } // Status
110
+
111
+
112
+ printMessage(`\nStatus\n${journeyData.tree.enabled === false ? 'disabled'['brightRed'] : 'enabled'['brightGreen']}`); // Classification
113
+
114
+ if (!state.default.session.getAmVersion() && (_journeyData$meta = journeyData.meta) !== null && _journeyData$meta !== void 0 && _journeyData$meta.originAmVersion) {
115
+ state.default.session.setAmVersion(journeyData.meta.originAmVersion);
116
+ }
117
+
118
+ if (state.default.session.getAmVersion()) {
119
+ printMessage(`\nClassification\n${getJourneyClassification(journeyData).join(', ')}`, 'data');
120
+ } // Categories/Tags
121
+
122
+
123
+ if ((_journeyData$tree$uiC = journeyData.tree.uiConfig) !== null && _journeyData$tree$uiC !== void 0 && _journeyData$tree$uiC.categories && journeyData.tree.uiConfig.categories != '[]') {
124
+ printMessage('\nCategories/Tags', 'data');
125
+ printMessage(`${JSON.parse(journeyData.tree.uiConfig.categories).join(', ')}`, 'data');
126
+ } // Dependency Tree
127
+
128
+
129
+ const descendents = await getTreeDescendents(journeyData, resolveTreeExport);
130
+ describeTreeDescendents(descendents); // Node Types
131
+
132
+ if (Object.entries(nodeTypeMap).length) {
133
+ printMessage(`\nNode Types (${Object.entries(nodeTypeMap).length}):`, 'data');
134
+
135
+ for (const [nodeType, count] of Object.entries(nodeTypeMap)) {
136
+ printMessage(`- ${String(count)} [${nodeType['brightCyan']}] (${Node.getNodeClassification(nodeType).join(', ')})`, 'data');
137
+ }
138
+ } // Nodes
139
+
140
+
141
+ if (Object.entries(allNodes).length) {
142
+ printMessage(`\nNodes (${Object.entries(allNodes).length}):`, 'data');
143
+
144
+ for (const nodeObj of Object.values(allNodes)) {
145
+ printMessage(`- ${Node.getOneLineDescription(nodeObj, getNodeRef(nodeObj, journeyData))}`, 'data');
146
+ }
147
+ } // Themes
148
+
149
+
150
+ if ((_journeyData$themes = journeyData.themes) !== null && _journeyData$themes !== void 0 && _journeyData$themes.length) {
151
+ printMessage(`\nThemes (${journeyData.themes.length}):`, 'data');
152
+
153
+ for (const themeData of journeyData.themes) {
154
+ printMessage(`- ${Theme.getOneLineDescription(themeData)}`, 'data');
155
+ }
156
+ } // Scripts
157
+
158
+
159
+ if (Object.entries(journeyData.scripts).length) {
160
+ printMessage(`\nScripts (${Object.entries(journeyData.scripts).length}):`, 'data');
161
+
162
+ for (const scriptData of Object.values(journeyData.scripts)) {
163
+ printMessage(`- ${Script.getOneLineDescription(scriptData)}`, 'data');
164
+ }
165
+ } // Email Templates
166
+
167
+
168
+ if (Object.entries(journeyData.emailTemplates).length) {
169
+ printMessage(`\nEmail Templates (${Object.entries(journeyData.emailTemplates).length}):`, 'data');
170
+
171
+ for (const templateData of Object.values(journeyData.emailTemplates)) {
172
+ printMessage(`- ${EmailTemplate.getOneLineDescription(templateData)}`, 'data');
173
+ }
174
+ } // Social Identity Providers
175
+
176
+
177
+ if (Object.entries(journeyData.socialIdentityProviders).length) {
178
+ printMessage(`\nSocial Identity Providers (${Object.entries(journeyData.socialIdentityProviders).length}):`, 'data');
179
+
180
+ for (const socialIdpData of Object.values(journeyData.socialIdentityProviders)) {
181
+ printMessage(`- ${Idp.getOneLineDescription(socialIdpData)}`, 'data');
182
+ }
183
+ } // SAML2 Entity Providers
184
+
185
+
186
+ if (Object.entries(journeyData.saml2Entities).length) {
187
+ printMessage(`\nSAML2 Entity Providers (${Object.entries(journeyData.saml2Entities).length}):`, 'data');
188
+
189
+ for (const entityProviderData of Object.values(journeyData.saml2Entities)) {
190
+ printMessage(`- ${Saml2.getOneLineDescription(entityProviderData)}`, 'data');
191
+ }
192
+ } // SAML2 Circles Of Trust
193
+
194
+
195
+ if (Object.entries(journeyData.circlesOfTrust).length) {
196
+ printMessage(`\nSAML2 Circles Of Trust (${Object.entries(journeyData.circlesOfTrust).length}):`, 'data');
197
+
198
+ for (const cotData of Object.values(journeyData.circlesOfTrust)) {
199
+ printMessage(`- ${CirclesOfTrust.getOneLineDescription(cotData)}`, 'data');
200
+ }
201
+ }
202
+ }
203
+ //# sourceMappingURL=JourneyOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"JourneyOps.js","names":["printMessage","Journey","Types","state","CirclesOfTrust","EmailTemplate","Idp","Node","Saml2","Script","Theme","onlineTreeExportResolver","getTreeDescendents","getNodeRef","getJourneyClassification","journey","map","it","JourneyClassification","STANDARD","toString","CLOUD","CUSTOM","PREMIUM","getOneLineDescription","treeObj","description","_id","describeTreeDescendents","descendents","depth","Object","values","length","indent","Array","fill","join","tree","keys","descendent","describeJourney","journeyData","resolveTreeExport","allNodes","nodes","innerNodes","nodeTypeMap","nodeData","_type","enabled","default","session","getAmVersion","meta","originAmVersion","setAmVersion","uiConfig","categories","JSON","parse","entries","nodeType","count","String","getNodeClassification","nodeObj","themes","themeData","scripts","scriptData","emailTemplates","templateData","socialIdentityProviders","socialIdpData","saml2Entities","entityProviderData","circlesOfTrust","cotData"],"sources":["ops/JourneyOps.ts"],"sourcesContent":["import {\n NodeSkeleton,\n TreeSkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport {\n SingleTreeExportInterface,\n TreeDependencyMapInterface,\n TreeExportResolverInterface,\n} from '@rockcarver/frodo-lib/types/ops/OpsTypes';\nimport { printMessage } from '../utils/Console';\nimport { Journey, Types, state } from '@rockcarver/frodo-lib';\nimport * as CirclesOfTrust from './CirclesOfTrustOps';\nimport * as EmailTemplate from './EmailTemplateOps';\nimport * as Idp from './IdpOps';\nimport * as Node from './NodeOps';\nimport * as Saml2 from './Saml2Ops';\nimport * as Script from './ScriptOps';\nimport * as Theme from './ThemeOps';\n\nconst {\n onlineTreeExportResolver,\n getTreeDescendents,\n getNodeRef,\n} = Journey;\n\n/**\n * Get journey classification\n * @param {SingleTreeExportInterface} journey journey export\n * @returns {stringp[]} Colored string array of classifications\n */\nexport function getJourneyClassification(journey: SingleTreeExportInterface): string[] {\n return Journey.getJourneyClassification(journey).map((it) => {\n switch (it) {\n case Types.JourneyClassification.STANDARD:\n return it.toString()['brightGreen'];\n\n case Types.JourneyClassification.CLOUD:\n return it.toString()['brightMagenta'];\n\n case Types.JourneyClassification.CUSTOM:\n return it.toString()['brightRed'];\n\n case Types.JourneyClassification.PREMIUM:\n return it.toString()['brightYellow'];\n }\n });\n}\n\n/**\n * Get a one-line description of the tree object\n * @param {TreeSkeleton} treeObj circle of trust object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(treeObj: TreeSkeleton): string {\n const description = `[${treeObj._id['brightCyan']}]`;\n return description;\n}\n\n/**\n * Helper function to render a nested list of dependent trees\n * @param {TreeDependencyMapInterface} descendents tree dependency map\n * @param {number} depth level of nesting\n */\nfunction describeTreeDescendents(\n descendents: TreeDependencyMapInterface,\n depth = 0\n) {\n if (depth || Object.values(descendents)[0].length) {\n // heading\n if (depth === 0) {\n printMessage(\n `\\nInner Tree Dependencies (${Object.values(descendents)[0].length}):`,\n 'data'\n );\n }\n const indent = Array(depth * 2)\n .fill(' ')\n .join('');\n const [tree] = Object.keys(descendents);\n printMessage(`${indent}- ${tree['brightCyan']}`, 'data');\n for (const descendent of descendents[tree]) {\n describeTreeDescendents(descendent, depth + 1);\n }\n }\n}\n\n/**\n * Describe a journey:\n * - Properties, tags, description, name, metadata\n * - Inner tree dependency tree\n * - Node type summary\n * - Nodes\n * - Themes\n * - Scripts\n * - Email templates\n * - Social identity providers\n * - SAML2 entity providers\n * - SAML2 circles of trust\n * @param {SingleTreeExportInterface} journeyData journey export object\n * @param {TreeExportResolverInterface} resolveTreeExport tree export resolver callback function\n */\nexport async function describeJourney(\n journeyData: SingleTreeExportInterface,\n resolveTreeExport: TreeExportResolverInterface = onlineTreeExportResolver\n): Promise<void> {\n const allNodes = {\n ...journeyData.nodes,\n ...journeyData.innerNodes,\n };\n const nodeTypeMap = {};\n\n for (const nodeData of Object.values(allNodes)) {\n if (nodeTypeMap[nodeData._type._id]) {\n nodeTypeMap[nodeData._type._id] += 1;\n } else {\n nodeTypeMap[nodeData._type._id] = 1;\n }\n }\n\n // Journey Name\n printMessage(`${getOneLineDescription(journeyData.tree)}`, 'data');\n printMessage(Array(`[${journeyData.tree._id}]`['length']).fill('=').join(''));\n\n // Description\n if (journeyData.tree.description) {\n printMessage(`\\n${journeyData.tree.description}`, 'data');\n }\n\n // Status\n printMessage(\n `\\nStatus\\n${\n journeyData.tree.enabled === false\n ? 'disabled'['brightRed']\n : 'enabled'['brightGreen']\n }`\n );\n\n // Classification\n if (\n !state.default.session.getAmVersion() &&\n journeyData.meta?.originAmVersion\n ) {\n state.default.session.setAmVersion(journeyData.meta.originAmVersion);\n }\n if (state.default.session.getAmVersion()) {\n printMessage(\n `\\nClassification\\n${getJourneyClassification(journeyData).join(', ')}`,\n 'data'\n );\n }\n\n // Categories/Tags\n if (journeyData.tree.uiConfig?.categories && journeyData.tree.uiConfig.categories != '[]') {\n printMessage('\\nCategories/Tags', 'data');\n printMessage(\n `${\n JSON.parse(journeyData.tree.uiConfig.categories).join(', ')\n }`,\n 'data'\n );\n }\n\n // Dependency Tree\n const descendents = await getTreeDescendents(journeyData, resolveTreeExport);\n describeTreeDescendents(descendents);\n\n // Node Types\n if (Object.entries(nodeTypeMap).length) {\n printMessage(\n `\\nNode Types (${Object.entries(nodeTypeMap).length}):`,\n 'data'\n );\n for (const [nodeType, count] of Object.entries(nodeTypeMap)) {\n printMessage(\n `- ${String(count)} [${\n nodeType['brightCyan']\n }] (${Node.getNodeClassification(nodeType).join(', ')})`,\n 'data'\n );\n }\n }\n\n // Nodes\n if (Object.entries(allNodes).length) {\n printMessage(`\\nNodes (${Object.entries(allNodes).length}):`, 'data');\n for (const nodeObj of Object.values<NodeSkeleton>(allNodes)) {\n printMessage(\n `- ${Node.getOneLineDescription(\n nodeObj,\n getNodeRef(nodeObj, journeyData)\n )}`,\n 'data'\n );\n }\n }\n\n // Themes\n if (journeyData.themes?.length) {\n printMessage(`\\nThemes (${journeyData.themes.length}):`, 'data');\n for (const themeData of journeyData.themes) {\n printMessage(`- ${Theme.getOneLineDescription(themeData)}`, 'data');\n }\n }\n\n // Scripts\n if (Object.entries(journeyData.scripts).length) {\n printMessage(\n `\\nScripts (${Object.entries(journeyData.scripts).length}):`,\n 'data'\n );\n for (const scriptData of Object.values(journeyData.scripts)) {\n printMessage(`- ${Script.getOneLineDescription(scriptData)}`, 'data');\n }\n }\n\n // Email Templates\n if (Object.entries(journeyData.emailTemplates).length) {\n printMessage(\n `\\nEmail Templates (${\n Object.entries(journeyData.emailTemplates).length\n }):`,\n 'data'\n );\n for (const templateData of Object.values(journeyData.emailTemplates)) {\n printMessage(\n `- ${EmailTemplate.getOneLineDescription(templateData)}`,\n 'data'\n );\n }\n }\n\n // Social Identity Providers\n if (Object.entries(journeyData.socialIdentityProviders).length) {\n printMessage(\n `\\nSocial Identity Providers (${\n Object.entries(journeyData.socialIdentityProviders).length\n }):`,\n 'data'\n );\n for (const socialIdpData of Object.values(\n journeyData.socialIdentityProviders\n )) {\n printMessage(`- ${Idp.getOneLineDescription(socialIdpData)}`, 'data');\n }\n }\n\n // SAML2 Entity Providers\n if (Object.entries(journeyData.saml2Entities).length) {\n printMessage(\n `\\nSAML2 Entity Providers (${\n Object.entries(journeyData.saml2Entities).length\n }):`,\n 'data'\n );\n for (const entityProviderData of Object.values(journeyData.saml2Entities)) {\n printMessage(\n `- ${Saml2.getOneLineDescription(entityProviderData)}`,\n 'data'\n );\n }\n }\n\n // SAML2 Circles Of Trust\n if (Object.entries(journeyData.circlesOfTrust).length) {\n printMessage(\n `\\nSAML2 Circles Of Trust (${\n Object.entries(journeyData.circlesOfTrust).length\n }):`,\n 'data'\n );\n for (const cotData of Object.values(journeyData.circlesOfTrust)) {\n printMessage(\n `- ${CirclesOfTrust.getOneLineDescription(cotData)}`,\n 'data'\n );\n }\n }\n}\n"],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ import { Node, Types } from '@rockcarver/frodo-lib';
2
+ /**
3
+ * Get node classification
4
+ * @param {string} nodeType node type
5
+ * @returns {stringp[]} Colored string array of classifications
6
+ */
7
+
8
+ export function getNodeClassification(nodeType) {
9
+ return Node.getNodeClassification(nodeType).map(it => {
10
+ switch (it) {
11
+ case Types.NodeClassification.STANDARD:
12
+ return it.toString()['brightGreen'];
13
+
14
+ case Types.NodeClassification.CLOUD:
15
+ return it.toString()['brightMagenta'];
16
+
17
+ case Types.NodeClassification.CUSTOM:
18
+ return it.toString()['brightRed'];
19
+
20
+ case Types.NodeClassification.PREMIUM:
21
+ return it.toString()['brightYellow'];
22
+ }
23
+ });
24
+ }
25
+ /**
26
+ * Get a one-line description of the node
27
+ * @param {NodeSkeleton} nodeObj node object to describe
28
+ * @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object
29
+ * @returns {string} a one-line description
30
+ */
31
+
32
+ export function getOneLineDescription(nodeObj, nodeRef) {
33
+ const description = `[${nodeObj._id['brightCyan']}] (${getNodeClassification(nodeObj._type._id).join(', ')}) ${nodeObj._type._id}${nodeRef ? ' - ' + (nodeRef === null || nodeRef === void 0 ? void 0 : nodeRef.displayName) : ''}`;
34
+ return description;
35
+ }
36
+ //# sourceMappingURL=NodeOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeOps.js","names":["Node","Types","getNodeClassification","nodeType","map","it","NodeClassification","STANDARD","toString","CLOUD","CUSTOM","PREMIUM","getOneLineDescription","nodeObj","nodeRef","description","_id","_type","join","displayName"],"sources":["ops/NodeOps.ts"],"sourcesContent":["import {\n InnerNodeRefSkeletonInterface,\n NodeRefSkeletonInterface,\n NodeSkeleton,\n} from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Node, Types } from '@rockcarver/frodo-lib';\n\n/**\n * Get node classification\n * @param {string} nodeType node type\n * @returns {stringp[]} Colored string array of classifications\n */\nexport function getNodeClassification(nodeType: string): string[] {\n return Node.getNodeClassification(nodeType).map((it) => {\n switch (it) {\n case Types.NodeClassification.STANDARD:\n return it.toString()['brightGreen'];\n\n case Types.NodeClassification.CLOUD:\n return it.toString()['brightMagenta'];\n\n case Types.NodeClassification.CUSTOM:\n return it.toString()['brightRed'];\n\n case Types.NodeClassification.PREMIUM:\n return it.toString()['brightYellow'];\n }\n });\n}\n\n/**\n * Get a one-line description of the node\n * @param {NodeSkeleton} nodeObj node object to describe\n * @param {NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface} nodeRef node reference object\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n nodeObj: NodeSkeleton,\n nodeRef?: NodeRefSkeletonInterface | InnerNodeRefSkeletonInterface\n): string {\n const description = `[${nodeObj._id['brightCyan']}] (${getNodeClassification(\n nodeObj._type._id\n ).join(', ')}) ${nodeObj._type._id}${\n nodeRef ? ' - ' + nodeRef?.displayName : ''\n }`;\n return description;\n}\n"],"mappings":"AAKA,SAASA,IAAT,EAAeC,KAAf,QAA4B,uBAA5B;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASC,qBAAT,CAA+BC,QAA/B,EAA2D;EAChE,OAAOH,IAAI,CAACE,qBAAL,CAA2BC,QAA3B,EAAqCC,GAArC,CAA0CC,EAAD,IAAQ;IACtD,QAAQA,EAAR;MACE,KAAKJ,KAAK,CAACK,kBAAN,CAAyBC,QAA9B;QACE,OAAOF,EAAE,CAACG,QAAH,GAAc,aAAd,CAAP;;MAEF,KAAKP,KAAK,CAACK,kBAAN,CAAyBG,KAA9B;QACE,OAAOJ,EAAE,CAACG,QAAH,GAAc,eAAd,CAAP;;MAEF,KAAKP,KAAK,CAACK,kBAAN,CAAyBI,MAA9B;QACE,OAAOL,EAAE,CAACG,QAAH,GAAc,WAAd,CAAP;;MAEF,KAAKP,KAAK,CAACK,kBAAN,CAAyBK,OAA9B;QACE,OAAON,EAAE,CAACG,QAAH,GAAc,cAAd,CAAP;IAXJ;EAaD,CAdM,CAAP;AAeD;AAED;AACA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASI,qBAAT,CACLC,OADK,EAELC,OAFK,EAGG;EACR,MAAMC,WAAW,GAAI,IAAGF,OAAO,CAACG,GAAR,CAAY,YAAZ,CAA0B,MAAKd,qBAAqB,CAC1EW,OAAO,CAACI,KAAR,CAAcD,GAD4D,CAArB,CAErDE,IAFqD,CAEhD,IAFgD,CAE1C,KAAIL,OAAO,CAACI,KAAR,CAAcD,GAAI,GACjCF,OAAO,GAAG,SAAQA,OAAR,aAAQA,OAAR,uBAAQA,OAAO,CAAEK,WAAjB,CAAH,GAAkC,EAC1C,EAJD;EAKA,OAAOJ,WAAP;AACD"}
@@ -0,0 +1,23 @@
1
+ import { Saml2 } from '@rockcarver/frodo-lib';
2
+ const {
3
+ roleMap
4
+ } = Saml2;
5
+ /**
6
+ * Get a one-line description of the saml2 provider object
7
+ * @param {Saml2ProviderSkeleton} saml2ProviderObj saml2 provider object to describe
8
+ * @returns {string} a one-line description
9
+ */
10
+
11
+ export function getOneLineDescription(saml2ProviderObj) {
12
+ const roles = [];
13
+
14
+ for (const [key, value] of Object.entries(roleMap)) {
15
+ if (saml2ProviderObj[key]) {
16
+ roles.push(value);
17
+ }
18
+ }
19
+
20
+ const description = `[${saml2ProviderObj.entityId['brightCyan']}]${' (' + saml2ProviderObj.entityLocation}${roles.length ? ' ' + roles.join(', ') + ')' : ')'}`;
21
+ return description;
22
+ }
23
+ //# sourceMappingURL=Saml2Ops.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Saml2Ops.js","names":["Saml2","roleMap","getOneLineDescription","saml2ProviderObj","roles","key","value","Object","entries","push","description","entityId","entityLocation","length","join"],"sources":["ops/Saml2Ops.ts"],"sourcesContent":["import { Saml2ProviderSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\nimport { Saml2 } from '@rockcarver/frodo-lib';\n\nconst { roleMap } = Saml2;\n\n/**\n * Get a one-line description of the saml2 provider object\n * @param {Saml2ProviderSkeleton} saml2ProviderObj saml2 provider object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(\n saml2ProviderObj: Saml2ProviderSkeleton\n): string {\n const roles: string[] = [];\n for (const [key, value] of Object.entries(roleMap)) {\n if (saml2ProviderObj[key]) {\n roles.push(value);\n }\n }\n const description = `[${saml2ProviderObj.entityId['brightCyan']}]${\n ' (' + saml2ProviderObj.entityLocation\n }${roles.length ? ' ' + roles.join(', ') + ')' : ')'}`;\n return description;\n}\n"],"mappings":"AACA,SAASA,KAAT,QAAsB,uBAAtB;AAEA,MAAM;EAAEC;AAAF,IAAcD,KAApB;AAEA;AACA;AACA;AACA;AACA;;AACA,OAAO,SAASE,qBAAT,CACLC,gBADK,EAEG;EACR,MAAMC,KAAe,GAAG,EAAxB;;EACA,KAAK,MAAM,CAACC,GAAD,EAAMC,KAAN,CAAX,IAA2BC,MAAM,CAACC,OAAP,CAAeP,OAAf,CAA3B,EAAoD;IAClD,IAAIE,gBAAgB,CAACE,GAAD,CAApB,EAA2B;MACzBD,KAAK,CAACK,IAAN,CAAWH,KAAX;IACD;EACF;;EACD,MAAMI,WAAW,GAAI,IAAGP,gBAAgB,CAACQ,QAAjB,CAA0B,YAA1B,CAAwC,IAC9D,OAAOR,gBAAgB,CAACS,cACzB,GAAER,KAAK,CAACS,MAAN,GAAe,MAAMT,KAAK,CAACU,IAAN,CAAW,IAAX,CAAN,GAAyB,GAAxC,GAA8C,GAAI,EAFrD;EAGA,OAAOJ,WAAP;AACD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get a one-line description of the script object
3
+ * @param {ScriptSkeleton} scriptObj script object to describe
4
+ * @returns {string} a one-line description
5
+ */
6
+ export function getOneLineDescription(scriptObj) {
7
+ const description = `[${scriptObj._id['brightCyan']}] ${scriptObj.context} - ${scriptObj.name}`;
8
+ return description;
9
+ }
10
+ //# sourceMappingURL=ScriptOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ScriptOps.js","names":["getOneLineDescription","scriptObj","description","_id","context","name"],"sources":["ops/ScriptOps.ts"],"sourcesContent":["import { ScriptSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\n\n/**\n * Get a one-line description of the script object\n * @param {ScriptSkeleton} scriptObj script object to describe\n * @returns {string} a one-line description\n */\nexport function getOneLineDescription(scriptObj: ScriptSkeleton): string {\n const description = `[${scriptObj._id['brightCyan']}] ${scriptObj.context} - ${scriptObj.name}`;\n return description;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAT,CAA+BC,SAA/B,EAAkE;EACvE,MAAMC,WAAW,GAAI,IAAGD,SAAS,CAACE,GAAV,CAAc,YAAd,CAA4B,KAAIF,SAAS,CAACG,OAAQ,MAAKH,SAAS,CAACI,IAAK,EAA9F;EACA,OAAOH,WAAP;AACD"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Get a one-line description of the theme
3
+ * @param {ThemeSkeleton} themeObj theme object to describe
4
+ * @returns {string} a one-line description
5
+ */
6
+ export function getOneLineDescription(themeObj) {
7
+ const description = `[${themeObj._id['brightCyan']}] ${themeObj.name}${themeObj.linkedTrees ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')' : ''}`;
8
+ return description;
9
+ }
10
+ //# sourceMappingURL=ThemeOps.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThemeOps.js","names":["getOneLineDescription","themeObj","description","_id","name","linkedTrees","join"],"sources":["ops/ThemeOps.ts"],"sourcesContent":["import { ThemeSkeleton } from '@rockcarver/frodo-lib/types/api/ApiTypes';\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']}] ${\n themeObj.name\n }${\n themeObj.linkedTrees\n ? ' (' + themeObj.linkedTrees.join(', ')['brightCyan'] + ')'\n : ''\n }`;\n return description;\n}\n"],"mappings":"AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,qBAAT,CAA+BC,QAA/B,EAAgE;EACrE,MAAMC,WAAW,GAAI,IAAGD,QAAQ,CAACE,GAAT,CAAa,YAAb,CAA2B,KACjDF,QAAQ,CAACG,IACV,GACCH,QAAQ,CAACI,WAAT,GACI,OAAOJ,QAAQ,CAACI,WAAT,CAAqBC,IAArB,CAA0B,IAA1B,EAAgC,YAAhC,CAAP,GAAuD,GAD3D,GAEI,EACL,EAND;EAOA,OAAOJ,WAAP;AACD"}
@@ -0,0 +1,5 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Wordwrap.js","names":["wordwrap","str","len","indent","undefined","match","RegExp","length","join"],"sources":["ops/utils/Wordwrap.ts"],"sourcesContent":["export default function wordwrap(str, len, indent = undefined) {\n if (!str) return '';\n return (\n str.match(\n new RegExp(\n `(\\\\S.{0,${len - 1 - (indent ? indent.length : 0)}})(?=\\\\s+|$)`,\n 'g'\n )\n ) || []\n ).join(indent ? `\\n${indent}` : '\\n');\n}\n"],"mappings":"AAAA,eAAe,SAASA,QAAT,CAAkBC,GAAlB,EAAuBC,GAAvB,EAA4BC,MAAM,GAAGC,SAArC,EAAgD;EAC7D,IAAI,CAACH,GAAL,EAAU,OAAO,EAAP;EACV,OAAO,CACLA,GAAG,CAACI,KAAJ,CACE,IAAIC,MAAJ,CACG,WAAUJ,GAAG,GAAG,CAAN,IAAWC,MAAM,GAAGA,MAAM,CAACI,MAAV,GAAmB,CAApC,CAAuC,cADpD,EAEE,GAFF,CADF,KAKK,EANA,EAOLC,IAPK,CAOAL,MAAM,GAAI,KAAIA,MAAO,EAAf,GAAmB,IAPzB,CAAP;AAQD"}
@@ -0,0 +1,12 @@
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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StaticStorage.js","names":["DEFAULT_REALM_KEY","CLASSIC_DEPLOYMENT_TYPE_KEY","CLOUD_DEPLOYMENT_TYPE_KEY","FORGEOPS_DEPLOYMENT_TYPE_KEY","DEPLOYMENT_TYPES","DEPLOYMENT_TYPE_REALM_MAP","FRODO_METADATA_ID"],"sources":["storage/StaticStorage.ts"],"sourcesContent":["export const DEFAULT_REALM_KEY = '__default__realm__';\nexport const CLASSIC_DEPLOYMENT_TYPE_KEY = 'classic';\nexport const CLOUD_DEPLOYMENT_TYPE_KEY = 'cloud';\nexport const FORGEOPS_DEPLOYMENT_TYPE_KEY = 'forgeops';\nexport const DEPLOYMENT_TYPES = [\n CLASSIC_DEPLOYMENT_TYPE_KEY,\n CLOUD_DEPLOYMENT_TYPE_KEY,\n FORGEOPS_DEPLOYMENT_TYPE_KEY,\n];\nexport const DEPLOYMENT_TYPE_REALM_MAP = {\n [CLASSIC_DEPLOYMENT_TYPE_KEY]: '/',\n [CLOUD_DEPLOYMENT_TYPE_KEY]: 'alpha',\n [FORGEOPS_DEPLOYMENT_TYPE_KEY]: '/',\n};\nexport const FRODO_METADATA_ID = 'frodo';\n"],"mappings":"AAAA,OAAO,MAAMA,iBAAiB,GAAG,oBAA1B;AACP,OAAO,MAAMC,2BAA2B,GAAG,SAApC;AACP,OAAO,MAAMC,yBAAyB,GAAG,OAAlC;AACP,OAAO,MAAMC,4BAA4B,GAAG,UAArC;AACP,OAAO,MAAMC,gBAAgB,GAAG,CAC9BH,2BAD8B,EAE9BC,yBAF8B,EAG9BC,4BAH8B,CAAzB;AAKP,OAAO,MAAME,yBAAyB,GAAG;EACvC,CAACJ,2BAAD,GAA+B,GADQ;EAEvC,CAACC,yBAAD,GAA6B,OAFU;EAGvC,CAACC,4BAAD,GAAgC;AAHO,CAAlC;AAKP,OAAO,MAAMG,iBAAiB,GAAG,OAA1B"}