@rockcarver/frodo-cli 0.18.1 → 0.18.2-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 (164) hide show
  1. package/CHANGELOG.md +14 -1
  2. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +3 -2
  3. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  4. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +5 -4
  5. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  6. package/esm/cli/admin/admin-get-access-token.js +3 -2
  7. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  8. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +3 -2
  9. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  10. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +3 -2
  11. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  12. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +3 -2
  13. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  14. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +3 -2
  15. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  16. package/esm/cli/admin/admin-list-static-user-mappings.js +3 -2
  17. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  18. package/esm/cli/admin/admin-remove-static-user-mapping.js +3 -2
  19. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  20. package/esm/cli/admin/admin-repair-org-model.js +3 -2
  21. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  22. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +3 -2
  23. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  24. package/esm/cli/admin/admin-show-generic-extension-attributes.js +3 -2
  25. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  26. package/esm/cli/app/app-export.js +5 -4
  27. package/esm/cli/app/app-export.js.map +1 -1
  28. package/esm/cli/app/app-import.js +2 -1
  29. package/esm/cli/app/app-import.js.map +1 -1
  30. package/esm/cli/app/app-list.js +2 -1
  31. package/esm/cli/app/app-list.js.map +1 -1
  32. package/esm/cli/cmd_common.js +4 -4
  33. package/esm/cli/cmd_common.js.map +1 -1
  34. package/esm/cli/email/email-template-export.js +5 -4
  35. package/esm/cli/email/email-template-export.js.map +1 -1
  36. package/esm/cli/email/email-template-import.js +6 -5
  37. package/esm/cli/email/email-template-import.js.map +1 -1
  38. package/esm/cli/email/email-template-list.js +2 -1
  39. package/esm/cli/email/email-template-list.js.map +1 -1
  40. package/esm/cli/esv/esv-secret-create.js +2 -1
  41. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  42. package/esm/cli/esv/esv-secret-delete.js +4 -3
  43. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  44. package/esm/cli/esv/esv-secret-describe.js +2 -1
  45. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  46. package/esm/cli/esv/esv-secret-list.js +2 -1
  47. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  48. package/esm/cli/esv/esv-secret-set.js +2 -1
  49. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  50. package/esm/cli/esv/esv-secret-version-activate.js +3 -2
  51. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  52. package/esm/cli/esv/esv-secret-version-create.js +2 -1
  53. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  54. package/esm/cli/esv/esv-secret-version-deactivate.js +3 -2
  55. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  56. package/esm/cli/esv/esv-secret-version-delete.js +4 -3
  57. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  58. package/esm/cli/esv/esv-secret-version-list.js +2 -1
  59. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  60. package/esm/cli/esv/esv-variable-create.js +2 -1
  61. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  62. package/esm/cli/esv/esv-variable-delete.js +4 -3
  63. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  64. package/esm/cli/esv/esv-variable-describe.js +2 -1
  65. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  66. package/esm/cli/esv/esv-variable-list.js +2 -1
  67. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  68. package/esm/cli/esv/esv-variable-set.js +4 -3
  69. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  70. package/esm/cli/idm/idm-count.js +2 -1
  71. package/esm/cli/idm/idm-count.js.map +1 -1
  72. package/esm/cli/idm/idm-export.js +5 -4
  73. package/esm/cli/idm/idm-export.js.map +1 -1
  74. package/esm/cli/idm/idm-list.js +3 -2
  75. package/esm/cli/idm/idm-list.js.map +1 -1
  76. package/esm/cli/idp/idp-export.js +6 -5
  77. package/esm/cli/idp/idp-export.js.map +1 -1
  78. package/esm/cli/idp/idp-import.js +7 -6
  79. package/esm/cli/idp/idp-import.js.map +1 -1
  80. package/esm/cli/idp/idp-list.js +3 -2
  81. package/esm/cli/idp/idp-list.js.map +1 -1
  82. package/esm/cli/info/info.js +7 -6
  83. package/esm/cli/info/info.js.map +1 -1
  84. package/esm/cli/journey/journey-delete.e2e.test_.js.map +1 -1
  85. package/esm/cli/journey/journey-delete.js +5 -4
  86. package/esm/cli/journey/journey-delete.js.map +1 -1
  87. package/esm/cli/journey/journey-describe.js.map +1 -1
  88. package/esm/cli/journey/journey-disable.js +3 -3
  89. package/esm/cli/journey/journey-disable.js.map +1 -1
  90. package/esm/cli/journey/journey-enable.js +3 -3
  91. package/esm/cli/journey/journey-enable.js.map +1 -1
  92. package/esm/cli/journey/journey-export.js +15 -18
  93. package/esm/cli/journey/journey-export.js.map +1 -1
  94. package/esm/cli/journey/journey-import.js +16 -22
  95. package/esm/cli/journey/journey-import.js.map +1 -1
  96. package/esm/cli/journey/journey-list.e2e.test_.js.map +1 -1
  97. package/esm/cli/journey/journey-list.js +5 -6
  98. package/esm/cli/journey/journey-list.js.map +1 -1
  99. package/esm/cli/journey/journey-prune.js +4 -3
  100. package/esm/cli/journey/journey-prune.js.map +1 -1
  101. package/esm/cli/journey/journey.js.map +1 -1
  102. package/esm/cli/logging/logs-fetch.js +28 -9
  103. package/esm/cli/logging/logs-fetch.js.map +1 -1
  104. package/esm/cli/logging/logs-list.js +11 -10
  105. package/esm/cli/logging/logs-list.js.map +1 -1
  106. package/esm/cli/logging/logs-tail.js +6 -5
  107. package/esm/cli/logging/logs-tail.js.map +1 -1
  108. package/esm/cli/logging/logs.js +2 -1
  109. package/esm/cli/logging/logs.js.map +1 -1
  110. package/esm/cli/realm/realm-add-custom-domain.js +3 -2
  111. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  112. package/esm/cli/realm/realm-describe.js +3 -2
  113. package/esm/cli/realm/realm-describe.js.map +1 -1
  114. package/esm/cli/realm/realm-list.js +3 -2
  115. package/esm/cli/realm/realm-list.js.map +1 -1
  116. package/esm/cli/realm/realm-remove-custom-domain.js +3 -2
  117. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  118. package/esm/cli/saml/saml-cot-export.js +6 -5
  119. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  120. package/esm/cli/saml/saml-cot-import.js +7 -6
  121. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  122. package/esm/cli/saml/saml-cot-list.js +3 -2
  123. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  124. package/esm/cli/saml/saml-describe.js +3 -2
  125. package/esm/cli/saml/saml-describe.js.map +1 -1
  126. package/esm/cli/saml/saml-export.js +6 -5
  127. package/esm/cli/saml/saml-export.js.map +1 -1
  128. package/esm/cli/saml/saml-import.js +7 -6
  129. package/esm/cli/saml/saml-import.js.map +1 -1
  130. package/esm/cli/saml/saml-list.js +3 -2
  131. package/esm/cli/saml/saml-list.js.map +1 -1
  132. package/esm/cli/saml/saml-metadata-export.js +5 -4
  133. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  134. package/esm/cli/script/script-delete.js +1 -1
  135. package/esm/cli/script/script-delete.js.map +1 -1
  136. package/esm/cli/script/script-describe.js +1 -1
  137. package/esm/cli/script/script-describe.js.map +1 -1
  138. package/esm/cli/script/script-export.js +6 -5
  139. package/esm/cli/script/script-export.js.map +1 -1
  140. package/esm/cli/script/script-import.js +3 -2
  141. package/esm/cli/script/script-import.js.map +1 -1
  142. package/esm/cli/script/script-list.js +3 -2
  143. package/esm/cli/script/script-list.js.map +1 -1
  144. package/esm/cli/theme/theme-delete.e2e.test_.js.map +1 -1
  145. package/esm/cli/theme/theme-delete.js +6 -5
  146. package/esm/cli/theme/theme-delete.js.map +1 -1
  147. package/esm/cli/theme/theme-export.js +7 -6
  148. package/esm/cli/theme/theme-export.js.map +1 -1
  149. package/esm/cli/theme/theme-import.js +8 -7
  150. package/esm/cli/theme/theme-import.js.map +1 -1
  151. package/esm/cli/theme/theme-list.e2e.test_.js.map +1 -1
  152. package/esm/cli/theme/theme-list.js +3 -2
  153. package/esm/cli/theme/theme-list.js.map +1 -1
  154. package/esm/ops/JourneyOps.js +325 -2
  155. package/esm/ops/JourneyOps.js.map +1 -1
  156. package/esm/ops/NodeOps.js.map +1 -1
  157. package/esm/ops/Saml2Ops.js.map +1 -1
  158. package/esm/ops/ScriptOps.js.map +1 -1
  159. package/esm/utils/Config.js.map +1 -1
  160. package/esm/utils/Console.js +1 -0
  161. package/esm/utils/Console.js.map +1 -1
  162. package/esm/utils/Version.js +1 -1
  163. package/esm/utils/Version.js.map +1 -1
  164. package/package.json +9 -3
@@ -1 +1 @@
1
- {"version":3,"file":"journey-prune.js","names":["Command","Authenticate","Journey","state","yesno","common","getTokens","findOrphanedNodes","removeOrphanedNodes","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","console","log","getRealm","orphanedNodes","length","ok","question","parse"],"sources":["cli/journey/journey-prune.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, Journey, state } from '@rockcarver/frodo-lib';\nimport yesno from 'yesno';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\nconst { findOrphanedNodes, removeOrphanedNodes } = Journey;\n\nconst program = new Command('frodo journey prune');\n\nprogram\n .description(\n 'Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.'\n )\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 .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 `Pruning orphaned configuration artifacts in realm \"${state.default.session.getRealm()}\"...`\n );\n const orphanedNodes = await findOrphanedNodes();\n if (orphanedNodes.length > 0) {\n const ok = await yesno({\n question: 'Prune (permanently delete) orphaned nodes? (y|n):',\n });\n if (ok) {\n await removeOrphanedNodes(orphanedNodes);\n }\n } else {\n console.log('No orphaned nodes found.');\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,SAASC,YAAT,EAAuBC,OAAvB,EAAgCC,KAAhC,QAA6C,uBAA7C;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAO,KAAKC,MAAZ,MAAwB,kBAAxB;AAEA,MAAM;EAAEC;AAAF,IAAgBL,YAAtB;AACA,MAAM;EAAEM,iBAAF;EAAqBC;AAArB,IAA6CN,OAAnD;AAEA,MAAMO,OAAO,GAAG,IAAIT,OAAJ,CAAY,qBAAZ,CAAhB;AAEAS,OAAO,CACJC,WADH,CAEI,+JAFJ,EAIGC,UAJH,CAIc,YAJd,EAI4B,MAJ5B,EAKGC,kBALH,GAMGC,WANH,CAMeR,MAAM,CAACS,aANtB,EAOGD,WAPH,CAOeR,MAAM,CAACU,aAPtB,EAQGF,WARH,CAQeR,MAAM,CAACW,YARtB,EASGH,WATH,CASeR,MAAM,CAACY,gBATtB,EAUGC,SAVH,CAUab,MAAM,CAACc,gBAVpB,EAWGD,SAXH,CAWab,MAAM,CAACe,cAXpB,EAYGC,MAZH,EAaI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CvB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAnB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACApB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACArB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACAtB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA/B,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM9B,SAAS,EAAnB,EAAuB;IACrB+B,OAAO,CAACC,GAAR,CACG,sDAAqDnC,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBW,QAAtB,EAAiC,MADzF;IAGA,MAAMC,aAAa,GAAG,MAAMjC,iBAAiB,EAA7C;;IACA,IAAIiC,aAAa,CAACC,MAAd,GAAuB,CAA3B,EAA8B;MAC5B,MAAMC,EAAE,GAAG,MAAMtC,KAAK,CAAC;QACrBuC,QAAQ,EAAE;MADW,CAAD,CAAtB;;MAGA,IAAID,EAAJ,EAAQ;QACN,MAAMlC,mBAAmB,CAACgC,aAAD,CAAzB;MACD;IACF,CAPD,MAOO;MACLH,OAAO,CAACC,GAAR,CAAY,0BAAZ;IACD;EACF;AACF,CArCL,CAsCI;AAtCJ;AAyCA7B,OAAO,CAACmC,KAAR"}
1
+ {"version":3,"file":"journey-prune.js","names":["Command","Authenticate","Journey","state","yesno","common","printMessage","getTokens","findOrphanedNodes","removeOrphanedNodes","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","getRealm","orphanedNodes","length","ok","question","parse"],"sources":["cli/journey/journey-prune.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, Journey, state } from '@rockcarver/frodo-lib';\nimport yesno from 'yesno';\nimport * as common from '../cmd_common';\nimport { printMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst { findOrphanedNodes, removeOrphanedNodes } = Journey;\n\nconst program = new Command('frodo journey prune');\n\nprogram\n .description(\n 'Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.'\n )\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 .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 printMessage(\n `Pruning orphaned configuration artifacts in realm \"${state.default.session.getRealm()}\"...`\n );\n const orphanedNodes = await findOrphanedNodes();\n if (orphanedNodes.length > 0) {\n const ok = await yesno({\n question: 'Prune (permanently delete) orphaned nodes? (y|n):',\n });\n if (ok) {\n await removeOrphanedNodes(orphanedNodes);\n }\n } else {\n printMessage('No orphaned nodes found.');\n }\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,SAASC,YAAT,EAAuBC,OAAvB,EAAgCC,KAAhC,QAA6C,uBAA7C;AACA,OAAOC,KAAP,MAAkB,OAAlB;AACA,OAAO,KAAKC,MAAZ,MAAwB,eAAxB;AACA,SAASC,YAAT,QAA6B,qBAA7B;AAEA,MAAM;EAAEC;AAAF,IAAgBN,YAAtB;AACA,MAAM;EAAEO,iBAAF;EAAqBC;AAArB,IAA6CP,OAAnD;AAEA,MAAMQ,OAAO,GAAG,IAAIV,OAAJ,CAAY,qBAAZ,CAAhB;AAEAU,OAAO,CACJC,WADH,CAEI,+JAFJ,EAIGC,UAJH,CAIc,YAJd,EAI4B,MAJ5B,EAKGC,kBALH,GAMGC,WANH,CAMeT,MAAM,CAACU,aANtB,EAOGD,WAPH,CAOeT,MAAM,CAACW,aAPtB,EAQGF,WARH,CAQeT,MAAM,CAACY,YARtB,EASGH,WATH,CASeT,MAAM,CAACa,gBATtB,EAUGC,SAVH,CAUad,MAAM,CAACe,gBAVpB,EAWGD,SAXH,CAWad,MAAM,CAACgB,cAXpB,EAYGC,MAZH,EAaI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CxB,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACApB,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACArB,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACAtB,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACAvB,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACAhC,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM9B,SAAS,EAAnB,EAAuB;IACrBD,YAAY,CACT,sDAAqDH,KAAK,CAACyB,OAAN,CAAcC,OAAd,CAAsBS,QAAtB,EAAiC,MAD7E,CAAZ;IAGA,MAAMC,aAAa,GAAG,MAAM/B,iBAAiB,EAA7C;;IACA,IAAI+B,aAAa,CAACC,MAAd,GAAuB,CAA3B,EAA8B;MAC5B,MAAMC,EAAE,GAAG,MAAMrC,KAAK,CAAC;QACrBsC,QAAQ,EAAE;MADW,CAAD,CAAtB;;MAGA,IAAID,EAAJ,EAAQ;QACN,MAAMhC,mBAAmB,CAAC8B,aAAD,CAAzB;MACD;IACF,CAPD,MAOO;MACLjC,YAAY,CAAC,0BAAD,CAAZ;IACD;EACF;AACF,CArCL,CAsCI;AAtCJ;AAyCAI,OAAO,CAACiC,KAAR"}
@@ -1 +1 @@
1
- {"version":3,"file":"journey.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","helpOption","description","executableDir","command","showHelpAfterError"],"sources":["cli/journey/journey.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('journey')\n .helpOption('-h, --help', 'Help')\n .description('Manage journeys/trees.')\n .executableDir(__dirname);\n\n program.command('list', 'List journeys/trees.').showHelpAfterError();\n\n program\n .command(\n 'describe',\n 'If host argument is supplied, describe the journey/tree indicated by -t, or all journeys/trees in the realm if no -t is supplied, otherwise describe the journey/tree export file indicated by -f.'\n )\n .showHelpAfterError();\n\n program.command('export', 'Export journeys/trees.').showHelpAfterError();\n\n program.command('import', 'Import journeys/trees.').showHelpAfterError();\n\n program.command('delete', 'Delete journeys/trees.').showHelpAfterError();\n\n program\n .command(\n 'prune',\n 'Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.'\n )\n .showHelpAfterError();\n\n program.command('enable', 'Enable journeys/trees.').showHelpAfterError();\n \n program.command('disable', 'Disable journeys/trees.').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,SAAZ,EACbU,UADa,CACF,YADE,EACY,MADZ,EAEbC,WAFa,CAED,wBAFC,EAGbC,aAHa,CAGCT,SAHD,CAAhB;EAKAM,OAAO,CAACI,OAAR,CAAgB,MAAhB,EAAwB,sBAAxB,EAAgDC,kBAAhD;EAEAL,OAAO,CACJI,OADH,CAEI,UAFJ,EAGI,oMAHJ,EAKGC,kBALH;EAOAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CACJI,OADH,CAEI,OAFJ,EAGI,+JAHJ,EAKGC,kBALH;EAOEL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CAACI,OAAR,CAAgB,SAAhB,EAA2B,yBAA3B,EAAsDC,kBAAtD;EAEFL,OAAO,CAACK,kBAAR;EACA,OAAOL,OAAP;AACD"}
1
+ {"version":3,"file":"journey.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","helpOption","description","executableDir","command","showHelpAfterError"],"sources":["cli/journey/journey.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('journey')\n .helpOption('-h, --help', 'Help')\n .description('Manage journeys/trees.')\n .executableDir(__dirname);\n\n program.command('list', 'List journeys/trees.').showHelpAfterError();\n\n program\n .command(\n 'describe',\n 'If host argument is supplied, describe the journey/tree indicated by -t, or all journeys/trees in the realm if no -t is supplied, otherwise describe the journey/tree export file indicated by -f.'\n )\n .showHelpAfterError();\n\n program.command('export', 'Export journeys/trees.').showHelpAfterError();\n\n program.command('import', 'Import journeys/trees.').showHelpAfterError();\n\n program.command('delete', 'Delete journeys/trees.').showHelpAfterError();\n\n program\n .command(\n 'prune',\n 'Prune orphaned configuration artifacts left behind after deleting authentication trees. You will be prompted before any destructive operations are performed.'\n )\n .showHelpAfterError();\n\n program.command('enable', 'Enable journeys/trees.').showHelpAfterError();\n\n program.command('disable', 'Disable journeys/trees.').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,SAAZ,EACbU,UADa,CACF,YADE,EACY,MADZ,EAEbC,WAFa,CAED,wBAFC,EAGbC,aAHa,CAGCT,SAHD,CAAhB;EAKAM,OAAO,CAACI,OAAR,CAAgB,MAAhB,EAAwB,sBAAxB,EAAgDC,kBAAhD;EAEAL,OAAO,CACJI,OADH,CAEI,UAFJ,EAGI,oMAHJ,EAKGC,kBALH;EAOAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CACJI,OADH,CAEI,OAFJ,EAGI,+JAHJ,EAKGC,kBALH;EAOAL,OAAO,CAACI,OAAR,CAAgB,QAAhB,EAA0B,wBAA1B,EAAoDC,kBAApD;EAEAL,OAAO,CAACI,OAAR,CAAgB,SAAhB,EAA2B,yBAA3B,EAAsDC,kBAAtD;EAEAL,OAAO,CAACK,kBAAR;EACA,OAAOL,OAAP;AACD"}
@@ -1,8 +1,8 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import { Authenticate, ConnectionProfile, Log, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
4
- import * as config from '../../utils/Config.js';
5
- import { printMessage } from '../../utils/Console.js';
3
+ import * as common from '../cmd_common';
4
+ import * as config from '../../utils/Config';
5
+ import { printMessage } from '../../utils/Console';
6
6
  const {
7
7
  provisionCreds,
8
8
  fetchLogs,
@@ -21,12 +21,13 @@ const LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;
21
21
  const LOG_TIME_WINDOW_INCREMENT = SECONDS_IN_1_HOUR;
22
22
  const program = new Command('frodo logs fetch');
23
23
  program.description('Fetch Identity Cloud logs between a specified begin and end time period.\
24
- WARNING: depending on filters and time period specified, this could take substantial time to complete.').helpOption('-h, --help', 'Help').addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.insecureOption).addOption(common.sourcesOptionM).addOption(new Option('-l, --level <level>', 'Set log level filter. You can specify the level as a number or a string. \
24
+ WARNING: depending on filters and time period specified, this could take substantial time to complete.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.insecureOption).addOption(common.sourcesOptionM).addOption(new Option('-l, --level <level>', 'Set log level filter. You can specify the level as a number or a string. \
25
25
  Following values are possible (values on the same line are equivalent): \
26
26
  \n0, SEVERE, FATAL, or ERROR\n1, WARNING, WARN or CONFIG\
27
27
  \n2, INFO or INFORMATION\n3, DEBUG, FINE, FINER or FINEST\
28
28
  \n4 or ALL').default('ERROR', `${resolveLevel('ERROR')}`)).addOption(new Option('-t, --transaction-id <txid>', 'Filter by transactionId')).addOption(new Option('-b, --begin-timestamp <beginTs>', 'Begin timestamp for period (in ISO8601, example: "2022-10-13T19:06:28Z", or "2022-09.30". \
29
- Cannot be more than 30 days in the past.')).addOption(new Option('-e, --end-timestamp <endTs>', 'End timestamp for period')).addOption(new Option('-s, --search-string <ss>', 'Filter by a specific string (ANDed with transactionID filter)')).addOption(new Option('-d, --defaults', 'Use default logging noise filters').default(false, `Use custom logging noise filters defined in ${config.getConfigPath()}/${config.FRODO_LOG_NOISEFILTER_FILENAME}`)).action(async (host, user, password, options, command) => {
29
+ Cannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \
30
+ (-e is ignored)')).addOption(new Option('-e, --end-timestamp <endTs>', 'End timestamp for period. Default: "now"')).addOption(new Option('-s, --search-string <ss>', 'Filter by a specific string (ANDed with transactionID filter)')).addOption(new Option('-d, --defaults', 'Use default logging noise filters').default(false, `Use custom logging noise filters defined in ${config.getConfigPath()}/${config.FRODO_LOG_NOISEFILTER_FILENAME}`)).action(async (host, user, password, options, command) => {
30
31
  let credsFromParameters = true;
31
32
  state.default.session.setTenant(host);
32
33
  state.default.session.setUsername(user);
@@ -43,7 +44,7 @@ Cannot be more than 30 days in the past.')).addOption(new Option('-e, --end-time
43
44
  if (conn.username == null && conn.password == null) {
44
45
  if (!state.default.session.getUsername() && !state.default.session.getPassword()) {
45
46
  credsFromParameters = false;
46
- console.log('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
47
+ printMessage('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
47
48
  return;
48
49
  }
49
50
  } else {
@@ -58,6 +59,26 @@ Cannot be more than 30 days in the past.')).addOption(new Option('-e, --end-time
58
59
  }
59
60
  }
60
61
 
62
+ const now = Date.now() / 1000;
63
+
64
+ if (typeof options.beginTimestamp === 'undefined' || !options.beginTimestamp) {
65
+ // no beginTimestamp value specified, default is 1 hour ago
66
+ const tempStartDate = new Date();
67
+ tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);
68
+ options.beginTimestamp = tempStartDate.toISOString(); // also override endTimestamp to now
69
+
70
+ const tempEndDate = new Date();
71
+ tempEndDate.setTime(now * 1000);
72
+ options.endTimestamp = tempEndDate;
73
+ printMessage('No timestamps specified, defaulting to logs from 1 hour ago', 'info');
74
+ }
75
+
76
+ if (typeof options.endTimestamp === 'undefined' || !options.endTimestamp) {
77
+ // no endTimestamp value specified, default is now
78
+ options.endTimestamp = now * 1000;
79
+ printMessage('No end timestamp specified, defaulting end timestamp to "now"', 'info');
80
+ }
81
+
61
82
  let beginTs = Date.parse(options.beginTimestamp) / 1000;
62
83
 
63
84
  if (Date.parse(options.endTimestamp) / 1000 < beginTs) {
@@ -65,15 +86,13 @@ Cannot be more than 30 days in the past.')).addOption(new Option('-e, --end-time
65
86
  return;
66
87
  }
67
88
 
68
- const now = Date.now() / 1000;
69
-
70
89
  if (now - beginTs > LOG_TIME_WINDOW_MAX) {
71
90
  printMessage('Begin timestamp can not be more than 30 days in the past', 'error');
72
91
  return;
73
92
  }
74
93
 
75
94
  let intermediateEndTs = 0;
76
- console.log(`Fetching ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}]...`);
95
+ printMessage(`Fetching ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}]...`);
77
96
  if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
78
97
 
79
98
  do {
@@ -1 +1 @@
1
- {"version":3,"file":"logs-fetch.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","fetchLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","helpOption","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","sourcesOptionM","default","getConfigPath","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","console","log","creds","api_key_id","api_key_secret","beginTs","Date","parse","beginTimestamp","endTimestamp","now","intermediateEndTs","opts","sources","level","toISOString","transactionId","searchString","getNoiseFilters","defaults"],"sources":["cli/logging/logs-fetch.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport * as config from '../../utils/Config.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { provisionCreds, fetchLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = SECONDS_IN_1_HOUR;\n\nconst program = new Command('frodo logs fetch');\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .helpOption('-h, --help', 'Help')\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past.'\n )\n )\n .addOption(\n new Option('-e, --end-timestamp <endTs>', 'End timestamp for period')\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in ${config.getConfigPath()}/${\n config.FRODO_LOG_NOISEFILTER_FILENAME\n }`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n console.log(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n if((Date.parse(options.endTimestamp) / 1000) < beginTs) {\n printMessage(\n 'End timestamp can not be before begin timestamp',\n 'error'\n );\n return; \n }\n const now = Date.now() / 1000;\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n console.log(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n\n do {\n intermediateEndTs = beginTs + LOG_TIME_WINDOW_INCREMENT;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < Date.parse(options.endTimestamp) / 1000);\n });\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAT,EAAkBC,MAAlB,QAAgC,WAAhC;AACA,SACEC,YADF,EAEEC,iBAFF,EAGEC,GAHF,EAIEC,KAJF,QAKO,uBALP;AAMA,OAAO,KAAKC,MAAZ,MAAwB,kBAAxB;AACA,OAAO,KAAKC,MAAZ,MAAwB,uBAAxB;AACA,SAASC,YAAT,QAA6B,wBAA7B;AAEA,MAAM;EAAEC,cAAF;EAAkBC,SAAlB;EAA6BC;AAA7B,IAA8CP,GAApD;AACA,MAAM;EAAEQ,oBAAF;EAAwBC;AAAxB,IAAkDV,iBAAxD;AACA,MAAM;EAAEW;AAAF,IAAgBZ,YAAtB;AAEA,MAAMa,kBAAkB,GAAG,OAA3B;AACA,MAAMC,iBAAiB,GAAG,IAA1B;AACA,MAAMC,mBAAmB,GAAGF,kBAA5B;AACA,MAAMG,yBAAyB,GAAGF,iBAAlC;AAEA,MAAMG,OAAO,GAAG,IAAInB,OAAJ,CAAY,kBAAZ,CAAhB;AACAmB,OAAO,CACJC,WADH,CAEI;AACJ,wGAHA,EAKGC,UALH,CAKc,YALd,EAK4B,MAL5B,EAMGC,WANH,CAMehB,MAAM,CAACiB,aANtB,EAOGD,WAPH,CAOehB,MAAM,CAACkB,YAPtB,EAQGF,WARH,CAQehB,MAAM,CAACmB,gBARtB,EASGC,SATH,CASapB,MAAM,CAACqB,cATpB,EAUGD,SAVH,CAUapB,MAAM,CAACsB,cAVpB,EAWGF,SAXH,CAYI,IAAIzB,MAAJ,CACE,qBADF,EAEE;AACN;AACA;AACA;AACA,WANI,EAOE4B,OAPF,CAOU,OAPV,EAOoB,GAAElB,YAAY,CAAC,OAAD,CAAU,EAP5C,CAZJ,EAqBGe,SArBH,CAsBI,IAAIzB,MAAJ,CAAW,6BAAX,EAA0C,yBAA1C,CAtBJ,EAwBGyB,SAxBH,CAyBI,IAAIzB,MAAJ,CACE,iCADF,EAEE;AACN,yCAHI,CAzBJ,EA+BGyB,SA/BH,CAgCI,IAAIzB,MAAJ,CAAW,6BAAX,EAA0C,0BAA1C,CAhCJ,EAkCGyB,SAlCH,CAmCI,IAAIzB,MAAJ,CACE,0BADF,EAEE,+DAFF,CAnCJ,EAwCGyB,SAxCH,CAyCI,IAAIzB,MAAJ,CAAW,gBAAX,EAA6B,mCAA7B,EAAkE4B,OAAlE,CACE,KADF,EAEG,+CAA8CtB,MAAM,CAACuB,aAAP,EAAuB,IACpEvB,MAAM,CAACwB,8BACR,EAJH,CAzCJ,EAgDGC,MAhDH,CAgDU,OAAOC,IAAP,EAAaC,IAAb,EAAmBC,QAAnB,EAA6BC,OAA7B,EAAsCC,OAAtC,KAAkD;EACxD,IAAIC,mBAAmB,GAAG,IAA1B;EACAjC,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACA5B,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBE,WAAtB,CAAkCP,IAAlC;EACA7B,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBG,WAAtB,CAAkCP,QAAlC;EACA9B,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBI,0BAAtB,CAAiDP,OAAO,CAACQ,QAAzD;EACA,MAAMC,IAAI,GAAG,MAAMjC,oBAAoB,EAAvC;EACAP,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBC,SAAtB,CAAgCK,IAAI,CAACC,MAArC;;EACA,IAAID,IAAI,CAACE,GAAL,IAAY,IAAZ,IAAoBF,IAAI,CAACG,MAAL,IAAe,IAAvC,EAA6C;IAC3CV,mBAAmB,GAAG,KAAtB;IACAjC,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBU,YAAtB,CAAmCJ,IAAI,CAACE,GAAxC;IACA1C,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBW,eAAtB,CAAsCL,IAAI,CAACG,MAA3C;EACD,CAJD,MAIO;IACL,IAAIH,IAAI,CAACM,QAAL,IAAiB,IAAjB,IAAyBN,IAAI,CAACV,QAAL,IAAiB,IAA9C,EAAoD;MAClD,IACE,CAAC9B,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBa,WAAtB,EAAD,IACA,CAAC/C,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBc,WAAtB,EAFH,EAGE;QACAf,mBAAmB,GAAG,KAAtB;QACAgB,OAAO,CAACC,GAAR,CACE,qFADF,EAEE,MAFF;QAIA;MACD;IACF,CAZD,MAYO;MACLlD,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBE,WAAtB,CAAkCI,IAAI,CAACM,QAAvC;MACA9C,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBG,WAAtB,CAAkCG,IAAI,CAACV,QAAvC;IACD;;IACD,IAAI,MAAMrB,SAAS,EAAnB,EAAuB;MACrB,MAAM0C,KAAK,GAAG,MAAM/C,cAAc,EAAlC;MACAJ,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBU,YAAtB,CAAmCO,KAAK,CAACC,UAAzC;MACApD,KAAK,CAACwB,OAAN,CAAcU,OAAd,CAAsBW,eAAtB,CAAsCM,KAAK,CAACE,cAA5C;IACD;EACF;;EACD,IAAIC,OAAO,GAAGC,IAAI,CAACC,KAAL,CAAWzB,OAAO,CAAC0B,cAAnB,IAAqC,IAAnD;;EACA,IAAIF,IAAI,CAACC,KAAL,CAAWzB,OAAO,CAAC2B,YAAnB,IAAmC,IAApC,GAA4CJ,OAA/C,EAAwD;IACpDnD,YAAY,CACR,iDADQ,EAER,OAFQ,CAAZ;IAIE;EACL;;EACD,MAAMwD,GAAG,GAAGJ,IAAI,CAACI,GAAL,KAAa,IAAzB;;EACA,IAAIA,GAAG,GAAGL,OAAN,GAAgB1C,mBAApB,EAAyC;IACvCT,YAAY,CACV,0DADU,EAEV,OAFU,CAAZ;IAIA;EACD;;EACD,IAAIyD,iBAAiB,GAAG,CAAxB;EACAX,OAAO,CAACC,GAAR,CACG,sDACClB,OAAO,CAAC6B,IAAR,GAAeC,OAChB,gBAAexD,YAAY,CAAC0B,OAAO,CAAC6B,IAAR,GAAeE,KAAhB,CAAuB,MAHrD;EAKA,IAAI9B,mBAAJ,EAAyB,MAAMzB,qBAAqB,EAA3B,CAzD+B,CAyDA;;EAExD,GAAG;IACDoD,iBAAiB,GAAGN,OAAO,GAAGzC,yBAA9B;IACA,MAAMR,SAAS,CACb2B,OAAO,CAAC6B,IAAR,GAAeC,OADF,EAEb,IAAIP,IAAJ,CAASD,OAAO,GAAG,IAAnB,EAAyBU,WAAzB,EAFa,EAGb,IAAIT,IAAJ,CAASK,iBAAiB,GAAG,IAA7B,EAAmCI,WAAnC,EAHa,EAIb1D,YAAY,CAAC0B,OAAO,CAAC6B,IAAR,GAAeE,KAAhB,CAJC,EAKb/B,OAAO,CAAC6B,IAAR,GAAeI,aALF,EAMbjC,OAAO,CAAC6B,IAAR,GAAeK,YANF,EAOb,IAPa,EAQbhE,MAAM,CAACiE,eAAP,CAAuBpC,OAAO,CAACqC,QAA/B,CARa,CAAf;IAUAd,OAAO,GAAGM,iBAAV;EACD,CAbD,QAaSA,iBAAiB,GAAGL,IAAI,CAACC,KAAL,CAAWzB,OAAO,CAAC2B,YAAnB,IAAmC,IAbhE;AAcD,CAzHH;AA2HA5C,OAAO,CAAC0C,KAAR"}
1
+ {"version":3,"file":"logs-fetch.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","fetchLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","SECONDS_IN_30_DAYS","SECONDS_IN_1_HOUR","LOG_TIME_WINDOW_MAX","LOG_TIME_WINDOW_INCREMENT","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","sourcesOptionM","default","getConfigPath","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","now","Date","beginTimestamp","tempStartDate","setTime","toISOString","tempEndDate","endTimestamp","beginTs","parse","intermediateEndTs","opts","sources","level","transactionId","searchString","getNoiseFilters","defaults"],"sources":["cli/logging/logs-fetch.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\n\nconst { provisionCreds, fetchLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst SECONDS_IN_30_DAYS = 2592000;\nconst SECONDS_IN_1_HOUR = 3600;\nconst LOG_TIME_WINDOW_MAX = SECONDS_IN_30_DAYS;\nconst LOG_TIME_WINDOW_INCREMENT = SECONDS_IN_1_HOUR;\n\nconst program = new Command('frodo logs fetch');\nprogram\n .description(\n 'Fetch Identity Cloud logs between a specified begin and end time period.\\\n WARNING: depending on filters and time period specified, this could take substantial time to complete.'\n )\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option(\n '-b, --begin-timestamp <beginTs>',\n 'Begin timestamp for period (in ISO8601, example: \"2022-10-13T19:06:28Z\", or \"2022-09.30\". \\\nCannot be more than 30 days in the past. If not specified, logs from one hour ago are fetched \\\n(-e is ignored)'\n )\n )\n .addOption(\n new Option(\n '-e, --end-timestamp <endTs>',\n 'End timestamp for period. Default: \"now\"'\n )\n )\n .addOption(\n new Option(\n '-s, --search-string <ss>',\n 'Filter by a specific string (ANDed with transactionID filter)'\n )\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in ${config.getConfigPath()}/${\n config.FRODO_LOG_NOISEFILTER_FILENAME\n }`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n const now = Date.now() / 1000;\n if (\n typeof options.beginTimestamp === 'undefined' ||\n !options.beginTimestamp\n ) {\n // no beginTimestamp value specified, default is 1 hour ago\n const tempStartDate = new Date();\n tempStartDate.setTime((now - SECONDS_IN_1_HOUR) * 1000);\n options.beginTimestamp = tempStartDate.toISOString();\n // also override endTimestamp to now\n const tempEndDate = new Date();\n tempEndDate.setTime(now * 1000);\n options.endTimestamp = tempEndDate;\n printMessage(\n 'No timestamps specified, defaulting to logs from 1 hour ago',\n 'info'\n );\n }\n if (typeof options.endTimestamp === 'undefined' || !options.endTimestamp) {\n // no endTimestamp value specified, default is now\n options.endTimestamp = now * 1000;\n printMessage(\n 'No end timestamp specified, defaulting end timestamp to \"now\"',\n 'info'\n );\n }\n let beginTs = Date.parse(options.beginTimestamp) / 1000;\n if (Date.parse(options.endTimestamp) / 1000 < beginTs) {\n printMessage('End timestamp can not be before begin timestamp', 'error');\n return;\n }\n if (now - beginTs > LOG_TIME_WINDOW_MAX) {\n printMessage(\n 'Begin timestamp can not be more than 30 days in the past',\n 'error'\n );\n return;\n }\n let intermediateEndTs = 0;\n printMessage(\n `Fetching ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n\n do {\n intermediateEndTs = beginTs + LOG_TIME_WINDOW_INCREMENT;\n await fetchLogs(\n command.opts().sources,\n new Date(beginTs * 1000).toISOString(),\n new Date(intermediateEndTs * 1000).toISOString(),\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n command.opts().searchString,\n null,\n config.getNoiseFilters(options.defaults)\n );\n beginTs = intermediateEndTs;\n } while (intermediateEndTs < Date.parse(options.endTimestamp) / 1000);\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { Authenticate, ConnectionProfile, Log, state } from '@rockcarver/frodo-lib';
2
2
  import { Command } from 'commander';
3
- import * as common from '../cmd_common.js';
3
+ import { printMessage } from '../../utils/Console';
4
+ import * as common from '../cmd_common';
4
5
  const {
5
6
  provisionCreds,
6
7
  getLogSources
@@ -13,13 +14,13 @@ const {
13
14
  getTokens
14
15
  } = Authenticate;
15
16
  const program = new Command('frodo logs list');
16
- program.description('List available ID Cloud log sources.').helpOption('-h, --help', 'Help').addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.insecureOption).action(async (host, user, password, options) => {
17
+ program.description('List available ID Cloud log sources.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.insecureOption).action(async (host, user, password, options) => {
17
18
  let credsFromParameters = true;
18
19
  state.default.session.setTenant(host);
19
20
  state.default.session.setUsername(user);
20
21
  state.default.session.setPassword(password);
21
22
  state.default.session.setAllowInsecureConnection(options.insecure);
22
- console.log('Listing available ID Cloud log sources...');
23
+ printMessage('Listing available ID Cloud log sources...');
23
24
  const conn = await getConnectionProfile();
24
25
  state.default.session.setTenant(conn.tenant);
25
26
 
@@ -31,7 +32,7 @@ program.description('List available ID Cloud log sources.').helpOption('-h, --he
31
32
  if (conn.username == null && conn.password == null) {
32
33
  if (!state.default.session.getUsername() && !state.default.session.getPassword()) {
33
34
  credsFromParameters = false;
34
- console.log('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
35
+ printMessage('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
35
36
  return;
36
37
  }
37
38
  } else {
@@ -49,17 +50,17 @@ program.description('List available ID Cloud log sources.').helpOption('-h, --he
49
50
  const sources = await getLogSources();
50
51
 
51
52
  if (sources.length === 0) {
52
- console.log("Can't get sources, possible cause - wrong API key or secret", 'error');
53
+ printMessage("Can't get sources, possible cause - wrong API key or secret", 'error');
53
54
  } else {
54
55
  if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
55
56
 
56
- console.log('Available log sources:');
57
+ printMessage('Available log sources:');
57
58
  sources.forEach(source => {
58
- console.log(`${source}`, 'info');
59
+ printMessage(`${source}`, 'info');
59
60
  });
60
- console.log('You can use any combination of comma separated sources.');
61
- console.log('For example:');
62
- console.log(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');
61
+ printMessage('You can use any combination of comma separated sources.');
62
+ printMessage('For example:');
63
+ printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');
63
64
  }
64
65
  });
65
66
  program.parse();
@@ -1 +1 @@
1
- {"version":3,"file":"logs-list.js","names":["Authenticate","ConnectionProfile","Log","state","Command","common","provisionCreds","getLogSources","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","action","host","user","password","options","credsFromParameters","default","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","console","log","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","sources","length","forEach","source","parse"],"sources":["cli/logging/logs-list.ts"],"sourcesContent":["import {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\nimport * as common from '../cmd_common.js';\n\nconst { provisionCreds, getLogSources } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs list');\nprogram\n .description('List available ID Cloud log sources.')\n .helpOption('-h, --help', 'Help')\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .action(async (host, user, password, options) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n console.log('Listing available ID Cloud log sources...');\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n console.log(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n\n const sources = await getLogSources();\n if (sources.length === 0) {\n console.log(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n console.log('Available log sources:');\n sources.forEach((source) => {\n console.log(`${source}`, 'info');\n });\n console.log('You can use any combination of comma separated sources.');\n console.log('For example:');\n console.log(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-list.js","names":["Authenticate","ConnectionProfile","Log","state","Command","printMessage","common","provisionCreds","getLogSources","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","action","host","user","password","options","credsFromParameters","default","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","sources","length","forEach","source","parse"],"sources":["cli/logging/logs-list.ts"],"sourcesContent":["import {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport { Command } from 'commander';\nimport { printMessage } from '../../utils/Console';\nimport * as common from '../cmd_common';\n\nconst { provisionCreds, getLogSources } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs list');\nprogram\n .description('List available ID Cloud log sources.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .action(async (host, user, password, options) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n printMessage('Listing available ID Cloud log sources...');\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n\n const sources = await getLogSources();\n if (sources.length === 0) {\n printMessage(\n \"Can't get sources, possible cause - wrong API key or secret\",\n 'error'\n );\n } else {\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n printMessage('Available log sources:');\n sources.forEach((source) => {\n printMessage(`${source}`, 'info');\n });\n printMessage('You can use any combination of comma separated sources.');\n printMessage('For example:');\n printMessage(`$ frodo logs tail -c am-core,idm-core ${host}`, 'info');\n }\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import { Authenticate, ConnectionProfile, Log, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
4
- import * as config from '../../utils/Config.js';
3
+ import * as common from '../cmd_common';
4
+ import * as config from '../../utils/Config';
5
+ import { printMessage } from '../../utils/Console';
5
6
  const {
6
7
  provisionCreds,
7
8
  tailLogs,
@@ -15,7 +16,7 @@ const {
15
16
  getTokens
16
17
  } = Authenticate;
17
18
  const program = new Command('frodo logs tail');
18
- program.description('Tail Identity Cloud logs.').helpOption('-h, --help', 'Help').addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.insecureOption).addOption(common.sourcesOptionM).addOption(new Option('-l, --level <level>', 'Set log level filter. You can specify the level as a number or a string. \
19
+ program.description('Tail Identity Cloud logs.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.insecureOption).addOption(common.sourcesOptionM).addOption(new Option('-l, --level <level>', 'Set log level filter. You can specify the level as a number or a string. \
19
20
  Following values are possible (values on the same line are equivalent): \
20
21
  \n0, SEVERE, FATAL, or ERROR\n1, WARNING, WARN or CONFIG\
21
22
  \n2, INFO or INFORMATION\n3, DEBUG, FINE, FINER or FINEST\
@@ -36,7 +37,7 @@ Following values are possible (values on the same line are equivalent): \
36
37
  if (conn.username == null && conn.password == null) {
37
38
  if (!state.default.session.getUsername() && !state.default.session.getPassword()) {
38
39
  credsFromParameters = false;
39
- console.log('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
40
+ printMessage('User credentials not specified as parameters and no saved API key and secret found!', 'warn');
40
41
  return;
41
42
  }
42
43
  } else {
@@ -51,7 +52,7 @@ Following values are possible (values on the same line are equivalent): \
51
52
  }
52
53
  }
53
54
 
54
- console.log(`Tailing ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}]...`);
55
+ printMessage(`Tailing ID Cloud logs from the following sources: ${command.opts().sources} and levels [${resolveLevel(command.opts().level)}]...`);
55
56
  if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI
56
57
 
57
58
  await tailLogs(command.opts().sources, resolveLevel(command.opts().level), command.opts().transactionId, null, config.getNoiseFilters(options.defaults));
@@ -1 +1 @@
1
- {"version":3,"file":"logs-tail.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","provisionCreds","tailLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","sourcesOptionM","default","getConfigPath","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","console","log","creds","api_key_id","api_key_secret","opts","sources","level","transactionId","getNoiseFilters","defaults","parse"],"sources":["cli/logging/logs-tail.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport * as config from '../../utils/Config.js';\n\nconst { provisionCreds, tailLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs tail');\nprogram\n .description('Tail Identity Cloud logs.')\n .helpOption('-h, --help', 'Help')\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in ${config.getConfigPath()}/${config.FRODO_LOG_NOISEFILTER_FILENAME}`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n console.log(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n console.log(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n await tailLogs(\n command.opts().sources,\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n });\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"logs-tail.js","names":["Command","Option","Authenticate","ConnectionProfile","Log","state","common","config","printMessage","provisionCreds","tailLogs","resolveLevel","getConnectionProfile","saveConnectionProfile","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","userArgument","passwordArgument","addOption","insecureOption","sourcesOptionM","default","getConfigPath","FRODO_LOG_NOISEFILTER_FILENAME","action","host","user","password","options","command","credsFromParameters","session","setTenant","setUsername","setPassword","setAllowInsecureConnection","insecure","conn","tenant","key","secret","setLogApiKey","setLogApiSecret","username","getUsername","getPassword","creds","api_key_id","api_key_secret","opts","sources","level","transactionId","getNoiseFilters","defaults","parse"],"sources":["cli/logging/logs-tail.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport {\n Authenticate,\n ConnectionProfile,\n Log,\n state,\n} from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport * as config from '../../utils/Config';\nimport { printMessage } from '../../utils/Console';\n\nconst { provisionCreds, tailLogs, resolveLevel } = Log;\nconst { getConnectionProfile, saveConnectionProfile } = ConnectionProfile;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo logs tail');\nprogram\n .description('Tail Identity Cloud logs.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError()\n .addArgument(common.hostArgumentM)\n .addArgument(common.userArgument)\n .addArgument(common.passwordArgument)\n .addOption(common.insecureOption)\n .addOption(common.sourcesOptionM)\n .addOption(\n new Option(\n '-l, --level <level>',\n 'Set log level filter. You can specify the level as a number or a string. \\\nFollowing values are possible (values on the same line are equivalent): \\\n\\n0, SEVERE, FATAL, or ERROR\\n1, WARNING, WARN or CONFIG\\\n\\n2, INFO or INFORMATION\\n3, DEBUG, FINE, FINER or FINEST\\\n\\n4 or ALL'\n ).default('ERROR', `${resolveLevel('ERROR')}`)\n )\n .addOption(\n new Option('-t, --transaction-id <txid>', 'Filter by transactionId')\n )\n .addOption(\n new Option('-d, --defaults', 'Use default logging noise filters').default(\n false,\n `Use custom logging noise filters defined in ${config.getConfigPath()}/${\n config.FRODO_LOG_NOISEFILTER_FILENAME\n }`\n )\n )\n .action(async (host, user, password, options, command) => {\n let credsFromParameters = true;\n state.default.session.setTenant(host);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setAllowInsecureConnection(options.insecure);\n const conn = await getConnectionProfile();\n state.default.session.setTenant(conn.tenant);\n if (conn.key != null && conn.secret != null) {\n credsFromParameters = false;\n state.default.session.setLogApiKey(conn.key);\n state.default.session.setLogApiSecret(conn.secret);\n } else {\n if (conn.username == null && conn.password == null) {\n if (\n !state.default.session.getUsername() &&\n !state.default.session.getPassword()\n ) {\n credsFromParameters = false;\n printMessage(\n 'User credentials not specified as parameters and no saved API key and secret found!',\n 'warn'\n );\n return;\n }\n } else {\n state.default.session.setUsername(conn.username);\n state.default.session.setPassword(conn.password);\n }\n if (await getTokens()) {\n const creds = await provisionCreds();\n state.default.session.setLogApiKey(creds.api_key_id);\n state.default.session.setLogApiSecret(creds.api_key_secret);\n }\n }\n printMessage(\n `Tailing ID Cloud logs from the following sources: ${\n command.opts().sources\n } and levels [${resolveLevel(command.opts().level)}]...`\n );\n if (credsFromParameters) await saveConnectionProfile(); // save new values if they were specified on CLI\n await tailLogs(\n command.opts().sources,\n resolveLevel(command.opts().level),\n command.opts().transactionId,\n null,\n config.getNoiseFilters(options.defaults)\n );\n });\n\nprogram.parse();\n"],"mappings":"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"}
@@ -8,7 +8,8 @@ export default function setup() {
8
8
  const program = new Command('logs').summary('List/View Identity Cloud logs').description(`View Identity Cloud logs. If valid tenant admin credentials are specified, a log API key and secret are automatically created for that admin user.`).helpOption('-h, --help', 'Help').executableDir(__dirname);
9
9
  program.command('list', 'List available ID Cloud log sources.').showHelpAfterError();
10
10
  program.command('tail', 'Tail Identity Cloud logs.').showHelpAfterError();
11
- program.command('fetch', 'Fetch Identity Cloud logs for a given time period.').showHelpAfterError();
11
+ program.command('fetch', 'Fetch Identity Cloud logs for a given time period.').showHelpAfterError(); // program.showHelpAfterError();
12
+
12
13
  return program;
13
14
  }
14
15
  //# sourceMappingURL=logs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"logs.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","summary","description","helpOption","executableDir","command","showHelpAfterError"],"sources":["cli/logging/logs.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('logs')\n .summary('List/View Identity Cloud logs')\n .description(\n `View Identity Cloud logs. If valid tenant admin credentials are specified, a log API key and secret are automatically created for that admin user.`\n )\n .helpOption('-h, --help', 'Help')\n .executableDir(__dirname);\n\n program\n .command('list', 'List available ID Cloud log sources.')\n .showHelpAfterError();\n program.command('tail', 'Tail Identity Cloud logs.').showHelpAfterError();\n program.command('fetch', 'Fetch Identity Cloud logs for a given time period.').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,MAAZ,EACbU,OADa,CACL,+BADK,EAEbC,WAFa,CAGX,oJAHW,EAKbC,UALa,CAKF,YALE,EAKY,MALZ,EAMbC,aANa,CAMCV,SAND,CAAhB;EAQAM,OAAO,CACJK,OADH,CACW,MADX,EACmB,sCADnB,EAEGC,kBAFH;EAGAN,OAAO,CAACK,OAAR,CAAgB,MAAhB,EAAwB,2BAAxB,EAAqDC,kBAArD;EACAN,OAAO,CAACK,OAAR,CAAgB,OAAhB,EAAyB,oDAAzB,EAA+EC,kBAA/E;EACA,OAAON,OAAP;AACD"}
1
+ {"version":3,"file":"logs.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","summary","description","helpOption","executableDir","command","showHelpAfterError"],"sources":["cli/logging/logs.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('logs')\n .summary('List/View Identity Cloud logs')\n .description(\n `View Identity Cloud logs. If valid tenant admin credentials are specified, a log API key and secret are automatically created for that admin user.`\n )\n .helpOption('-h, --help', 'Help')\n .executableDir(__dirname);\n\n program\n .command('list', 'List available ID Cloud log sources.')\n .showHelpAfterError();\n program.command('tail', 'Tail Identity Cloud logs.').showHelpAfterError();\n program\n .command('fetch', 'Fetch Identity Cloud logs for a given time period.')\n .showHelpAfterError();\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,MAAZ,EACbU,OADa,CACL,+BADK,EAEbC,WAFa,CAGX,oJAHW,EAKbC,UALa,CAKF,YALE,EAKY,MALZ,EAMbC,aANa,CAMCV,SAND,CAAhB;EAQAM,OAAO,CACJK,OADH,CACW,MADX,EACmB,sCADnB,EAEGC,kBAFH;EAGAN,OAAO,CAACK,OAAR,CAAgB,MAAhB,EAAwB,2BAAxB,EAAqDC,kBAArD;EACAN,OAAO,CACJK,OADH,CACW,OADX,EACoB,oDADpB,EAEGC,kBAFH,GAb8B,CAgB9B;;EACA,OAAON,OAAP;AACD"}
@@ -1,6 +1,7 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import { Authenticate, Realm, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
3
+ import * as common from '../cmd_common';
4
+ import { printMessage } from '../../utils/Console';
4
5
  const {
5
6
  getTokens
6
7
  } = Authenticate;
@@ -18,7 +19,7 @@ async (host, realm, user, password, options) => {
18
19
  state.default.session.setAllowInsecureConnection(options.insecure);
19
20
 
20
21
  if (await getTokens()) {
21
- console.log(`Adding custom DNS domain ${options.domain} to realm ${state.default.session.getRealm()}...`);
22
+ printMessage(`Adding custom DNS domain ${options.domain} to realm ${state.default.session.getRealm()}...`);
22
23
  await addCustomDomain(state.default.session.getRealm(), options.domain);
23
24
  }
24
25
  } // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"realm-add-custom-domain.js","names":["Command","Option","Authenticate","Realm","state","common","getTokens","addCustomDomain","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","makeOptionMandatory","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","console","log","domain","getRealm","parse"],"sources":["cli/realm/realm-add-custom-domain.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\nconst { addCustomDomain } = Realm;\n\nconst program = new Command('frodo realm add-custom-domain');\n\nprogram\n .description('Add custom domain (realm DNS alias).')\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 '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\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 `Adding custom DNS domain ${\n options.domain\n } to realm ${state.default.session.getRealm()}...`\n );\n await addCustomDomain(state.default.session.getRealm(), options.domain);\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,IAAsBJ,KAA5B;AAEA,MAAMK,OAAO,GAAG,IAAIR,OAAJ,CAAY,+BAAZ,CAAhB;AAEAQ,OAAO,CACJC,WADH,CACe,sCADf,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,CACE,qBADF,EAEE,yBAFF,EAGEmB,mBAHF,EAXJ,EAgBGC,MAhBH,EAiBI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CtB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAlB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACAnB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACApB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACArB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA9B,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM9B,SAAS,EAAnB,EAAuB;IACrB+B,OAAO,CAACC,GAAR,CACG,4BACCZ,OAAO,CAACa,MACT,aAAYnC,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBY,QAAtB,EAAiC,KAHhD;IAKA,MAAMjC,eAAe,CAACH,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBY,QAAtB,EAAD,EAAmCd,OAAO,CAACa,MAA3C,CAArB;EACD;AACF,CAjCL,CAkCI;AAlCJ;AAqCA/B,OAAO,CAACiC,KAAR"}
1
+ {"version":3,"file":"realm-add-custom-domain.js","names":["Command","Option","Authenticate","Realm","state","common","printMessage","getTokens","addCustomDomain","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","makeOptionMandatory","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","domain","getRealm","parse"],"sources":["cli/realm/realm-add-custom-domain.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst { addCustomDomain } = Realm;\n\nconst program = new Command('frodo realm add-custom-domain');\n\nprogram\n .description('Add custom domain (realm DNS alias).')\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 '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\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 printMessage(\n `Adding custom DNS domain ${\n options.domain\n } to realm ${state.default.session.getRealm()}...`\n );\n await addCustomDomain(state.default.session.getRealm(), options.domain);\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,eAAxB;AACA,SAASC,YAAT,QAA6B,qBAA7B;AAEA,MAAM;EAAEC;AAAF,IAAgBL,YAAtB;AACA,MAAM;EAAEM;AAAF,IAAsBL,KAA5B;AAEA,MAAMM,OAAO,GAAG,IAAIT,OAAJ,CAAY,+BAAZ,CAAhB;AAEAS,OAAO,CACJC,WADH,CACe,sCADf,EAEGC,UAFH,CAEc,YAFd,EAE4B,MAF5B,EAGGC,kBAHH,GAIGC,WAJH,CAIeR,MAAM,CAACS,aAJtB,EAKGD,WALH,CAKeR,MAAM,CAACU,aALtB,EAMGF,WANH,CAMeR,MAAM,CAACW,YANtB,EAOGH,WAPH,CAOeR,MAAM,CAACY,gBAPtB,EAQGC,SARH,CAQab,MAAM,CAACc,gBARpB,EASGD,SATH,CASab,MAAM,CAACe,cATpB,EAUGF,SAVH,CAWI,IAAIjB,MAAJ,CACE,qBADF,EAEE,yBAFF,EAGEoB,mBAHF,EAXJ,EAgBGC,MAhBH,EAiBI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CvB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAnB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACApB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACArB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACAtB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA/B,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM9B,SAAS,EAAnB,EAAuB;IACrBD,YAAY,CACT,4BACCqB,OAAO,CAACW,MACT,aAAYlC,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBU,QAAtB,EAAiC,KAHpC,CAAZ;IAKA,MAAM/B,eAAe,CAACJ,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBU,QAAtB,EAAD,EAAmCZ,OAAO,CAACW,MAA3C,CAArB;EACD;AACF,CAjCL,CAkCI;AAlCJ;AAqCA7B,OAAO,CAAC+B,KAAR"}
@@ -1,6 +1,7 @@
1
1
  import { Command } from 'commander';
2
2
  import { Authenticate, Realm, Utils, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
3
+ import * as common from '../cmd_common';
4
+ import { printMessage } from '../../utils/Console';
4
5
  const {
5
6
  getRealmName
6
7
  } = Utils;
@@ -21,7 +22,7 @@ async (host, realm, user, password, options) => {
21
22
  state.default.session.setAllowInsecureConnection(options.insecure);
22
23
 
23
24
  if (await getTokens()) {
24
- console.log(`Retrieving details of realm ${state.default.session.getRealm()}...`);
25
+ printMessage(`Retrieving details of realm ${state.default.session.getRealm()}...`);
25
26
  describe(getRealmName(state.default.session.getRealm()));
26
27
  }
27
28
  } // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"realm-describe.js","names":["Command","Authenticate","Realm","Utils","state","common","getRealmName","getTokens","describe","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","console","log","getRealm","parse"],"sources":["cli/realm/realm-describe.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, Realm, Utils, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getRealmName } = Utils;\nconst { getTokens } = Authenticate;\nconst { describe } = Realm;\n\nconst program = new Command('frodo realm describe');\n\nprogram\n .description('Describe realms.')\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 .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 `Retrieving details of realm ${state.default.session.getRealm()}...`\n );\n describe(getRealmName(state.default.session.getRealm()));\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,SAASC,YAAT,EAAuBC,KAAvB,EAA8BC,KAA9B,EAAqCC,KAArC,QAAkD,uBAAlD;AACA,OAAO,KAAKC,MAAZ,MAAwB,kBAAxB;AAEA,MAAM;EAAEC;AAAF,IAAmBH,KAAzB;AACA,MAAM;EAAEI;AAAF,IAAgBN,YAAtB;AACA,MAAM;EAAEO;AAAF,IAAeN,KAArB;AAEA,MAAMO,OAAO,GAAG,IAAIT,OAAJ,CAAY,sBAAZ,CAAhB;AAEAS,OAAO,CACJC,WADH,CACe,kBADf,EAEGC,UAFH,CAEc,YAFd,EAE4B,MAF5B,EAGGC,kBAHH,GAIGC,WAJH,CAIeR,MAAM,CAACS,aAJtB,EAKGD,WALH,CAKeR,MAAM,CAACU,aALtB,EAMGF,WANH,CAMeR,MAAM,CAACW,YANtB,EAOGH,WAPH,CAOeR,MAAM,CAACY,gBAPtB,EAQGC,SARH,CAQab,MAAM,CAACc,gBARpB,EASGD,SATH,CASab,MAAM,CAACe,cATpB,EAUGC,MAVH,EAWI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CtB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAlB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACAnB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACApB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACArB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA9B,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM7B,SAAS,EAAnB,EAAuB;IACrB8B,OAAO,CAACC,GAAR,CACG,+BAA8BlC,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBW,QAAtB,EAAiC,KADlE;IAGA/B,QAAQ,CAACF,YAAY,CAACF,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBW,QAAtB,EAAD,CAAb,CAAR;EACD;AACF,CAzBL,CA0BI;AA1BJ;AA6BA9B,OAAO,CAAC+B,KAAR"}
1
+ {"version":3,"file":"realm-describe.js","names":["Command","Authenticate","Realm","Utils","state","common","printMessage","getRealmName","getTokens","describe","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","getRealm","parse"],"sources":["cli/realm/realm-describe.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, Realm, Utils, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage } from '../../utils/Console';\n\nconst { getRealmName } = Utils;\nconst { getTokens } = Authenticate;\nconst { describe } = Realm;\n\nconst program = new Command('frodo realm describe');\n\nprogram\n .description('Describe realms.')\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 .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 printMessage(\n `Retrieving details of realm ${state.default.session.getRealm()}...`\n );\n describe(getRealmName(state.default.session.getRealm()));\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAT,QAAwB,WAAxB;AACA,SAASC,YAAT,EAAuBC,KAAvB,EAA8BC,KAA9B,EAAqCC,KAArC,QAAkD,uBAAlD;AACA,OAAO,KAAKC,MAAZ,MAAwB,eAAxB;AACA,SAASC,YAAT,QAA6B,qBAA7B;AAEA,MAAM;EAAEC;AAAF,IAAmBJ,KAAzB;AACA,MAAM;EAAEK;AAAF,IAAgBP,YAAtB;AACA,MAAM;EAAEQ;AAAF,IAAeP,KAArB;AAEA,MAAMQ,OAAO,GAAG,IAAIV,OAAJ,CAAY,sBAAZ,CAAhB;AAEAU,OAAO,CACJC,WADH,CACe,kBADf,EAEGC,UAFH,CAEc,YAFd,EAE4B,MAF5B,EAGGC,kBAHH,GAIGC,WAJH,CAIeT,MAAM,CAACU,aAJtB,EAKGD,WALH,CAKeT,MAAM,CAACW,aALtB,EAMGF,WANH,CAMeT,MAAM,CAACY,YANtB,EAOGH,WAPH,CAOeT,MAAM,CAACa,gBAPtB,EAQGC,SARH,CAQad,MAAM,CAACe,gBARpB,EASGD,SATH,CASad,MAAM,CAACgB,cATpB,EAUGC,MAVH,EAWI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CvB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAnB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACApB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACArB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACAtB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA/B,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM7B,SAAS,EAAnB,EAAuB;IACrBF,YAAY,CACT,+BAA8BF,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBS,QAAtB,EAAiC,KADtD,CAAZ;IAGA7B,QAAQ,CAACF,YAAY,CAACH,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBS,QAAtB,EAAD,CAAb,CAAR;EACD;AACF,CAzBL,CA0BI;AA1BJ;AA6BA5B,OAAO,CAAC6B,KAAR"}
@@ -1,6 +1,7 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import { Authenticate, Realm, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
3
+ import * as common from '../cmd_common';
4
+ import { printMessage } from '../../utils/Console';
4
5
  const {
5
6
  listRealms
6
7
  } = Realm;
@@ -18,7 +19,7 @@ async (host, realm, user, password, options) => {
18
19
  state.default.session.setAllowInsecureConnection(options.insecure);
19
20
 
20
21
  if (await getTokens()) {
21
- console.log('Listing all realms...');
22
+ printMessage('Listing all realms...');
22
23
  await listRealms(options.long);
23
24
  }
24
25
  } // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"realm-list.js","names":["Command","Option","Authenticate","Realm","state","common","listRealms","getTokens","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","long","parse"],"sources":["cli/realm/realm-list.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { listRealms } = Realm;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo realm list');\n\nprogram\n .description('List realms.')\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 all 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('Listing all realms...');\n await listRealms(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,IAAiBH,KAAvB;AACA,MAAM;EAAEI;AAAF,IAAgBL,YAAtB;AAEA,MAAMM,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,uBAAzB,EAAkDmB,OAAlD,CAA0D,KAA1D,EAAiE,OAAjE,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,MAAM5B,SAAS,EAAnB,EAAuB;IACrB6B,OAAO,CAACC,GAAR,CAAY,uBAAZ;IACA,MAAM/B,UAAU,CAACoB,OAAO,CAACY,IAAT,CAAhB;EACD;AACF,CA1BL,CA2BI;AA3BJ;AA8BA9B,OAAO,CAAC+B,KAAR"}
1
+ {"version":3,"file":"realm-list.js","names":["Command","Option","Authenticate","Realm","state","common","printMessage","listRealms","getTokens","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","long","parse"],"sources":["cli/realm/realm-list.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage } from '../../utils/Console';\n\nconst { listRealms } = Realm;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo realm list');\n\nprogram\n .description('List realms.')\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 all 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 printMessage('Listing all realms...');\n await listRealms(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,eAAxB;AACA,SAASC,YAAT,QAA6B,qBAA7B;AAEA,MAAM;EAAEC;AAAF,IAAiBJ,KAAvB;AACA,MAAM;EAAEK;AAAF,IAAgBN,YAAtB;AAEA,MAAMO,OAAO,GAAG,IAAIT,OAAJ,CAAY,kBAAZ,CAAhB;AAEAS,OAAO,CACJC,WADH,CACe,cADf,EAEGC,UAFH,CAEc,YAFd,EAE4B,MAF5B,EAGGC,kBAHH,GAIGC,WAJH,CAIeR,MAAM,CAACS,aAJtB,EAKGD,WALH,CAKeR,MAAM,CAACU,aALtB,EAMGF,WANH,CAMeR,MAAM,CAACW,YANtB,EAOGH,WAPH,CAOeR,MAAM,CAACY,gBAPtB,EAQGC,SARH,CAQab,MAAM,CAACc,gBARpB,EASGD,SATH,CASab,MAAM,CAACe,cATpB,EAUGF,SAVH,CAWI,IAAIjB,MAAJ,CAAW,YAAX,EAAyB,uBAAzB,EAAkDoB,OAAlD,CAA0D,KAA1D,EAAiE,OAAjE,CAXJ,EAaGC,MAbH,EAcI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CvB,KAAK,CAACiB,OAAN,CAAcO,OAAd,CAAsBC,SAAtB,CAAgCN,IAAhC;EACAnB,KAAK,CAACiB,OAAN,CAAcO,OAAd,CAAsBE,QAAtB,CAA+BN,KAA/B;EACApB,KAAK,CAACiB,OAAN,CAAcO,OAAd,CAAsBG,WAAtB,CAAkCN,IAAlC;EACArB,KAAK,CAACiB,OAAN,CAAcO,OAAd,CAAsBI,WAAtB,CAAkCN,QAAlC;EACAtB,KAAK,CAACiB,OAAN,CAAcO,OAAd,CAAsBK,iBAAtB,CAAwCN,OAAO,CAACO,IAAhD;EACA9B,KAAK,CAACiB,OAAN,CAAcO,OAAd,CAAsBO,0BAAtB,CAAiDR,OAAO,CAACS,QAAzD;;EACA,IAAI,MAAM5B,SAAS,EAAnB,EAAuB;IACrBF,YAAY,CAAC,uBAAD,CAAZ;IACA,MAAMC,UAAU,CAACoB,OAAO,CAACU,IAAT,CAAhB;EACD;AACF,CA1BL,CA2BI;AA3BJ;AA8BA5B,OAAO,CAAC6B,KAAR"}
@@ -1,6 +1,7 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import { Authenticate, Realm, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
3
+ import * as common from '../cmd_common';
4
+ import { printMessage } from '../../utils/Console';
4
5
  const {
5
6
  getTokens
6
7
  } = Authenticate;
@@ -18,7 +19,7 @@ async (host, realm, user, password, options) => {
18
19
  state.default.session.setAllowInsecureConnection(options.insecure);
19
20
 
20
21
  if (await getTokens()) {
21
- console.log(`Removing custom DNS domain ${options.domain} from realm ${state.default.session.getRealm()}...`);
22
+ printMessage(`Removing custom DNS domain ${options.domain} from realm ${state.default.session.getRealm()}...`);
22
23
  await removeCustomDomain(state.default.session.getRealm(), options.domain);
23
24
  }
24
25
  } // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"realm-remove-custom-domain.js","names":["Command","Option","Authenticate","Realm","state","common","getTokens","removeCustomDomain","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","makeOptionMandatory","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","console","log","domain","getRealm","parse"],"sources":["cli/realm/realm-remove-custom-domain.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\nconst { removeCustomDomain } = Realm;\n\nconst program = new Command('frodo realm remove-custom-domain');\n\nprogram\n .description('Remove custom domain (realm DNS alias).')\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 '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\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 `Removing custom DNS domain ${\n options.domain\n } from realm ${state.default.session.getRealm()}...`\n );\n await removeCustomDomain(\n state.default.session.getRealm(),\n options.domain\n );\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,IAAyBJ,KAA/B;AAEA,MAAMK,OAAO,GAAG,IAAIR,OAAJ,CAAY,kCAAZ,CAAhB;AAEAQ,OAAO,CACJC,WADH,CACe,yCADf,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,CACE,qBADF,EAEE,yBAFF,EAGEmB,mBAHF,EAXJ,EAgBGC,MAhBH,EAiBI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CtB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAlB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACAnB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACApB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACArB,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA9B,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM9B,SAAS,EAAnB,EAAuB;IACrB+B,OAAO,CAACC,GAAR,CACG,8BACCZ,OAAO,CAACa,MACT,eAAcnC,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBY,QAAtB,EAAiC,KAHlD;IAKA,MAAMjC,kBAAkB,CACtBH,KAAK,CAACuB,OAAN,CAAcC,OAAd,CAAsBY,QAAtB,EADsB,EAEtBd,OAAO,CAACa,MAFc,CAAxB;EAID;AACF,CApCL,CAqCI;AArCJ;AAwCA/B,OAAO,CAACiC,KAAR"}
1
+ {"version":3,"file":"realm-remove-custom-domain.js","names":["Command","Option","Authenticate","Realm","state","common","printMessage","getTokens","removeCustomDomain","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","makeOptionMandatory","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","domain","getRealm","parse"],"sources":["cli/realm/realm-remove-custom-domain.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Realm, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common';\nimport { printMessage } from '../../utils/Console';\n\nconst { getTokens } = Authenticate;\nconst { removeCustomDomain } = Realm;\n\nconst program = new Command('frodo realm remove-custom-domain');\n\nprogram\n .description('Remove custom domain (realm DNS alias).')\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 '-d, --domain <name>',\n 'Custom DNS domain name.'\n ).makeOptionMandatory()\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 printMessage(\n `Removing custom DNS domain ${\n options.domain\n } from realm ${state.default.session.getRealm()}...`\n );\n await removeCustomDomain(\n state.default.session.getRealm(),\n options.domain\n );\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,eAAxB;AACA,SAASC,YAAT,QAA6B,qBAA7B;AAEA,MAAM;EAAEC;AAAF,IAAgBL,YAAtB;AACA,MAAM;EAAEM;AAAF,IAAyBL,KAA/B;AAEA,MAAMM,OAAO,GAAG,IAAIT,OAAJ,CAAY,kCAAZ,CAAhB;AAEAS,OAAO,CACJC,WADH,CACe,yCADf,EAEGC,UAFH,CAEc,YAFd,EAE4B,MAF5B,EAGGC,kBAHH,GAIGC,WAJH,CAIeR,MAAM,CAACS,aAJtB,EAKGD,WALH,CAKeR,MAAM,CAACU,aALtB,EAMGF,WANH,CAMeR,MAAM,CAACW,YANtB,EAOGH,WAPH,CAOeR,MAAM,CAACY,gBAPtB,EAQGC,SARH,CAQab,MAAM,CAACc,gBARpB,EASGD,SATH,CASab,MAAM,CAACe,cATpB,EAUGF,SAVH,CAWI,IAAIjB,MAAJ,CACE,qBADF,EAEE,yBAFF,EAGEoB,mBAHF,EAXJ,EAgBGC,MAhBH,EAiBI;AACA,OAAOC,IAAP,EAAaC,KAAb,EAAoBC,IAApB,EAA0BC,QAA1B,EAAoCC,OAApC,KAAgD;EAC9CvB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBC,SAAtB,CAAgCP,IAAhC;EACAnB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBE,QAAtB,CAA+BP,KAA/B;EACApB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBG,WAAtB,CAAkCP,IAAlC;EACArB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBI,WAAtB,CAAkCP,QAAlC;EACAtB,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBK,iBAAtB,CAAwCP,OAAO,CAACQ,IAAhD;EACA/B,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBO,0BAAtB,CAAiDT,OAAO,CAACU,QAAzD;;EACA,IAAI,MAAM9B,SAAS,EAAnB,EAAuB;IACrBD,YAAY,CACT,8BACCqB,OAAO,CAACW,MACT,eAAclC,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBU,QAAtB,EAAiC,KAHtC,CAAZ;IAKA,MAAM/B,kBAAkB,CACtBJ,KAAK,CAACwB,OAAN,CAAcC,OAAd,CAAsBU,QAAtB,EADsB,EAEtBZ,OAAO,CAACW,MAFc,CAAxB;EAID;AACF,CApCL,CAqCI;AArCJ;AAwCA7B,OAAO,CAAC+B,KAAR"}
@@ -1,6 +1,7 @@
1
1
  import { Command, Option } from 'commander';
2
2
  import { Authenticate, CirclesOfTrust, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
3
+ import * as common from '../cmd_common';
4
+ import { printMessage } from '../../utils/Console';
4
5
  const {
5
6
  getTokens
6
7
  } = Authenticate;
@@ -22,19 +23,19 @@ async (host, realm, user, password, options) => {
22
23
  if (await getTokens()) {
23
24
  // export by id/name
24
25
  if (options.cotId) {
25
- console.log(`Exporting circle of trust "${options.cotId}" from realm "${state.default.session.getRealm()}"...`);
26
+ printMessage(`Exporting circle of trust "${options.cotId}" from realm "${state.default.session.getRealm()}"...`);
26
27
  exportCircleOfTrust(options.cotId, options.file);
27
28
  } // --all -a
28
29
  else if (options.all) {
29
- console.log('Exporting all circles of trust to a single file...');
30
+ printMessage('Exporting all circles of trust to a single file...');
30
31
  exportCirclesOfTrustToFile(options.file);
31
32
  } // --all-separate -A
32
33
  else if (options.allSeparate) {
33
- console.log('Exporting all circles of trust to separate files...');
34
+ printMessage('Exporting all circles of trust to separate files...');
34
35
  exportCirclesOfTrustToFiles();
35
36
  } // unrecognized combination of options or no options
36
37
  else {
37
- console.log('Unrecognized combination of options or no options...', 'error');
38
+ printMessage('Unrecognized combination of options or no options...', 'error');
38
39
  program.help();
39
40
  }
40
41
  }