@mtndev/cli 2.0.0 → 2.0.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 (264) hide show
  1. package/CHANGELOG.md +13 -0
  2. package/cjs/__chunks/VH7oDXx4.cjs +28 -0
  3. package/cjs/commands/aws/ec2/allow-ip/handler.cjs +261 -12
  4. package/cjs/commands/aws/ec2/allow-ip/index.cjs +25 -55
  5. package/cjs/commands/aws/ec2/allow-ip/schema.cjs +33 -13
  6. package/cjs/commands/aws/ec2/allow-ip/utils.cjs +379 -39
  7. package/cjs/commands/aws/iam/admin-group.cjs +111 -15
  8. package/cjs/commands/aws/iam/break-glass/handler.cjs +127 -12
  9. package/cjs/commands/aws/iam/break-glass/index.cjs +7 -19
  10. package/cjs/commands/aws/iam/break-glass/schema.cjs +21 -12
  11. package/cjs/commands/aws/iam/check-admin/handler.cjs +89 -10
  12. package/cjs/commands/aws/iam/check-admin/index.cjs +7 -17
  13. package/cjs/commands/aws/iam/check-admin/schema.cjs +19 -12
  14. package/cjs/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.json +20 -0
  15. package/cjs/commands/aws/iam/policies/sts-federation.json +11 -0
  16. package/cjs/commands/aws/iam/policies/user-admins-deny-list.json +175 -0
  17. package/cjs/commands/aws/iam/policies/user-admins-deny-regions-list.json +41 -0
  18. package/cjs/commands/aws/iam/policies/user-admins-self-service-iam.json +56 -0
  19. package/cjs/commands/aws/iam/policies/user-admins-write-list.json +117 -0
  20. package/cjs/commands/aws/iam/remove-admin/handler.cjs +120 -11
  21. package/cjs/commands/aws/iam/remove-admin/index.cjs +7 -18
  22. package/cjs/commands/aws/iam/remove-admin/schema.cjs +22 -12
  23. package/cjs/commands/aws/iam/setup-acl/handler.cjs +227 -14
  24. package/cjs/commands/aws/iam/setup-acl/index.cjs +13 -33
  25. package/cjs/commands/aws/iam/setup-acl/schema.cjs +19 -7
  26. package/cjs/commands/aws/iam/setup-acl/utils.cjs +305 -20
  27. package/cjs/commands/aws/iam/users/handler.cjs +59 -12
  28. package/cjs/commands/aws/iam/users/index.cjs +18 -41
  29. package/cjs/commands/aws/iam/users/schema.cjs +17 -7
  30. package/cjs/commands/aws/iam/users/utils.cjs +454 -30
  31. package/cjs/commands/aws/index.cjs +223 -229
  32. package/cjs/commands/aws/route53/add-record/handler.cjs +264 -18
  33. package/cjs/commands/aws/route53/add-record/index.cjs +26 -57
  34. package/cjs/commands/aws/route53/add-record/schema.cjs +43 -11
  35. package/cjs/commands/aws/route53/add-record/utils.cjs +404 -37
  36. package/cjs/commands/aws/route53/remove-record/handler.cjs +114 -14
  37. package/cjs/commands/aws/route53/remove-record/index.cjs +5 -18
  38. package/cjs/commands/aws/route53/remove-record/schema.cjs +22 -8
  39. package/cjs/commands/aws/schema.cjs +19 -10
  40. package/cjs/commands/aws/ses/send-email/handler.cjs +73 -12
  41. package/cjs/commands/aws/ses/send-email/index.cjs +9 -23
  42. package/cjs/commands/aws/ses/send-email/schema.cjs +24 -7
  43. package/cjs/commands/aws/ses/send-email/utils.cjs +87 -11
  44. package/cjs/commands/aws/ses/smtp-password.cjs +72 -10
  45. package/cjs/commands/aws/utils/exec-aws.cjs +145 -16
  46. package/cjs/commands/aws/utils/resolve-policy-path.cjs +15 -6
  47. package/cjs/commands/aws/utils/resolve-profile.cjs +93 -11
  48. package/cjs/commands/aws/utils/tty.cjs +54 -10
  49. package/cjs/commands/db/create-readonly-user/handler.cjs +254 -11
  50. package/cjs/commands/db/create-readonly-user/index.cjs +18 -40
  51. package/cjs/commands/db/create-readonly-user/mysql.cjs +102 -9
  52. package/cjs/commands/db/create-readonly-user/postgres.cjs +209 -9
  53. package/cjs/commands/db/create-readonly-user/schema.cjs +39 -12
  54. package/cjs/commands/db/create-readonly-user/utils.cjs +160 -22
  55. package/cjs/commands/db/index.cjs +46 -44
  56. package/cjs/commands/doppler/handler.cjs +95 -11
  57. package/cjs/commands/doppler/index.cjs +33 -68
  58. package/cjs/commands/doppler/schema.cjs +130 -14
  59. package/cjs/commands/doppler/set-secret.cjs +378 -19
  60. package/cjs/commands/doppler/utils/exec.cjs +106 -12
  61. package/cjs/commands/doppler/utils.cjs +412 -34
  62. package/cjs/commands/icons/handler.cjs +82 -8
  63. package/cjs/commands/icons/index.cjs +15 -31
  64. package/cjs/commands/icons/schema.cjs +101 -13
  65. package/cjs/commands/icons/utils.cjs +131 -13
  66. package/cjs/commands/index.cjs +54 -161
  67. package/cjs/commands/schema.cjs +25 -8
  68. package/cjs/index.cjs +3 -4
  69. package/esm/commands/aws/ec2/allow-ip/handler.js +258 -12
  70. package/esm/commands/aws/ec2/allow-ip/index.js +4 -55
  71. package/esm/commands/aws/ec2/allow-ip/schema.js +29 -13
  72. package/esm/commands/aws/ec2/allow-ip/utils.js +363 -39
  73. package/esm/commands/aws/iam/admin-group.js +104 -15
  74. package/esm/commands/aws/iam/break-glass/handler.js +124 -12
  75. package/esm/commands/aws/iam/break-glass/index.js +4 -19
  76. package/esm/commands/aws/iam/break-glass/schema.js +19 -12
  77. package/esm/commands/aws/iam/check-admin/handler.js +86 -10
  78. package/esm/commands/aws/iam/check-admin/index.js +4 -17
  79. package/esm/commands/aws/iam/check-admin/schema.js +17 -12
  80. package/esm/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.json +20 -0
  81. package/esm/commands/aws/iam/policies/sts-federation.json +11 -0
  82. package/esm/commands/aws/iam/policies/user-admins-deny-list.json +175 -0
  83. package/esm/commands/aws/iam/policies/user-admins-deny-regions-list.json +41 -0
  84. package/esm/commands/aws/iam/policies/user-admins-self-service-iam.json +56 -0
  85. package/esm/commands/aws/iam/policies/user-admins-write-list.json +117 -0
  86. package/esm/commands/aws/iam/remove-admin/handler.js +117 -11
  87. package/esm/commands/aws/iam/remove-admin/index.js +4 -18
  88. package/esm/commands/aws/iam/remove-admin/schema.js +20 -12
  89. package/esm/commands/aws/iam/setup-acl/handler.js +224 -14
  90. package/esm/commands/aws/iam/setup-acl/index.js +4 -33
  91. package/esm/commands/aws/iam/setup-acl/schema.js +18 -7
  92. package/esm/commands/aws/iam/setup-acl/utils.js +298 -20
  93. package/esm/commands/aws/iam/users/handler.js +56 -12
  94. package/esm/commands/aws/iam/users/index.js +4 -41
  95. package/esm/commands/aws/iam/users/schema.js +16 -7
  96. package/esm/commands/aws/iam/users/utils.js +440 -30
  97. package/esm/commands/aws/index.js +142 -229
  98. package/esm/commands/aws/route53/add-record/handler.js +258 -18
  99. package/esm/commands/aws/route53/add-record/index.js +4 -57
  100. package/esm/commands/aws/route53/add-record/schema.js +40 -11
  101. package/esm/commands/aws/route53/add-record/utils.js +389 -37
  102. package/esm/commands/aws/route53/remove-record/handler.js +111 -14
  103. package/esm/commands/aws/route53/remove-record/index.js +3 -18
  104. package/esm/commands/aws/route53/remove-record/schema.js +21 -8
  105. package/esm/commands/aws/schema.js +16 -10
  106. package/esm/commands/aws/ses/send-email/handler.js +70 -12
  107. package/esm/commands/aws/ses/send-email/index.js +4 -23
  108. package/esm/commands/aws/ses/send-email/schema.js +23 -7
  109. package/esm/commands/aws/ses/send-email/utils.js +84 -11
  110. package/esm/commands/aws/ses/smtp-password.js +69 -10
  111. package/esm/commands/aws/utils/exec-aws.js +136 -15
  112. package/esm/commands/aws/utils/resolve-policy-path.js +14 -6
  113. package/esm/commands/aws/utils/resolve-profile.js +88 -11
  114. package/esm/commands/aws/utils/tty.js +51 -10
  115. package/esm/commands/db/create-readonly-user/handler.js +251 -11
  116. package/esm/commands/db/create-readonly-user/index.js +4 -40
  117. package/esm/commands/db/create-readonly-user/mysql.js +98 -9
  118. package/esm/commands/db/create-readonly-user/postgres.js +205 -9
  119. package/esm/commands/db/create-readonly-user/schema.js +35 -12
  120. package/esm/commands/db/create-readonly-user/utils.js +151 -22
  121. package/esm/commands/db/index.js +31 -44
  122. package/esm/commands/doppler/handler.js +92 -11
  123. package/esm/commands/doppler/index.js +6 -68
  124. package/esm/commands/doppler/schema.js +125 -15
  125. package/esm/commands/doppler/set-secret.js +370 -19
  126. package/esm/commands/doppler/utils/exec.js +100 -12
  127. package/esm/commands/doppler/utils.js +396 -34
  128. package/esm/commands/icons/handler.js +79 -8
  129. package/esm/commands/icons/index.js +4 -31
  130. package/esm/commands/icons/schema.js +97 -15
  131. package/esm/commands/icons/utils.js +125 -13
  132. package/esm/commands/index.js +47 -155
  133. package/esm/commands/schema.js +22 -7
  134. package/esm/index.js +3 -4
  135. package/package.json +5 -2
  136. package/vitest.config.ts +11 -0
  137. package/cjs/__chunks/2FSYDFUV.cjs +0 -146
  138. package/cjs/__chunks/3A5ZYU5M.cjs +0 -105
  139. package/cjs/__chunks/3BY5Y4W7.cjs +0 -1
  140. package/cjs/__chunks/3NOHGUCF.cjs +0 -9
  141. package/cjs/__chunks/3T2LXW7J.cjs +0 -387
  142. package/cjs/__chunks/4SFWHCB3.cjs +0 -133
  143. package/cjs/__chunks/4XT5JEAS.cjs +0 -1
  144. package/cjs/__chunks/AZEB4H4I.cjs +0 -208
  145. package/cjs/__chunks/B2KFW7T7.cjs +0 -1
  146. package/cjs/__chunks/B5ENMOCD.cjs +0 -288
  147. package/cjs/__chunks/B6XM5KSF.cjs +0 -338
  148. package/cjs/__chunks/BDU2UCE5.cjs +0 -1
  149. package/cjs/__chunks/BLMSMR5E.cjs +0 -46
  150. package/cjs/__chunks/CMUD7LLN.cjs +0 -47
  151. package/cjs/__chunks/DTQ2LB3I.cjs +0 -49
  152. package/cjs/__chunks/FM5MVRQF.cjs +0 -23
  153. package/cjs/__chunks/FRHST54J.cjs +0 -135
  154. package/cjs/__chunks/FU4VP2LN.cjs +0 -1
  155. package/cjs/__chunks/G5K4PVIL.cjs +0 -26
  156. package/cjs/__chunks/GU3R54MK.cjs +0 -127
  157. package/cjs/__chunks/GUL36IFZ.cjs +0 -61
  158. package/cjs/__chunks/GZMTNK5N.cjs +0 -1
  159. package/cjs/__chunks/H74JSDBU.cjs +0 -30
  160. package/cjs/__chunks/INFOPAHN.cjs +0 -117
  161. package/cjs/__chunks/J36P6UNE.cjs +0 -75
  162. package/cjs/__chunks/JB7T7PKQ.cjs +0 -538
  163. package/cjs/__chunks/JSL2JDMW.cjs +0 -1
  164. package/cjs/__chunks/K4QNHRTP.cjs +0 -163
  165. package/cjs/__chunks/KU76LC42.cjs +0 -192
  166. package/cjs/__chunks/LFDSHANP.cjs +0 -34
  167. package/cjs/__chunks/LHE24ECK.cjs +0 -192
  168. package/cjs/__chunks/LIKQ3SI4.cjs +0 -1
  169. package/cjs/__chunks/LXDF5QVZ.cjs +0 -313
  170. package/cjs/__chunks/LXOOJR2R.cjs +0 -74
  171. package/cjs/__chunks/N5MXFOQZ.cjs +0 -167
  172. package/cjs/__chunks/N7D56LPP.cjs +0 -25
  173. package/cjs/__chunks/NFXQNOQH.cjs +0 -393
  174. package/cjs/__chunks/NIMXXHJQ.cjs +0 -92
  175. package/cjs/__chunks/NLKJIUEX.cjs +0 -126
  176. package/cjs/__chunks/NT2XXAI6.cjs +0 -89
  177. package/cjs/__chunks/NWZGFHKH.cjs +0 -121
  178. package/cjs/__chunks/R3GUC7O7.cjs +0 -110
  179. package/cjs/__chunks/RPVAXPJ4.cjs +0 -1
  180. package/cjs/__chunks/S3LVCWPN.cjs +0 -23
  181. package/cjs/__chunks/SBBNW2BF.cjs +0 -249
  182. package/cjs/__chunks/T2A7TN4F.cjs +0 -81
  183. package/cjs/__chunks/TKNNDDIB.cjs +0 -97
  184. package/cjs/__chunks/TNSRDJPR.cjs +0 -1
  185. package/cjs/__chunks/UWHPE2GI.cjs +0 -20
  186. package/cjs/__chunks/W6K7BV74.cjs +0 -1
  187. package/cjs/__chunks/WBOQ6AUN.cjs +0 -320
  188. package/cjs/__chunks/WHGN5PZI.cjs +0 -299
  189. package/cjs/__chunks/WOYF2L6T.cjs +0 -11
  190. package/cjs/__chunks/X26XY2N6.cjs +0 -18
  191. package/cjs/__chunks/XMKOKRXZ.cjs +0 -16
  192. package/cjs/__chunks/XTJPQ3EX.cjs +0 -1
  193. package/cjs/__chunks/YRHFKTW2.cjs +0 -63
  194. package/cjs/__chunks/ZMDIOZPT.cjs +0 -22
  195. package/cjs/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.cjs +0 -28
  196. package/cjs/commands/aws/iam/policies/sts-federation.cjs +0 -19
  197. package/cjs/commands/aws/iam/policies/user-admins-deny-list.cjs +0 -183
  198. package/cjs/commands/aws/iam/policies/user-admins-deny-regions-list.cjs +0 -49
  199. package/cjs/commands/aws/iam/policies/user-admins-self-service-iam.cjs +0 -64
  200. package/cjs/commands/aws/iam/policies/user-admins-write-list.cjs +0 -125
  201. package/esm/__chunks/2FTTEFEK.js +0 -97
  202. package/esm/__chunks/33UYMUQD.js +0 -338
  203. package/esm/__chunks/3BKWTHLJ.js +0 -25
  204. package/esm/__chunks/3HE4BEJX.js +0 -105
  205. package/esm/__chunks/3QLI5BDL.js +0 -387
  206. package/esm/__chunks/5GIUAFXL.js +0 -89
  207. package/esm/__chunks/5ZBVGSOK.js +0 -0
  208. package/esm/__chunks/6G4PXXKF.js +0 -75
  209. package/esm/__chunks/73BJG53F.js +0 -11
  210. package/esm/__chunks/7VF4Q43Q.js +0 -0
  211. package/esm/__chunks/AEDEAYF5.js +0 -0
  212. package/esm/__chunks/AZCP3SFJ.js +0 -0
  213. package/esm/__chunks/B2DVQ2UL.js +0 -61
  214. package/esm/__chunks/CVQVHLW5.js +0 -0
  215. package/esm/__chunks/D62SPZXC.js +0 -0
  216. package/esm/__chunks/DLEJ25GZ.js +0 -121
  217. package/esm/__chunks/DMYFNF54.js +0 -192
  218. package/esm/__chunks/DNFTUMGD.js +0 -23
  219. package/esm/__chunks/DVKD6YSR.js +0 -49
  220. package/esm/__chunks/EMSH4P76.js +0 -20
  221. package/esm/__chunks/FFKFVMIE.js +0 -167
  222. package/esm/__chunks/FL7AILGH.js +0 -133
  223. package/esm/__chunks/FNXUONAV.js +0 -110
  224. package/esm/__chunks/G4NJHFFU.js +0 -320
  225. package/esm/__chunks/HJSXC6HP.js +0 -117
  226. package/esm/__chunks/IEOGAQYI.js +0 -46
  227. package/esm/__chunks/IZFGBYGE.js +0 -34
  228. package/esm/__chunks/J34UVKLA.js +0 -26
  229. package/esm/__chunks/JZPBBBIG.js +0 -74
  230. package/esm/__chunks/KWUJP5MG.js +0 -135
  231. package/esm/__chunks/M35URMT4.js +0 -313
  232. package/esm/__chunks/NF3M2L6C.js +0 -81
  233. package/esm/__chunks/O3CCA76Q.js +0 -22
  234. package/esm/__chunks/PNPPDYKC.js +0 -299
  235. package/esm/__chunks/QFXN4EHM.js +0 -393
  236. package/esm/__chunks/QKDDLIWD.js +0 -146
  237. package/esm/__chunks/QSE66AKY.js +0 -208
  238. package/esm/__chunks/QUF7PS4R.js +0 -18
  239. package/esm/__chunks/S7IJPJ4R.js +0 -126
  240. package/esm/__chunks/SD3E3EPH.js +0 -163
  241. package/esm/__chunks/SJXQJ7RS.js +0 -92
  242. package/esm/__chunks/SNCKIAOR.js +0 -0
  243. package/esm/__chunks/T3TTUHTW.js +0 -30
  244. package/esm/__chunks/TIOVE6HR.js +0 -0
  245. package/esm/__chunks/TXKMEIDQ.js +0 -0
  246. package/esm/__chunks/U7HAE2RF.js +0 -288
  247. package/esm/__chunks/UXWY7BYE.js +0 -63
  248. package/esm/__chunks/VKAKISRG.js +0 -192
  249. package/esm/__chunks/WD2YR6I7.js +0 -0
  250. package/esm/__chunks/WOZFZKFY.js +0 -0
  251. package/esm/__chunks/XI7GZDE2.js +0 -0
  252. package/esm/__chunks/XOUWDB3T.js +0 -249
  253. package/esm/__chunks/XQN2TA4S.js +0 -23
  254. package/esm/__chunks/XXK32TIM.js +0 -16
  255. package/esm/__chunks/YGWTVPZE.js +0 -538
  256. package/esm/__chunks/YRG7PT33.js +0 -127
  257. package/esm/__chunks/ZHKVJO2U.js +0 -47
  258. package/esm/__chunks/ZO55YUSY.js +0 -9
  259. package/esm/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.js +0 -28
  260. package/esm/commands/aws/iam/policies/sts-federation.js +0 -19
  261. package/esm/commands/aws/iam/policies/user-admins-deny-list.js +0 -183
  262. package/esm/commands/aws/iam/policies/user-admins-deny-regions-list.js +0 -49
  263. package/esm/commands/aws/iam/policies/user-admins-self-service-iam.js +0 -64
  264. package/esm/commands/aws/iam/policies/user-admins-write-list.js +0 -125
@@ -1,338 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); 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 _BLMSMR5Ecjs = require('./BLMSMR5E.cjs');
4
-
5
-
6
- var _R3GUC7O7cjs = require('./R3GUC7O7.cjs');
7
-
8
- // src/commands/aws/route53/add-record/utils.js
9
- function bareHostedZoneId(rawId) {
10
- return rawId.replace(/^\/hostedzone\//, "");
11
- }
12
- function withTrailingDot(name) {
13
- const trimmed = name.trim();
14
- if (trimmed === "") {
15
- return trimmed;
16
- }
17
- return trimmed.endsWith(".") ? trimmed : `${trimmed}.`;
18
- }
19
- function withoutTrailingDot(name) {
20
- return name.endsWith(".") ? name.slice(0, -1) : name;
21
- }
22
- function listHostedZones(params) {
23
- const { profile, verbose } = params;
24
- const data = _R3GUC7O7cjs.runAws.call(void 0, {
25
- profile,
26
- args: ["route53", "list-hosted-zones"],
27
- verbose
28
- });
29
- const zones = [];
30
- for (const zone of _nullishCoalesce(data.HostedZones, () => ( []))) {
31
- const id = bareHostedZoneId(String(_nullishCoalesce(zone.Id, () => ( ""))));
32
- const name = withTrailingDot(String(_nullishCoalesce(zone.Name, () => ( ""))));
33
- if (!id || !name) {
34
- continue;
35
- }
36
- zones.push({
37
- id,
38
- name,
39
- privateZone: Boolean(_optionalChain([zone, 'access', _ => _.Config, 'optionalAccess', _2 => _2.PrivateZone])),
40
- recordCount: Number(_nullishCoalesce(zone.ResourceRecordSetCount, () => ( 0)))
41
- });
42
- }
43
- return zones.sort((a, b) => a.name.localeCompare(b.name));
44
- }
45
- function findHostedZone(params) {
46
- const { zones, zoneInput } = params;
47
- const input = zoneInput.trim();
48
- if (!input) {
49
- return null;
50
- }
51
- const bareId = bareHostedZoneId(input);
52
- const byId = zones.find((zone) => zone.id === bareId);
53
- if (byId) {
54
- return byId;
55
- }
56
- const normalized = withTrailingDot(input).toLowerCase();
57
- const matches = zones.filter(
58
- (zone) => zone.name.toLowerCase() === normalized
59
- );
60
- if (matches.length === 1) {
61
- return _nullishCoalesce(matches[0], () => ( null));
62
- }
63
- if (matches.length > 1) {
64
- return _nullishCoalesce(_nullishCoalesce(matches.find((zone) => !zone.privateZone), () => ( matches[0])), () => ( null));
65
- }
66
- return null;
67
- }
68
- function hostedZoneLabel(zone) {
69
- const visibility = zone.privateZone ? "private" : "public";
70
- return `${withoutTrailingDot(zone.name)} (${zone.id}, ${visibility}, ${zone.recordCount} records)`;
71
- }
72
- function resolveRecordName(params) {
73
- const { nameInput, zoneName } = params;
74
- const zoneFqdn = withTrailingDot(zoneName);
75
- const raw = nameInput.trim();
76
- if (raw === "" || raw === "@") {
77
- return zoneFqdn;
78
- }
79
- const asFqdn = withTrailingDot(raw);
80
- const zoneLower = zoneFqdn.toLowerCase();
81
- if (asFqdn.toLowerCase() === zoneLower) {
82
- return zoneFqdn;
83
- }
84
- if (asFqdn.toLowerCase().endsWith(`.${zoneLower}`)) {
85
- return asFqdn;
86
- }
87
- const relative = raw.replace(/\.$/, "");
88
- return withTrailingDot(`${relative}.${withoutTrailingDot(zoneFqdn)}`);
89
- }
90
- function getRecordSetsAtName(params) {
91
- const { profile, hostedZoneId, name, verbose } = params;
92
- const targetName = withTrailingDot(name).toLowerCase();
93
- let startRecordName = withTrailingDot(name);
94
- let startRecordType;
95
- let nextRecordIdentifier;
96
- const collected = [];
97
- for (let page = 0; page < 20; page += 1) {
98
- const args = [
99
- "route53",
100
- "list-resource-record-sets",
101
- "--hosted-zone-id",
102
- hostedZoneId,
103
- "--max-items",
104
- "100"
105
- ];
106
- if (startRecordName) {
107
- args.push("--start-record-name", startRecordName);
108
- }
109
- if (startRecordType) {
110
- args.push("--start-record-type", startRecordType);
111
- }
112
- if (nextRecordIdentifier) {
113
- args.push("--start-record-identifier", nextRecordIdentifier);
114
- }
115
- const data = _R3GUC7O7cjs.runAws.call(void 0, { profile, args, verbose });
116
- const sets = _nullishCoalesce(data.ResourceRecordSets, () => ( []));
117
- for (const set of sets) {
118
- const setName = withTrailingDot(String(_nullishCoalesce(set.Name, () => ( "")))).toLowerCase();
119
- if (setName === targetName) {
120
- collected.push(normalizeRecordSet(set));
121
- continue;
122
- }
123
- if (setName > targetName) {
124
- return collected;
125
- }
126
- }
127
- const truncated = data.IsTruncated === true;
128
- if (!truncated) {
129
- return collected;
130
- }
131
- startRecordName = data.NextRecordName ? String(data.NextRecordName) : startRecordName;
132
- startRecordType = data.NextRecordType ? String(data.NextRecordType) : void 0;
133
- nextRecordIdentifier = data.NextRecordIdentifier ? String(data.NextRecordIdentifier) : void 0;
134
- }
135
- return collected;
136
- }
137
- function getResourceRecordSet(params) {
138
- const { type, ...rest } = params;
139
- const targetType = type.toUpperCase();
140
- const sets = getRecordSetsAtName(rest);
141
- return _nullishCoalesce(sets.find((set) => set.type === targetType), () => ( null));
142
- }
143
- function findCnameConflicts(params) {
144
- const { existingSets, type } = params;
145
- const upperType = type.toUpperCase();
146
- return existingSets.filter((set) => {
147
- if (set.type === upperType) {
148
- return false;
149
- }
150
- return upperType === "CNAME" || set.type === "CNAME";
151
- });
152
- }
153
- function normalizeRecordSet(set) {
154
- const values = (_nullishCoalesce(set.ResourceRecords, () => ( []))).map(
155
- (record) => String(_nullishCoalesce(record.Value, () => ( "")))
156
- );
157
- return {
158
- name: withTrailingDot(String(_nullishCoalesce(set.Name, () => ( "")))),
159
- type: String(_nullishCoalesce(set.Type, () => ( ""))).toUpperCase(),
160
- ttl: typeof set.TTL === "number" ? set.TTL : void 0,
161
- values,
162
- isAlias: Boolean(set.AliasTarget),
163
- aliasTarget: _nullishCoalesce(set.AliasTarget, () => ( void 0))
164
- };
165
- }
166
- function formatValues(values) {
167
- if (values.length === 0) {
168
- return "(none)";
169
- }
170
- if (values.length === 1) {
171
- return _nullishCoalesce(values[0], () => ( "(none)"));
172
- }
173
- return values.map((value) => `
174
- - ${value}`).join("");
175
- }
176
- function normalizeRecordValue(params) {
177
- const { type, value } = params;
178
- const trimmed = value.trim();
179
- if (type === "CNAME" || type === "NS" || type === "MX" || type === "SRV") {
180
- if (type === "MX") {
181
- const parts = trimmed.split(/\s+/);
182
- if (parts.length >= 2) {
183
- const priority = parts[0];
184
- const exchange = parts.slice(1).join(" ");
185
- return `${priority} ${withTrailingDot(exchange)}`;
186
- }
187
- }
188
- if (type === "SRV") {
189
- const parts = trimmed.split(/\s+/);
190
- if (parts.length >= 4) {
191
- const prefix = parts.slice(0, 3).join(" ");
192
- const target = parts.slice(3).join(" ");
193
- return `${prefix} ${withTrailingDot(target)}`;
194
- }
195
- }
196
- return withTrailingDot(trimmed);
197
- }
198
- if (type === "TXT") {
199
- if (trimmed.startsWith('"') && trimmed.endsWith('"') || trimmed.startsWith("'") && trimmed.endsWith("'")) {
200
- return trimmed;
201
- }
202
- return `"${trimmed}"`;
203
- }
204
- return trimmed;
205
- }
206
- function planRecordChange(params) {
207
- const { existing, newValue, mode = "replace" } = params;
208
- if (!existing) {
209
- return {
210
- action: "create",
211
- finalValues: [newValue],
212
- summary: "Adding a new record (nothing exists at this name + type)."
213
- };
214
- }
215
- if (existing.isAlias) {
216
- return {
217
- action: "overwrite",
218
- finalValues: [newValue],
219
- summary: "Overwriting an existing ALIAS record with a standard record set."
220
- };
221
- }
222
- const alreadyPresent = existing.values.some(
223
- (value) => value === newValue || value === `"${newValue}"`
224
- );
225
- if (alreadyPresent && mode !== "replace") {
226
- return {
227
- action: "noop",
228
- finalValues: existing.values,
229
- summary: "Record already has this value. Nothing to do."
230
- };
231
- }
232
- if (alreadyPresent && mode === "replace" && existing.values.length === 1 && existing.values[0] === newValue) {
233
- return {
234
- action: "noop",
235
- finalValues: existing.values,
236
- summary: "Record already has exactly this value. Nothing to do."
237
- };
238
- }
239
- if (mode === "append") {
240
- return {
241
- action: "append",
242
- finalValues: [...existing.values, newValue],
243
- summary: `Adding to the existing ${existing.type} record (${existing.values.length} value(s) \u2192 ${existing.values.length + 1}).`
244
- };
245
- }
246
- return {
247
- action: "overwrite",
248
- finalValues: [newValue],
249
- summary: existing.values.length === 1 ? `Overwriting existing value:
250
- ${existing.values[0]}
251
- \u2192 ${newValue}` : `Replacing ${existing.values.length} existing values with a single new value.`
252
- };
253
- }
254
- function upsertResourceRecordSet(params) {
255
- const { profile, hostedZoneId, name, type, ttl, values, verbose } = params;
256
- const changeBatch = {
257
- Comment: `mtn aws route53 add-record: ${type} ${name}`,
258
- Changes: [
259
- {
260
- Action: "UPSERT",
261
- ResourceRecordSet: {
262
- Name: withTrailingDot(name),
263
- Type: type,
264
- TTL: _nullishCoalesce(ttl, () => ( _BLMSMR5Ecjs.DEFAULT_TTL)),
265
- ResourceRecords: values.map((value) => ({ Value: value }))
266
- }
267
- }
268
- ]
269
- };
270
- const data = _R3GUC7O7cjs.runAws.call(void 0, {
271
- profile,
272
- args: [
273
- "route53",
274
- "change-resource-record-sets",
275
- "--hosted-zone-id",
276
- hostedZoneId,
277
- "--change-batch",
278
- JSON.stringify(changeBatch)
279
- ],
280
- verbose
281
- });
282
- return _nullishCoalesce(data.ChangeInfo, () => ( data));
283
- }
284
- function deleteResourceRecordSet(params) {
285
- const { profile, hostedZoneId, record, verbose } = params;
286
- const resourceRecordSet = {
287
- Name: withTrailingDot(record.name),
288
- Type: record.type
289
- };
290
- if (record.isAlias && record.aliasTarget) {
291
- resourceRecordSet.AliasTarget = record.aliasTarget;
292
- } else {
293
- resourceRecordSet.TTL = _nullishCoalesce(record.ttl, () => ( _BLMSMR5Ecjs.DEFAULT_TTL));
294
- resourceRecordSet.ResourceRecords = record.values.map((value) => ({
295
- Value: value
296
- }));
297
- }
298
- const changeBatch = {
299
- Comment: `mtn aws route53 remove-record: ${record.type} ${record.name}`,
300
- Changes: [
301
- {
302
- Action: "DELETE",
303
- ResourceRecordSet: resourceRecordSet
304
- }
305
- ]
306
- };
307
- const data = _R3GUC7O7cjs.runAws.call(void 0, {
308
- profile,
309
- args: [
310
- "route53",
311
- "change-resource-record-sets",
312
- "--hosted-zone-id",
313
- hostedZoneId,
314
- "--change-batch",
315
- JSON.stringify(changeBatch)
316
- ],
317
- verbose
318
- });
319
- return _nullishCoalesce(data.ChangeInfo, () => ( data));
320
- }
321
-
322
-
323
-
324
-
325
-
326
-
327
-
328
-
329
-
330
-
331
-
332
-
333
-
334
-
335
-
336
-
337
-
338
- exports.bareHostedZoneId = bareHostedZoneId; exports.withTrailingDot = withTrailingDot; exports.withoutTrailingDot = withoutTrailingDot; exports.listHostedZones = listHostedZones; exports.findHostedZone = findHostedZone; exports.hostedZoneLabel = hostedZoneLabel; exports.resolveRecordName = resolveRecordName; exports.getRecordSetsAtName = getRecordSetsAtName; exports.getResourceRecordSet = getResourceRecordSet; exports.findCnameConflicts = findCnameConflicts; exports.formatValues = formatValues; exports.normalizeRecordValue = normalizeRecordValue; exports.planRecordChange = planRecordChange; exports.upsertResourceRecordSet = upsertResourceRecordSet; exports.deleteResourceRecordSet = deleteResourceRecordSet;
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,46 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
- var _WOYF2L6Tcjs = require('./WOYF2L6T.cjs');
5
-
6
- // src/commands/aws/route53/add-record/schema.js
7
- var _zod = require('zod');
8
- var RECORD_TYPES = [
9
- "A",
10
- "AAAA",
11
- "CNAME",
12
- "TXT",
13
- "MX",
14
- "NS",
15
- "SRV",
16
- "CAA"
17
- ];
18
- var DEFAULT_TTL = 300;
19
- var addRecordOptionsSchema = _zod.z.object({
20
- profile: _WOYF2L6Tcjs.profileField,
21
- zone: _zod.z.string().optional().describe(
22
- "Hosted zone name or ID (e.g. mountaindev.com or Z123\u2026). Skips the zone picker when set."
23
- ),
24
- type: _zod.z.string().optional().transform(
25
- (value) => value === void 0 ? void 0 : value.toUpperCase()
26
- ).refine(
27
- (value) => value === void 0 || typeof value === "string" && RECORD_TYPES.includes(value),
28
- {
29
- message: `Record type must be one of: ${RECORD_TYPES.join(", ")}`
30
- }
31
- ).describe(`DNS record type (${RECORD_TYPES.join(", ")})`),
32
- name: _zod.z.string().optional().describe(
33
- 'Record name relative to the zone (e.g. "redline") or a fully-qualified name'
34
- ),
35
- value: _zod.z.string().optional().describe("Record value (e.g. a CNAME target or A address)"),
36
- ttl: _zod.z.number().int().positive().optional().describe(`TTL in seconds (default: ${DEFAULT_TTL})`),
37
- yes: _zod.z.boolean().optional().default(false).describe("Skip the confirmation prompt"),
38
- dryRun: _zod.z.boolean().optional().default(false).describe("Preview the change without calling Route53"),
39
- verbose: _WOYF2L6Tcjs.verboseField
40
- });
41
-
42
-
43
-
44
-
45
-
46
- exports.RECORD_TYPES = RECORD_TYPES; exports.DEFAULT_TTL = DEFAULT_TTL; exports.addRecordOptionsSchema = addRecordOptionsSchema;
@@ -1,47 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/utils/tty.js
2
- var _readline = require('readline');
3
- function prompt(message) {
4
- return new Promise((resolve) => {
5
- const rl = _readline.createInterface.call(void 0, {
6
- input: process.stdin,
7
- output: process.stdout
8
- });
9
- rl.question(message, (answer) => {
10
- rl.close();
11
- resolve(answer.trim());
12
- });
13
- });
14
- }
15
- async function promptChoice(params) {
16
- const { message, options } = params;
17
- if (options.length === 0) {
18
- throw new Error("promptChoice: no options to choose from");
19
- }
20
- console.log(message);
21
- options.forEach((option, index) => {
22
- console.log(` ${index + 1}. ${option}`);
23
- });
24
- for (; ; ) {
25
- const raw = await prompt("Enter number: ");
26
- const choice = Number.parseInt(raw, 10);
27
- if (Number.isInteger(choice) && choice >= 1 && choice <= options.length) {
28
- return choice - 1;
29
- }
30
- console.log(`Please enter a number between 1 and ${options.length}.`);
31
- }
32
- }
33
- async function promptYesNo(params) {
34
- const { message, defaultYes = false } = params;
35
- const suffix = defaultYes ? " [Y/n]: " : " [y/N]: ";
36
- const answer = (await prompt(`${message}${suffix}`)).toLowerCase();
37
- if (answer === "") {
38
- return defaultYes;
39
- }
40
- return answer === "y" || answer === "yes";
41
- }
42
-
43
-
44
-
45
-
46
-
47
- exports.prompt = prompt; exports.promptChoice = promptChoice; exports.promptYesNo = promptYesNo;
@@ -1,49 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
2
-
3
- var _LXDF5QVZcjs = require('./LXDF5QVZ.cjs');
4
-
5
- // src/commands/db/index.js
6
- function registerDbCommands(program) {
7
- const db = program.command("db").summary("Database operational commands").description("Database operational helpers (MySQL and Postgres)");
8
- db.command("create-readonly-user").summary("Create a read-only database user").description(
9
- "Create (or update) a read-only database user on MySQL or Postgres. Interactively pick a single database or all databases, then print a connection URL."
10
- ).option(
11
- "-e, --engine <engine>",
12
- "Database engine: postgres or mysql (inferred from --url when omitted)"
13
- ).option(
14
- "-u, --url <url>",
15
- "Admin connection URL (defaults to DATABASE_URL / MYSQL_URL / POSTGRES_URL)"
16
- ).option(
17
- "-d, --database <name>",
18
- 'Target database name, or "all" for every non-system database'
19
- ).option(
20
- "--username <name>",
21
- "Read-only username to create (default: readonly)"
22
- ).option(
23
- "--password <password>",
24
- "Password for the new user (generated when omitted)"
25
- ).option("--host-pattern <pattern>", "MySQL user host pattern (default: %)").option("--ssl", "Force SSL on (loose verify \u2014 useful for RDS)").option("--no-ssl", "Force SSL off").option("-y, --yes", "Skip the confirmation prompt").option("--dry-run", "Print the SQL plan without applying it").option("-v, --verbose", "Enable verbose logging").action(async (options) => {
26
- let ssl;
27
- if (options.ssl === true) {
28
- ssl = true;
29
- } else if (options.noSsl === true) {
30
- ssl = false;
31
- }
32
- await _LXDF5QVZcjs.createReadonlyUserCommand.call(void 0, {
33
- engine: options.engine,
34
- url: options.url,
35
- database: options.database,
36
- username: options.username,
37
- password: options.password,
38
- hostPattern: options.hostPattern,
39
- ssl,
40
- yes: _nullishCoalesce(options.yes, () => ( false)),
41
- dryRun: _nullishCoalesce(options.dryRun, () => ( false)),
42
- verbose: _nullishCoalesce(options.verbose, () => ( false))
43
- });
44
- });
45
- }
46
-
47
-
48
-
49
- exports.registerDbCommands = registerDbCommands;
@@ -1,23 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
- var _WOYF2L6Tcjs = require('./WOYF2L6T.cjs');
6
-
7
- // src/commands/aws/iam/setup-acl/schema.js
8
- var _zod = require('zod');
9
- var setupAclOptionsSchema = _zod.z.object({
10
- restrictRegions: _zod.z.enum(["yes", "no"]).optional().describe(
11
- "Attach the region restriction to acl-power-users (skips the interactive prompt)"
12
- ),
13
- createUsers: _zod.z.boolean().optional().default(true).describe(
14
- "Create IAM users after configuring groups (use --no-create-users to skip)"
15
- ),
16
- profile: _WOYF2L6Tcjs.profileField,
17
- region: _WOYF2L6Tcjs.regionField,
18
- verbose: _WOYF2L6Tcjs.verboseField
19
- });
20
-
21
-
22
-
23
- exports.setupAclOptionsSchema = setupAclOptionsSchema;
@@ -1,135 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/doppler/schema.js
2
- var _zod = require('zod');
3
- var environmentsBase = _zod.z.string().optional().describe(
4
- 'Environments to process, comma-separated (e.g., dev,stg,prd or "all")'
5
- );
6
- var commonFields = {
7
- verbose: _zod.z.boolean().optional().default(false).describe("Enable verbose logging for detailed error information"),
8
- help: _zod.z.boolean().optional().default(false).describe("Display help for command")
9
- };
10
- var dopplerDownloadSchema = _zod.z.object({
11
- action: _zod.z.literal("download"),
12
- environments: environmentsBase.default("dev"),
13
- ...commonFields
14
- });
15
- var dopplerUploadSchema = _zod.z.object({
16
- action: _zod.z.literal("upload"),
17
- environments: environmentsBase.default("all"),
18
- ...commonFields
19
- });
20
- var dopplerCloneSchema = _zod.z.object({
21
- action: _zod.z.literal("clone"),
22
- from: _zod.z.string({ required_error: "--from <project> is required for clone" }).describe("Source Doppler project name"),
23
- to: _zod.z.string({ required_error: "--to <project> is required for clone" }).describe("Target Doppler project name"),
24
- force: _zod.z.boolean().optional().default(false).describe("Skip confirmation prompts when overwriting existing secrets"),
25
- environments: environmentsBase.default("all"),
26
- ...commonFields
27
- });
28
- var dopplerSetSchema = _zod.z.object({
29
- action: _zod.z.literal("set"),
30
- project: _zod.z.string().optional().describe("Doppler project name (prompts when omitted)"),
31
- environment: _zod.z.string().optional().describe(
32
- 'Doppler environment id (e.g. dev, stg, prd) or "all" (prompts when omitted)'
33
- ),
34
- config: _zod.z.string().optional().describe(
35
- 'Config name, comma-separated list, or "all" within the chosen environment (prompts when omitted)'
36
- ),
37
- name: _zod.z.string().optional().describe("Secret name / env var key (e.g. DATABASE_URL)"),
38
- value: _zod.z.string().optional().describe("Secret value (prompts when omitted)"),
39
- yes: _zod.z.boolean().optional().default(false).describe("Skip the confirmation prompt"),
40
- ...commonFields
41
- });
42
- var dopplerCommandOptionsSchema = _zod.z.discriminatedUnion("action", [
43
- dopplerDownloadSchema,
44
- dopplerUploadSchema,
45
- dopplerCloneSchema,
46
- dopplerSetSchema
47
- ]);
48
- var dopplerCommandMetadata = {
49
- name: "doppler",
50
- description: `Manage Doppler configurations
51
-
52
- Subcommands:
53
- download Download configurations from Doppler to local .env files
54
- upload Upload local .env files to Doppler (with confirmation prompt)
55
- clone Clone all secrets from one Doppler project to another
56
- set Add or update a secret (interactive project/env/config picker)
57
-
58
- Examples:
59
- $ @mtndev/cli doppler download # Download dev config
60
- $ @mtndev/cli doppler download -e all # Download all configs
61
- $ @mtndev/cli doppler download -e dev,stg # Download dev and stg
62
- $ @mtndev/cli doppler upload # Upload .env.dev
63
- $ @mtndev/cli doppler upload -e prd # Upload production config
64
- $ @mtndev/cli doppler clone --from my-app --to my-app-copy # Clone all configs
65
- $ @mtndev/cli doppler clone --from my-app --to my-app-copy -e dev,stg # Clone specific envs
66
- $ @mtndev/cli doppler clone --from my-app --to my-app-copy --force # Clone without prompts
67
- $ @mtndev/cli doppler set # Interactive set
68
- $ @mtndev/cli doppler set -p core --environment dev -c dev --name API_KEY --value secret --yes`,
69
- options: {
70
- environments: {
71
- description: dopplerDownloadSchema.shape.environments.description,
72
- default: "dev",
73
- alias: "e"
74
- },
75
- from: {
76
- description: dopplerCloneSchema.shape.from.description,
77
- default: void 0
78
- },
79
- to: {
80
- description: dopplerCloneSchema.shape.to.description,
81
- default: void 0
82
- },
83
- force: {
84
- description: dopplerCloneSchema.shape.force.description,
85
- default: false,
86
- alias: "f"
87
- },
88
- project: {
89
- description: dopplerSetSchema.shape.project.description,
90
- default: void 0,
91
- alias: "p"
92
- },
93
- environment: {
94
- description: dopplerSetSchema.shape.environment.description,
95
- default: void 0
96
- },
97
- config: {
98
- description: dopplerSetSchema.shape.config.description,
99
- default: void 0,
100
- alias: "c"
101
- },
102
- name: {
103
- description: dopplerSetSchema.shape.name.description,
104
- default: void 0
105
- },
106
- value: {
107
- description: dopplerSetSchema.shape.value.description,
108
- default: void 0
109
- },
110
- yes: {
111
- description: dopplerSetSchema.shape.yes.description,
112
- default: false,
113
- alias: "y"
114
- },
115
- verbose: {
116
- description: dopplerDownloadSchema.shape.verbose.description,
117
- default: false,
118
- alias: "v"
119
- },
120
- help: {
121
- description: dopplerDownloadSchema.shape.help.description,
122
- default: false,
123
- alias: "h"
124
- }
125
- }
126
- };
127
-
128
-
129
-
130
-
131
-
132
-
133
-
134
-
135
- exports.dopplerDownloadSchema = dopplerDownloadSchema; exports.dopplerUploadSchema = dopplerUploadSchema; exports.dopplerCloneSchema = dopplerCloneSchema; exports.dopplerSetSchema = dopplerSetSchema; exports.dopplerCommandOptionsSchema = dopplerCommandOptionsSchema; exports.dopplerCommandMetadata = dopplerCommandMetadata;
@@ -1 +0,0 @@
1
- "use strict";
@@ -1,26 +0,0 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
- var _WOYF2L6Tcjs = require('./WOYF2L6T.cjs');
6
-
7
- // src/commands/aws/ec2/allow-ip/schema.js
8
- var _zod = require('zod');
9
- var DEFAULT_REGION = "us-east-1";
10
- var SSH_PORT = 22;
11
- var DEFAULT_ROAMING_NAME = "Declan";
12
- var allowIpOptionsSchema = _zod.z.object({
13
- profile: _WOYF2L6Tcjs.profileField,
14
- region: _WOYF2L6Tcjs.regionField,
15
- ruleName: _zod.z.string().optional().describe(
16
- 'SSH rule description to update or create (default: "{FirstName} Roaming" derived from the profile/IAM user)'
17
- ),
18
- verbose: _WOYF2L6Tcjs.verboseField
19
- });
20
-
21
-
22
-
23
-
24
-
25
-
26
- exports.DEFAULT_REGION = DEFAULT_REGION; exports.SSH_PORT = SSH_PORT; exports.DEFAULT_ROAMING_NAME = DEFAULT_ROAMING_NAME; exports.allowIpOptionsSchema = allowIpOptionsSchema;