@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,68 +1,33 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});require('../../__chunks/GZMTNK5N.cjs');
2
-
3
-
4
- var _GU3R54MKcjs = require('../../__chunks/GU3R54MK.cjs');
5
-
6
-
7
-
8
-
9
-
10
-
11
-
12
- var _NFXQNOQHcjs = require('../../__chunks/NFXQNOQH.cjs');
13
-
14
-
15
-
16
-
17
-
18
-
19
-
20
-
21
-
22
-
23
-
24
- var _JB7T7PKQcjs = require('../../__chunks/JB7T7PKQ.cjs');
25
- require('../../__chunks/CMUD7LLN.cjs');
26
-
27
-
28
-
29
-
30
-
31
- var _NIMXXHJQcjs = require('../../__chunks/NIMXXHJQ.cjs');
32
-
33
-
34
-
35
-
36
-
37
-
38
-
39
- var _FRHST54Jcjs = require('../../__chunks/FRHST54J.cjs');
40
-
41
-
42
-
43
-
44
-
45
-
46
-
47
-
48
-
49
-
50
-
51
-
52
-
53
-
54
-
55
-
56
-
57
-
58
-
59
-
60
-
61
-
62
-
63
-
64
-
65
-
66
-
67
-
68
- exports.checkDependencies = _JB7T7PKQcjs.checkDependencies; exports.checkDopplerAuth = _JB7T7PKQcjs.checkDopplerAuth; exports.cloneProject = _JB7T7PKQcjs.cloneProject; exports.createDiff = _JB7T7PKQcjs.createDiff; exports.dopplerCloneSchema = _FRHST54Jcjs.dopplerCloneSchema; exports.dopplerCommand = _GU3R54MKcjs.dopplerCommand; exports.dopplerCommandMetadata = _FRHST54Jcjs.dopplerCommandMetadata; exports.dopplerCommandOptionsSchema = _FRHST54Jcjs.dopplerCommandOptionsSchema; exports.dopplerDownloadSchema = _FRHST54Jcjs.dopplerDownloadSchema; exports.dopplerSetSchema = _FRHST54Jcjs.dopplerSetSchema; exports.dopplerUploadSchema = _FRHST54Jcjs.dopplerUploadSchema; exports.downloadConfigs = _JB7T7PKQcjs.downloadConfigs; exports.exec = _NIMXXHJQcjs.exec; exports.execDoppler = _JB7T7PKQcjs.execDoppler; exports.execJson = _NIMXXHJQcjs.execJson; exports.execNumber = _NIMXXHJQcjs.execNumber; exports.execString = _NIMXXHJQcjs.execString; exports.getConfigs = _JB7T7PKQcjs.getConfigs; exports.getSecret = _NFXQNOQHcjs.getSecret; exports.listConfigs = _NFXQNOQHcjs.listConfigs; exports.listEnvironments = _NFXQNOQHcjs.listEnvironments; exports.listProjects = _NFXQNOQHcjs.listProjects; exports.normalizeEscapeSequences = _JB7T7PKQcjs.normalizeEscapeSequences; exports.promptConfirmation = _JB7T7PKQcjs.promptConfirmation; exports.setSecret = _NFXQNOQHcjs.setSecret; exports.setSecretInteractive = _NFXQNOQHcjs.setSecretInteractive; exports.uploadConfigs = _JB7T7PKQcjs.uploadConfigs;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_commands_doppler_utils_exec = require("./utils/exec.cjs");
3
+ const require_commands_doppler_schema = require("./schema.cjs");
4
+ const require_commands_doppler_utils = require("./utils.cjs");
5
+ const require_commands_doppler_set_secret = require("./set-secret.cjs");
6
+ const require_commands_doppler_handler = require("./handler.cjs");
7
+ exports.checkDependencies = require_commands_doppler_utils.checkDependencies;
8
+ exports.checkDopplerAuth = require_commands_doppler_utils.checkDopplerAuth;
9
+ exports.cloneProject = require_commands_doppler_utils.cloneProject;
10
+ exports.createDiff = require_commands_doppler_utils.createDiff;
11
+ exports.dopplerCloneSchema = require_commands_doppler_schema.dopplerCloneSchema;
12
+ exports.dopplerCommand = require_commands_doppler_handler.dopplerCommand;
13
+ exports.dopplerCommandMetadata = require_commands_doppler_schema.dopplerCommandMetadata;
14
+ exports.dopplerCommandOptionsSchema = require_commands_doppler_schema.dopplerCommandOptionsSchema;
15
+ exports.dopplerDownloadSchema = require_commands_doppler_schema.dopplerDownloadSchema;
16
+ exports.dopplerSetSchema = require_commands_doppler_schema.dopplerSetSchema;
17
+ exports.dopplerUploadSchema = require_commands_doppler_schema.dopplerUploadSchema;
18
+ exports.downloadConfigs = require_commands_doppler_utils.downloadConfigs;
19
+ exports.exec = require_commands_doppler_utils_exec.exec;
20
+ exports.execDoppler = require_commands_doppler_utils.execDoppler;
21
+ exports.execJson = require_commands_doppler_utils_exec.execJson;
22
+ exports.execNumber = require_commands_doppler_utils_exec.execNumber;
23
+ exports.execString = require_commands_doppler_utils_exec.execString;
24
+ exports.getConfigs = require_commands_doppler_utils.getConfigs;
25
+ exports.getSecret = require_commands_doppler_set_secret.getSecret;
26
+ exports.listConfigs = require_commands_doppler_set_secret.listConfigs;
27
+ exports.listEnvironments = require_commands_doppler_set_secret.listEnvironments;
28
+ exports.listProjects = require_commands_doppler_set_secret.listProjects;
29
+ exports.normalizeEscapeSequences = require_commands_doppler_utils.normalizeEscapeSequences;
30
+ exports.promptConfirmation = require_commands_doppler_utils.promptConfirmation;
31
+ exports.setSecret = require_commands_doppler_set_secret.setSecret;
32
+ exports.setSecretInteractive = require_commands_doppler_set_secret.setSecretInteractive;
33
+ exports.uploadConfigs = require_commands_doppler_utils.uploadConfigs;
@@ -1,16 +1,132 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ let zod = require("zod");
3
+ //#region src/commands/doppler/schema.js
4
+ const environmentsBase = zod.z.string().optional().describe("Environments to process, comma-separated (e.g., dev,stg,prd or \"all\")");
5
+ const commonFields = {
6
+ verbose: zod.z.boolean().optional().default(false).describe("Enable verbose logging for detailed error information"),
7
+ help: zod.z.boolean().optional().default(false).describe("Display help for command")
8
+ };
9
+ const dopplerDownloadSchema = zod.z.object({
10
+ action: zod.z.literal("download"),
11
+ environments: environmentsBase.default("dev"),
12
+ ...commonFields
13
+ });
14
+ const dopplerUploadSchema = zod.z.object({
15
+ action: zod.z.literal("upload"),
16
+ environments: environmentsBase.default("all"),
17
+ ...commonFields
18
+ });
19
+ const dopplerCloneSchema = zod.z.object({
20
+ action: zod.z.literal("clone"),
21
+ from: zod.z.string({ required_error: "--from <project> is required for clone" }).describe("Source Doppler project name"),
22
+ to: zod.z.string({ required_error: "--to <project> is required for clone" }).describe("Target Doppler project name"),
23
+ force: zod.z.boolean().optional().default(false).describe("Skip confirmation prompts when overwriting existing secrets"),
24
+ environments: environmentsBase.default("all"),
25
+ ...commonFields
26
+ });
27
+ const dopplerSetSchema = zod.z.object({
28
+ action: zod.z.literal("set"),
29
+ project: zod.z.string().optional().describe("Doppler project name (prompts when omitted)"),
30
+ environment: zod.z.string().optional().describe("Doppler environment id (e.g. dev, stg, prd) or \"all\" (prompts when omitted)"),
31
+ config: zod.z.string().optional().describe("Config name, comma-separated list, or \"all\" within the chosen environment (prompts when omitted)"),
32
+ name: zod.z.string().optional().describe("Secret name / env var key (e.g. DATABASE_URL)"),
33
+ value: zod.z.string().optional().describe("Secret value (prompts when omitted)"),
34
+ yes: zod.z.boolean().optional().default(false).describe("Skip the confirmation prompt"),
35
+ ...commonFields
36
+ });
37
+ const dopplerCommandOptionsSchema = zod.z.discriminatedUnion("action", [
38
+ dopplerDownloadSchema,
39
+ dopplerUploadSchema,
40
+ dopplerCloneSchema,
41
+ dopplerSetSchema
42
+ ]);
43
+ /**
44
+ * Doppler command metadata
45
+ * Descriptions are extracted from subcommand schemas, aliases are CLI-specific
46
+ */
47
+ const dopplerCommandMetadata = {
48
+ name: "doppler",
49
+ description: `Manage Doppler configurations
2
50
 
51
+ Subcommands:
52
+ download Download configurations from Doppler to local .env files
53
+ upload Upload local .env files to Doppler (with confirmation prompt)
54
+ clone Clone all secrets from one Doppler project to another
55
+ set Add or update a secret (interactive project/env/config picker)
3
56
 
4
-
5
-
6
-
7
-
8
- var _FRHST54Jcjs = require('../../__chunks/FRHST54J.cjs');
9
-
10
-
11
-
12
-
13
-
14
-
15
-
16
- exports.dopplerCloneSchema = _FRHST54Jcjs.dopplerCloneSchema; exports.dopplerCommandMetadata = _FRHST54Jcjs.dopplerCommandMetadata; exports.dopplerCommandOptionsSchema = _FRHST54Jcjs.dopplerCommandOptionsSchema; exports.dopplerDownloadSchema = _FRHST54Jcjs.dopplerDownloadSchema; exports.dopplerSetSchema = _FRHST54Jcjs.dopplerSetSchema; exports.dopplerUploadSchema = _FRHST54Jcjs.dopplerUploadSchema;
57
+ Examples:
58
+ $ @mtndev/cli doppler download # Download dev config
59
+ $ @mtndev/cli doppler download -e all # Download all configs
60
+ $ @mtndev/cli doppler download -e dev,stg # Download dev and stg
61
+ $ @mtndev/cli doppler upload # Upload .env.dev
62
+ $ @mtndev/cli doppler upload -e prd # Upload production config
63
+ $ @mtndev/cli doppler clone --from my-app --to my-app-copy # Clone all configs
64
+ $ @mtndev/cli doppler clone --from my-app --to my-app-copy -e dev,stg # Clone specific envs
65
+ $ @mtndev/cli doppler clone --from my-app --to my-app-copy --force # Clone without prompts
66
+ $ @mtndev/cli doppler set # Interactive set
67
+ $ @mtndev/cli doppler set -p core --environment dev -c dev --name API_KEY --value secret --yes`,
68
+ options: {
69
+ environments: {
70
+ description: dopplerDownloadSchema.shape.environments.description,
71
+ default: "dev",
72
+ alias: "e"
73
+ },
74
+ from: {
75
+ description: dopplerCloneSchema.shape.from.description,
76
+ default: void 0
77
+ },
78
+ to: {
79
+ description: dopplerCloneSchema.shape.to.description,
80
+ default: void 0
81
+ },
82
+ force: {
83
+ description: dopplerCloneSchema.shape.force.description,
84
+ default: false,
85
+ alias: "f"
86
+ },
87
+ project: {
88
+ description: dopplerSetSchema.shape.project.description,
89
+ default: void 0,
90
+ alias: "p"
91
+ },
92
+ environment: {
93
+ description: dopplerSetSchema.shape.environment.description,
94
+ default: void 0
95
+ },
96
+ config: {
97
+ description: dopplerSetSchema.shape.config.description,
98
+ default: void 0,
99
+ alias: "c"
100
+ },
101
+ name: {
102
+ description: dopplerSetSchema.shape.name.description,
103
+ default: void 0
104
+ },
105
+ value: {
106
+ description: dopplerSetSchema.shape.value.description,
107
+ default: void 0
108
+ },
109
+ yes: {
110
+ description: dopplerSetSchema.shape.yes.description,
111
+ default: false,
112
+ alias: "y"
113
+ },
114
+ verbose: {
115
+ description: dopplerDownloadSchema.shape.verbose.description,
116
+ default: false,
117
+ alias: "v"
118
+ },
119
+ help: {
120
+ description: dopplerDownloadSchema.shape.help.description,
121
+ default: false,
122
+ alias: "h"
123
+ }
124
+ }
125
+ };
126
+ //#endregion
127
+ exports.dopplerCloneSchema = dopplerCloneSchema;
128
+ exports.dopplerCommandMetadata = dopplerCommandMetadata;
129
+ exports.dopplerCommandOptionsSchema = dopplerCommandOptionsSchema;
130
+ exports.dopplerDownloadSchema = dopplerDownloadSchema;
131
+ exports.dopplerSetSchema = dopplerSetSchema;
132
+ exports.dopplerUploadSchema = dopplerUploadSchema;
@@ -1,19 +1,378 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});
2
-
3
-
4
-
5
-
6
-
7
-
8
- var _NFXQNOQHcjs = require('../../__chunks/NFXQNOQH.cjs');
9
- require('../../__chunks/JB7T7PKQ.cjs');
10
- require('../../__chunks/CMUD7LLN.cjs');
11
- require('../../__chunks/NIMXXHJQ.cjs');
12
-
13
-
14
-
15
-
16
-
17
-
18
-
19
- exports.getSecret = _NFXQNOQHcjs.getSecret; exports.listConfigs = _NFXQNOQHcjs.listConfigs; exports.listEnvironments = _NFXQNOQHcjs.listEnvironments; exports.listProjects = _NFXQNOQHcjs.listProjects; exports.setSecret = _NFXQNOQHcjs.setSecret; exports.setSecretInteractive = _NFXQNOQHcjs.setSecretInteractive;
1
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
2
+ const require_rolldown_runtime = require("../../__chunks/VH7oDXx4.cjs");
3
+ const require_commands_aws_utils_tty = require("../aws/utils/tty.cjs");
4
+ const require_commands_doppler_utils = require("./utils.cjs");
5
+ let chalk = require("chalk");
6
+ chalk = require_rolldown_runtime.__toESM(chalk, 1);
7
+ let child_process = require("child_process");
8
+ //#region src/commands/doppler/set-secret.js
9
+ /**
10
+ * @typedef {Object} DopplerProject
11
+ * @property {string} id
12
+ * @property {string} name
13
+ * @property {string} [description]
14
+ */
15
+ /**
16
+ * @typedef {Object} DopplerEnvironment
17
+ * @property {string} id
18
+ * @property {string} name
19
+ */
20
+ /**
21
+ * @typedef {Object} DopplerConfig
22
+ * @property {string} name
23
+ * @property {string} environment
24
+ * @property {boolean} [root]
25
+ */
26
+ /**
27
+ * List Doppler projects (paginated until exhausted or cap).
28
+ * @param {{ verbose?: boolean; limit?: number }} [params]
29
+ * @returns {DopplerProject[]}
30
+ */
31
+ function listProjects(params = {}) {
32
+ const { verbose = false, limit = 500 } = params;
33
+ /** @type {DopplerProject[]} */
34
+ const projects = [];
35
+ let page = 1;
36
+ while (projects.length < limit) {
37
+ const batch = require_commands_doppler_utils.execDoppler([
38
+ "projects",
39
+ "--json",
40
+ "--page",
41
+ String(page),
42
+ "--number",
43
+ "100"
44
+ ], "json", true, verbose);
45
+ if (!Array.isArray(batch) || batch.length === 0) break;
46
+ for (const raw of batch) projects.push({
47
+ id: String(raw.id ?? raw.name ?? ""),
48
+ name: String(raw.name ?? raw.id ?? ""),
49
+ description: raw.description ? String(raw.description) : ""
50
+ });
51
+ if (batch.length < 100) break;
52
+ page += 1;
53
+ }
54
+ return projects.filter((project) => project.name).sort((a, b) => a.name.localeCompare(b.name));
55
+ }
56
+ /**
57
+ * List environments for a project.
58
+ * @param {{ project: string; verbose?: boolean }} params
59
+ * @returns {DopplerEnvironment[]}
60
+ */
61
+ function listEnvironments(params) {
62
+ const { project, verbose = false } = params;
63
+ const data = require_commands_doppler_utils.execDoppler([
64
+ "environments",
65
+ "--json",
66
+ "--project",
67
+ project
68
+ ], "json", true, verbose);
69
+ if (!Array.isArray(data)) return [];
70
+ return data.map((raw) => ({
71
+ id: String(raw.id ?? ""),
72
+ name: String(raw.name ?? raw.id ?? "")
73
+ })).filter((env) => env.id).sort((a, b) => a.id.localeCompare(b.id));
74
+ }
75
+ /**
76
+ * List configs for a project, optionally filtered by environment.
77
+ * @param {{ project: string; environment?: string; verbose?: boolean }} params
78
+ * @returns {DopplerConfig[]}
79
+ */
80
+ function listConfigs(params) {
81
+ const { project, environment, verbose = false } = params;
82
+ /** @type {string[]} */
83
+ const args = [
84
+ "configs",
85
+ "--json",
86
+ "--project",
87
+ project
88
+ ];
89
+ if (environment) args.push("--environment", environment);
90
+ const data = require_commands_doppler_utils.execDoppler(args, "json", true, verbose);
91
+ if (!Array.isArray(data)) return [];
92
+ return data.map((raw) => ({
93
+ name: String(raw.name ?? ""),
94
+ environment: String(raw.environment ?? ""),
95
+ root: Boolean(raw.root)
96
+ })).filter((config) => config.name).sort((a, b) => a.name.localeCompare(b.name));
97
+ }
98
+ /**
99
+ * Get an existing secret value (raw), or null if missing.
100
+ * @param {{
101
+ * project: string;
102
+ * config: string;
103
+ * name: string;
104
+ * verbose?: boolean;
105
+ * }} params
106
+ * @returns {string | null}
107
+ */
108
+ function getSecret(params) {
109
+ const { project, config, name, verbose = false } = params;
110
+ try {
111
+ const data = require_commands_doppler_utils.execDoppler([
112
+ "secrets",
113
+ "get",
114
+ name,
115
+ "--project",
116
+ project,
117
+ "--config",
118
+ config,
119
+ "--plain",
120
+ "--raw"
121
+ ], "string", true, verbose);
122
+ if (typeof data !== "string") return null;
123
+ const value = data.replace(/\n$/, "");
124
+ return value.length > 0 ? value : "";
125
+ } catch {
126
+ return null;
127
+ }
128
+ }
129
+ /**
130
+ * Set a secret via stdin so values need no shell escaping.
131
+ * @param {{
132
+ * project: string;
133
+ * config: string;
134
+ * name: string;
135
+ * value: string;
136
+ * verbose?: boolean;
137
+ * }} params
138
+ */
139
+ function setSecret(params) {
140
+ const { project, config, name, value, verbose = false } = params;
141
+ const args = [
142
+ "secrets",
143
+ "set",
144
+ name,
145
+ "--project",
146
+ project,
147
+ "--config",
148
+ config,
149
+ "--no-interactive"
150
+ ];
151
+ if (verbose) console.log(chalk.default.gray(` Executing: doppler ${args.join(" ")} <stdin value (${value.length} chars)>`));
152
+ const result = (0, child_process.spawnSync)("doppler", args, {
153
+ encoding: "utf-8",
154
+ input: value
155
+ });
156
+ if (result.error) throw new Error(result.error.message);
157
+ if (result.status !== 0) {
158
+ const stderr = (result.stderr || result.stdout || "").trim();
159
+ throw new Error(stderr || `doppler secrets set failed for ${name}`);
160
+ }
161
+ }
162
+ /**
163
+ * @param {{ projects: DopplerProject[]; projectOption?: string }} params
164
+ * @returns {Promise<string>}
165
+ */
166
+ async function resolveProject(params) {
167
+ const { projects, projectOption } = params;
168
+ if (projectOption) {
169
+ const match = projects.find((project) => project.name === projectOption || project.id === projectOption);
170
+ if (!match) throw new Error(`Project "${projectOption}" not found. Available examples: ${projects.slice(0, 8).map((project) => project.name).join(", ")}`);
171
+ return match.name;
172
+ }
173
+ if (projects.length === 0) throw new Error("No Doppler projects found for this account.");
174
+ let candidates = projects;
175
+ if (projects.length > 30) {
176
+ const filter = await require_commands_aws_utils_tty.prompt(` Filter projects (${projects.length} total, Enter for all): `);
177
+ if (filter) {
178
+ const lower = filter.toLowerCase();
179
+ candidates = projects.filter((project) => project.name.toLowerCase().includes(lower) || project.id.toLowerCase().includes(lower));
180
+ if (candidates.length === 0) throw new Error(`No projects matched "${filter}".`);
181
+ }
182
+ }
183
+ const maxShown = 50;
184
+ const shown = candidates.slice(0, maxShown);
185
+ if (candidates.length > maxShown) console.log(chalk.default.yellow(` Showing first ${maxShown} of ${candidates.length} matches — refine with a filter next time.`));
186
+ const chosen = shown[await require_commands_aws_utils_tty.promptChoice({
187
+ message: "Choose a Doppler project:",
188
+ options: shown.map((project) => project.description ? `${project.name} — ${project.description}` : project.name)
189
+ })];
190
+ if (!chosen) throw new Error("No project selected");
191
+ return chosen.name;
192
+ }
193
+ /**
194
+ * @param {{
195
+ * environments: DopplerEnvironment[];
196
+ * environmentOption?: string;
197
+ * }} params
198
+ * @returns {Promise<string | "all">}
199
+ */
200
+ async function resolveEnvironment(params) {
201
+ const { environments, environmentOption } = params;
202
+ if (environmentOption) {
203
+ const normalized = environmentOption.trim().toLowerCase();
204
+ if (normalized === "all" || normalized === "*") return "all";
205
+ const match = environments.find((env) => env.id.toLowerCase() === normalized || env.name.toLowerCase() === normalized);
206
+ if (!match) throw new Error(`Environment "${environmentOption}" not found. Available: ${environments.map((env) => env.id).join(", ")}`);
207
+ return match.id;
208
+ }
209
+ if (environments.length === 0) return "all";
210
+ const options = [...environments.map((env) => `${env.id} (${env.name})`), "all environments"];
211
+ const index = await require_commands_aws_utils_tty.promptChoice({
212
+ message: "Choose an environment:",
213
+ options
214
+ });
215
+ if (index === options.length - 1) return "all";
216
+ const chosen = environments[index];
217
+ if (!chosen) throw new Error("No environment selected");
218
+ return chosen.id;
219
+ }
220
+ /**
221
+ * @param {{
222
+ * configs: DopplerConfig[];
223
+ * configOption?: string;
224
+ * environment: string | "all";
225
+ * }} params
226
+ * @returns {Promise<string[]>}
227
+ */
228
+ async function resolveConfigs(params) {
229
+ const { configs, configOption, environment } = params;
230
+ const scoped = environment === "all" ? configs : configs.filter((config) => config.environment === environment);
231
+ if (scoped.length === 0) throw new Error(environment === "all" ? "No configs found in this project." : `No configs found for environment "${environment}".`);
232
+ if (configOption) {
233
+ const normalized = configOption.trim().toLowerCase();
234
+ if (normalized === "all" || normalized === "*") return scoped.map((config) => config.name);
235
+ const requested = configOption.split(",").map((value) => value.trim());
236
+ const names = new Set(scoped.map((config) => config.name));
237
+ const missing = requested.filter((name) => !names.has(name));
238
+ if (missing.length > 0) throw new Error(`Config(s) not found: ${missing.join(", ")}. Available: ${[...names].join(", ")}`);
239
+ return requested;
240
+ }
241
+ if (scoped.length === 1) {
242
+ const only = scoped[0];
243
+ if (!only) throw new Error("No config selected");
244
+ console.log(` Config: ${only.name}`);
245
+ return [only.name];
246
+ }
247
+ const options = [...scoped.map((config) => config.root ? `${config.name} (root, env: ${config.environment})` : `${config.name} (env: ${config.environment})`), `all configs listed (${scoped.length})`];
248
+ const index = await require_commands_aws_utils_tty.promptChoice({
249
+ message: "Choose a config:",
250
+ options
251
+ });
252
+ if (index === options.length - 1) return scoped.map((config) => config.name);
253
+ const chosen = scoped[index];
254
+ if (!chosen) throw new Error("No config selected");
255
+ return [chosen.name];
256
+ }
257
+ /**
258
+ * @param {string | undefined} nameOption
259
+ * @returns {Promise<string>}
260
+ */
261
+ async function resolveSecretName(nameOption) {
262
+ if (nameOption) return nameOption;
263
+ const raw = await require_commands_aws_utils_tty.prompt(" Secret name (e.g. DATABASE_URL): ");
264
+ if (!raw) throw new Error("Secret name is required");
265
+ if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(raw)) throw new Error("Secret name must be a valid env var identifier (letters, numbers, underscore)");
266
+ return raw;
267
+ }
268
+ /**
269
+ * @param {string | undefined} valueOption
270
+ * @returns {Promise<string>}
271
+ */
272
+ async function resolveSecretValue(valueOption) {
273
+ if (valueOption !== void 0) return valueOption;
274
+ const raw = await require_commands_aws_utils_tty.prompt(" Secret value: ");
275
+ if (raw === "") {
276
+ if (!await require_commands_aws_utils_tty.promptYesNo({
277
+ message: " Set an empty value?",
278
+ defaultYes: false
279
+ })) throw new Error("Secret value is required");
280
+ }
281
+ return raw;
282
+ }
283
+ /**
284
+ * Interactively (or via flags) set a Doppler secret on one or more configs.
285
+ * @param {{
286
+ * project?: string;
287
+ * environment?: string;
288
+ * config?: string;
289
+ * name?: string;
290
+ * value?: string;
291
+ * yes?: boolean;
292
+ * verbose?: boolean;
293
+ * }} options
294
+ */
295
+ async function setSecretInteractive(options) {
296
+ const { project: projectOption, environment: environmentOption, config: configOption, name: nameOption, value: valueOption, yes = false, verbose = false } = options;
297
+ console.log(chalk.default.blue("\nSet Doppler secret"));
298
+ console.log("");
299
+ const project = await resolveProject({
300
+ projects: listProjects({ verbose }),
301
+ projectOption
302
+ });
303
+ console.log(`Project: ${project}`);
304
+ console.log("");
305
+ const environment = await resolveEnvironment({
306
+ environments: listEnvironments({
307
+ project,
308
+ verbose
309
+ }),
310
+ environmentOption
311
+ });
312
+ console.log(environment === "all" ? "Environment: all" : `Environment: ${environment}`);
313
+ console.log("");
314
+ const targetConfigs = await resolveConfigs({
315
+ configs: listConfigs({
316
+ project,
317
+ environment: environment === "all" ? void 0 : environment,
318
+ verbose
319
+ }),
320
+ configOption,
321
+ environment
322
+ });
323
+ console.log(`Config(s): ${targetConfigs.join(", ")}`);
324
+ console.log("");
325
+ const name = await resolveSecretName(nameOption);
326
+ const value = await resolveSecretValue(valueOption);
327
+ /** @type {{ config: string; existing: string | null }[]} */
328
+ const existingByConfig = [];
329
+ for (const config of targetConfigs) {
330
+ const existing = getSecret({
331
+ project,
332
+ config,
333
+ name,
334
+ verbose
335
+ });
336
+ existingByConfig.push({
337
+ config,
338
+ existing
339
+ });
340
+ }
341
+ const overwrites = existingByConfig.filter((entry) => entry.existing !== null);
342
+ console.log("");
343
+ console.log("Plan:");
344
+ console.log(` Project: ${project}`);
345
+ console.log(` Configs: ${targetConfigs.join(", ")}`);
346
+ console.log(` Name: ${name}`);
347
+ console.log(` Value: ${value.length === 0 ? "(empty)" : `(${value.length} chars)`}`);
348
+ if (overwrites.length > 0) console.log(chalk.default.yellow(` Overwrite: ${overwrites.length} config(s) already have this secret (${overwrites.map((entry) => entry.config).join(", ")})`));
349
+ else console.log(chalk.default.green(" Overwrite: none (new secret on all targets)"));
350
+ console.log("");
351
+ if (!yes) {
352
+ if (!await require_commands_aws_utils_tty.promptYesNo({
353
+ message: overwrites.length > 0 ? "Overwrite / set this secret?" : "Set this secret?",
354
+ defaultYes: false
355
+ })) {
356
+ console.log("Aborted.");
357
+ return;
358
+ }
359
+ console.log("");
360
+ }
361
+ for (const config of targetConfigs) {
362
+ setSecret({
363
+ project,
364
+ config,
365
+ name,
366
+ value,
367
+ verbose
368
+ });
369
+ console.log(chalk.default.green(` ✓ set ${name} on ${project}/${config}`));
370
+ }
371
+ }
372
+ //#endregion
373
+ exports.getSecret = getSecret;
374
+ exports.listConfigs = listConfigs;
375
+ exports.listEnvironments = listEnvironments;
376
+ exports.listProjects = listProjects;
377
+ exports.setSecret = setSecret;
378
+ exports.setSecretInteractive = setSecretInteractive;