@rockcarver/frodo-cli 0.18.2-9 → 0.19.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 (324) hide show
  1. package/CHANGELOG.md +120 -1
  2. package/esm/app.js +4 -1
  3. package/esm/app.js.map +1 -1
  4. package/esm/cli/FrodoCommand.js +140 -0
  5. package/esm/cli/FrodoCommand.js.map +1 -0
  6. package/esm/cli/_template/something-delete.js +9 -15
  7. package/esm/cli/_template/something-delete.js.map +1 -1
  8. package/esm/cli/_template/something-describe.js +9 -15
  9. package/esm/cli/_template/something-describe.js.map +1 -1
  10. package/esm/cli/_template/something-else-delete.js +9 -15
  11. package/esm/cli/_template/something-else-delete.js.map +1 -1
  12. package/esm/cli/_template/something-else-describe.js +9 -15
  13. package/esm/cli/_template/something-else-describe.js.map +1 -1
  14. package/esm/cli/_template/something-else-export.js +9 -15
  15. package/esm/cli/_template/something-else-export.js.map +1 -1
  16. package/esm/cli/_template/something-else-import.js +9 -15
  17. package/esm/cli/_template/something-else-import.js.map +1 -1
  18. package/esm/cli/_template/something-else-list.js +9 -15
  19. package/esm/cli/_template/something-else-list.js.map +1 -1
  20. package/esm/cli/_template/something-else.js +8 -8
  21. package/esm/cli/_template/something-else.js.map +1 -1
  22. package/esm/cli/_template/something-export.js +9 -15
  23. package/esm/cli/_template/something-export.js.map +1 -1
  24. package/esm/cli/_template/something-import.js +9 -15
  25. package/esm/cli/_template/something-import.js.map +1 -1
  26. package/esm/cli/_template/something-list.js +9 -15
  27. package/esm/cli/_template/something-list.js.map +1 -1
  28. package/esm/cli/_template/something-other-delete.js +9 -15
  29. package/esm/cli/_template/something-other-delete.js.map +1 -1
  30. package/esm/cli/_template/something-other-describe.js +9 -15
  31. package/esm/cli/_template/something-other-describe.js.map +1 -1
  32. package/esm/cli/_template/something-other-export.js +9 -15
  33. package/esm/cli/_template/something-other-export.js.map +1 -1
  34. package/esm/cli/_template/something-other-import.js +9 -15
  35. package/esm/cli/_template/something-other-import.js.map +1 -1
  36. package/esm/cli/_template/something-other-list.js +9 -15
  37. package/esm/cli/_template/something-other-list.js.map +1 -1
  38. package/esm/cli/_template/something-other.js +8 -8
  39. package/esm/cli/_template/something-other.js.map +1 -1
  40. package/esm/cli/_template/something.js +9 -10
  41. package/esm/cli/_template/something.js.map +1 -1
  42. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js +8 -15
  43. package/esm/cli/admin/admin-add-autoid-static-user-mapping.js.map +1 -1
  44. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js +9 -15
  45. package/esm/cli/admin/admin-create-oauth2-client-with-admin-privileges.js.map +1 -1
  46. package/esm/cli/admin/admin-get-access-token.js +9 -15
  47. package/esm/cli/admin/admin-get-access-token.js.map +1 -1
  48. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js +9 -15
  49. package/esm/cli/admin/admin-grant-oauth2-client-admin-privileges.js.map +1 -1
  50. package/esm/cli/admin/admin-hide-generic-extension-attributes.js +9 -15
  51. package/esm/cli/admin/admin-hide-generic-extension-attributes.js.map +1 -1
  52. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js +8 -15
  53. package/esm/cli/admin/admin-list-oauth2-clients-with-admin-privileges.js.map +1 -1
  54. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js +8 -15
  55. package/esm/cli/admin/admin-list-oauth2-clients-with-custom-privileges.js.map +1 -1
  56. package/esm/cli/admin/admin-list-static-user-mappings.js +9 -15
  57. package/esm/cli/admin/admin-list-static-user-mappings.js.map +1 -1
  58. package/esm/cli/admin/admin-remove-static-user-mapping.js +8 -15
  59. package/esm/cli/admin/admin-remove-static-user-mapping.js.map +1 -1
  60. package/esm/cli/admin/admin-repair-org-model.js +9 -15
  61. package/esm/cli/admin/admin-repair-org-model.js.map +1 -1
  62. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js +9 -15
  63. package/esm/cli/admin/admin-revoke-oauth2-client-admin-privileges.js.map +1 -1
  64. package/esm/cli/admin/admin-show-generic-extension-attributes.js +9 -15
  65. package/esm/cli/admin/admin-show-generic-extension-attributes.js.map +1 -1
  66. package/esm/cli/admin/admin.js +14 -15
  67. package/esm/cli/admin/admin.js.map +1 -1
  68. package/esm/cli/agent/agent-delete.js +8 -15
  69. package/esm/cli/agent/agent-delete.js.map +1 -1
  70. package/esm/cli/agent/agent-describe.js +9 -15
  71. package/esm/cli/agent/agent-describe.js.map +1 -1
  72. package/esm/cli/agent/agent-export.js +8 -15
  73. package/esm/cli/agent/agent-export.js.map +1 -1
  74. package/esm/cli/agent/agent-gateway-delete.js +8 -15
  75. package/esm/cli/agent/agent-gateway-delete.js.map +1 -1
  76. package/esm/cli/agent/agent-gateway-describe.js +9 -15
  77. package/esm/cli/agent/agent-gateway-describe.js.map +1 -1
  78. package/esm/cli/agent/agent-gateway-export.js +8 -15
  79. package/esm/cli/agent/agent-gateway-export.js.map +1 -1
  80. package/esm/cli/agent/agent-gateway-import.js +8 -15
  81. package/esm/cli/agent/agent-gateway-import.js.map +1 -1
  82. package/esm/cli/agent/agent-gateway-list.js +9 -15
  83. package/esm/cli/agent/agent-gateway-list.js.map +1 -1
  84. package/esm/cli/agent/agent-gateway.js +8 -8
  85. package/esm/cli/agent/agent-gateway.js.map +1 -1
  86. package/esm/cli/agent/agent-import.js +8 -15
  87. package/esm/cli/agent/agent-import.js.map +1 -1
  88. package/esm/cli/agent/agent-java-delete.js +8 -15
  89. package/esm/cli/agent/agent-java-delete.js.map +1 -1
  90. package/esm/cli/agent/agent-java-describe.js +9 -15
  91. package/esm/cli/agent/agent-java-describe.js.map +1 -1
  92. package/esm/cli/agent/agent-java-export.js +8 -15
  93. package/esm/cli/agent/agent-java-export.js.map +1 -1
  94. package/esm/cli/agent/agent-java-import.js +8 -15
  95. package/esm/cli/agent/agent-java-import.js.map +1 -1
  96. package/esm/cli/agent/agent-java-list.js +9 -15
  97. package/esm/cli/agent/agent-java-list.js.map +1 -1
  98. package/esm/cli/agent/agent-java.js +8 -8
  99. package/esm/cli/agent/agent-java.js.map +1 -1
  100. package/esm/cli/agent/agent-list.js +9 -15
  101. package/esm/cli/agent/agent-list.js.map +1 -1
  102. package/esm/cli/agent/agent-web-delete.js +8 -15
  103. package/esm/cli/agent/agent-web-delete.js.map +1 -1
  104. package/esm/cli/agent/agent-web-describe.js +9 -15
  105. package/esm/cli/agent/agent-web-describe.js.map +1 -1
  106. package/esm/cli/agent/agent-web-export.js +8 -15
  107. package/esm/cli/agent/agent-web-export.js.map +1 -1
  108. package/esm/cli/agent/agent-web-import.js +8 -15
  109. package/esm/cli/agent/agent-web-import.js.map +1 -1
  110. package/esm/cli/agent/agent-web-list.js +9 -15
  111. package/esm/cli/agent/agent-web-list.js.map +1 -1
  112. package/esm/cli/agent/agent-web.js +8 -8
  113. package/esm/cli/agent/agent-web.js.map +1 -1
  114. package/esm/cli/agent/agent.js +10 -11
  115. package/esm/cli/agent/agent.js.map +1 -1
  116. package/esm/cli/app/app-delete.js +9 -12
  117. package/esm/cli/app/app-delete.js.map +1 -1
  118. package/esm/cli/app/app-describe.js +9 -12
  119. package/esm/cli/app/app-describe.js.map +1 -1
  120. package/esm/cli/app/app-export.js +28 -34
  121. package/esm/cli/app/app-export.js.map +1 -1
  122. package/esm/cli/app/app-import.js +11 -14
  123. package/esm/cli/app/app-import.js.map +1 -1
  124. package/esm/cli/app/app-list.js +11 -14
  125. package/esm/cli/app/app-list.js.map +1 -1
  126. package/esm/cli/app/app.js +8 -10
  127. package/esm/cli/app/app.js.map +1 -1
  128. package/esm/cli/conn/conn-delete.js +5 -5
  129. package/esm/cli/conn/conn-delete.js.map +1 -1
  130. package/esm/cli/conn/conn-describe.js +6 -5
  131. package/esm/cli/conn/conn-describe.js.map +1 -1
  132. package/esm/cli/conn/conn-list.js +6 -8
  133. package/esm/cli/conn/conn-list.js.map +1 -1
  134. package/esm/cli/conn/conn-save.js +72 -0
  135. package/esm/cli/conn/conn-save.js.map +1 -0
  136. package/esm/cli/conn/conn.js +10 -8
  137. package/esm/cli/conn/conn.js.map +1 -1
  138. package/esm/cli/email/email-template-export.js +27 -33
  139. package/esm/cli/email/email-template-export.js.map +1 -1
  140. package/esm/cli/email/email-template-import.js +33 -39
  141. package/esm/cli/email/email-template-import.js.map +1 -1
  142. package/esm/cli/email/email-template-list.js +11 -14
  143. package/esm/cli/email/email-template-list.js.map +1 -1
  144. package/esm/cli/email/email-template.js +6 -6
  145. package/esm/cli/email/email-template.js.map +1 -1
  146. package/esm/cli/email/email.js +2 -2
  147. package/esm/cli/email/email.js.map +1 -1
  148. package/esm/cli/esv/esv-apply.js +9 -12
  149. package/esm/cli/esv/esv-apply.js.map +1 -1
  150. package/esm/cli/esv/esv-secret-create.js +11 -14
  151. package/esm/cli/esv/esv-secret-create.js.map +1 -1
  152. package/esm/cli/esv/esv-secret-delete.js +23 -29
  153. package/esm/cli/esv/esv-secret-delete.js.map +1 -1
  154. package/esm/cli/esv/esv-secret-describe.js +11 -14
  155. package/esm/cli/esv/esv-secret-describe.js.map +1 -1
  156. package/esm/cli/esv/esv-secret-export.js +9 -12
  157. package/esm/cli/esv/esv-secret-export.js.map +1 -1
  158. package/esm/cli/esv/esv-secret-import.js +9 -12
  159. package/esm/cli/esv/esv-secret-import.js.map +1 -1
  160. package/esm/cli/esv/esv-secret-list.js +11 -14
  161. package/esm/cli/esv/esv-secret-list.js.map +1 -1
  162. package/esm/cli/esv/esv-secret-set.js +11 -14
  163. package/esm/cli/esv/esv-secret-set.js.map +1 -1
  164. package/esm/cli/esv/esv-secret-version-activate.js +18 -24
  165. package/esm/cli/esv/esv-secret-version-activate.js.map +1 -1
  166. package/esm/cli/esv/esv-secret-version-create.js +11 -14
  167. package/esm/cli/esv/esv-secret-version-create.js.map +1 -1
  168. package/esm/cli/esv/esv-secret-version-deactivate.js +18 -24
  169. package/esm/cli/esv/esv-secret-version-deactivate.js.map +1 -1
  170. package/esm/cli/esv/esv-secret-version-delete.js +23 -29
  171. package/esm/cli/esv/esv-secret-version-delete.js.map +1 -1
  172. package/esm/cli/esv/esv-secret-version-list.js +11 -14
  173. package/esm/cli/esv/esv-secret-version-list.js.map +1 -1
  174. package/esm/cli/esv/esv-secret-version.js +8 -8
  175. package/esm/cli/esv/esv-secret-version.js.map +1 -1
  176. package/esm/cli/esv/esv-secret.js +11 -11
  177. package/esm/cli/esv/esv-secret.js.map +1 -1
  178. package/esm/cli/esv/esv-variable-create.js +10 -14
  179. package/esm/cli/esv/esv-variable-create.js.map +1 -1
  180. package/esm/cli/esv/esv-variable-delete.js +23 -29
  181. package/esm/cli/esv/esv-variable-delete.js.map +1 -1
  182. package/esm/cli/esv/esv-variable-describe.js +11 -14
  183. package/esm/cli/esv/esv-variable-describe.js.map +1 -1
  184. package/esm/cli/esv/esv-variable-export.js +9 -12
  185. package/esm/cli/esv/esv-variable-export.js.map +1 -1
  186. package/esm/cli/esv/esv-variable-import.js +9 -12
  187. package/esm/cli/esv/esv-variable-import.js.map +1 -1
  188. package/esm/cli/esv/esv-variable-list.js +11 -14
  189. package/esm/cli/esv/esv-variable-list.js.map +1 -1
  190. package/esm/cli/esv/esv-variable-set.js +19 -26
  191. package/esm/cli/esv/esv-variable-set.js.map +1 -1
  192. package/esm/cli/esv/esv-variable.js +10 -10
  193. package/esm/cli/esv/esv-variable.js.map +1 -1
  194. package/esm/cli/esv/esv.js +5 -6
  195. package/esm/cli/esv/esv.js.map +1 -1
  196. package/esm/cli/idm/idm-count.js +12 -17
  197. package/esm/cli/idm/idm-count.js.map +1 -1
  198. package/esm/cli/idm/idm-export.js +29 -39
  199. package/esm/cli/idm/idm-export.js.map +1 -1
  200. package/esm/cli/idm/idm-import.js +29 -39
  201. package/esm/cli/idm/idm-import.js.map +1 -1
  202. package/esm/cli/idm/idm-list.js +11 -17
  203. package/esm/cli/idm/idm-list.js.map +1 -1
  204. package/esm/cli/idm/idm.js +6 -9
  205. package/esm/cli/idm/idm.js.map +1 -1
  206. package/esm/cli/idp/idp-export.js +11 -15
  207. package/esm/cli/idp/idp-export.js.map +1 -1
  208. package/esm/cli/idp/idp-import.js +32 -38
  209. package/esm/cli/idp/idp-import.js.map +1 -1
  210. package/esm/cli/idp/idp-list.js +9 -13
  211. package/esm/cli/idp/idp-list.js.map +1 -1
  212. package/esm/cli/idp/idp.js +5 -6
  213. package/esm/cli/idp/idp.js.map +1 -1
  214. package/esm/cli/info/info.js +19 -20
  215. package/esm/cli/info/info.js.map +1 -1
  216. package/esm/cli/journey/journey-delete.js +22 -28
  217. package/esm/cli/journey/journey-delete.js.map +1 -1
  218. package/esm/cli/journey/journey-describe.js +12 -19
  219. package/esm/cli/journey/journey-describe.js.map +1 -1
  220. package/esm/cli/journey/journey-disable.js +20 -26
  221. package/esm/cli/journey/journey-disable.js.map +1 -1
  222. package/esm/cli/journey/journey-enable.js +20 -26
  223. package/esm/cli/journey/journey-enable.js.map +1 -1
  224. package/esm/cli/journey/journey-export.js +37 -45
  225. package/esm/cli/journey/journey-export.js.map +1 -1
  226. package/esm/cli/journey/journey-import.js +44 -52
  227. package/esm/cli/journey/journey-import.js.map +1 -1
  228. package/esm/cli/journey/journey-list.js +10 -13
  229. package/esm/cli/journey/journey-list.js.map +1 -1
  230. package/esm/cli/journey/journey-prune.js +9 -13
  231. package/esm/cli/journey/journey-prune.js.map +1 -1
  232. package/esm/cli/journey/journey.js +10 -11
  233. package/esm/cli/journey/journey.js.map +1 -1
  234. package/esm/cli/logging/logs-fetch.js +17 -19
  235. package/esm/cli/logging/logs-fetch.js.map +1 -1
  236. package/esm/cli/logging/logs-list.js +19 -25
  237. package/esm/cli/logging/logs-list.js.map +1 -1
  238. package/esm/cli/logging/logs-tail.js +17 -19
  239. package/esm/cli/logging/logs-tail.js.map +1 -1
  240. package/esm/cli/logging/logs.js +7 -6
  241. package/esm/cli/logging/logs.js.map +1 -1
  242. package/esm/cli/realm/realm-add-custom-domain.js +11 -14
  243. package/esm/cli/realm/realm-add-custom-domain.js.map +1 -1
  244. package/esm/cli/realm/realm-describe.js +10 -14
  245. package/esm/cli/realm/realm-describe.js.map +1 -1
  246. package/esm/cli/realm/realm-list.js +11 -14
  247. package/esm/cli/realm/realm-list.js.map +1 -1
  248. package/esm/cli/realm/realm-remove-custom-domain.js +11 -14
  249. package/esm/cli/realm/realm-remove-custom-domain.js.map +1 -1
  250. package/esm/cli/realm/realm.js +7 -8
  251. package/esm/cli/realm/realm.js.map +1 -1
  252. package/esm/cli/saml/saml-cot-export.js +27 -36
  253. package/esm/cli/saml/saml-cot-export.js.map +1 -1
  254. package/esm/cli/saml/saml-cot-import.js +32 -41
  255. package/esm/cli/saml/saml-cot-import.js.map +1 -1
  256. package/esm/cli/saml/saml-cot-list.js +10 -16
  257. package/esm/cli/saml/saml-cot-list.js.map +1 -1
  258. package/esm/cli/saml/saml-cot.js +6 -6
  259. package/esm/cli/saml/saml-cot.js.map +1 -1
  260. package/esm/cli/saml/saml-delete.js +8 -15
  261. package/esm/cli/saml/saml-delete.js.map +1 -1
  262. package/esm/cli/saml/saml-describe.js +10 -16
  263. package/esm/cli/saml/saml-describe.js.map +1 -1
  264. package/esm/cli/saml/saml-export.js +9 -16
  265. package/esm/cli/saml/saml-export.js.map +1 -1
  266. package/esm/cli/saml/saml-import.js +45 -54
  267. package/esm/cli/saml/saml-import.js.map +1 -1
  268. package/esm/cli/saml/saml-list.js +11 -17
  269. package/esm/cli/saml/saml-list.js.map +1 -1
  270. package/esm/cli/saml/saml-metadata-export.js +21 -30
  271. package/esm/cli/saml/saml-metadata-export.js.map +1 -1
  272. package/esm/cli/saml/saml-metadata.js +4 -4
  273. package/esm/cli/saml/saml-metadata.js.map +1 -1
  274. package/esm/cli/saml/saml.js +9 -10
  275. package/esm/cli/saml/saml.js.map +1 -1
  276. package/esm/cli/script/script-delete.js +9 -12
  277. package/esm/cli/script/script-delete.js.map +1 -1
  278. package/esm/cli/script/script-describe.js +9 -12
  279. package/esm/cli/script/script-describe.js.map +1 -1
  280. package/esm/cli/script/script-export.js +28 -34
  281. package/esm/cli/script/script-export.js.map +1 -1
  282. package/esm/cli/script/script-import.js +10 -13
  283. package/esm/cli/script/script-import.js.map +1 -1
  284. package/esm/cli/script/script-list.js +10 -13
  285. package/esm/cli/script/script-list.js.map +1 -1
  286. package/esm/cli/script/script.js +7 -8
  287. package/esm/cli/script/script.js.map +1 -1
  288. package/esm/cli/service/service-delete.js +10 -16
  289. package/esm/cli/service/service-delete.js.map +1 -1
  290. package/esm/cli/service/service-export.js +12 -17
  291. package/esm/cli/service/service-export.js.map +1 -1
  292. package/esm/cli/service/service-import.js +12 -18
  293. package/esm/cli/service/service-import.js.map +1 -1
  294. package/esm/cli/service/service-list.js +9 -15
  295. package/esm/cli/service/service-list.js.map +1 -1
  296. package/esm/cli/service/service.js +6 -7
  297. package/esm/cli/service/service.js.map +1 -1
  298. package/esm/cli/theme/theme-delete.js +12 -19
  299. package/esm/cli/theme/theme-delete.js.map +1 -1
  300. package/esm/cli/theme/theme-export.js +12 -19
  301. package/esm/cli/theme/theme-export.js.map +1 -1
  302. package/esm/cli/theme/theme-import.js +14 -21
  303. package/esm/cli/theme/theme-import.js.map +1 -1
  304. package/esm/cli/theme/theme-list.js +10 -16
  305. package/esm/cli/theme/theme-list.js.map +1 -1
  306. package/esm/cli/theme/theme.js +6 -7
  307. package/esm/cli/theme/theme.js.map +1 -1
  308. package/esm/ops/ConnectionProfileOps.js +30 -0
  309. package/esm/ops/ConnectionProfileOps.js.map +1 -0
  310. package/esm/ops/IdmOps.js +317 -0
  311. package/esm/ops/IdmOps.js.map +1 -0
  312. package/esm/ops/JourneyOps.js +2 -1
  313. package/esm/ops/JourneyOps.js.map +1 -1
  314. package/esm/ops/ServiceOps.js +20 -20
  315. package/esm/ops/ServiceOps.js.map +1 -1
  316. package/esm/utils/Console.js +15 -25
  317. package/esm/utils/Console.js.map +1 -1
  318. package/package.json +6 -6
  319. package/esm/cli/cmd_common.js +0 -79
  320. package/esm/cli/cmd_common.js.map +0 -1
  321. package/esm/cli/conn/conn-add.js +0 -37
  322. package/esm/cli/conn/conn-add.js.map +0 -1
  323. package/esm/cli/journey/journey-delete.e2e.test_.js.map +0 -1
  324. package/esm/cli/journey/journey-list.e2e.test_.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"something-other-import.js","names":["Command","Option","Authenticate","state","common","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","parse"],"sources":["cli/_template/something-other-import.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo something other import');\n\nprogram\n .description('Import other.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(\n new Option(\n '-i, --other-id <other-id>',\n '[Other] id. If specified, only one [other] is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all [others] from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all [others] from separate files (*.[other].json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n // code goes here\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,WAAW;AAC3C,SAASC,YAAY,EAAEC,KAAK,QAAQ,uBAAuB;AAC3D,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAE1C,MAAM;EAAEC;AAAU,CAAC,GAAGH,YAAY;AAElC,MAAMI,OAAO,GAAG,IAAIN,OAAO,CAAC,8BAA8B,CAAC;AAE3DM,OAAO,CACJC,WAAW,CAAC,eAAe,CAAC,CAC5BC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACN,MAAM,CAACO,aAAa,CAAC,CACjCD,WAAW,CAACN,MAAM,CAACQ,aAAa,CAAC,CACjCF,WAAW,CAACN,MAAM,CAACS,YAAY,CAAC,CAChCH,WAAW,CAACN,MAAM,CAACU,gBAAgB,CAAC,CACpCC,SAAS,CAACX,MAAM,CAACY,gBAAgB,CAAC,CAClCD,SAAS,CAACX,MAAM,CAACa,cAAc,CAAC,CAChCF,SAAS,CAACX,MAAM,CAACc,aAAa,CAAC,CAC/BH,SAAS,CAACX,MAAM,CAACe,WAAW,CAAC,CAC7BJ,SAAS,CAACX,MAAM,CAACgB,eAAe,CAAC,CACjCL,SAAS,CACR,IAAId,MAAM,CACR,2BAA2B,EAC3B,+FAA+F,CAChG,CACF,CACAc,SAAS,CAAC,IAAId,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC,CACzEc,SAAS,CACR,IAAId,MAAM,CACR,WAAW,EACX,wDAAwD,CACzD,CACF,CACAc,SAAS,CACR,IAAId,MAAM,CACR,oBAAoB,EACpB,2GAA2G,CAC5G,CACF,CACAoB,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9CvB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACC,SAAS,CAACP,IAAI,CAAC;EACrCnB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACE,QAAQ,CAACP,KAAK,CAAC;EACrCpB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACG,WAAW,CAACP,IAAI,CAAC;EACvCrB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACI,WAAW,CAACP,QAAQ,CAAC;EAC3CtB,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACK,iBAAiB,CAACP,OAAO,CAACQ,IAAI,CAAC;EACrD/B,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACO,0BAA0B,CAACT,OAAO,CAACU,QAAQ,CAAC;EAClEjC,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACS,UAAU,CAACX,OAAO,CAACY,OAAO,CAAC;EACjDnC,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACW,QAAQ,CAACb,OAAO,CAACc,KAAK,CAAC;EAC7CrC,KAAK,CAACwB,OAAO,CAACC,OAAO,CAACa,YAAY,CAACf,OAAO,CAACgB,SAAS,CAAC;EACrD,IAAI,MAAMrC,SAAS,EAAE,EAAE;IACrB;EAAA;AAEJ;AACA;AAAA,CACD;;AAEHC,OAAO,CAACqC,KAAK,EAAE"}
1
+ {"version":3,"file":"something-other-import.js","names":["FrodoCommand","Option","Authenticate","getTokens","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["cli/_template/something-other-import.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo something other import');\n\nprogram\n .description('Import other.')\n .addOption(\n new Option(\n '-i, --other-id <other-id>',\n '[Other] id. If specified, only one [other] is imported and the options -a and -A are ignored.'\n )\n )\n .addOption(new Option('-f, --file <file>', 'Name of the file to import.'))\n .addOption(\n new Option(\n '-a, --all',\n 'Import all [others] from single file. Ignored with -i.'\n )\n )\n .addOption(\n new Option(\n '-A, --all-separate',\n 'Import all [others] from separate files (*.[other].json) in the current directory. Ignored with -i or -a.'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGD,YAAY;AAElC,MAAME,OAAO,GAAG,IAAIJ,YAAY,CAAC,8BAA8B,CAAC;AAEhEI,OAAO,CACJC,WAAW,CAAC,eAAe,CAAC,CAC5BC,SAAS,CACR,IAAIL,MAAM,CACR,2BAA2B,EAC3B,+FAA+F,CAChG,CACF,CACAK,SAAS,CAAC,IAAIL,MAAM,CAAC,mBAAmB,EAAE,6BAA6B,CAAC,CAAC,CACzEK,SAAS,CACR,IAAIL,MAAM,CACR,WAAW,EACX,wDAAwD,CACzD,CACF,CACAK,SAAS,CACR,IAAIL,MAAM,CACR,oBAAoB,EACpB,2GAA2G,CAC5G,CACF,CACAM,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMV,SAAS,EAAE,EAAE;IACrB;EAAA,CACD,MAAM;IACLY,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHZ,OAAO,CAACa,KAAK,EAAE"}
@@ -1,24 +1,18 @@
1
- import { Command, Option } from 'commander';
2
- import { Authenticate, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
+ import { Option } from 'commander';
3
+ import { Authenticate } from '@rockcarver/frodo-lib';
4
4
  const {
5
5
  getTokens
6
6
  } = Authenticate;
7
- const program = new Command('frodo something other list');
8
- program.description('List other.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
7
+ const program = new FrodoCommand('frodo something other list');
8
+ program.description('List other.').addOption(new Option('-l, --long', 'Long with all fields.').default(false, 'false')).action(
9
9
  // implement command logic inside action handler
10
- async (host, realm, user, password, options) => {
11
- state.default.session.setTenant(host);
12
- state.default.session.setRealm(realm);
13
- state.default.session.setUsername(user);
14
- state.default.session.setPassword(password);
15
- state.default.session.setDeploymentType(options.type);
16
- state.default.session.setAllowInsecureConnection(options.insecure);
17
- state.default.session.setVerbose(options.verbose);
18
- state.default.session.setDebug(options.debug);
19
- state.default.session.setCurlirize(options.curlirize);
10
+ async (host, realm, user, password, options, command) => {
11
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
20
12
  if (await getTokens()) {
21
13
  // code goes here
14
+ } else {
15
+ process.exitCode = 1;
22
16
  }
23
17
  }
24
18
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"something-other-list.js","names":["Command","Option","Authenticate","state","common","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","default","action","host","realm","user","password","options","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","parse"],"sources":["cli/_template/something-other-list.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\n\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo something other list');\n\nprogram\n .description('List other.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\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 state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n // code goes here\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,WAAW;AAC3C,SAASC,YAAY,EAAEC,KAAK,QAAQ,uBAAuB;AAC3D,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAE1C,MAAM;EAAEC;AAAU,CAAC,GAAGH,YAAY;AAElC,MAAMI,OAAO,GAAG,IAAIN,OAAO,CAAC,4BAA4B,CAAC;AAEzDM,OAAO,CACJC,WAAW,CAAC,aAAa,CAAC,CAC1BC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACN,MAAM,CAACO,aAAa,CAAC,CACjCD,WAAW,CAACN,MAAM,CAACQ,aAAa,CAAC,CACjCF,WAAW,CAACN,MAAM,CAACS,YAAY,CAAC,CAChCH,WAAW,CAACN,MAAM,CAACU,gBAAgB,CAAC,CACpCC,SAAS,CAACX,MAAM,CAACY,gBAAgB,CAAC,CAClCD,SAAS,CAACX,MAAM,CAACa,cAAc,CAAC,CAChCF,SAAS,CAACX,MAAM,CAACc,aAAa,CAAC,CAC/BH,SAAS,CAACX,MAAM,CAACe,WAAW,CAAC,CAC7BJ,SAAS,CAACX,MAAM,CAACgB,eAAe,CAAC,CACjCL,SAAS,CACR,IAAId,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACoB,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAC1E,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9CxB,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACC,SAAS,CAACN,IAAI,CAAC;EACrCpB,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACE,QAAQ,CAACN,KAAK,CAAC;EACrCrB,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACG,WAAW,CAACN,IAAI,CAAC;EACvCtB,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACI,WAAW,CAACN,QAAQ,CAAC;EAC3CvB,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACK,iBAAiB,CAACN,OAAO,CAACO,IAAI,CAAC;EACrD/B,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACO,0BAA0B,CAACR,OAAO,CAACS,QAAQ,CAAC;EAClEjC,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACS,UAAU,CAACV,OAAO,CAACW,OAAO,CAAC;EACjDnC,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACW,QAAQ,CAACZ,OAAO,CAACa,KAAK,CAAC;EAC7CrC,KAAK,CAACkB,OAAO,CAACO,OAAO,CAACa,YAAY,CAACd,OAAO,CAACe,SAAS,CAAC;EACrD,IAAI,MAAMrC,SAAS,EAAE,EAAE;IACrB;EAAA;AAEJ;AACA;AAAA,CACD;;AAEHC,OAAO,CAACqC,KAAK,EAAE"}
1
+ {"version":3,"file":"something-other-list.js","names":["FrodoCommand","Option","Authenticate","getTokens","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["cli/_template/something-other-list.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate } from '@rockcarver/frodo-lib';\n\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo something other list');\n\nprogram\n .description('List other.')\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, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n // code goes here\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,QAAQ,uBAAuB;AAEpD,MAAM;EAAEC;AAAU,CAAC,GAAGD,YAAY;AAElC,MAAME,OAAO,GAAG,IAAIJ,YAAY,CAAC,4BAA4B,CAAC;AAE9DI,OAAO,CACJC,WAAW,CAAC,aAAa,CAAC,CAC1BC,SAAS,CACR,IAAIL,MAAM,CAAC,YAAY,EAAE,uBAAuB,CAAC,CAACM,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAC1E,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMX,SAAS,EAAE,EAAE;IACrB;EAAA,CACD,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHb,OAAO,CAACc,KAAK,EAAE"}
@@ -1,10 +1,10 @@
1
- import { Command } from 'commander';
2
- const program = new Command('frodo something other');
3
- program.description('Manage other.').helpOption('-h, --help', 'Help').showHelpAfterError();
4
- program.command('list', 'List other.').showHelpAfterError();
5
- program.command('describe', 'Describe other.').showHelpAfterError();
6
- program.command('export', 'Export other.').showHelpAfterError();
7
- program.command('import', 'Import other.').showHelpAfterError();
8
- program.command('delete', 'Delete other.').showHelpAfterError();
1
+ import { FrodoStubCommand } from '../FrodoCommand';
2
+ const program = new FrodoStubCommand('frodo something other');
3
+ program.description('Manage other.');
4
+ program.command('list', 'List other.');
5
+ program.command('describe', 'Describe other.');
6
+ program.command('export', 'Export other.');
7
+ program.command('import', 'Import other.');
8
+ program.command('delete', 'Delete other.');
9
9
  program.parse();
10
10
  //# sourceMappingURL=something-other.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"something-other.js","names":["Command","program","description","helpOption","showHelpAfterError","command","parse"],"sources":["cli/_template/something-other.ts"],"sourcesContent":["import { Command } from 'commander';\n\nconst program = new Command('frodo something other');\n\nprogram\n .description('Manage other.')\n .helpOption('-h, --help', 'Help')\n .showHelpAfterError();\n\nprogram.command('list', 'List other.').showHelpAfterError();\n\nprogram.command('describe', 'Describe other.').showHelpAfterError();\n\nprogram.command('export', 'Export other.').showHelpAfterError();\n\nprogram.command('import', 'Import other.').showHelpAfterError();\n\nprogram.command('delete', 'Delete other.').showHelpAfterError();\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AAEnC,MAAMC,OAAO,GAAG,IAAID,OAAO,CAAC,uBAAuB,CAAC;AAEpDC,OAAO,CACJC,WAAW,CAAC,eAAe,CAAC,CAC5BC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE;AAEvBH,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC,CAACD,kBAAkB,EAAE;AAE3DH,OAAO,CAACI,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC,CAACD,kBAAkB,EAAE;AAEnEH,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAACD,kBAAkB,EAAE;AAE/DH,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAACD,kBAAkB,EAAE;AAE/DH,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC,CAACD,kBAAkB,EAAE;AAE/DH,OAAO,CAACK,KAAK,EAAE"}
1
+ {"version":3,"file":"something-other.js","names":["FrodoStubCommand","program","description","command","parse"],"sources":["cli/_template/something-other.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\n\nconst program = new FrodoStubCommand('frodo something other');\n\nprogram.description('Manage other.');\n\nprogram.command('list', 'List other.');\n\nprogram.command('describe', 'Describe other.');\n\nprogram.command('export', 'Export other.');\n\nprogram.command('import', 'Import other.');\n\nprogram.command('delete', 'Delete other.');\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAElD,MAAMC,OAAO,GAAG,IAAID,gBAAgB,CAAC,uBAAuB,CAAC;AAE7DC,OAAO,CAACC,WAAW,CAAC,eAAe,CAAC;AAEpCD,OAAO,CAACE,OAAO,CAAC,MAAM,EAAE,aAAa,CAAC;AAEtCF,OAAO,CAACE,OAAO,CAAC,UAAU,EAAE,iBAAiB,CAAC;AAE9CF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC;AAE1CF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC;AAE1CF,OAAO,CAACE,OAAO,CAAC,QAAQ,EAAE,eAAe,CAAC;AAE1CF,OAAO,CAACG,KAAK,EAAE"}
@@ -1,17 +1,16 @@
1
- import { Command } from 'commander';
1
+ import { FrodoStubCommand } from '../FrodoCommand';
2
2
  import path from 'path';
3
3
  import { fileURLToPath } from 'url';
4
4
  const __dirname = path.dirname(fileURLToPath(import.meta.url));
5
5
  export default function setup() {
6
- const program = new Command('something').helpOption('-h, --help', 'Help').description('Manage something.').executableDir(__dirname);
7
- program.command('else', 'Manage something else.').showHelpAfterError();
8
- program.command('other', 'Manage something other.').showHelpAfterError();
9
- program.command('list', 'List something.').showHelpAfterError();
10
- program.command('describe', 'Describe something.').showHelpAfterError();
11
- program.command('export', 'Export something.').showHelpAfterError();
12
- program.command('import', 'Import something.').showHelpAfterError();
13
- program.command('delete', 'Delete something.').showHelpAfterError();
14
- program.showHelpAfterError();
6
+ const program = new FrodoStubCommand('something').description('Manage something.').executableDir(__dirname);
7
+ program.command('else', 'Manage something else.');
8
+ program.command('other', 'Manage something other.');
9
+ program.command('list', 'List something.');
10
+ program.command('describe', 'Describe something.');
11
+ program.command('export', 'Export something.');
12
+ program.command('import', 'Import something.');
13
+ program.command('delete', 'Delete something.');
15
14
  return program;
16
15
  }
17
16
  //# sourceMappingURL=something.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"something.js","names":["Command","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","helpOption","description","executableDir","command","showHelpAfterError"],"sources":["cli/_template/something.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('something')\n .helpOption('-h, --help', 'Help')\n .description('Manage something.')\n .executableDir(__dirname);\n\n program.command('else', 'Manage something else.').showHelpAfterError();\n\n program.command('other', 'Manage something other.').showHelpAfterError();\n\n program.command('list', 'List something.').showHelpAfterError();\n\n program.command('describe', 'Describe something.').showHelpAfterError();\n\n program.command('export', 'Export something.').showHelpAfterError();\n\n program.command('import', 'Import something.').showHelpAfterError();\n\n program.command('delete', 'Delete something.').showHelpAfterError();\n\n program.showHelpAfterError();\n return program;\n}\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAK,GAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIT,OAAO,CAAC,WAAW,CAAC,CACrCU,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,WAAW,CAAC,mBAAmB,CAAC,CAChCC,aAAa,CAACT,SAAS,CAAC;EAE3BM,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAACC,kBAAkB,EAAE;EAEtEL,OAAO,CAACI,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC,CAACC,kBAAkB,EAAE;EAExEL,OAAO,CAACI,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAACC,kBAAkB,EAAE;EAE/DL,OAAO,CAACI,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC,CAACC,kBAAkB,EAAE;EAEvEL,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAACC,kBAAkB,EAAE;EAEnEL,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAACC,kBAAkB,EAAE;EAEnEL,OAAO,CAACI,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC,CAACC,kBAAkB,EAAE;EAEnEL,OAAO,CAACK,kBAAkB,EAAE;EAC5B,OAAOL,OAAO;AAChB"}
1
+ {"version":3,"file":"something.js","names":["FrodoStubCommand","path","fileURLToPath","__dirname","dirname","import","meta","url","setup","program","description","executableDir","command"],"sources":["cli/_template/something.ts"],"sourcesContent":["import { FrodoStubCommand } from '../FrodoCommand';\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 FrodoStubCommand('something')\n .description('Manage something.')\n .executableDir(__dirname);\n\n program.command('else', 'Manage something else.');\n\n program.command('other', 'Manage something other.');\n\n program.command('list', 'List something.');\n\n program.command('describe', 'Describe something.');\n\n program.command('export', 'Export something.');\n\n program.command('import', 'Import something.');\n\n program.command('delete', 'Delete something.');\n\n return program;\n}\n"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,iBAAiB;AAClD,OAAOC,IAAI,MAAM,MAAM;AACvB,SAASC,aAAa,QAAQ,KAAK;AAEnC,MAAMC,SAAS,GAAGF,IAAI,CAACG,OAAO,CAACF,aAAa,CAACG,MAAM,CAACC,IAAI,CAACC,GAAG,CAAC,CAAC;AAE9D,eAAe,SAASC,KAAK,GAAG;EAC9B,MAAMC,OAAO,GAAG,IAAIT,gBAAgB,CAAC,WAAW,CAAC,CAC9CU,WAAW,CAAC,mBAAmB,CAAC,CAChCC,aAAa,CAACR,SAAS,CAAC;EAE3BM,OAAO,CAACG,OAAO,CAAC,MAAM,EAAE,wBAAwB,CAAC;EAEjDH,OAAO,CAACG,OAAO,CAAC,OAAO,EAAE,yBAAyB,CAAC;EAEnDH,OAAO,CAACG,OAAO,CAAC,MAAM,EAAE,iBAAiB,CAAC;EAE1CH,OAAO,CAACG,OAAO,CAAC,UAAU,EAAE,qBAAqB,CAAC;EAElDH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;EAE9CH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;EAE9CH,OAAO,CAACG,OAAO,CAAC,QAAQ,EAAE,mBAAmB,CAAC;EAE9C,OAAOH,OAAO;AAChB"}
@@ -1,6 +1,5 @@
1
- import { Command } from 'commander';
2
- import { Authenticate, Admin, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
+ import { Authenticate, Admin } from '@rockcarver/frodo-lib';
4
3
  import { printMessage } from '../../utils/Console.js';
5
4
  const {
6
5
  getTokens
@@ -8,23 +7,17 @@ const {
8
7
  const {
9
8
  addAutoIdStaticUserMapping
10
9
  } = Admin;
11
- const program = new Command('frodo admin add-autoid-static-user-mapping');
12
- program.description('Add AutoId static user mapping to enable dashboards and other AutoId-based functionality.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).action(
10
+ const program = new FrodoCommand('frodo admin add-autoid-static-user-mapping');
11
+ program.description('Add AutoId static user mapping to enable dashboards and other AutoId-based functionality.').action(
13
12
  // implement command logic inside action handler
14
- async (host, realm, user, password, options) => {
15
- state.default.session.setTenant(host);
16
- state.default.session.setRealm(realm);
17
- state.default.session.setUsername(user);
18
- state.default.session.setPassword(password);
19
- state.default.session.setDeploymentType(options.type);
20
- state.default.session.setAllowInsecureConnection(options.insecure);
21
- state.default.session.setVerbose(options.verbose);
22
- state.default.session.setDebug(options.debug);
23
- state.default.session.setCurlirize(options.curlirize);
13
+ async (host, realm, user, password, options, command) => {
14
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
24
15
  if (await getTokens()) {
25
16
  printMessage(`Adding AutoId static user mapping...`);
26
17
  await addAutoIdStaticUserMapping();
27
18
  printMessage('Done.');
19
+ } else {
20
+ process.exitCode = 1;
28
21
  }
29
22
  }
30
23
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"admin-add-autoid-static-user-mapping.js","names":["Command","Authenticate","Admin","state","common","printMessage","getTokens","addAutoIdStaticUserMapping","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","parse"],"sources":["cli/admin/admin-add-autoid-static-user-mapping.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { addAutoIdStaticUserMapping } = Admin;\n\nconst program = new Command('frodo admin add-autoid-static-user-mapping');\n\nprogram\n .description(\n 'Add AutoId static user mapping to enable dashboards and other AutoId-based functionality.'\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 .addOption(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\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 state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n printMessage(`Adding AutoId static user mapping...`);\n await addAutoIdStaticUserMapping();\n printMessage('Done.');\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAC1C,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EAAEM;AAA2B,CAAC,GAAGL,KAAK;AAE5C,MAAMM,OAAO,GAAG,IAAIR,OAAO,CAAC,4CAA4C,CAAC;AAEzEQ,OAAO,CACJC,WAAW,CACV,2FAA2F,CAC5F,CACAC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACR,MAAM,CAACS,aAAa,CAAC,CACjCD,WAAW,CAACR,MAAM,CAACU,aAAa,CAAC,CACjCF,WAAW,CAACR,MAAM,CAACW,YAAY,CAAC,CAChCH,WAAW,CAACR,MAAM,CAACY,gBAAgB,CAAC,CACpCC,SAAS,CAACb,MAAM,CAACc,gBAAgB,CAAC,CAClCD,SAAS,CAACb,MAAM,CAACe,cAAc,CAAC,CAChCF,SAAS,CAACb,MAAM,CAACgB,aAAa,CAAC,CAC/BH,SAAS,CAACb,MAAM,CAACiB,WAAW,CAAC,CAC7BJ,SAAS,CAACb,MAAM,CAACkB,eAAe,CAAC,CACjCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9CzB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACC,SAAS,CAACP,IAAI,CAAC;EACrCrB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACE,QAAQ,CAACP,KAAK,CAAC;EACrCtB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACG,WAAW,CAACP,IAAI,CAAC;EACvCvB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACI,WAAW,CAACP,QAAQ,CAAC;EAC3CxB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACK,iBAAiB,CAACP,OAAO,CAACQ,IAAI,CAAC;EACrDjC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACO,0BAA0B,CAACT,OAAO,CAACU,QAAQ,CAAC;EAClEnC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACS,UAAU,CAACX,OAAO,CAACY,OAAO,CAAC;EACjDrC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACW,QAAQ,CAACb,OAAO,CAACc,KAAK,CAAC;EAC7CvC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACa,YAAY,CAACf,OAAO,CAACgB,SAAS,CAAC;EACrD,IAAI,MAAMtC,SAAS,EAAE,EAAE;IACrBD,YAAY,CAAE,sCAAqC,CAAC;IACpD,MAAME,0BAA0B,EAAE;IAClCF,YAAY,CAAC,OAAO,CAAC;EACvB;AACF;AACA;AAAA,CACD;;AAEHG,OAAO,CAACqC,KAAK,EAAE"}
1
+ {"version":3,"file":"admin-add-autoid-static-user-mapping.js","names":["FrodoCommand","Authenticate","Admin","printMessage","getTokens","addAutoIdStaticUserMapping","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","process","exitCode","parse"],"sources":["cli/admin/admin-add-autoid-static-user-mapping.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Authenticate, Admin } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { addAutoIdStaticUserMapping } = Admin;\n\nconst program = new FrodoCommand('frodo admin add-autoid-static-user-mapping');\n\nprogram\n .description(\n 'Add AutoId static user mapping to enable dashboards and other AutoId-based functionality.'\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(`Adding AutoId static user mapping...`);\n await addAutoIdStaticUserMapping();\n printMessage('Done.');\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,EAAEC,KAAK,QAAQ,uBAAuB;AAC3D,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGH,YAAY;AAClC,MAAM;EAAEI;AAA2B,CAAC,GAAGH,KAAK;AAE5C,MAAMI,OAAO,GAAG,IAAIN,YAAY,CAAC,4CAA4C,CAAC;AAE9EM,OAAO,CACJC,WAAW,CACV,2FAA2F,CAC5F,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMV,SAAS,EAAE,EAAE;IACrBD,YAAY,CAAE,sCAAqC,CAAC;IACpD,MAAME,0BAA0B,EAAE;IAClCF,YAAY,CAAC,OAAO,CAAC;EACvB,CAAC,MAAM;IACLa,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHX,OAAO,CAACY,KAAK,EAAE"}
@@ -1,8 +1,8 @@
1
- import { Command, Option } from 'commander';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
+ import { Option } from 'commander';
2
3
  import { v4 as uuidv4 } from 'uuid';
3
4
  import Table from 'cli-table3';
4
5
  import { Authenticate, Admin, state } from '@rockcarver/frodo-lib';
5
- import * as common from '../cmd_common.js';
6
6
  import { printMessage } from '../../utils/Console.js';
7
7
  const {
8
8
  getTokens
@@ -11,21 +11,13 @@ const {
11
11
  createLongLivedToken,
12
12
  createOAuth2ClientWithAdminPrivileges
13
13
  } = Admin;
14
- const program = new Command('frodo admin create-oauth2-client-with-admin-privileges');
15
- program.description('Create an oauth2 client with admin privileges.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--client-secret [secret]', 'Client secret.')).addOption(new Option('--llt', 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.')).addOption(new Option('--llt-scope [scope]', 'Request the following scope(s). This option only applies if used with the --llt option.').default('fr:idm:*', 'fr:idm:*')).addOption(new Option('--llt-esv [esv]', 'Name of the secret to store the token in. This option only applies if used with the --llt option.').default('esv-admin-token', 'esv-admin-token')).addOption(new Option('--llt-ttl [ttl]', 'Token lifetime (seconds). This option only applies if used with the --llt option.').default(315360000, '315,360,000 seconds (10 years)')).action(
14
+ const program = new FrodoCommand('frodo admin create-oauth2-client-with-admin-privileges');
15
+ program.description('Create an oauth2 client with admin privileges.').addOption(new Option('--client-id [id]', 'Client id.')).addOption(new Option('--client-secret [secret]', 'Client secret.')).addOption(new Option('--llt', 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.')).addOption(new Option('--llt-scope [scope]', 'Request the following scope(s). This option only applies if used with the --llt option.').default('fr:idm:*', 'fr:idm:*')).addOption(new Option('--llt-esv [esv]', 'Name of the secret to store the token in. This option only applies if used with the --llt option.').default('esv-admin-token', 'esv-admin-token')).addOption(new Option('--llt-ttl [ttl]', 'Token lifetime (seconds). This option only applies if used with the --llt option.').default(315360000, '315,360,000 seconds (10 years)')).action(
16
16
  // implement command logic inside action handler
17
- async (host, realm, user, password, options) => {
18
- state.default.session.setTenant(host);
19
- state.default.session.setRealm(realm);
20
- state.default.session.setUsername(user);
21
- state.default.session.setPassword(password);
22
- state.default.session.setDeploymentType(options.type);
23
- state.default.session.setAllowInsecureConnection(options.insecure);
24
- state.default.session.setVerbose(options.verbose);
25
- state.default.session.setDebug(options.debug);
26
- state.default.session.setCurlirize(options.curlirize);
17
+ async (host, realm, user, password, options, command) => {
18
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
27
19
  if (await getTokens()) {
28
- printMessage(`Creating oauth2 client with admin privileges in realm "${state.default.session.getRealm()}"...`);
20
+ printMessage(`Creating oauth2 client with admin privileges in realm "${state.getRealm()}"...`);
29
21
  let clientId = uuidv4();
30
22
  let clientSecret = uuidv4();
31
23
  if (options.clientId) {
@@ -76,6 +68,8 @@ async (host, realm, user, password, options) => {
76
68
  table.push(['Client ID'['brightCyan'], clientId]);
77
69
  table.push(['Client Secret'['brightCyan'], clientSecret]);
78
70
  printMessage(table.toString());
71
+ } else {
72
+ process.exitCode = 1;
79
73
  }
80
74
  }
81
75
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"admin-create-oauth2-client-with-admin-privileges.js","names":["Command","Option","v4","uuidv4","Table","Authenticate","Admin","state","common","printMessage","getTokens","createLongLivedToken","createOAuth2ClientWithAdminPrivileges","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","default","action","host","realm","user","password","options","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","getRealm","clientId","clientSecret","error","table","chars","top","bottom","left","mid","right","style","wordWrap","llt","response","scope","lltEsv","lltTtl","push","secret","expires_on","toString","parse"],"sources":["cli/admin/admin-create-oauth2-client-with-admin-privileges.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { v4 as uuidv4 } from 'uuid';\nimport Table from 'cli-table3';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { createLongLivedToken, createOAuth2ClientWithAdminPrivileges } = Admin;\n\nconst program = new Command(\n 'frodo admin create-oauth2-client-with-admin-privileges'\n);\n\nprogram\n .description('Create an oauth2 client with admin privileges.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(new Option('--client-secret [secret]', 'Client secret.'))\n .addOption(\n new Option(\n '--llt',\n 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.'\n )\n )\n .addOption(\n new Option(\n '--llt-scope [scope]',\n 'Request the following scope(s). This option only applies if used with the --llt option.'\n ).default('fr:idm:*', 'fr:idm:*')\n )\n .addOption(\n new Option(\n '--llt-esv [esv]',\n 'Name of the secret to store the token in. This option only applies if used with the --llt option.'\n ).default('esv-admin-token', 'esv-admin-token')\n )\n .addOption(\n new Option(\n '--llt-ttl [ttl]',\n 'Token lifetime (seconds). This option only applies if used with the --llt option.'\n ).default(315360000, '315,360,000 seconds (10 years)')\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 state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n printMessage(\n `Creating oauth2 client with admin privileges in realm \"${state.default.session.getRealm()}\"...`\n );\n let clientId = uuidv4();\n let clientSecret = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n if (options.clientSecret) {\n clientSecret = options.clientSecret;\n }\n try {\n await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret);\n } catch (error) {\n printMessage(error, 'error');\n }\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n if (options.llt) {\n try {\n const response = await createLongLivedToken(\n clientId,\n clientSecret,\n options.scope,\n options.lltEsv,\n options.lltTtl\n );\n table.push(['Secret Name'['brightCyan'], response.secret]);\n table.push(['Scope'['brightCyan'], response.scope]);\n // table.push(['Token Lifetime'.brightCyan, response.expires_in]);\n table.push(['Expires'['brightCyan'], response.expires_on]);\n } catch (error) {\n printMessage(error, 'error');\n }\n }\n table.push(['Client ID'['brightCyan'], clientId]);\n table.push(['Client Secret'['brightCyan'], clientSecret]);\n printMessage(table.toString());\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,WAAW;AAC3C,SAASC,EAAE,IAAIC,MAAM,QAAQ,MAAM;AACnC,OAAOC,KAAK,MAAM,YAAY;AAC9B,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAC1C,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EAAEM,oBAAoB;EAAEC;AAAsC,CAAC,GAAGN,KAAK;AAE7E,MAAMO,OAAO,GAAG,IAAIb,OAAO,CACzB,wDAAwD,CACzD;AAEDa,OAAO,CACJC,WAAW,CAAC,gDAAgD,CAAC,CAC7DC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACT,MAAM,CAACU,aAAa,CAAC,CACjCD,WAAW,CAACT,MAAM,CAACW,aAAa,CAAC,CACjCF,WAAW,CAACT,MAAM,CAACY,YAAY,CAAC,CAChCH,WAAW,CAACT,MAAM,CAACa,gBAAgB,CAAC,CACpCC,SAAS,CAACd,MAAM,CAACe,gBAAgB,CAAC,CAClCD,SAAS,CAACd,MAAM,CAACgB,cAAc,CAAC,CAChCF,SAAS,CAACd,MAAM,CAACiB,aAAa,CAAC,CAC/BH,SAAS,CAACd,MAAM,CAACkB,WAAW,CAAC,CAC7BJ,SAAS,CAACd,MAAM,CAACmB,eAAe,CAAC,CACjCL,SAAS,CAAC,IAAIrB,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAAC,CACvDqB,SAAS,CAAC,IAAIrB,MAAM,CAAC,0BAA0B,EAAE,gBAAgB,CAAC,CAAC,CACnEqB,SAAS,CACR,IAAIrB,MAAM,CACR,OAAO,EACP,oOAAoO,CACrO,CACF,CACAqB,SAAS,CACR,IAAIrB,MAAM,CACR,qBAAqB,EACrB,yFAAyF,CAC1F,CAAC2B,OAAO,CAAC,UAAU,EAAE,UAAU,CAAC,CAClC,CACAN,SAAS,CACR,IAAIrB,MAAM,CACR,iBAAiB,EACjB,mGAAmG,CACpG,CAAC2B,OAAO,CAAC,iBAAiB,EAAE,iBAAiB,CAAC,CAChD,CACAN,SAAS,CACR,IAAIrB,MAAM,CACR,iBAAiB,EACjB,mFAAmF,CACpF,CAAC2B,OAAO,CAAC,SAAS,EAAE,gCAAgC,CAAC,CACvD,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9C3B,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACC,SAAS,CAACN,IAAI,CAAC;EACrCvB,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACE,QAAQ,CAACN,KAAK,CAAC;EACrCxB,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACG,WAAW,CAACN,IAAI,CAAC;EACvCzB,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACI,WAAW,CAACN,QAAQ,CAAC;EAC3C1B,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACK,iBAAiB,CAACN,OAAO,CAACO,IAAI,CAAC;EACrDlC,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACO,0BAA0B,CAACR,OAAO,CAACS,QAAQ,CAAC;EAClEpC,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACS,UAAU,CAACV,OAAO,CAACW,OAAO,CAAC;EACjDtC,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACW,QAAQ,CAACZ,OAAO,CAACa,KAAK,CAAC;EAC7CxC,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACa,YAAY,CAACd,OAAO,CAACe,SAAS,CAAC;EACrD,IAAI,MAAMvC,SAAS,EAAE,EAAE;IACrBD,YAAY,CACT,0DAAyDF,KAAK,CAACqB,OAAO,CAACO,OAAO,CAACe,QAAQ,EAAG,MAAK,CACjG;IACD,IAAIC,QAAQ,GAAGhD,MAAM,EAAE;IACvB,IAAIiD,YAAY,GAAGjD,MAAM,EAAE;IAC3B,IAAI+B,OAAO,CAACiB,QAAQ,EAAE;MACpBA,QAAQ,GAAGjB,OAAO,CAACiB,QAAQ;IAC7B;IACA,IAAIjB,OAAO,CAACkB,YAAY,EAAE;MACxBA,YAAY,GAAGlB,OAAO,CAACkB,YAAY;IACrC;IACA,IAAI;MACF,MAAMxC,qCAAqC,CAACuC,QAAQ,EAAEC,YAAY,CAAC;IACrE,CAAC,CAAC,OAAOC,KAAK,EAAE;MACd5C,YAAY,CAAC4C,KAAK,EAAE,OAAO,CAAC;IAC9B;IACA,MAAMC,KAAK,GAAG,IAAIlD,KAAK,CAAC;MACtBmD,KAAK,EAAE;QACLC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACb,UAAU,EAAE,EAAE;QACd,WAAW,EAAE,EAAE;QACfC,MAAM,EAAE,EAAE;QACV,YAAY,EAAE,EAAE;QAChB,aAAa,EAAE,EAAE;QACjB,cAAc,EAAE,EAAE;QAClBC,IAAI,EAAE,EAAE;QACR,UAAU,EAAE,EAAE;QACdC,GAAG,EAAE,EAAE;QACP,SAAS,EAAE,EAAE;QACbC,KAAK,EAAE,EAAE;QACT,WAAW,EAAE;MACf,CAAC;MACDC,KAAK,EAAE;QAAE,cAAc,EAAE,CAAC;QAAE,eAAe,EAAE;MAAE,CAAC;MAChDC,QAAQ,EAAE;IACZ,CAAC,CAAC;IACF,IAAI5B,OAAO,CAAC6B,GAAG,EAAE;MACf,IAAI;QACF,MAAMC,QAAQ,GAAG,MAAMrD,oBAAoB,CACzCwC,QAAQ,EACRC,YAAY,EACZlB,OAAO,CAAC+B,KAAK,EACb/B,OAAO,CAACgC,MAAM,EACdhC,OAAO,CAACiC,MAAM,CACf;QACDb,KAAK,CAACc,IAAI,CAAC,CAAC,aAAa,CAAC,YAAY,CAAC,EAAEJ,QAAQ,CAACK,MAAM,CAAC,CAAC;QAC1Df,KAAK,CAACc,IAAI,CAAC,CAAC,OAAO,CAAC,YAAY,CAAC,EAAEJ,QAAQ,CAACC,KAAK,CAAC,CAAC;QACnD;QACAX,KAAK,CAACc,IAAI,CAAC,CAAC,SAAS,CAAC,YAAY,CAAC,EAAEJ,QAAQ,CAACM,UAAU,CAAC,CAAC;MAC5D,CAAC,CAAC,OAAOjB,KAAK,EAAE;QACd5C,YAAY,CAAC4C,KAAK,EAAE,OAAO,CAAC;MAC9B;IACF;IACAC,KAAK,CAACc,IAAI,CAAC,CAAC,WAAW,CAAC,YAAY,CAAC,EAAEjB,QAAQ,CAAC,CAAC;IACjDG,KAAK,CAACc,IAAI,CAAC,CAAC,eAAe,CAAC,YAAY,CAAC,EAAEhB,YAAY,CAAC,CAAC;IACzD3C,YAAY,CAAC6C,KAAK,CAACiB,QAAQ,EAAE,CAAC;EAChC;AACF;AACA;AAAA,CACD;;AAEH1D,OAAO,CAAC2D,KAAK,EAAE"}
1
+ {"version":3,"file":"admin-create-oauth2-client-with-admin-privileges.js","names":["FrodoCommand","Option","v4","uuidv4","Table","Authenticate","Admin","state","printMessage","getTokens","createLongLivedToken","createOAuth2ClientWithAdminPrivileges","program","description","addOption","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","clientId","clientSecret","error","table","chars","top","bottom","left","mid","right","style","wordWrap","llt","response","scope","lltEsv","lltTtl","push","secret","expires_on","toString","process","exitCode","parse"],"sources":["cli/admin/admin-create-oauth2-client-with-admin-privileges.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { v4 as uuidv4 } from 'uuid';\nimport Table from 'cli-table3';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { createLongLivedToken, createOAuth2ClientWithAdminPrivileges } = Admin;\n\nconst program = new FrodoCommand(\n 'frodo admin create-oauth2-client-with-admin-privileges'\n);\n\nprogram\n .description('Create an oauth2 client with admin privileges.')\n .addOption(new Option('--client-id [id]', 'Client id.'))\n .addOption(new Option('--client-secret [secret]', 'Client secret.'))\n .addOption(\n new Option(\n '--llt',\n 'Create a long-lived token and store it in a secret. The default secret name is esv-admin-token and the default token lifetime is 315,360,000 seconds (10 years). Both can be overwritten with the --llt-esv and --llt-ttl options.'\n )\n )\n .addOption(\n new Option(\n '--llt-scope [scope]',\n 'Request the following scope(s). This option only applies if used with the --llt option.'\n ).default('fr:idm:*', 'fr:idm:*')\n )\n .addOption(\n new Option(\n '--llt-esv [esv]',\n 'Name of the secret to store the token in. This option only applies if used with the --llt option.'\n ).default('esv-admin-token', 'esv-admin-token')\n )\n .addOption(\n new Option(\n '--llt-ttl [ttl]',\n 'Token lifetime (seconds). This option only applies if used with the --llt option.'\n ).default(315360000, '315,360,000 seconds (10 years)')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Creating oauth2 client with admin privileges in realm \"${state.getRealm()}\"...`\n );\n let clientId = uuidv4();\n let clientSecret = uuidv4();\n if (options.clientId) {\n clientId = options.clientId;\n }\n if (options.clientSecret) {\n clientSecret = options.clientSecret;\n }\n try {\n await createOAuth2ClientWithAdminPrivileges(clientId, clientSecret);\n } catch (error) {\n printMessage(error, 'error');\n }\n const table = new Table({\n chars: {\n top: '',\n 'top-mid': '',\n 'top-left': '',\n 'top-right': '',\n bottom: '',\n 'bottom-mid': '',\n 'bottom-left': '',\n 'bottom-right': '',\n left: '',\n 'left-mid': '',\n mid: '',\n 'mid-mid': '',\n right: '',\n 'right-mid': '',\n },\n style: { 'padding-left': 0, 'padding-right': 0 },\n wordWrap: true,\n });\n if (options.llt) {\n try {\n const response = await createLongLivedToken(\n clientId,\n clientSecret,\n options.scope,\n options.lltEsv,\n options.lltTtl\n );\n table.push(['Secret Name'['brightCyan'], response.secret]);\n table.push(['Scope'['brightCyan'], response.scope]);\n // table.push(['Token Lifetime'.brightCyan, response.expires_in]);\n table.push(['Expires'['brightCyan'], response.expires_on]);\n } catch (error) {\n printMessage(error, 'error');\n }\n }\n table.push(['Client ID'['brightCyan'], clientId]);\n table.push(['Client Secret'['brightCyan'], clientSecret]);\n printMessage(table.toString());\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { Command, Option } from 'commander';
2
- import { Authenticate, OAuth2OIDCApi, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
+ import { Option } from 'commander';
3
+ import { Authenticate, OAuth2OIDCApi } from '@rockcarver/frodo-lib';
4
4
  import { printMessage } from '../../utils/Console.js';
5
5
  const {
6
6
  clientCredentialsGrant
@@ -8,23 +8,17 @@ const {
8
8
  const {
9
9
  getTokens
10
10
  } = Authenticate;
11
- const program = new Command('frodo admin get-access-token');
12
- program.description('Get an access token using client credentials grant type.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('--client-id [id]', 'Client id.').makeOptionMandatory()).addOption(new Option('--client-secret [secret]', 'Client secret.').makeOptionMandatory()).addOption(new Option('--scope [scope]', 'Request the following scope(s).').default('fr:idm:*', 'fr:idm:*')).action(
11
+ const program = new FrodoCommand('frodo admin get-access-token');
12
+ program.description('Get an access token using client credentials grant type.').addOption(new Option('--client-id [id]', 'Client id.').makeOptionMandatory()).addOption(new Option('--client-secret [secret]', 'Client secret.').makeOptionMandatory()).addOption(new Option('--scope [scope]', 'Request the following scope(s).').default('fr:idm:*', 'fr:idm:*')).action(
13
13
  // implement command logic inside action handler
14
- async (host, realm, user, password, options) => {
15
- state.default.session.setTenant(host);
16
- state.default.session.setRealm(realm);
17
- state.default.session.setUsername(user);
18
- state.default.session.setPassword(password);
19
- state.default.session.setDeploymentType(options.type);
20
- state.default.session.setAllowInsecureConnection(options.insecure);
21
- state.default.session.setVerbose(options.verbose);
22
- state.default.session.setDebug(options.debug);
23
- state.default.session.setCurlirize(options.curlirize);
14
+ async (host, realm, user, password, options, command) => {
15
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
24
16
  if (await getTokens()) {
25
17
  printMessage(`Getting an access token using client "${options.clientId}"...`);
26
18
  const response = (await clientCredentialsGrant(options.clientId, options.clientSecret, options.scope)).data;
27
19
  printMessage(`Token: ${response.access_token}`);
20
+ } else {
21
+ process.exitCode = 1;
28
22
  }
29
23
  }
30
24
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"admin-get-access-token.js","names":["Command","Option","Authenticate","OAuth2OIDCApi","state","common","printMessage","clientCredentialsGrant","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","makeOptionMandatory","default","action","host","realm","user","password","options","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","clientId","response","clientSecret","scope","data","access_token","parse"],"sources":["cli/admin/admin-get-access-token.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, OAuth2OIDCApi, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { clientCredentialsGrant } = OAuth2OIDCApi;\nconst { getTokens } = Authenticate;\n\nconst program = new Command('frodo admin get-access-token');\n\nprogram\n .description('Get an access token using client credentials grant type.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(new Option('--client-id [id]', 'Client id.').makeOptionMandatory())\n .addOption(\n new Option(\n '--client-secret [secret]',\n 'Client secret.'\n ).makeOptionMandatory()\n )\n .addOption(\n new Option('--scope [scope]', 'Request the following scope(s).').default(\n 'fr:idm:*',\n 'fr:idm:*'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options) => {\n state.default.session.setTenant(host);\n state.default.session.setRealm(realm);\n state.default.session.setUsername(user);\n state.default.session.setPassword(password);\n state.default.session.setDeploymentType(options.type);\n state.default.session.setAllowInsecureConnection(options.insecure);\n state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n printMessage(\n `Getting an access token using client \"${options.clientId}\"...`\n );\n const response = (\n await clientCredentialsGrant(\n options.clientId,\n options.clientSecret,\n options.scope\n )\n ).data;\n printMessage(`Token: ${response.access_token}`);\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"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"}
1
+ {"version":3,"file":"admin-get-access-token.js","names":["FrodoCommand","Option","Authenticate","OAuth2OIDCApi","printMessage","clientCredentialsGrant","getTokens","program","description","addOption","makeOptionMandatory","default","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","clientId","response","clientSecret","scope","data","access_token","process","exitCode","parse"],"sources":["cli/admin/admin-get-access-token.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, OAuth2OIDCApi } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { clientCredentialsGrant } = OAuth2OIDCApi;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand('frodo admin get-access-token');\n\nprogram\n .description('Get an access token using client credentials grant type.')\n .addOption(new Option('--client-id [id]', 'Client id.').makeOptionMandatory())\n .addOption(\n new Option(\n '--client-secret [secret]',\n 'Client secret.'\n ).makeOptionMandatory()\n )\n .addOption(\n new Option('--scope [scope]', 'Request the following scope(s).').default(\n 'fr:idm:*',\n 'fr:idm:*'\n )\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Getting an access token using client \"${options.clientId}\"...`\n );\n const response = (\n await clientCredentialsGrant(\n options.clientId,\n options.clientSecret,\n options.scope\n )\n ).data;\n printMessage(`Token: ${response.access_token}`);\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,aAAa,QAAQ,uBAAuB;AACnE,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAuB,CAAC,GAAGF,aAAa;AAChD,MAAM;EAAEG;AAAU,CAAC,GAAGJ,YAAY;AAElC,MAAMK,OAAO,GAAG,IAAIP,YAAY,CAAC,8BAA8B,CAAC;AAEhEO,OAAO,CACJC,WAAW,CAAC,0DAA0D,CAAC,CACvEC,SAAS,CAAC,IAAIR,MAAM,CAAC,kBAAkB,EAAE,YAAY,CAAC,CAACS,mBAAmB,EAAE,CAAC,CAC7ED,SAAS,CACR,IAAIR,MAAM,CACR,0BAA0B,EAC1B,gBAAgB,CACjB,CAACS,mBAAmB,EAAE,CACxB,CACAD,SAAS,CACR,IAAIR,MAAM,CAAC,iBAAiB,EAAE,iCAAiC,CAAC,CAACU,OAAO,CACtE,UAAU,EACV,UAAU,CACX,CACF,CACAC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMZ,SAAS,EAAE,EAAE;IACrBF,YAAY,CACT,yCAAwCa,OAAO,CAACG,QAAS,MAAK,CAChE;IACD,MAAMC,QAAQ,GAAG,CACf,MAAMhB,sBAAsB,CAC1BY,OAAO,CAACG,QAAQ,EAChBH,OAAO,CAACK,YAAY,EACpBL,OAAO,CAACM,KAAK,CACd,EACDC,IAAI;IACNpB,YAAY,CAAE,UAASiB,QAAQ,CAACI,YAAa,EAAC,CAAC;EACjD,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHpB,OAAO,CAACqB,KAAK,EAAE"}
@@ -1,6 +1,6 @@
1
- import { Command, Option } from 'commander';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
+ import { Option } from 'commander';
2
3
  import { Authenticate, Admin, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
4
4
  import { printMessage } from '../../utils/Console.js';
5
5
  const {
6
6
  getTokens
@@ -8,23 +8,17 @@ const {
8
8
  const {
9
9
  grantOAuth2ClientAdminPrivileges
10
10
  } = Admin;
11
- const program = new Command('frodo admin grant-oauth2-client-admin-privileges');
12
- program.description('Grant an oauth2 client admin privileges.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('-t, --target <target name or id>', 'Name of the oauth2 client.')).action(
11
+ const program = new FrodoCommand('frodo admin grant-oauth2-client-admin-privileges');
12
+ program.description('Grant an oauth2 client admin privileges.').addOption(new Option('-t, --target <target name or id>', 'Name of the oauth2 client.')).action(
13
13
  // implement command logic inside action handler
14
- async (host, realm, user, password, options) => {
15
- state.default.session.setTenant(host);
16
- state.default.session.setRealm(realm);
17
- state.default.session.setUsername(user);
18
- state.default.session.setPassword(password);
19
- state.default.session.setDeploymentType(options.type);
20
- state.default.session.setAllowInsecureConnection(options.insecure);
21
- state.default.session.setVerbose(options.verbose);
22
- state.default.session.setDebug(options.debug);
23
- state.default.session.setCurlirize(options.curlirize);
14
+ async (host, realm, user, password, options, command) => {
15
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
24
16
  if (await getTokens()) {
25
- printMessage(`Granting oauth2 client "${options.target}" in realm "${state.default.session.getRealm()}" admin privileges...`);
17
+ printMessage(`Granting oauth2 client "${options.target}" in realm "${state.getRealm()}" admin privileges...`);
26
18
  await grantOAuth2ClientAdminPrivileges(options.target);
27
19
  printMessage('Done.');
20
+ } else {
21
+ process.exitCode = 1;
28
22
  }
29
23
  }
30
24
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"admin-grant-oauth2-client-admin-privileges.js","names":["Command","Option","Authenticate","Admin","state","common","printMessage","getTokens","grantOAuth2ClientAdminPrivileges","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","target","getRealm","parse"],"sources":["cli/admin/admin-grant-oauth2-client-admin-privileges.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { grantOAuth2ClientAdminPrivileges } = Admin;\n\nconst program = new Command('frodo admin grant-oauth2-client-admin-privileges');\n\nprogram\n .description('Grant an oauth2 client admin privileges.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(\n new Option('-t, --target <target name or id>', 'Name of the oauth2 client.')\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 state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n printMessage(\n `Granting oauth2 client \"${\n options.target\n }\" in realm \"${state.default.session.getRealm()}\" admin privileges...`\n );\n await grantOAuth2ClientAdminPrivileges(options.target);\n printMessage('Done.');\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,WAAW;AAC3C,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAC1C,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EAAEM;AAAiC,CAAC,GAAGL,KAAK;AAElD,MAAMM,OAAO,GAAG,IAAIT,OAAO,CAAC,kDAAkD,CAAC;AAE/ES,OAAO,CACJC,WAAW,CAAC,0CAA0C,CAAC,CACvDC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACR,MAAM,CAACS,aAAa,CAAC,CACjCD,WAAW,CAACR,MAAM,CAACU,aAAa,CAAC,CACjCF,WAAW,CAACR,MAAM,CAACW,YAAY,CAAC,CAChCH,WAAW,CAACR,MAAM,CAACY,gBAAgB,CAAC,CACpCC,SAAS,CAACb,MAAM,CAACc,gBAAgB,CAAC,CAClCD,SAAS,CAACb,MAAM,CAACe,cAAc,CAAC,CAChCF,SAAS,CAACb,MAAM,CAACgB,aAAa,CAAC,CAC/BH,SAAS,CAACb,MAAM,CAACiB,WAAW,CAAC,CAC7BJ,SAAS,CAACb,MAAM,CAACkB,eAAe,CAAC,CACjCL,SAAS,CACR,IAAIjB,MAAM,CAAC,kCAAkC,EAAE,4BAA4B,CAAC,CAC7E,CACAuB,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9CzB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACC,SAAS,CAACP,IAAI,CAAC;EACrCrB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACE,QAAQ,CAACP,KAAK,CAAC;EACrCtB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACG,WAAW,CAACP,IAAI,CAAC;EACvCvB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACI,WAAW,CAACP,QAAQ,CAAC;EAC3CxB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACK,iBAAiB,CAACP,OAAO,CAACQ,IAAI,CAAC;EACrDjC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACO,0BAA0B,CAACT,OAAO,CAACU,QAAQ,CAAC;EAClEnC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACS,UAAU,CAACX,OAAO,CAACY,OAAO,CAAC;EACjDrC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACW,QAAQ,CAACb,OAAO,CAACc,KAAK,CAAC;EAC7CvC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACa,YAAY,CAACf,OAAO,CAACgB,SAAS,CAAC;EACrD,IAAI,MAAMtC,SAAS,EAAE,EAAE;IACrBD,YAAY,CACT,2BACCuB,OAAO,CAACiB,MACT,eAAc1C,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACgB,QAAQ,EAAG,uBAAsB,CACvE;IACD,MAAMvC,gCAAgC,CAACqB,OAAO,CAACiB,MAAM,CAAC;IACtDxC,YAAY,CAAC,OAAO,CAAC;EACvB;AACF;AACA;AAAA,CACD;;AAEHG,OAAO,CAACuC,KAAK,EAAE"}
1
+ {"version":3,"file":"admin-grant-oauth2-client-admin-privileges.js","names":["FrodoCommand","Option","Authenticate","Admin","state","printMessage","getTokens","grantOAuth2ClientAdminPrivileges","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","target","getRealm","process","exitCode","parse"],"sources":["cli/admin/admin-grant-oauth2-client-admin-privileges.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { grantOAuth2ClientAdminPrivileges } = Admin;\n\nconst program = new FrodoCommand(\n 'frodo admin grant-oauth2-client-admin-privileges'\n);\n\nprogram\n .description('Grant an oauth2 client admin privileges.')\n .addOption(\n new Option('-t, --target <target name or id>', 'Name of the oauth2 client.')\n )\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Granting oauth2 client \"${\n options.target\n }\" in realm \"${state.getRealm()}\" admin privileges...`\n );\n await grantOAuth2ClientAdminPrivileges(options.target);\n printMessage('Done.');\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGJ,YAAY;AAClC,MAAM;EAAEK;AAAiC,CAAC,GAAGJ,KAAK;AAElD,MAAMK,OAAO,GAAG,IAAIR,YAAY,CAC9B,kDAAkD,CACnD;AAEDQ,OAAO,CACJC,WAAW,CAAC,0CAA0C,CAAC,CACvDC,SAAS,CACR,IAAIT,MAAM,CAAC,kCAAkC,EAAE,4BAA4B,CAAC,CAC7E,CACAU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMX,SAAS,EAAE,EAAE;IACrBD,YAAY,CACT,2BACCW,OAAO,CAACG,MACT,eAAcf,KAAK,CAACgB,QAAQ,EAAG,uBAAsB,CACvD;IACD,MAAMb,gCAAgC,CAACS,OAAO,CAACG,MAAM,CAAC;IACtDd,YAAY,CAAC,OAAO,CAAC;EACvB,CAAC,MAAM;IACLgB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHd,OAAO,CAACe,KAAK,EAAE"}
@@ -1,6 +1,6 @@
1
- import { Command, Option } from 'commander';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
+ import { Option } from 'commander';
2
3
  import { Authenticate, Admin, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
4
4
  import { printMessage } from '../../utils/Console.js';
5
5
  const {
6
6
  getTokens
@@ -8,23 +8,17 @@ const {
8
8
  const {
9
9
  hideGenericExtensionAttributes
10
10
  } = Admin;
11
- const program = new Command('frodo admin hide-generic-extension-attributes');
12
- program.description('Hide generic extension attributes.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).addOption(new Option('--include-customized', 'Include customized attributes.')).addOption(new Option('--dry-run', 'Dry-run only, do not perform changes.')).action(
11
+ const program = new FrodoCommand('frodo admin hide-generic-extension-attributes');
12
+ program.description('Hide generic extension attributes.').addOption(new Option('--include-customized', 'Include customized attributes.')).addOption(new Option('--dry-run', 'Dry-run only, do not perform changes.')).action(
13
13
  // implement command logic inside action handler
14
- async (host, realm, user, password, options) => {
15
- state.default.session.setTenant(host);
16
- state.default.session.setRealm(realm);
17
- state.default.session.setUsername(user);
18
- state.default.session.setPassword(password);
19
- state.default.session.setDeploymentType(options.type);
20
- state.default.session.setAllowInsecureConnection(options.insecure);
21
- state.default.session.setVerbose(options.verbose);
22
- state.default.session.setDebug(options.debug);
23
- state.default.session.setCurlirize(options.curlirize);
14
+ async (host, realm, user, password, options, command) => {
15
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
24
16
  if (await getTokens()) {
25
- printMessage(`Hiding generic extension attributes in realm "${state.default.session.getRealm()}"...`);
17
+ printMessage(`Hiding generic extension attributes in realm "${state.getRealm()}"...`);
26
18
  await hideGenericExtensionAttributes(options.includeCustomized, options.dryRun);
27
19
  printMessage('Done.');
20
+ } else {
21
+ process.exitCode = 1;
28
22
  }
29
23
  }
30
24
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"admin-hide-generic-extension-attributes.js","names":["Command","Option","Authenticate","Admin","state","common","printMessage","getTokens","hideGenericExtensionAttributes","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","getRealm","includeCustomized","dryRun","parse"],"sources":["cli/admin/admin-hide-generic-extension-attributes.ts"],"sourcesContent":["import { Command, Option } from 'commander';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { hideGenericExtensionAttributes } = Admin;\n\nconst program = new Command('frodo admin hide-generic-extension-attributes');\n\nprogram\n .description('Hide generic extension attributes.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\n .addOption(\n new Option('--include-customized', 'Include customized attributes.')\n )\n .addOption(new Option('--dry-run', 'Dry-run only, do not perform changes.'))\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 state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n printMessage(\n `Hiding generic extension attributes in realm \"${state.default.session.getRealm()}\"...`\n );\n await hideGenericExtensionAttributes(\n options.includeCustomized,\n options.dryRun\n );\n printMessage('Done.');\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,EAAEC,MAAM,QAAQ,WAAW;AAC3C,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAC1C,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGL,YAAY;AAClC,MAAM;EAAEM;AAA+B,CAAC,GAAGL,KAAK;AAEhD,MAAMM,OAAO,GAAG,IAAIT,OAAO,CAAC,+CAA+C,CAAC;AAE5ES,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACR,MAAM,CAACS,aAAa,CAAC,CACjCD,WAAW,CAACR,MAAM,CAACU,aAAa,CAAC,CACjCF,WAAW,CAACR,MAAM,CAACW,YAAY,CAAC,CAChCH,WAAW,CAACR,MAAM,CAACY,gBAAgB,CAAC,CACpCC,SAAS,CAACb,MAAM,CAACc,gBAAgB,CAAC,CAClCD,SAAS,CAACb,MAAM,CAACe,cAAc,CAAC,CAChCF,SAAS,CAACb,MAAM,CAACgB,aAAa,CAAC,CAC/BH,SAAS,CAACb,MAAM,CAACiB,WAAW,CAAC,CAC7BJ,SAAS,CAACb,MAAM,CAACkB,eAAe,CAAC,CACjCL,SAAS,CACR,IAAIjB,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,CACrE,CACAiB,SAAS,CAAC,IAAIjB,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC,CAC3EuB,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9CzB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACC,SAAS,CAACP,IAAI,CAAC;EACrCrB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACE,QAAQ,CAACP,KAAK,CAAC;EACrCtB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACG,WAAW,CAACP,IAAI,CAAC;EACvCvB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACI,WAAW,CAACP,QAAQ,CAAC;EAC3CxB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACK,iBAAiB,CAACP,OAAO,CAACQ,IAAI,CAAC;EACrDjC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACO,0BAA0B,CAACT,OAAO,CAACU,QAAQ,CAAC;EAClEnC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACS,UAAU,CAACX,OAAO,CAACY,OAAO,CAAC;EACjDrC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACW,QAAQ,CAACb,OAAO,CAACc,KAAK,CAAC;EAC7CvC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACa,YAAY,CAACf,OAAO,CAACgB,SAAS,CAAC;EACrD,IAAI,MAAMtC,SAAS,EAAE,EAAE;IACrBD,YAAY,CACT,iDAAgDF,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACe,QAAQ,EAAG,MAAK,CACxF;IACD,MAAMtC,8BAA8B,CAClCqB,OAAO,CAACkB,iBAAiB,EACzBlB,OAAO,CAACmB,MAAM,CACf;IACD1C,YAAY,CAAC,OAAO,CAAC;EACvB;AACF;AACA;AAAA,CACD;;AAEHG,OAAO,CAACwC,KAAK,EAAE"}
1
+ {"version":3,"file":"admin-hide-generic-extension-attributes.js","names":["FrodoCommand","Option","Authenticate","Admin","state","printMessage","getTokens","hideGenericExtensionAttributes","program","description","addOption","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","includeCustomized","dryRun","process","exitCode","parse"],"sources":["cli/admin/admin-hide-generic-extension-attributes.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Option } from 'commander';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { getTokens } = Authenticate;\nconst { hideGenericExtensionAttributes } = Admin;\n\nconst program = new FrodoCommand(\n 'frodo admin hide-generic-extension-attributes'\n);\n\nprogram\n .description('Hide generic extension attributes.')\n .addOption(\n new Option('--include-customized', 'Include customized attributes.')\n )\n .addOption(new Option('--dry-run', 'Dry-run only, do not perform changes.'))\n .action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Hiding generic extension attributes in realm \"${state.getRealm()}\"...`\n );\n await hideGenericExtensionAttributes(\n options.includeCustomized,\n options.dryRun\n );\n printMessage('Done.');\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,MAAM,QAAQ,WAAW;AAClC,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAU,CAAC,GAAGJ,YAAY;AAClC,MAAM;EAAEK;AAA+B,CAAC,GAAGJ,KAAK;AAEhD,MAAMK,OAAO,GAAG,IAAIR,YAAY,CAC9B,+CAA+C,CAChD;AAEDQ,OAAO,CACJC,WAAW,CAAC,oCAAoC,CAAC,CACjDC,SAAS,CACR,IAAIT,MAAM,CAAC,sBAAsB,EAAE,gCAAgC,CAAC,CACrE,CACAS,SAAS,CAAC,IAAIT,MAAM,CAAC,WAAW,EAAE,uCAAuC,CAAC,CAAC,CAC3EU,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMX,SAAS,EAAE,EAAE;IACrBD,YAAY,CACT,iDAAgDD,KAAK,CAACe,QAAQ,EAAG,MAAK,CACxE;IACD,MAAMZ,8BAA8B,CAClCS,OAAO,CAACI,iBAAiB,EACzBJ,OAAO,CAACK,MAAM,CACf;IACDhB,YAAY,CAAC,OAAO,CAAC;EACvB,CAAC,MAAM;IACLiB,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEHf,OAAO,CAACgB,KAAK,EAAE"}
@@ -1,6 +1,5 @@
1
- import { Command } from 'commander';
1
+ import { FrodoCommand } from '../FrodoCommand';
2
2
  import { Authenticate, Admin, state } from '@rockcarver/frodo-lib';
3
- import * as common from '../cmd_common.js';
4
3
  import { printMessage } from '../../utils/Console.js';
5
4
  const {
6
5
  listOAuth2AdminClients
@@ -8,26 +7,20 @@ const {
8
7
  const {
9
8
  getTokens
10
9
  } = Authenticate;
11
- const program = new Command('frodo admin list-oauth2-clients-with-admin-privileges');
12
- program.description('List oauth2 clients with admin privileges.').helpOption('-h, --help', 'Help').showHelpAfterError().addArgument(common.hostArgumentM).addArgument(common.realmArgument).addArgument(common.userArgument).addArgument(common.passwordArgument).addOption(common.deploymentOption).addOption(common.insecureOption).addOption(common.verboseOption).addOption(common.debugOption).addOption(common.curlirizeOption).action(
10
+ const program = new FrodoCommand('frodo admin list-oauth2-clients-with-admin-privileges');
11
+ program.description('List oauth2 clients with admin privileges.').action(
13
12
  // implement command logic inside action handler
14
- async (host, realm, user, password, options) => {
15
- state.default.session.setTenant(host);
16
- state.default.session.setRealm(realm);
17
- state.default.session.setUsername(user);
18
- state.default.session.setPassword(password);
19
- state.default.session.setDeploymentType(options.type);
20
- state.default.session.setAllowInsecureConnection(options.insecure);
21
- state.default.session.setVerbose(options.verbose);
22
- state.default.session.setDebug(options.debug);
23
- state.default.session.setCurlirize(options.curlirize);
13
+ async (host, realm, user, password, options, command) => {
14
+ command.handleDefaultArgsAndOpts(host, realm, user, password, options, command);
24
15
  if (await getTokens()) {
25
- printMessage(`Listing oauth2 clients with admin privileges in realm "${state.default.session.getRealm()}"...`);
16
+ printMessage(`Listing oauth2 clients with admin privileges in realm "${state.getRealm()}"...`);
26
17
  const adminClients = await listOAuth2AdminClients();
27
18
  adminClients.sort((a, b) => a.localeCompare(b));
28
19
  adminClients.forEach(item => {
29
20
  printMessage(`${item}`);
30
21
  });
22
+ } else {
23
+ process.exitCode = 1;
31
24
  }
32
25
  }
33
26
  // end command logic inside action handler
@@ -1 +1 @@
1
- {"version":3,"file":"admin-list-oauth2-clients-with-admin-privileges.js","names":["Command","Authenticate","Admin","state","common","printMessage","listOAuth2AdminClients","getTokens","program","description","helpOption","showHelpAfterError","addArgument","hostArgumentM","realmArgument","userArgument","passwordArgument","addOption","deploymentOption","insecureOption","verboseOption","debugOption","curlirizeOption","action","host","realm","user","password","options","default","session","setTenant","setRealm","setUsername","setPassword","setDeploymentType","type","setAllowInsecureConnection","insecure","setVerbose","verbose","setDebug","debug","setCurlirize","curlirize","getRealm","adminClients","sort","a","b","localeCompare","forEach","item","parse"],"sources":["cli/admin/admin-list-oauth2-clients-with-admin-privileges.ts"],"sourcesContent":["import { Command } from 'commander';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport * as common from '../cmd_common.js';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { listOAuth2AdminClients } = Admin;\nconst { getTokens } = Authenticate;\n\nconst program = new Command(\n 'frodo admin list-oauth2-clients-with-admin-privileges'\n);\n\nprogram\n .description('List oauth2 clients with admin privileges.')\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(common.verboseOption)\n .addOption(common.debugOption)\n .addOption(common.curlirizeOption)\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 state.default.session.setVerbose(options.verbose);\n state.default.session.setDebug(options.debug);\n state.default.session.setCurlirize(options.curlirize);\n if (await getTokens()) {\n printMessage(\n `Listing oauth2 clients with admin privileges in realm \"${state.default.session.getRealm()}\"...`\n );\n const adminClients = await listOAuth2AdminClients();\n adminClients.sort((a, b) => a.localeCompare(b));\n adminClients.forEach((item) => {\n printMessage(`${item}`);\n });\n }\n }\n // end command logic inside action handler\n );\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,OAAO,QAAQ,WAAW;AACnC,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,OAAO,KAAKC,MAAM,MAAM,kBAAkB;AAC1C,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAuB,CAAC,GAAGJ,KAAK;AACxC,MAAM;EAAEK;AAAU,CAAC,GAAGN,YAAY;AAElC,MAAMO,OAAO,GAAG,IAAIR,OAAO,CACzB,uDAAuD,CACxD;AAEDQ,OAAO,CACJC,WAAW,CAAC,4CAA4C,CAAC,CACzDC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,CAChCC,kBAAkB,EAAE,CACpBC,WAAW,CAACR,MAAM,CAACS,aAAa,CAAC,CACjCD,WAAW,CAACR,MAAM,CAACU,aAAa,CAAC,CACjCF,WAAW,CAACR,MAAM,CAACW,YAAY,CAAC,CAChCH,WAAW,CAACR,MAAM,CAACY,gBAAgB,CAAC,CACpCC,SAAS,CAACb,MAAM,CAACc,gBAAgB,CAAC,CAClCD,SAAS,CAACb,MAAM,CAACe,cAAc,CAAC,CAChCF,SAAS,CAACb,MAAM,CAACgB,aAAa,CAAC,CAC/BH,SAAS,CAACb,MAAM,CAACiB,WAAW,CAAC,CAC7BJ,SAAS,CAACb,MAAM,CAACkB,eAAe,CAAC,CACjCC,MAAM;AACL;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,KAAK;EAC9CzB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACC,SAAS,CAACP,IAAI,CAAC;EACrCrB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACE,QAAQ,CAACP,KAAK,CAAC;EACrCtB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACG,WAAW,CAACP,IAAI,CAAC;EACvCvB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACI,WAAW,CAACP,QAAQ,CAAC;EAC3CxB,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACK,iBAAiB,CAACP,OAAO,CAACQ,IAAI,CAAC;EACrDjC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACO,0BAA0B,CAACT,OAAO,CAACU,QAAQ,CAAC;EAClEnC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACS,UAAU,CAACX,OAAO,CAACY,OAAO,CAAC;EACjDrC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACW,QAAQ,CAACb,OAAO,CAACc,KAAK,CAAC;EAC7CvC,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACa,YAAY,CAACf,OAAO,CAACgB,SAAS,CAAC;EACrD,IAAI,MAAMrC,SAAS,EAAE,EAAE;IACrBF,YAAY,CACT,0DAAyDF,KAAK,CAAC0B,OAAO,CAACC,OAAO,CAACe,QAAQ,EAAG,MAAK,CACjG;IACD,MAAMC,YAAY,GAAG,MAAMxC,sBAAsB,EAAE;IACnDwC,YAAY,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC/CH,YAAY,CAACK,OAAO,CAAEC,IAAI,IAAK;MAC7B/C,YAAY,CAAE,GAAE+C,IAAK,EAAC,CAAC;IACzB,CAAC,CAAC;EACJ;AACF;AACA;AAAA,CACD;;AAEH5C,OAAO,CAAC6C,KAAK,EAAE"}
1
+ {"version":3,"file":"admin-list-oauth2-clients-with-admin-privileges.js","names":["FrodoCommand","Authenticate","Admin","state","printMessage","listOAuth2AdminClients","getTokens","program","description","action","host","realm","user","password","options","command","handleDefaultArgsAndOpts","getRealm","adminClients","sort","a","b","localeCompare","forEach","item","process","exitCode","parse"],"sources":["cli/admin/admin-list-oauth2-clients-with-admin-privileges.ts"],"sourcesContent":["import { FrodoCommand } from '../FrodoCommand';\nimport { Authenticate, Admin, state } from '@rockcarver/frodo-lib';\nimport { printMessage } from '../../utils/Console.js';\n\nconst { listOAuth2AdminClients } = Admin;\nconst { getTokens } = Authenticate;\n\nconst program = new FrodoCommand(\n 'frodo admin list-oauth2-clients-with-admin-privileges'\n);\n\nprogram.description('List oauth2 clients with admin privileges.').action(\n // implement command logic inside action handler\n async (host, realm, user, password, options, command) => {\n command.handleDefaultArgsAndOpts(\n host,\n realm,\n user,\n password,\n options,\n command\n );\n if (await getTokens()) {\n printMessage(\n `Listing oauth2 clients with admin privileges in realm \"${state.getRealm()}\"...`\n );\n const adminClients = await listOAuth2AdminClients();\n adminClients.sort((a, b) => a.localeCompare(b));\n adminClients.forEach((item) => {\n printMessage(`${item}`);\n });\n } else {\n process.exitCode = 1;\n }\n }\n // end command logic inside action handler\n);\n\nprogram.parse();\n"],"mappings":"AAAA,SAASA,YAAY,QAAQ,iBAAiB;AAC9C,SAASC,YAAY,EAAEC,KAAK,EAAEC,KAAK,QAAQ,uBAAuB;AAClE,SAASC,YAAY,QAAQ,wBAAwB;AAErD,MAAM;EAAEC;AAAuB,CAAC,GAAGH,KAAK;AACxC,MAAM;EAAEI;AAAU,CAAC,GAAGL,YAAY;AAElC,MAAMM,OAAO,GAAG,IAAIP,YAAY,CAC9B,uDAAuD,CACxD;AAEDO,OAAO,CAACC,WAAW,CAAC,4CAA4C,CAAC,CAACC,MAAM;AACtE;AACA,OAAOC,IAAI,EAAEC,KAAK,EAAEC,IAAI,EAAEC,QAAQ,EAAEC,OAAO,EAAEC,OAAO,KAAK;EACvDA,OAAO,CAACC,wBAAwB,CAC9BN,IAAI,EACJC,KAAK,EACLC,IAAI,EACJC,QAAQ,EACRC,OAAO,EACPC,OAAO,CACR;EACD,IAAI,MAAMT,SAAS,EAAE,EAAE;IACrBF,YAAY,CACT,0DAAyDD,KAAK,CAACc,QAAQ,EAAG,MAAK,CACjF;IACD,MAAMC,YAAY,GAAG,MAAMb,sBAAsB,EAAE;IACnDa,YAAY,CAACC,IAAI,CAAC,CAACC,CAAC,EAAEC,CAAC,KAAKD,CAAC,CAACE,aAAa,CAACD,CAAC,CAAC,CAAC;IAC/CH,YAAY,CAACK,OAAO,CAAEC,IAAI,IAAK;MAC7BpB,YAAY,CAAE,GAAEoB,IAAK,EAAC,CAAC;IACzB,CAAC,CAAC;EACJ,CAAC,MAAM;IACLC,OAAO,CAACC,QAAQ,GAAG,CAAC;EACtB;AACF;AACA;AAAA,CACD;;AAEDnB,OAAO,CAACoB,KAAK,EAAE"}