@mtndev/cli 0.0.0-dev-20260626045221 → 0.0.0-dev-20260914234436

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 (331) hide show
  1. package/CHANGELOG.md +84 -3
  2. package/cjs/__chunks/2FSYDFUV.cjs +146 -0
  3. package/cjs/__chunks/3A5ZYU5M.cjs +105 -0
  4. package/cjs/__chunks/3NOHGUCF.cjs +9 -0
  5. package/cjs/__chunks/3T2LXW7J.cjs +387 -0
  6. package/cjs/__chunks/4XT5JEAS.cjs +1 -0
  7. package/cjs/__chunks/AZEB4H4I.cjs +208 -0
  8. package/cjs/__chunks/B5ENMOCD.cjs +288 -0
  9. package/cjs/__chunks/B6XM5KSF.cjs +338 -0
  10. package/cjs/__chunks/BDU2UCE5.cjs +1 -0
  11. package/cjs/__chunks/BLMSMR5E.cjs +46 -0
  12. package/cjs/__chunks/CMUD7LLN.cjs +47 -0
  13. package/cjs/__chunks/DTQ2LB3I.cjs +49 -0
  14. package/cjs/__chunks/FM5MVRQF.cjs +23 -0
  15. package/cjs/__chunks/FRHST54J.cjs +135 -0
  16. package/cjs/__chunks/FU4VP2LN.cjs +1 -0
  17. package/cjs/__chunks/G5K4PVIL.cjs +26 -0
  18. package/cjs/__chunks/{IEGW3TSF.cjs → GU3R54MK.cjs} +45 -18
  19. package/cjs/__chunks/GUL36IFZ.cjs +61 -0
  20. package/cjs/__chunks/GZMTNK5N.cjs +1 -0
  21. package/cjs/__chunks/H74JSDBU.cjs +30 -0
  22. package/cjs/__chunks/{EMMC33QA.cjs → JB7T7PKQ.cjs} +170 -33
  23. package/cjs/__chunks/JSL2JDMW.cjs +1 -0
  24. package/cjs/__chunks/K4QNHRTP.cjs +163 -0
  25. package/cjs/__chunks/KU76LC42.cjs +192 -0
  26. package/cjs/__chunks/LFDSHANP.cjs +34 -0
  27. package/cjs/__chunks/LHE24ECK.cjs +192 -0
  28. package/cjs/__chunks/LIKQ3SI4.cjs +1 -0
  29. package/cjs/__chunks/LXDF5QVZ.cjs +313 -0
  30. package/cjs/__chunks/LXOOJR2R.cjs +74 -0
  31. package/cjs/__chunks/N5MXFOQZ.cjs +167 -0
  32. package/cjs/__chunks/N7D56LPP.cjs +25 -0
  33. package/cjs/__chunks/NFXQNOQH.cjs +393 -0
  34. package/cjs/__chunks/NLKJIUEX.cjs +126 -0
  35. package/cjs/__chunks/NT2XXAI6.cjs +89 -0
  36. package/cjs/__chunks/NWZGFHKH.cjs +121 -0
  37. package/cjs/__chunks/R3GUC7O7.cjs +110 -0
  38. package/cjs/__chunks/RPVAXPJ4.cjs +1 -0
  39. package/cjs/__chunks/S3LVCWPN.cjs +23 -0
  40. package/cjs/__chunks/SBBNW2BF.cjs +249 -0
  41. package/cjs/__chunks/T2A7TN4F.cjs +81 -0
  42. package/cjs/__chunks/TKNNDDIB.cjs +97 -0
  43. package/cjs/__chunks/TNSRDJPR.cjs +1 -0
  44. package/cjs/__chunks/UWHPE2GI.cjs +20 -0
  45. package/cjs/__chunks/W6K7BV74.cjs +1 -0
  46. package/cjs/__chunks/WBOQ6AUN.cjs +320 -0
  47. package/cjs/__chunks/WHGN5PZI.cjs +299 -0
  48. package/cjs/__chunks/WOYF2L6T.cjs +11 -0
  49. package/cjs/__chunks/X26XY2N6.cjs +18 -0
  50. package/cjs/__chunks/XMKOKRXZ.cjs +16 -0
  51. package/cjs/__chunks/XTJPQ3EX.cjs +1 -0
  52. package/cjs/__chunks/YRHFKTW2.cjs +63 -0
  53. package/cjs/commands/aws/ec2/allow-ip/handler.cjs +12 -0
  54. package/cjs/commands/aws/ec2/allow-ip/handler.d.ts +6 -0
  55. package/cjs/commands/aws/ec2/allow-ip/index.cjs +55 -0
  56. package/cjs/commands/aws/ec2/allow-ip/index.d.ts +3 -0
  57. package/cjs/commands/aws/ec2/allow-ip/schema.cjs +13 -0
  58. package/cjs/commands/aws/ec2/allow-ip/schema.d.ts +33 -0
  59. package/cjs/commands/aws/ec2/allow-ip/utils.cjs +39 -0
  60. package/cjs/commands/aws/ec2/allow-ip/utils.d.ts +189 -0
  61. package/cjs/commands/aws/iam/admin-group.cjs +15 -0
  62. package/cjs/commands/aws/iam/admin-group.d.ts +55 -0
  63. package/cjs/commands/aws/iam/break-glass/handler.cjs +12 -0
  64. package/cjs/commands/aws/iam/break-glass/handler.d.ts +7 -0
  65. package/cjs/commands/aws/iam/break-glass/index.cjs +19 -0
  66. package/cjs/commands/aws/iam/break-glass/index.d.ts +2 -0
  67. package/cjs/commands/aws/iam/break-glass/schema.cjs +12 -0
  68. package/cjs/commands/aws/iam/break-glass/schema.d.ts +25 -0
  69. package/cjs/commands/aws/iam/check-admin/handler.cjs +10 -0
  70. package/cjs/commands/aws/iam/check-admin/handler.d.ts +5 -0
  71. package/cjs/commands/aws/iam/check-admin/index.cjs +17 -0
  72. package/cjs/commands/aws/iam/check-admin/index.d.ts +2 -0
  73. package/cjs/commands/aws/iam/check-admin/schema.cjs +12 -0
  74. package/cjs/commands/aws/iam/check-admin/schema.d.ts +19 -0
  75. package/cjs/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.cjs +28 -0
  76. package/cjs/commands/aws/iam/policies/sts-federation.cjs +19 -0
  77. package/cjs/commands/aws/iam/policies/user-admins-deny-list.cjs +183 -0
  78. package/cjs/commands/aws/iam/policies/user-admins-deny-regions-list.cjs +49 -0
  79. package/cjs/commands/aws/iam/policies/user-admins-self-service-iam.cjs +64 -0
  80. package/cjs/commands/aws/iam/policies/user-admins-write-list.cjs +125 -0
  81. package/cjs/commands/aws/iam/remove-admin/handler.cjs +11 -0
  82. package/cjs/commands/aws/iam/remove-admin/handler.d.ts +6 -0
  83. package/cjs/commands/aws/iam/remove-admin/index.cjs +18 -0
  84. package/cjs/commands/aws/iam/remove-admin/index.d.ts +2 -0
  85. package/cjs/commands/aws/iam/remove-admin/schema.cjs +12 -0
  86. package/cjs/commands/aws/iam/remove-admin/schema.d.ts +28 -0
  87. package/cjs/commands/aws/iam/setup-acl/handler.cjs +14 -0
  88. package/cjs/commands/aws/iam/setup-acl/handler.d.ts +6 -0
  89. package/cjs/commands/aws/iam/setup-acl/index.cjs +33 -0
  90. package/cjs/commands/aws/iam/setup-acl/index.d.ts +3 -0
  91. package/cjs/commands/aws/iam/setup-acl/schema.cjs +7 -0
  92. package/cjs/commands/aws/iam/setup-acl/schema.d.ts +24 -0
  93. package/cjs/commands/aws/iam/setup-acl/utils.cjs +20 -0
  94. package/cjs/commands/aws/iam/setup-acl/utils.d.ts +61 -0
  95. package/cjs/commands/aws/iam/users/handler.cjs +12 -0
  96. package/cjs/commands/aws/iam/users/handler.d.ts +5 -0
  97. package/cjs/commands/aws/iam/users/index.cjs +41 -0
  98. package/cjs/commands/aws/iam/users/index.d.ts +3 -0
  99. package/cjs/commands/aws/iam/users/schema.cjs +7 -0
  100. package/cjs/commands/aws/iam/users/schema.d.ts +18 -0
  101. package/cjs/commands/aws/iam/users/utils.cjs +30 -0
  102. package/cjs/commands/aws/iam/users/utils.d.ts +119 -0
  103. package/cjs/commands/aws/index.cjs +229 -0
  104. package/cjs/commands/aws/index.d.ts +14 -0
  105. package/cjs/commands/aws/route53/add-record/handler.cjs +18 -0
  106. package/cjs/commands/aws/route53/add-record/handler.d.ts +36 -0
  107. package/cjs/commands/aws/route53/add-record/index.cjs +57 -0
  108. package/cjs/commands/aws/route53/add-record/index.d.ts +3 -0
  109. package/cjs/commands/aws/route53/add-record/schema.cjs +11 -0
  110. package/cjs/commands/aws/route53/add-record/schema.d.ts +45 -0
  111. package/cjs/commands/aws/route53/add-record/utils.cjs +37 -0
  112. package/cjs/commands/aws/route53/add-record/utils.d.ts +216 -0
  113. package/cjs/commands/aws/route53/remove-record/handler.cjs +14 -0
  114. package/cjs/commands/aws/route53/remove-record/handler.d.ts +6 -0
  115. package/cjs/commands/aws/route53/remove-record/index.cjs +18 -0
  116. package/cjs/commands/aws/route53/remove-record/index.d.ts +2 -0
  117. package/cjs/commands/aws/route53/remove-record/schema.cjs +8 -0
  118. package/cjs/commands/aws/route53/remove-record/schema.d.ts +30 -0
  119. package/cjs/commands/aws/schema.cjs +10 -0
  120. package/cjs/commands/aws/schema.d.ts +13 -0
  121. package/cjs/commands/aws/ses/send-email/handler.cjs +12 -0
  122. package/cjs/commands/aws/ses/send-email/handler.d.ts +5 -0
  123. package/cjs/commands/aws/ses/send-email/index.cjs +23 -0
  124. package/cjs/commands/aws/ses/send-email/index.d.ts +3 -0
  125. package/cjs/commands/aws/ses/send-email/schema.cjs +7 -0
  126. package/cjs/commands/aws/ses/send-email/schema.d.ts +39 -0
  127. package/cjs/commands/aws/ses/send-email/utils.cjs +11 -0
  128. package/cjs/commands/aws/ses/send-email/utils.d.ts +47 -0
  129. package/cjs/commands/aws/ses/smtp-password.cjs +10 -0
  130. package/cjs/commands/aws/ses/smtp-password.d.ts +21 -0
  131. package/cjs/commands/aws/utils/exec-aws.cjs +16 -0
  132. package/cjs/commands/aws/utils/exec-aws.d.ts +79 -0
  133. package/cjs/commands/aws/utils/resolve-policy-path.cjs +6 -0
  134. package/cjs/commands/aws/utils/resolve-policy-path.d.ts +8 -0
  135. package/cjs/commands/aws/utils/resolve-profile.cjs +11 -0
  136. package/cjs/commands/aws/utils/resolve-profile.d.ts +28 -0
  137. package/cjs/commands/aws/utils/tty.cjs +10 -0
  138. package/cjs/commands/aws/utils/tty.d.ts +24 -0
  139. package/cjs/commands/db/create-readonly-user/handler.cjs +11 -0
  140. package/cjs/commands/db/create-readonly-user/handler.d.ts +5 -0
  141. package/cjs/commands/db/create-readonly-user/index.cjs +40 -0
  142. package/cjs/commands/db/create-readonly-user/index.d.ts +3 -0
  143. package/cjs/commands/db/create-readonly-user/mysql.cjs +9 -0
  144. package/cjs/commands/db/create-readonly-user/mysql.d.ts +33 -0
  145. package/cjs/commands/db/create-readonly-user/postgres.cjs +9 -0
  146. package/cjs/commands/db/create-readonly-user/postgres.d.ts +31 -0
  147. package/cjs/commands/db/create-readonly-user/schema.cjs +12 -0
  148. package/cjs/commands/db/create-readonly-user/schema.d.ts +55 -0
  149. package/cjs/commands/db/create-readonly-user/utils.cjs +22 -0
  150. package/cjs/commands/db/create-readonly-user/utils.d.ts +112 -0
  151. package/cjs/commands/db/index.cjs +44 -0
  152. package/cjs/commands/db/index.d.ts +6 -0
  153. package/cjs/commands/doppler/handler.cjs +6 -4
  154. package/cjs/commands/doppler/index.cjs +32 -5
  155. package/cjs/commands/doppler/index.d.ts +1 -0
  156. package/cjs/commands/doppler/schema.cjs +10 -2
  157. package/cjs/commands/doppler/schema.d.ts +233 -17
  158. package/cjs/commands/doppler/set-secret.cjs +19 -0
  159. package/cjs/commands/doppler/set-secret.d.ts +113 -0
  160. package/cjs/commands/doppler/utils.cjs +6 -2
  161. package/cjs/commands/doppler/utils.d.ts +32 -8
  162. package/cjs/commands/icons/schema.d.ts +1 -1
  163. package/cjs/commands/index.cjs +91 -12
  164. package/esm/__chunks/2FTTEFEK.js +97 -0
  165. package/esm/__chunks/33UYMUQD.js +338 -0
  166. package/esm/__chunks/3BKWTHLJ.js +25 -0
  167. package/esm/__chunks/3HE4BEJX.js +105 -0
  168. package/esm/__chunks/3QLI5BDL.js +387 -0
  169. package/esm/__chunks/5GIUAFXL.js +89 -0
  170. package/esm/__chunks/73BJG53F.js +11 -0
  171. package/esm/__chunks/7VF4Q43Q.js +0 -0
  172. package/esm/__chunks/AEDEAYF5.js +0 -0
  173. package/esm/__chunks/AZCP3SFJ.js +0 -0
  174. package/esm/__chunks/B2DVQ2UL.js +61 -0
  175. package/esm/__chunks/CVQVHLW5.js +0 -0
  176. package/esm/__chunks/D62SPZXC.js +0 -0
  177. package/esm/__chunks/DLEJ25GZ.js +121 -0
  178. package/esm/__chunks/DMYFNF54.js +192 -0
  179. package/esm/__chunks/DNFTUMGD.js +23 -0
  180. package/esm/__chunks/DVKD6YSR.js +49 -0
  181. package/esm/__chunks/EMSH4P76.js +20 -0
  182. package/esm/__chunks/FFKFVMIE.js +167 -0
  183. package/esm/__chunks/FNXUONAV.js +110 -0
  184. package/esm/__chunks/G4NJHFFU.js +320 -0
  185. package/esm/__chunks/IEOGAQYI.js +46 -0
  186. package/esm/__chunks/IZFGBYGE.js +34 -0
  187. package/esm/__chunks/J34UVKLA.js +26 -0
  188. package/esm/__chunks/JZPBBBIG.js +74 -0
  189. package/esm/__chunks/KWUJP5MG.js +135 -0
  190. package/esm/__chunks/M35URMT4.js +313 -0
  191. package/esm/__chunks/NF3M2L6C.js +81 -0
  192. package/esm/__chunks/PNPPDYKC.js +299 -0
  193. package/esm/__chunks/QFXN4EHM.js +393 -0
  194. package/esm/__chunks/QKDDLIWD.js +146 -0
  195. package/esm/__chunks/QSE66AKY.js +208 -0
  196. package/esm/__chunks/QUF7PS4R.js +18 -0
  197. package/esm/__chunks/S7IJPJ4R.js +126 -0
  198. package/esm/__chunks/SD3E3EPH.js +163 -0
  199. package/esm/__chunks/T3TTUHTW.js +30 -0
  200. package/esm/__chunks/TIOVE6HR.js +0 -0
  201. package/esm/__chunks/TXKMEIDQ.js +0 -0
  202. package/esm/__chunks/U7HAE2RF.js +288 -0
  203. package/esm/__chunks/UXWY7BYE.js +63 -0
  204. package/esm/__chunks/VKAKISRG.js +192 -0
  205. package/esm/__chunks/WD2YR6I7.js +0 -0
  206. package/esm/__chunks/WOZFZKFY.js +0 -0
  207. package/esm/__chunks/XI7GZDE2.js +0 -0
  208. package/esm/__chunks/XOUWDB3T.js +249 -0
  209. package/esm/__chunks/XQN2TA4S.js +23 -0
  210. package/esm/__chunks/XXK32TIM.js +16 -0
  211. package/esm/__chunks/{O262GK4B.js → YGWTVPZE.js} +164 -27
  212. package/esm/__chunks/{XK7EMDSU.js → YRG7PT33.js} +44 -17
  213. package/esm/__chunks/ZHKVJO2U.js +47 -0
  214. package/esm/__chunks/ZO55YUSY.js +9 -0
  215. package/esm/commands/aws/ec2/allow-ip/handler.d.ts +6 -0
  216. package/esm/commands/aws/ec2/allow-ip/handler.js +12 -0
  217. package/esm/commands/aws/ec2/allow-ip/index.d.ts +3 -0
  218. package/esm/commands/aws/ec2/allow-ip/index.js +55 -0
  219. package/esm/commands/aws/ec2/allow-ip/schema.d.ts +33 -0
  220. package/esm/commands/aws/ec2/allow-ip/schema.js +13 -0
  221. package/esm/commands/aws/ec2/allow-ip/utils.d.ts +189 -0
  222. package/esm/commands/aws/ec2/allow-ip/utils.js +39 -0
  223. package/esm/commands/aws/iam/admin-group.d.ts +55 -0
  224. package/esm/commands/aws/iam/admin-group.js +15 -0
  225. package/esm/commands/aws/iam/break-glass/handler.d.ts +7 -0
  226. package/esm/commands/aws/iam/break-glass/handler.js +12 -0
  227. package/esm/commands/aws/iam/break-glass/index.d.ts +2 -0
  228. package/esm/commands/aws/iam/break-glass/index.js +19 -0
  229. package/esm/commands/aws/iam/break-glass/schema.d.ts +25 -0
  230. package/esm/commands/aws/iam/break-glass/schema.js +12 -0
  231. package/esm/commands/aws/iam/check-admin/handler.d.ts +5 -0
  232. package/esm/commands/aws/iam/check-admin/handler.js +10 -0
  233. package/esm/commands/aws/iam/check-admin/index.d.ts +2 -0
  234. package/esm/commands/aws/iam/check-admin/index.js +17 -0
  235. package/esm/commands/aws/iam/check-admin/schema.d.ts +19 -0
  236. package/esm/commands/aws/iam/check-admin/schema.js +12 -0
  237. package/esm/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.js +28 -0
  238. package/esm/commands/aws/iam/policies/sts-federation.js +19 -0
  239. package/esm/commands/aws/iam/policies/user-admins-deny-list.js +183 -0
  240. package/esm/commands/aws/iam/policies/user-admins-deny-regions-list.js +49 -0
  241. package/esm/commands/aws/iam/policies/user-admins-self-service-iam.js +64 -0
  242. package/esm/commands/aws/iam/policies/user-admins-write-list.js +125 -0
  243. package/esm/commands/aws/iam/remove-admin/handler.d.ts +6 -0
  244. package/esm/commands/aws/iam/remove-admin/handler.js +11 -0
  245. package/esm/commands/aws/iam/remove-admin/index.d.ts +2 -0
  246. package/esm/commands/aws/iam/remove-admin/index.js +18 -0
  247. package/esm/commands/aws/iam/remove-admin/schema.d.ts +28 -0
  248. package/esm/commands/aws/iam/remove-admin/schema.js +12 -0
  249. package/esm/commands/aws/iam/setup-acl/handler.d.ts +6 -0
  250. package/esm/commands/aws/iam/setup-acl/handler.js +14 -0
  251. package/esm/commands/aws/iam/setup-acl/index.d.ts +3 -0
  252. package/esm/commands/aws/iam/setup-acl/index.js +33 -0
  253. package/esm/commands/aws/iam/setup-acl/schema.d.ts +24 -0
  254. package/esm/commands/aws/iam/setup-acl/schema.js +7 -0
  255. package/esm/commands/aws/iam/setup-acl/utils.d.ts +61 -0
  256. package/esm/commands/aws/iam/setup-acl/utils.js +20 -0
  257. package/esm/commands/aws/iam/users/handler.d.ts +5 -0
  258. package/esm/commands/aws/iam/users/handler.js +12 -0
  259. package/esm/commands/aws/iam/users/index.d.ts +3 -0
  260. package/esm/commands/aws/iam/users/index.js +41 -0
  261. package/esm/commands/aws/iam/users/schema.d.ts +18 -0
  262. package/esm/commands/aws/iam/users/schema.js +7 -0
  263. package/esm/commands/aws/iam/users/utils.d.ts +119 -0
  264. package/esm/commands/aws/iam/users/utils.js +30 -0
  265. package/esm/commands/aws/index.d.ts +14 -0
  266. package/esm/commands/aws/index.js +229 -0
  267. package/esm/commands/aws/route53/add-record/handler.d.ts +36 -0
  268. package/esm/commands/aws/route53/add-record/handler.js +18 -0
  269. package/esm/commands/aws/route53/add-record/index.d.ts +3 -0
  270. package/esm/commands/aws/route53/add-record/index.js +57 -0
  271. package/esm/commands/aws/route53/add-record/schema.d.ts +45 -0
  272. package/esm/commands/aws/route53/add-record/schema.js +11 -0
  273. package/esm/commands/aws/route53/add-record/utils.d.ts +216 -0
  274. package/esm/commands/aws/route53/add-record/utils.js +37 -0
  275. package/esm/commands/aws/route53/remove-record/handler.d.ts +6 -0
  276. package/esm/commands/aws/route53/remove-record/handler.js +14 -0
  277. package/esm/commands/aws/route53/remove-record/index.d.ts +2 -0
  278. package/esm/commands/aws/route53/remove-record/index.js +18 -0
  279. package/esm/commands/aws/route53/remove-record/schema.d.ts +30 -0
  280. package/esm/commands/aws/route53/remove-record/schema.js +8 -0
  281. package/esm/commands/aws/schema.d.ts +13 -0
  282. package/esm/commands/aws/schema.js +10 -0
  283. package/esm/commands/aws/ses/send-email/handler.d.ts +5 -0
  284. package/esm/commands/aws/ses/send-email/handler.js +12 -0
  285. package/esm/commands/aws/ses/send-email/index.d.ts +3 -0
  286. package/esm/commands/aws/ses/send-email/index.js +23 -0
  287. package/esm/commands/aws/ses/send-email/schema.d.ts +39 -0
  288. package/esm/commands/aws/ses/send-email/schema.js +7 -0
  289. package/esm/commands/aws/ses/send-email/utils.d.ts +47 -0
  290. package/esm/commands/aws/ses/send-email/utils.js +11 -0
  291. package/esm/commands/aws/ses/smtp-password.d.ts +21 -0
  292. package/esm/commands/aws/ses/smtp-password.js +10 -0
  293. package/esm/commands/aws/utils/exec-aws.d.ts +79 -0
  294. package/esm/commands/aws/utils/exec-aws.js +16 -0
  295. package/esm/commands/aws/utils/resolve-policy-path.d.ts +8 -0
  296. package/esm/commands/aws/utils/resolve-policy-path.js +6 -0
  297. package/esm/commands/aws/utils/resolve-profile.d.ts +28 -0
  298. package/esm/commands/aws/utils/resolve-profile.js +11 -0
  299. package/esm/commands/aws/utils/tty.d.ts +24 -0
  300. package/esm/commands/aws/utils/tty.js +10 -0
  301. package/esm/commands/db/create-readonly-user/handler.d.ts +5 -0
  302. package/esm/commands/db/create-readonly-user/handler.js +11 -0
  303. package/esm/commands/db/create-readonly-user/index.d.ts +3 -0
  304. package/esm/commands/db/create-readonly-user/index.js +40 -0
  305. package/esm/commands/db/create-readonly-user/mysql.d.ts +33 -0
  306. package/esm/commands/db/create-readonly-user/mysql.js +9 -0
  307. package/esm/commands/db/create-readonly-user/postgres.d.ts +31 -0
  308. package/esm/commands/db/create-readonly-user/postgres.js +9 -0
  309. package/esm/commands/db/create-readonly-user/schema.d.ts +55 -0
  310. package/esm/commands/db/create-readonly-user/schema.js +12 -0
  311. package/esm/commands/db/create-readonly-user/utils.d.ts +112 -0
  312. package/esm/commands/db/create-readonly-user/utils.js +22 -0
  313. package/esm/commands/db/index.d.ts +6 -0
  314. package/esm/commands/db/index.js +44 -0
  315. package/esm/commands/doppler/handler.js +5 -3
  316. package/esm/commands/doppler/index.d.ts +1 -0
  317. package/esm/commands/doppler/index.js +32 -5
  318. package/esm/commands/doppler/schema.d.ts +233 -17
  319. package/esm/commands/doppler/schema.js +11 -3
  320. package/esm/commands/doppler/set-secret.d.ts +113 -0
  321. package/esm/commands/doppler/set-secret.js +19 -0
  322. package/esm/commands/doppler/utils.d.ts +32 -8
  323. package/esm/commands/doppler/utils.js +5 -1
  324. package/esm/commands/icons/schema.d.ts +1 -1
  325. package/esm/commands/index.js +86 -7
  326. package/package.json +12 -2
  327. package/vitest.config.ts +11 -0
  328. package/cjs/__chunks/MFAORPG6.cjs +0 -52
  329. package/esm/__chunks/3KUXVWUE.js +0 -52
  330. /package/cjs/__chunks/{WNJ3ZYLI.cjs → 3BY5Y4W7.cjs} +0 -0
  331. /package/esm/__chunks/{46HGXFME.js → 5ZBVGSOK.js} +0 -0
@@ -0,0 +1,34 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
+
3
+ var _BLMSMR5Ecjs = require('./BLMSMR5E.cjs');
4
+
5
+
6
+
7
+ var _WOYF2L6Tcjs = require('./WOYF2L6T.cjs');
8
+
9
+ // src/commands/aws/route53/remove-record/schema.js
10
+ var _zod = require('zod');
11
+ var removeRecordOptionsSchema = _zod.z.object({
12
+ profile: _WOYF2L6Tcjs.profileField,
13
+ zone: _zod.z.string().optional().describe(
14
+ "Hosted zone name or ID (e.g. mountaindev.com or Z123\u2026). Skips the zone picker when set."
15
+ ),
16
+ type: _zod.z.string().optional().transform(
17
+ (value) => value === void 0 ? void 0 : value.toUpperCase()
18
+ ).refine(
19
+ (value) => value === void 0 || typeof value === "string" && _BLMSMR5Ecjs.RECORD_TYPES.includes(value),
20
+ {
21
+ message: `Record type must be one of: ${_BLMSMR5Ecjs.RECORD_TYPES.join(", ")}`
22
+ }
23
+ ).describe(`DNS record type (${_BLMSMR5Ecjs.RECORD_TYPES.join(", ")})`),
24
+ name: _zod.z.string().optional().describe(
25
+ 'Record name relative to the zone (e.g. "redline") or a fully-qualified name'
26
+ ),
27
+ yes: _zod.z.boolean().optional().default(false).describe("Skip the confirmation prompt"),
28
+ dryRun: _zod.z.boolean().optional().default(false).describe("Preview the deletion without calling Route53"),
29
+ verbose: _WOYF2L6Tcjs.verboseField
30
+ });
31
+
32
+
33
+
34
+ exports.removeRecordOptionsSchema = removeRecordOptionsSchema;
@@ -0,0 +1,192 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+
5
+
6
+
7
+
8
+
9
+ var _SBBNW2BFcjs = require('./SBBNW2BF.cjs');
10
+
11
+
12
+ var _3T2LXW7Jcjs = require('./3T2LXW7J.cjs');
13
+
14
+
15
+ var _FM5MVRQFcjs = require('./FM5MVRQF.cjs');
16
+
17
+
18
+
19
+ var _R3GUC7O7cjs = require('./R3GUC7O7.cjs');
20
+
21
+
22
+ var _NT2XXAI6cjs = require('./NT2XXAI6.cjs');
23
+
24
+
25
+ var _CMUD7LLNcjs = require('./CMUD7LLN.cjs');
26
+
27
+ // src/commands/aws/iam/setup-acl/handler.js
28
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
29
+ var _zod = require('zod');
30
+ async function resolveRestrictRegions(params) {
31
+ const { restrictRegions } = params;
32
+ if (restrictRegions) {
33
+ console.log(`Region restriction: ${restrictRegions}`);
34
+ return restrictRegions === "yes";
35
+ }
36
+ console.log("Region restriction");
37
+ console.log(
38
+ " The policy UserAdminsDenyRegionsList limits acl-power-users to a hard-coded"
39
+ );
40
+ console.log(
41
+ " region allowlist. Most accounts should leave this OFF unless you have a strong reason."
42
+ );
43
+ const restrict = await _CMUD7LLNcjs.promptYesNo.call(void 0, {
44
+ message: " Attach region restriction to acl-power-users?",
45
+ defaultYes: false
46
+ });
47
+ console.log(` \u2192 ${restrict ? "yes" : "no"}`);
48
+ console.log("");
49
+ return restrict;
50
+ }
51
+ async function setupAclCommand(options) {
52
+ try {
53
+ const {
54
+ restrictRegions,
55
+ createUsers,
56
+ profile: profileOption,
57
+ region,
58
+ verbose
59
+ } = _FM5MVRQFcjs.setupAclOptionsSchema.parse(options);
60
+ _R3GUC7O7cjs.requireCommands.call(void 0, ["aws"]);
61
+ const profile = await _NT2XXAI6cjs.resolveProfile.call(void 0, { profile: profileOption });
62
+ const identity = _R3GUC7O7cjs.getCallerIdentity.call(void 0, { profile, region, verbose });
63
+ const accountId = identity.Account;
64
+ console.log("Caller:");
65
+ console.log(` Account: ${accountId}`);
66
+ console.log(` Arn: ${identity.Arn}`);
67
+ console.log("");
68
+ const restrict = await resolveRestrictRegions({ restrictRegions });
69
+ console.log("1. Ensure groups exist...");
70
+ for (const group of _SBBNW2BFcjs.ACL_GROUPS) {
71
+ _SBBNW2BFcjs.ensureGroup.call(void 0, { name: group, profile, verbose });
72
+ }
73
+ console.log("");
74
+ console.log("2. Publish custom policies...");
75
+ for (const policy of _SBBNW2BFcjs.CUSTOM_POLICIES) {
76
+ _SBBNW2BFcjs.publishPolicy.call(void 0, {
77
+ name: policy.name,
78
+ fileName: policy.fileName,
79
+ accountId,
80
+ profile,
81
+ verbose
82
+ });
83
+ }
84
+ console.log("");
85
+ const ADMIN = "arn:aws:iam::aws:policy/AdministratorAccess";
86
+ const IAM_FULL = "arn:aws:iam::aws:policy/IAMFullAccess";
87
+ const READ_ONLY = "arn:aws:iam::aws:policy/ReadOnlyAccess";
88
+ const WRITE_LIST = `arn:aws:iam::${accountId}:policy/UserAdminsWriteList`;
89
+ const DENY_LIST = `arn:aws:iam::${accountId}:policy/UserAdminsDenyList`;
90
+ const SELF_SERVICE = `arn:aws:iam::${accountId}:policy/UserAdminsSelfServiceIAM`;
91
+ const DENY_REGIONS = `arn:aws:iam::${accountId}:policy/UserAdminsDenyRegionsList`;
92
+ const STS_FEDERATION = `arn:aws:iam::${accountId}:policy/sts-federation`;
93
+ const S3_RESTRICTIONS = `arn:aws:iam::${accountId}:policy/S3RestrictionsDenyNonS3Services`;
94
+ console.log("3. Attach policies to groups...");
95
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-admin-do-not-use", arn: ADMIN, profile, verbose });
96
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-iam-full-access", arn: IAM_FULL, profile, verbose });
97
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-iam-full-access", arn: READ_ONLY, profile, verbose });
98
+ _SBBNW2BFcjs.attach.call(void 0, {
99
+ group: "acl-iam-full-access",
100
+ arn: SELF_SERVICE,
101
+ profile,
102
+ verbose
103
+ });
104
+ _SBBNW2BFcjs.attach.call(void 0, {
105
+ group: "acl-iam-full-access",
106
+ arn: STS_FEDERATION,
107
+ profile,
108
+ verbose
109
+ });
110
+ _SBBNW2BFcjs.detach.call(void 0, { group: "acl-iam-full-access", arn: DENY_LIST, profile, verbose });
111
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-power-users", arn: READ_ONLY, profile, verbose });
112
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-power-users", arn: WRITE_LIST, profile, verbose });
113
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-power-users", arn: DENY_LIST, profile, verbose });
114
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-power-users", arn: SELF_SERVICE, profile, verbose });
115
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-read-only", arn: READ_ONLY, profile, verbose });
116
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-read-only", arn: STS_FEDERATION, profile, verbose });
117
+ _SBBNW2BFcjs.attach.call(void 0, {
118
+ group: "acl-s3-restrictions",
119
+ arn: S3_RESTRICTIONS,
120
+ profile,
121
+ verbose
122
+ });
123
+ console.log("");
124
+ console.log("4. Apply region restriction to acl-power-users...");
125
+ if (restrict) {
126
+ _SBBNW2BFcjs.attach.call(void 0, { group: "acl-power-users", arn: DENY_REGIONS, profile, verbose });
127
+ } else {
128
+ _SBBNW2BFcjs.detach.call(void 0, { group: "acl-power-users", arn: DENY_REGIONS, profile, verbose });
129
+ }
130
+ console.log("");
131
+ console.log("5. Detach legacy policies (if present)...");
132
+ const LEGACY_POWER_USER = "arn:aws:iam::aws:policy/PowerUserAccess";
133
+ const LEGACY_IAM_RO = "arn:aws:iam::aws:policy/IAMReadOnlyAccess";
134
+ const LEGACY_ALLOW = `arn:aws:iam::${accountId}:policy/UserAdminsAllowList`;
135
+ const LEGACY_DENY_SVCS = `arn:aws:iam::${accountId}:policy/UserAdminsDenyListServices`;
136
+ const LEGACY_DENY_GPU = `arn:aws:iam::${accountId}:policy/UserAdminsDenyListGpu`;
137
+ const legacyArns = [
138
+ LEGACY_POWER_USER,
139
+ LEGACY_IAM_RO,
140
+ LEGACY_ALLOW,
141
+ LEGACY_DENY_SVCS,
142
+ LEGACY_DENY_GPU
143
+ ];
144
+ for (const group of _SBBNW2BFcjs.ACL_GROUPS) {
145
+ for (const arn of legacyArns) {
146
+ _SBBNW2BFcjs.detach.call(void 0, { group, arn, profile, verbose });
147
+ }
148
+ }
149
+ console.log("");
150
+ console.log("6. Final state:");
151
+ _SBBNW2BFcjs.printFinalState.call(void 0, { profile, verbose });
152
+ console.log("");
153
+ if (createUsers) {
154
+ console.log("7. Create IAM users (optional)");
155
+ console.log("");
156
+ await _3T2LXW7Jcjs.createUsersInteractive.call(void 0, { profile, verbose });
157
+ }
158
+ console.log(_chalk2.default.green("\n\u2705 ACL setup complete."));
159
+ } catch (error) {
160
+ if (error instanceof _zod.ZodError) {
161
+ console.error(_chalk2.default.red("\n\u274C Invalid command options:"));
162
+ error.errors.forEach((err) => {
163
+ console.error(_chalk2.default.red(` ${err.path.join(".")}: ${err.message}`));
164
+ });
165
+ process.exit(1);
166
+ }
167
+ const verbose = (
168
+ /** @type {any} */
169
+ _optionalChain([options, 'optionalAccess', _ => _.verbose]) || false
170
+ );
171
+ console.error(_chalk2.default.red("\n\u274C iam setup-acl failed:"));
172
+ if (error instanceof Error) {
173
+ console.error(_chalk2.default.red(` ${error.message}`));
174
+ if (verbose && error.stack) {
175
+ console.error(_chalk2.default.gray("\nStack trace:"));
176
+ console.error(_chalk2.default.gray(error.stack));
177
+ }
178
+ } else {
179
+ console.error(_chalk2.default.red(` ${String(error)}`));
180
+ }
181
+ console.error(
182
+ _chalk2.default.yellow(
183
+ "\n\u{1F4A1} Run with a profile that has IAMFullAccess (e.g. md-*-iam-admin).\n"
184
+ )
185
+ );
186
+ process.exit(1);
187
+ }
188
+ }
189
+
190
+
191
+
192
+ exports.setupAclCommand = setupAclCommand;
@@ -0,0 +1 @@
1
+ "use strict";
@@ -0,0 +1,313 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+
4
+ var _3A5ZYU5Mcjs = require('./3A5ZYU5M.cjs');
5
+
6
+
7
+
8
+ var _K4QNHRTPcjs = require('./K4QNHRTP.cjs');
9
+
10
+
11
+
12
+
13
+
14
+ var _H74JSDBUcjs = require('./H74JSDBU.cjs');
15
+
16
+
17
+
18
+
19
+
20
+
21
+ var _NWZGFHKHcjs = require('./NWZGFHKH.cjs');
22
+
23
+
24
+
25
+
26
+ var _CMUD7LLNcjs = require('./CMUD7LLN.cjs');
27
+
28
+ // src/commands/db/create-readonly-user/handler.js
29
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
30
+ var _zod = require('zod');
31
+ async function resolveEngine(engineOption, url) {
32
+ if (engineOption) {
33
+ return engineOption;
34
+ }
35
+ if (url) {
36
+ const detected = _NWZGFHKHcjs.detectEngineFromUrl.call(void 0, url);
37
+ if (detected) {
38
+ return detected;
39
+ }
40
+ }
41
+ const index = await _CMUD7LLNcjs.promptChoice.call(void 0, {
42
+ message: "Choose a database engine:",
43
+ options: ["postgres", "mysql"]
44
+ });
45
+ const chosen = _H74JSDBUcjs.ENGINES[index];
46
+ if (!chosen) {
47
+ throw new Error("No engine selected");
48
+ }
49
+ return chosen;
50
+ }
51
+ async function resolveUrl(params) {
52
+ const { urlOption, engine } = params;
53
+ const fromEnv = _NWZGFHKHcjs.resolveAdminUrl.call(void 0, { url: urlOption, engine });
54
+ if (fromEnv) {
55
+ return fromEnv;
56
+ }
57
+ const example = engine === "postgres" ? "postgresql://admin:pass@host:5432/postgres" : "mysql://admin:pass@host:3306/";
58
+ const raw = await _CMUD7LLNcjs.prompt.call(void 0, ` Admin connection URL (e.g. ${example}): `);
59
+ if (!raw) {
60
+ throw new Error(
61
+ "Admin connection URL is required (pass --url or set DATABASE_URL)"
62
+ );
63
+ }
64
+ return raw;
65
+ }
66
+ async function resolveScope(params) {
67
+ const { databaseOption, databases } = params;
68
+ if (databaseOption) {
69
+ const normalized = databaseOption.trim().toLowerCase();
70
+ if (normalized === "all" || normalized === "*") {
71
+ return { mode: "all", databases };
72
+ }
73
+ if (!databases.includes(databaseOption)) {
74
+ throw new Error(
75
+ `Database "${databaseOption}" not found. Available: ${databases.join(", ") || "(none)"}`
76
+ );
77
+ }
78
+ return { mode: "one", databases: [databaseOption] };
79
+ }
80
+ if (databases.length === 0) {
81
+ throw new Error("No user databases found to grant access on.");
82
+ }
83
+ const options = [
84
+ ...databases.map((name) => name),
85
+ `all (${databases.length} databases)`
86
+ ];
87
+ const index = await _CMUD7LLNcjs.promptChoice.call(void 0, {
88
+ message: "Grant read-only on which database?",
89
+ options
90
+ });
91
+ if (index === options.length - 1) {
92
+ return { mode: "all", databases };
93
+ }
94
+ const chosen = databases[index];
95
+ if (!chosen) {
96
+ throw new Error("No database selected");
97
+ }
98
+ return { mode: "one", databases: [chosen] };
99
+ }
100
+ async function resolveUsername(usernameOption) {
101
+ if (usernameOption) {
102
+ return usernameOption;
103
+ }
104
+ const raw = await _CMUD7LLNcjs.prompt.call(void 0,
105
+ ` Read-only username [default: ${_H74JSDBUcjs.DEFAULT_READONLY_USERNAME}]: `
106
+ );
107
+ const username = raw || _H74JSDBUcjs.DEFAULT_READONLY_USERNAME;
108
+ if (!/^[A-Za-z0-9_]+$/.test(username)) {
109
+ throw new Error(
110
+ "Username must contain only letters, numbers, and underscores"
111
+ );
112
+ }
113
+ return username;
114
+ }
115
+ async function resolvePassword(passwordOption) {
116
+ if (passwordOption) {
117
+ return { password: passwordOption, generated: false };
118
+ }
119
+ const generate = await _CMUD7LLNcjs.promptYesNo.call(void 0, {
120
+ message: " Generate a random password?",
121
+ defaultYes: true
122
+ });
123
+ if (generate) {
124
+ return { password: _NWZGFHKHcjs.generatePassword.call(void 0, ), generated: true };
125
+ }
126
+ const password = await _CMUD7LLNcjs.prompt.call(void 0, " Password: ");
127
+ if (!password) {
128
+ throw new Error("Password is required");
129
+ }
130
+ return { password, generated: false };
131
+ }
132
+ function redactUrl(url) {
133
+ try {
134
+ const parsed = new URL(url);
135
+ if (parsed.password) {
136
+ parsed.password = "***";
137
+ }
138
+ return parsed.toString();
139
+ } catch (e) {
140
+ return url;
141
+ }
142
+ }
143
+ async function createReadonlyUserCommand(options) {
144
+ try {
145
+ const {
146
+ engine: engineOption,
147
+ url: urlOption,
148
+ database: databaseOption,
149
+ username: usernameOption,
150
+ password: passwordOption,
151
+ hostPattern: hostPatternOption,
152
+ ssl: sslOption,
153
+ yes,
154
+ dryRun,
155
+ verbose
156
+ } = _H74JSDBUcjs.createReadonlyUserOptionsSchema.parse(options);
157
+ console.log(_chalk2.default.blue("\nCreate read-only database user"));
158
+ console.log("");
159
+ const urlForDetect = _NWZGFHKHcjs.resolveAdminUrl.call(void 0, {
160
+ url: urlOption,
161
+ engine: engineOption
162
+ });
163
+ const engine = await resolveEngine(engineOption, urlForDetect);
164
+ console.log(`Engine: ${engine}`);
165
+ const url = await resolveUrl({ urlOption, engine });
166
+ const config = _NWZGFHKHcjs.parseConnectionUrl.call(void 0, {
167
+ url,
168
+ engine,
169
+ sslOption
170
+ });
171
+ console.log(
172
+ `Admin: ${config.user}@${config.host}:${config.port}` + (config.database ? `/${config.database}` : "")
173
+ );
174
+ console.log("");
175
+ const listed = engine === "postgres" ? await _K4QNHRTPcjs.listPostgresDatabases.call(void 0, config) : await _3A5ZYU5Mcjs.listMysqlDatabases.call(void 0, config);
176
+ if (verbose) {
177
+ console.log(`Found databases: ${listed.join(", ") || "(none)"}`);
178
+ console.log("");
179
+ }
180
+ const scope = await resolveScope({
181
+ databaseOption,
182
+ databases: listed
183
+ });
184
+ console.log(
185
+ scope.mode === "all" ? `Scope: all (${scope.databases.length} databases)` : `Scope: ${scope.databases[0]}`
186
+ );
187
+ console.log("");
188
+ const username = await resolveUsername(usernameOption);
189
+ const { password, generated } = await resolvePassword(passwordOption);
190
+ const hostPattern = _nullishCoalesce(hostPatternOption, () => ( _H74JSDBUcjs.DEFAULT_MYSQL_HOST_PATTERN));
191
+ console.log("");
192
+ console.log("Plan:");
193
+ console.log(` User: ${username}`);
194
+ console.log(
195
+ ` Password: ${generated ? "(generated)" : "(provided)"}${dryRun ? " [dry-run]" : ""}`
196
+ );
197
+ if (engine === "mysql") {
198
+ console.log(` Host: ${hostPattern}`);
199
+ }
200
+ console.log(
201
+ scope.mode === "all" ? ` Grants: SELECT on ALL databases (${scope.databases.length})` : ` Grants: SELECT on ${scope.databases[0]}`
202
+ );
203
+ if (scope.mode === "all" && engine === "postgres") {
204
+ console.log(
205
+ _chalk2.default.yellow(
206
+ " Note: Databases created later will NOT get these grants automatically \u2014 re-run this command."
207
+ )
208
+ );
209
+ }
210
+ console.log("");
211
+ if (!yes && !dryRun) {
212
+ const confirmed = await _CMUD7LLNcjs.promptYesNo.call(void 0, {
213
+ message: "Apply these changes?",
214
+ defaultYes: false
215
+ });
216
+ if (!confirmed) {
217
+ console.log("Aborted.");
218
+ return;
219
+ }
220
+ console.log("");
221
+ }
222
+ const result = engine === "postgres" ? await _K4QNHRTPcjs.applyPostgresReadonly.call(void 0, {
223
+ config,
224
+ username,
225
+ password,
226
+ databases: scope.databases,
227
+ dryRun,
228
+ verbose
229
+ }) : await _3A5ZYU5Mcjs.applyMysqlReadonly.call(void 0, {
230
+ config,
231
+ username,
232
+ password,
233
+ databases: scope.mode === "all" ? "all" : scope.databases,
234
+ hostPattern,
235
+ dryRun,
236
+ verbose
237
+ });
238
+ if (dryRun) {
239
+ console.log(_chalk2.default.cyan("Dry run \u2014 SQL that would run:"));
240
+ for (const statement of result.statements) {
241
+ console.log(` ${statement}`);
242
+ }
243
+ console.log("");
244
+ console.log(_chalk2.default.cyan("No changes made."));
245
+ return;
246
+ }
247
+ console.log(
248
+ _chalk2.default.green(
249
+ result.created ? `Created user "${username}" and granted read-only access.` : `Updated user "${username}" password and refreshed read-only grants.`
250
+ )
251
+ );
252
+ console.log("");
253
+ const sampleDb = scope.mode === "one" ? _nullishCoalesce(scope.databases[0], () => ( "")) : _nullishCoalesce(scope.databases[0], () => ( ""));
254
+ const readonlyUrl = _NWZGFHKHcjs.buildReadonlyUrl.call(void 0, {
255
+ engine,
256
+ host: config.host,
257
+ port: config.port,
258
+ username,
259
+ password,
260
+ database: sampleDb
261
+ });
262
+ console.log("Connection (secret shown once \u2014 copy now):");
263
+ console.log(
264
+ "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"
265
+ );
266
+ console.log(readonlyUrl);
267
+ if (scope.mode === "all") {
268
+ console.log("");
269
+ console.log(
270
+ _chalk2.default.gray(
271
+ ` (URL uses database "${sampleDb}" as an example; user can connect to any granted database.)`
272
+ )
273
+ );
274
+ }
275
+ console.log(
276
+ "\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500\u2500"
277
+ );
278
+ console.log("");
279
+ console.log(_chalk2.default.gray(`Admin URL used: ${redactUrl(url)}`));
280
+ } catch (error) {
281
+ if (error instanceof _zod.ZodError) {
282
+ console.error(_chalk2.default.red("\n\u274C Invalid command options:"));
283
+ error.errors.forEach((err) => {
284
+ console.error(_chalk2.default.red(` ${err.path.join(".")}: ${err.message}`));
285
+ });
286
+ process.exit(1);
287
+ }
288
+ const verbose = (
289
+ /** @type {any} */
290
+ _optionalChain([options, 'optionalAccess', _ => _.verbose]) || false
291
+ );
292
+ console.error(_chalk2.default.red("\n\u274C create-readonly-user failed:"));
293
+ if (error instanceof Error) {
294
+ console.error(_chalk2.default.red(` ${error.message}`));
295
+ if (verbose && error.stack) {
296
+ console.error(_chalk2.default.gray("\nStack trace:"));
297
+ console.error(_chalk2.default.gray(error.stack));
298
+ }
299
+ } else {
300
+ console.error(_chalk2.default.red(` ${String(error)}`));
301
+ }
302
+ console.error(
303
+ _chalk2.default.yellow(
304
+ "\n\u{1F4A1} Pass --url or set DATABASE_URL. Use --verbose for details.\n"
305
+ )
306
+ );
307
+ process.exit(1);
308
+ }
309
+ }
310
+
311
+
312
+
313
+ exports.createReadonlyUserCommand = createReadonlyUserCommand;
@@ -0,0 +1,74 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
2
+
3
+ var _XMKOKRXZcjs = require('./XMKOKRXZ.cjs');
4
+
5
+
6
+ var _3T2LXW7Jcjs = require('./3T2LXW7J.cjs');
7
+
8
+
9
+
10
+ var _R3GUC7O7cjs = require('./R3GUC7O7.cjs');
11
+
12
+
13
+ var _NT2XXAI6cjs = require('./NT2XXAI6.cjs');
14
+
15
+ // src/commands/aws/iam/users/handler.js
16
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
17
+ var _zod = require('zod');
18
+ async function usersCommand(options) {
19
+ try {
20
+ const {
21
+ accountName,
22
+ profile: profileOption,
23
+ verbose
24
+ } = _XMKOKRXZcjs.usersOptionsSchema.parse(options);
25
+ _R3GUC7O7cjs.requireCommands.call(void 0, ["aws"]);
26
+ const profile = await _NT2XXAI6cjs.resolveProfile.call(void 0, { profile: profileOption });
27
+ console.log(_chalk2.default.blue("\nAWS IAM user management"));
28
+ console.log("");
29
+ console.log("Caller:");
30
+ const identity = _R3GUC7O7cjs.getCallerIdentity.call(void 0, { profile, verbose });
31
+ console.log(` Account: ${identity.Account}`);
32
+ console.log(` Arn: ${identity.Arn}`);
33
+ console.log("");
34
+ await _3T2LXW7Jcjs.createUsersInteractive.call(void 0, {
35
+ accountName,
36
+ profile,
37
+ identity,
38
+ verbose
39
+ });
40
+ console.log("Done.");
41
+ } catch (error) {
42
+ if (error instanceof _zod.ZodError) {
43
+ console.error(_chalk2.default.red("\n\u274C Invalid command options:"));
44
+ error.errors.forEach((err) => {
45
+ console.error(_chalk2.default.red(` ${err.path.join(".")}: ${err.message}`));
46
+ });
47
+ process.exit(1);
48
+ }
49
+ const verbose = (
50
+ /** @type {any} */
51
+ _optionalChain([options, 'optionalAccess', _ => _.verbose]) || false
52
+ );
53
+ console.error(_chalk2.default.red("\n\u274C iam users failed:"));
54
+ if (error instanceof Error) {
55
+ console.error(_chalk2.default.red(` ${error.message}`));
56
+ if (verbose && error.stack) {
57
+ console.error(_chalk2.default.gray("\nStack trace:"));
58
+ console.error(_chalk2.default.gray(error.stack));
59
+ }
60
+ } else {
61
+ console.error(_chalk2.default.red(` ${String(error)}`));
62
+ }
63
+ console.error(
64
+ _chalk2.default.yellow(
65
+ "\n\u{1F4A1} Requires the AWS CLI and a profile with IAM write access.\n"
66
+ )
67
+ );
68
+ process.exit(1);
69
+ }
70
+ }
71
+
72
+
73
+
74
+ exports.usersCommand = usersCommand;