@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
package/CHANGELOG.md CHANGED
@@ -1,11 +1,92 @@
1
1
  # @mtndev/cli
2
2
 
3
- ## 0.0.0-dev-20260626045221
3
+ ## 0.0.0-dev-20260914234436
4
4
 
5
5
  ### Major Changes
6
6
 
7
- - [#11](https://github.com/High-Country-Dev/core/pull/11) [`ff9c7fb`](https://github.com/High-Country-Dev/core/commit/ff9c7fb79bfee9e7b77f99e289bbba7804cda9bb) Thanks [@StarScape](https://github.com/StarScape)! - Change -e to -t
7
+ - [#10](https://github.com/High-Country-Dev/core/pull/10) [`c194a34`](https://github.com/High-Country-Dev/core/commit/c194a34266e500a6d8ab4ae5d292e6d875b36549) Thanks [@rnarcos](https://github.com/rnarcos)! - Renamed `--environment` to `--environments` and added support for comma-separated environment lists. Added `clone` subcommand for cloning secrets between Doppler projects.
8
+
9
+ **Breaking change:** `--environment` has been replaced by `--environments`.
10
+
11
+ **Who is affected:** You are **not** affected if you only use the `-e` shorthand — it is preserved and works unchanged with all existing values (`-e dev`, `-e stg`, `-e prd`, `-e all`). You **are** affected if you use the verbose `--environment` flag in any script or alias.
12
+
13
+ **Migration:**
14
+
15
+ Replace `--environment` with `--environments` in any script using the verbose flag. The `-e` shorthand, and all existing values (`dev`, `stg`, `prd`, `all`) continue to work unchanged. You may now also pass comma-separated values to target multiple environments at once.
16
+
17
+ ```shell
18
+ # Before
19
+ mtndev doppler download --environment dev
20
+ mtndev doppler upload --environment prd
21
+
22
+ # After
23
+ mtndev doppler download --environments dev
24
+ mtndev doppler upload --environments prd
25
+
26
+ # New: multiple environments at once
27
+ mtndev doppler download --environments dev,stg
28
+
29
+ # New: clone secrets between projects
30
+ mtndev doppler clone --from my-app --to my-app-copy
31
+ mtndev doppler clone --from my-app --to my-app-copy -e dev,stg
32
+ ```
33
+
34
+ ### Minor Changes
35
+
36
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Add a nested `mtn aws` command group with IAM, EC2, and SES operational commands ported from the internal scripts repo:
37
+ - `aws iam setup-acl` — idempotently create the ACL groups, their managed policies, and (optionally) users
38
+ - `aws iam users` — interactively create IAM users and assign them to the matching ACL group
39
+ - `aws iam check-admin` — alert if anyone is a member of the break-glass `acl-admin-do-not-use` group
40
+ - `aws iam remove-admin` — remove users from `acl-admin-do-not-use` to revoke break-glass access
41
+ - `aws iam break-glass` — grant break-glass admin access by adding a user (default: your own IAM user) to `acl-admin-do-not-use` for one profile
42
+ - `aws ec2 allow-ip` — update or create a roaming SSH ingress rule for your current public IP
43
+ - `aws ses send-email` — send a test email via the SES API or SMTP
44
+
45
+ `check-admin` and `remove-admin` scan a single profile (`--profile` or `AWS_PROFILE`) or every `aws-vault` profile with `--all`, trying stored credentials first and falling back to `aws-vault exec`.
46
+
47
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Added an interactive AWS profile picker to the `mtn aws` commands. When a single-profile command (`iam setup-acl`, `iam users`, `iam break-glass`, `ec2 allow-ip`, `route53 add-record` / `remove-record`, and `ses send-email` over the API transport) runs with neither `--profile` nor `AWS_PROFILE` set and you're at a terminal, it now prompts with a substring-filtered picker over the profiles in `~/.aws/config` instead of silently falling back to the `default` profile. A single filter match auto-selects, and the choice applies to that one invocation only (a child process can't export `AWS_PROFILE` to your shell). Non-interactive contexts (no TTY, e.g. CI) skip the picker and keep the previous behavior. `check-admin` / `remove-admin` are intentionally excluded, where an unset profile already means "scan every aws-vault profile".
48
+
49
+ ```shell
50
+ mtn aws route53 add-record # no profile set → filter & pick, then continues
51
+ ```
52
+
53
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Added `mtn db create-readonly-user` to create a read-only MySQL or Postgres user on one database or all databases. Example:
54
+
55
+ ```shell
56
+ mtn db create-readonly-user -e postgres -u "$DATABASE_URL" -d all --yes
57
+ ```
58
+
59
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Added `mtn doppler set` to interactively (or via flags) add or update a secret by picking project, environment, and config. Example:
60
+
61
+ ```shell
62
+ mtn doppler set -p core --environment dev -c dev --name API_KEY --value secret --yes
63
+ ```
64
+
65
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Added `mtn aws route53 add-record` to interactively (or via flags) create or update a DNS record in a Route53 hosted zone, with clear create / overwrite / append feedback. Example:
66
+
67
+ ```shell
68
+ mtn aws route53 add-record -z mountaindev.com -t CNAME -n redline --value eb34fd3576733d80.vercel-dns-016.com.
69
+ ```
70
+
71
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Added `mtn aws route53 remove-record` to interactively (or via flags) delete a DNS record from a Route53 hosted zone, showing the record it found and confirming before deleting (alias records included). Also taught `add-record` to detect CNAME conflicts up front — Route53 forbids a CNAME from coexisting with any other record type at the same name, so it now stops with a clear message (and points you at `remove-record`) instead of surfacing the raw `InvalidChangeBatch` error. Example:
72
+
73
+ ```shell
74
+ mtn aws route53 remove-record -z etymologyexplorer.com -t CNAME -n wotd --yes
75
+ ```
76
+
77
+ ### Patch Changes
78
+
79
+ - [#15](https://github.com/High-Country-Dev/core/pull/15) [`36580db`](https://github.com/High-Country-Dev/core/commit/36580db5ab3f7b17552a44bc0f198fe768d3fcdd) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Updated `mtn aws iam users` to default the account slug from the caller profile / IAM ARN (e.g. `md-declan-thespeckledtrout-iam-admin` → `thespeckledtrout`). Press Enter to accept, or type a different value; `--account-name` still skips the prompt.
80
+
81
+ - [#16](https://github.com/High-Country-Dev/core/pull/16) [`4a43df1`](https://github.com/High-Country-Dev/core/commit/4a43df1064325da93a69df798c9213178b1027c8) Thanks [@dnishiyama](https://github.com/dnishiyama)! - Add Vitest testing infrastructure for `@mtndev/cli`: a Node-environment Vitest
82
+ setup with seed tests for the Doppler command utilities and schemas, wired into
83
+ Turbo and the PR CI checks. Tests are colocated under `src/` (so they are
84
+ typechecked, linted, and formatted) and excluded from the published build via
85
+ `libsync` ignore globs and `tsconfig.build.json`, so no test files ship in the
86
+ `cjs`/`esm` output. No runtime behavior changes.
87
+
88
+ ## 1.1.0
8
89
 
9
90
  ### Minor Changes
10
91
 
11
- - [#11](https://github.com/High-Country-Dev/core/pull/11) [`09df9e3`](https://github.com/High-Country-Dev/core/commit/09df9e38f98f3d3e4731763213f295717cd59324) Thanks [@StarScape](https://github.com/StarScape)! - Added extra help commands, minor improvements to style and wording
92
+ - [#11](https://github.com/High-Country-Dev/core/pull/11) [`fa76e6d`](https://github.com/High-Country-Dev/core/commit/fa76e6d72bdb7d7ef561a140469500a01ed53c7a) Thanks [@StarScape](https://github.com/StarScape)! - Added extra help commands, minor improvements to style and wording
@@ -0,0 +1,146 @@
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
+ var _LFDSHANPcjs = require('./LFDSHANP.cjs');
4
+
5
+
6
+
7
+
8
+ var _WBOQ6AUNcjs = require('./WBOQ6AUN.cjs');
9
+
10
+
11
+
12
+
13
+
14
+
15
+ var _B6XM5KSFcjs = require('./B6XM5KSF.cjs');
16
+
17
+
18
+
19
+
20
+ var _R3GUC7O7cjs = require('./R3GUC7O7.cjs');
21
+
22
+
23
+ var _NT2XXAI6cjs = require('./NT2XXAI6.cjs');
24
+
25
+
26
+ var _CMUD7LLNcjs = require('./CMUD7LLN.cjs');
27
+
28
+ // src/commands/aws/route53/remove-record/handler.js
29
+ var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
30
+ var _zod = require('zod');
31
+ async function removeRecordCommand(options) {
32
+ try {
33
+ const {
34
+ profile: profileOption,
35
+ zone: zoneOption,
36
+ type: typeOption,
37
+ name: nameOption,
38
+ yes,
39
+ dryRun,
40
+ verbose
41
+ } = _LFDSHANPcjs.removeRecordOptionsSchema.parse(options);
42
+ const profile = await _NT2XXAI6cjs.resolveProfile.call(void 0, { profile: profileOption });
43
+ if (!profile) {
44
+ console.error(_chalk2.default.red("Error: pass --profile or set AWS_PROFILE."));
45
+ process.exit(1);
46
+ }
47
+ _R3GUC7O7cjs.requireCommands.call(void 0, ["aws"]);
48
+ const identity = _R3GUC7O7cjs.getCallerIdentity.call(void 0, { profile, verbose });
49
+ console.log("Caller:");
50
+ console.log(` Account: ${identity.Account}`);
51
+ console.log(` Arn: ${identity.Arn}`);
52
+ console.log("");
53
+ const zone = await _WBOQ6AUNcjs.resolveHostedZone.call(void 0, { profile, zoneOption, verbose });
54
+ console.log(`Hosted zone: ${_B6XM5KSFcjs.hostedZoneLabel.call(void 0, zone)}`);
55
+ console.log("");
56
+ const type = await _WBOQ6AUNcjs.resolveRecordType.call(void 0, typeOption);
57
+ const name = await _WBOQ6AUNcjs.resolveName.call(void 0, { nameOption, zoneName: zone.name });
58
+ const existing = _B6XM5KSFcjs.getResourceRecordSet.call(void 0, {
59
+ profile,
60
+ hostedZoneId: zone.id,
61
+ name,
62
+ type,
63
+ verbose
64
+ });
65
+ if (!existing) {
66
+ console.log(
67
+ _chalk2.default.yellow(
68
+ `No ${type} record at ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, name)}. Nothing to remove.`
69
+ )
70
+ );
71
+ return;
72
+ }
73
+ console.log("Record to remove:");
74
+ console.log(` Name: ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, name)}`);
75
+ console.log(` Type: ${type}`);
76
+ if (existing.isAlias) {
77
+ console.log(
78
+ ` Alias: ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, String(_nullishCoalesce(_optionalChain([existing, 'access', _ => _.aliasTarget, 'optionalAccess', _2 => _2.DNSName]), () => ( ""))))}`
79
+ );
80
+ } else {
81
+ if (existing.ttl !== void 0) {
82
+ console.log(` TTL: ${existing.ttl}`);
83
+ }
84
+ console.log(` Value:${_B6XM5KSFcjs.formatValues.call(void 0, existing.values)}`);
85
+ }
86
+ console.log("");
87
+ if (dryRun) {
88
+ console.log(_chalk2.default.cyan("Dry run \u2014 no changes made."));
89
+ return;
90
+ }
91
+ if (!yes) {
92
+ const confirmed = await _CMUD7LLNcjs.promptYesNo.call(void 0, {
93
+ message: `Delete this ${type} record?`,
94
+ defaultYes: false
95
+ });
96
+ if (!confirmed) {
97
+ console.log("Aborted.");
98
+ return;
99
+ }
100
+ }
101
+ const changeInfo = _B6XM5KSFcjs.deleteResourceRecordSet.call(void 0, {
102
+ profile,
103
+ hostedZoneId: zone.id,
104
+ record: existing,
105
+ verbose
106
+ });
107
+ console.log("");
108
+ console.log(
109
+ _chalk2.default.green(`Done. Deleted ${type} ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, name)}.`)
110
+ );
111
+ if (_optionalChain([changeInfo, 'optionalAccess', _3 => _3.Id])) {
112
+ console.log(` Change ID: ${changeInfo.Id}`);
113
+ console.log(` Status: ${_nullishCoalesce(changeInfo.Status, () => ( "PENDING"))}`);
114
+ }
115
+ } catch (error) {
116
+ if (error instanceof _zod.ZodError) {
117
+ console.error(_chalk2.default.red("\n\u274C Invalid command options:"));
118
+ error.errors.forEach((err) => {
119
+ console.error(_chalk2.default.red(` ${err.path.join(".")}: ${err.message}`));
120
+ });
121
+ process.exit(1);
122
+ }
123
+ const verbose = (
124
+ /** @type {any} */
125
+ _optionalChain([options, 'optionalAccess', _4 => _4.verbose]) || false
126
+ );
127
+ console.error(_chalk2.default.red("\n\u274C remove-record failed:"));
128
+ if (error instanceof _R3GUC7O7cjs.AwsCliError || error instanceof Error) {
129
+ console.error(_chalk2.default.red(` ${error.message}`));
130
+ if (verbose && error.stack) {
131
+ console.error(_chalk2.default.gray("\nStack trace:"));
132
+ console.error(_chalk2.default.gray(error.stack));
133
+ }
134
+ } else {
135
+ console.error(_chalk2.default.red(` ${String(error)}`));
136
+ }
137
+ console.error(
138
+ _chalk2.default.yellow("\n\u{1F4A1} Use --verbose for detailed error information\n")
139
+ );
140
+ process.exit(1);
141
+ }
142
+ }
143
+
144
+
145
+
146
+ exports.removeRecordCommand = removeRecordCommand;
@@ -0,0 +1,105 @@
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(); } }
2
+
3
+
4
+
5
+ var _NWZGFHKHcjs = require('./NWZGFHKH.cjs');
6
+
7
+ // src/commands/db/create-readonly-user/mysql.js
8
+ var _promise = require('mysql2/promise'); var _promise2 = _interopRequireDefault(_promise);
9
+ async function createConnection(config) {
10
+ return _promise2.default.createConnection({
11
+ host: config.host,
12
+ port: config.port,
13
+ user: config.user,
14
+ password: config.password,
15
+ database: config.database || void 0,
16
+ ssl: config.ssl && typeof config.ssl === "object" ? config.ssl : void 0,
17
+ multipleStatements: false
18
+ });
19
+ }
20
+ async function listMysqlDatabases(config) {
21
+ const connection = await createConnection(config);
22
+ try {
23
+ const [rows] = await connection.query("SHOW DATABASES");
24
+ const names = (
25
+ /** @type {Array<{ Database?: string }>} */
26
+ rows.map(
27
+ (row) => _nullishCoalesce(row.Database, () => ( ""))
28
+ )
29
+ );
30
+ return names.filter((name) => Boolean(name)).filter((name) => !_NWZGFHKHcjs.isSystemDatabase.call(void 0, { engine: "mysql", name })).sort((a, b) => a.localeCompare(b));
31
+ } finally {
32
+ await connection.end();
33
+ }
34
+ }
35
+ async function applyMysqlReadonly(params) {
36
+ const {
37
+ config,
38
+ username,
39
+ password,
40
+ databases,
41
+ hostPattern,
42
+ dryRun = false,
43
+ verbose = false
44
+ } = params;
45
+ const userLiteral = _NWZGFHKHcjs.quoteLiteral.call(void 0, username);
46
+ const hostLiteral = _NWZGFHKHcjs.quoteLiteral.call(void 0, hostPattern);
47
+ const passwordLiteral = _NWZGFHKHcjs.quoteLiteral.call(void 0, password);
48
+ const account = `${userLiteral}@${hostLiteral}`;
49
+ const statements = [];
50
+ const createSql = `CREATE USER IF NOT EXISTS ${account} IDENTIFIED BY ${passwordLiteral}`;
51
+ const alterSql = `ALTER USER ${account} IDENTIFIED BY ${passwordLiteral}`;
52
+ const grantSqls = [];
53
+ if (databases === "all") {
54
+ grantSqls.push(
55
+ `GRANT SELECT, SHOW VIEW, SHOW DATABASES ON *.* TO ${account}`
56
+ );
57
+ } else {
58
+ for (const database of databases) {
59
+ const dbIdent = _NWZGFHKHcjs.quoteIdent.call(void 0, { engine: "mysql", name: database });
60
+ grantSqls.push(`GRANT SELECT, SHOW VIEW ON ${dbIdent}.* TO ${account}`);
61
+ }
62
+ }
63
+ const flushSql = "FLUSH PRIVILEGES";
64
+ statements.push(createSql, alterSql, ...grantSqls, flushSql);
65
+ if (dryRun) {
66
+ return {
67
+ created: true,
68
+ statements: statements.map(
69
+ (sql) => sql.includes("IDENTIFIED BY") ? sql.replace(/IDENTIFIED BY '.*'/, "IDENTIFIED BY ***") : sql
70
+ ),
71
+ databases
72
+ };
73
+ }
74
+ const connection = await createConnection(config);
75
+ try {
76
+ if (verbose) {
77
+ console.log(` Connected to MySQL as ${config.user}@${config.host}`);
78
+ }
79
+ const [existingRows] = await connection.query(
80
+ "SELECT 1 AS ok FROM mysql.user WHERE User = ? AND Host = ? LIMIT 1",
81
+ [username, hostPattern]
82
+ );
83
+ const existed = Array.isArray(existingRows) && existingRows.length > 0;
84
+ await connection.query(createSql);
85
+ await connection.query(alterSql);
86
+ for (const grantSql of grantSqls) {
87
+ await connection.query(grantSql);
88
+ }
89
+ await connection.query(flushSql);
90
+ return {
91
+ created: !existed,
92
+ statements: statements.map(
93
+ (sql) => sql.includes("IDENTIFIED BY") ? sql.replace(/IDENTIFIED BY '.*'/, "IDENTIFIED BY ***") : sql
94
+ ),
95
+ databases
96
+ };
97
+ } finally {
98
+ await connection.end();
99
+ }
100
+ }
101
+
102
+
103
+
104
+
105
+ exports.listMysqlDatabases = listMysqlDatabases; exports.applyMysqlReadonly = applyMysqlReadonly;
@@ -0,0 +1,9 @@
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/utils/resolve-policy-path.js
2
+ var _url = require('url');
3
+ function resolvePolicyPath(fileName) {
4
+ return _url.fileURLToPath.call(void 0, new URL(`../iam/policies/${fileName}`, import.meta.url));
5
+ }
6
+
7
+
8
+
9
+ exports.resolvePolicyPath = resolvePolicyPath;