@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.
- package/CHANGELOG.md +13 -0
- package/cjs/__chunks/VH7oDXx4.cjs +28 -0
- package/cjs/commands/aws/ec2/allow-ip/handler.cjs +261 -12
- package/cjs/commands/aws/ec2/allow-ip/index.cjs +25 -55
- package/cjs/commands/aws/ec2/allow-ip/schema.cjs +33 -13
- package/cjs/commands/aws/ec2/allow-ip/utils.cjs +379 -39
- package/cjs/commands/aws/iam/admin-group.cjs +111 -15
- package/cjs/commands/aws/iam/break-glass/handler.cjs +127 -12
- package/cjs/commands/aws/iam/break-glass/index.cjs +7 -19
- package/cjs/commands/aws/iam/break-glass/schema.cjs +21 -12
- package/cjs/commands/aws/iam/check-admin/handler.cjs +89 -10
- package/cjs/commands/aws/iam/check-admin/index.cjs +7 -17
- package/cjs/commands/aws/iam/check-admin/schema.cjs +19 -12
- package/cjs/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.json +20 -0
- package/cjs/commands/aws/iam/policies/sts-federation.json +11 -0
- package/cjs/commands/aws/iam/policies/user-admins-deny-list.json +175 -0
- package/cjs/commands/aws/iam/policies/user-admins-deny-regions-list.json +41 -0
- package/cjs/commands/aws/iam/policies/user-admins-self-service-iam.json +56 -0
- package/cjs/commands/aws/iam/policies/user-admins-write-list.json +117 -0
- package/cjs/commands/aws/iam/remove-admin/handler.cjs +120 -11
- package/cjs/commands/aws/iam/remove-admin/index.cjs +7 -18
- package/cjs/commands/aws/iam/remove-admin/schema.cjs +22 -12
- package/cjs/commands/aws/iam/setup-acl/handler.cjs +227 -14
- package/cjs/commands/aws/iam/setup-acl/index.cjs +13 -33
- package/cjs/commands/aws/iam/setup-acl/schema.cjs +19 -7
- package/cjs/commands/aws/iam/setup-acl/utils.cjs +305 -20
- package/cjs/commands/aws/iam/users/handler.cjs +59 -12
- package/cjs/commands/aws/iam/users/index.cjs +18 -41
- package/cjs/commands/aws/iam/users/schema.cjs +17 -7
- package/cjs/commands/aws/iam/users/utils.cjs +454 -30
- package/cjs/commands/aws/index.cjs +223 -229
- package/cjs/commands/aws/route53/add-record/handler.cjs +264 -18
- package/cjs/commands/aws/route53/add-record/index.cjs +26 -57
- package/cjs/commands/aws/route53/add-record/schema.cjs +43 -11
- package/cjs/commands/aws/route53/add-record/utils.cjs +404 -37
- package/cjs/commands/aws/route53/remove-record/handler.cjs +114 -14
- package/cjs/commands/aws/route53/remove-record/index.cjs +5 -18
- package/cjs/commands/aws/route53/remove-record/schema.cjs +22 -8
- package/cjs/commands/aws/schema.cjs +19 -10
- package/cjs/commands/aws/ses/send-email/handler.cjs +73 -12
- package/cjs/commands/aws/ses/send-email/index.cjs +9 -23
- package/cjs/commands/aws/ses/send-email/schema.cjs +24 -7
- package/cjs/commands/aws/ses/send-email/utils.cjs +87 -11
- package/cjs/commands/aws/ses/smtp-password.cjs +72 -10
- package/cjs/commands/aws/utils/exec-aws.cjs +145 -16
- package/cjs/commands/aws/utils/resolve-policy-path.cjs +15 -6
- package/cjs/commands/aws/utils/resolve-profile.cjs +93 -11
- package/cjs/commands/aws/utils/tty.cjs +54 -10
- package/cjs/commands/db/create-readonly-user/handler.cjs +254 -11
- package/cjs/commands/db/create-readonly-user/index.cjs +18 -40
- package/cjs/commands/db/create-readonly-user/mysql.cjs +102 -9
- package/cjs/commands/db/create-readonly-user/postgres.cjs +209 -9
- package/cjs/commands/db/create-readonly-user/schema.cjs +39 -12
- package/cjs/commands/db/create-readonly-user/utils.cjs +160 -22
- package/cjs/commands/db/index.cjs +46 -44
- package/cjs/commands/doppler/handler.cjs +95 -11
- package/cjs/commands/doppler/index.cjs +33 -68
- package/cjs/commands/doppler/schema.cjs +130 -14
- package/cjs/commands/doppler/set-secret.cjs +378 -19
- package/cjs/commands/doppler/utils/exec.cjs +106 -12
- package/cjs/commands/doppler/utils.cjs +412 -34
- package/cjs/commands/icons/handler.cjs +82 -8
- package/cjs/commands/icons/index.cjs +15 -31
- package/cjs/commands/icons/schema.cjs +101 -13
- package/cjs/commands/icons/utils.cjs +131 -13
- package/cjs/commands/index.cjs +54 -161
- package/cjs/commands/schema.cjs +25 -8
- package/cjs/index.cjs +3 -4
- package/esm/commands/aws/ec2/allow-ip/handler.js +258 -12
- package/esm/commands/aws/ec2/allow-ip/index.js +4 -55
- package/esm/commands/aws/ec2/allow-ip/schema.js +29 -13
- package/esm/commands/aws/ec2/allow-ip/utils.js +363 -39
- package/esm/commands/aws/iam/admin-group.js +104 -15
- package/esm/commands/aws/iam/break-glass/handler.js +124 -12
- package/esm/commands/aws/iam/break-glass/index.js +4 -19
- package/esm/commands/aws/iam/break-glass/schema.js +19 -12
- package/esm/commands/aws/iam/check-admin/handler.js +86 -10
- package/esm/commands/aws/iam/check-admin/index.js +4 -17
- package/esm/commands/aws/iam/check-admin/schema.js +17 -12
- package/esm/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.json +20 -0
- package/esm/commands/aws/iam/policies/sts-federation.json +11 -0
- package/esm/commands/aws/iam/policies/user-admins-deny-list.json +175 -0
- package/esm/commands/aws/iam/policies/user-admins-deny-regions-list.json +41 -0
- package/esm/commands/aws/iam/policies/user-admins-self-service-iam.json +56 -0
- package/esm/commands/aws/iam/policies/user-admins-write-list.json +117 -0
- package/esm/commands/aws/iam/remove-admin/handler.js +117 -11
- package/esm/commands/aws/iam/remove-admin/index.js +4 -18
- package/esm/commands/aws/iam/remove-admin/schema.js +20 -12
- package/esm/commands/aws/iam/setup-acl/handler.js +224 -14
- package/esm/commands/aws/iam/setup-acl/index.js +4 -33
- package/esm/commands/aws/iam/setup-acl/schema.js +18 -7
- package/esm/commands/aws/iam/setup-acl/utils.js +298 -20
- package/esm/commands/aws/iam/users/handler.js +56 -12
- package/esm/commands/aws/iam/users/index.js +4 -41
- package/esm/commands/aws/iam/users/schema.js +16 -7
- package/esm/commands/aws/iam/users/utils.js +440 -30
- package/esm/commands/aws/index.js +142 -229
- package/esm/commands/aws/route53/add-record/handler.js +258 -18
- package/esm/commands/aws/route53/add-record/index.js +4 -57
- package/esm/commands/aws/route53/add-record/schema.js +40 -11
- package/esm/commands/aws/route53/add-record/utils.js +389 -37
- package/esm/commands/aws/route53/remove-record/handler.js +111 -14
- package/esm/commands/aws/route53/remove-record/index.js +3 -18
- package/esm/commands/aws/route53/remove-record/schema.js +21 -8
- package/esm/commands/aws/schema.js +16 -10
- package/esm/commands/aws/ses/send-email/handler.js +70 -12
- package/esm/commands/aws/ses/send-email/index.js +4 -23
- package/esm/commands/aws/ses/send-email/schema.js +23 -7
- package/esm/commands/aws/ses/send-email/utils.js +84 -11
- package/esm/commands/aws/ses/smtp-password.js +69 -10
- package/esm/commands/aws/utils/exec-aws.js +136 -15
- package/esm/commands/aws/utils/resolve-policy-path.js +14 -6
- package/esm/commands/aws/utils/resolve-profile.js +88 -11
- package/esm/commands/aws/utils/tty.js +51 -10
- package/esm/commands/db/create-readonly-user/handler.js +251 -11
- package/esm/commands/db/create-readonly-user/index.js +4 -40
- package/esm/commands/db/create-readonly-user/mysql.js +98 -9
- package/esm/commands/db/create-readonly-user/postgres.js +205 -9
- package/esm/commands/db/create-readonly-user/schema.js +35 -12
- package/esm/commands/db/create-readonly-user/utils.js +151 -22
- package/esm/commands/db/index.js +31 -44
- package/esm/commands/doppler/handler.js +92 -11
- package/esm/commands/doppler/index.js +6 -68
- package/esm/commands/doppler/schema.js +125 -15
- package/esm/commands/doppler/set-secret.js +370 -19
- package/esm/commands/doppler/utils/exec.js +100 -12
- package/esm/commands/doppler/utils.js +396 -34
- package/esm/commands/icons/handler.js +79 -8
- package/esm/commands/icons/index.js +4 -31
- package/esm/commands/icons/schema.js +97 -15
- package/esm/commands/icons/utils.js +125 -13
- package/esm/commands/index.js +47 -155
- package/esm/commands/schema.js +22 -7
- package/esm/index.js +3 -4
- package/package.json +5 -2
- package/vitest.config.ts +11 -0
- package/cjs/__chunks/2FSYDFUV.cjs +0 -146
- package/cjs/__chunks/3A5ZYU5M.cjs +0 -105
- package/cjs/__chunks/3BY5Y4W7.cjs +0 -1
- package/cjs/__chunks/3NOHGUCF.cjs +0 -9
- package/cjs/__chunks/3T2LXW7J.cjs +0 -387
- package/cjs/__chunks/4SFWHCB3.cjs +0 -133
- package/cjs/__chunks/4XT5JEAS.cjs +0 -1
- package/cjs/__chunks/AZEB4H4I.cjs +0 -208
- package/cjs/__chunks/B2KFW7T7.cjs +0 -1
- package/cjs/__chunks/B5ENMOCD.cjs +0 -288
- package/cjs/__chunks/B6XM5KSF.cjs +0 -338
- package/cjs/__chunks/BDU2UCE5.cjs +0 -1
- package/cjs/__chunks/BLMSMR5E.cjs +0 -46
- package/cjs/__chunks/CMUD7LLN.cjs +0 -47
- package/cjs/__chunks/DTQ2LB3I.cjs +0 -49
- package/cjs/__chunks/FM5MVRQF.cjs +0 -23
- package/cjs/__chunks/FRHST54J.cjs +0 -135
- package/cjs/__chunks/FU4VP2LN.cjs +0 -1
- package/cjs/__chunks/G5K4PVIL.cjs +0 -26
- package/cjs/__chunks/GU3R54MK.cjs +0 -127
- package/cjs/__chunks/GUL36IFZ.cjs +0 -61
- package/cjs/__chunks/GZMTNK5N.cjs +0 -1
- package/cjs/__chunks/H74JSDBU.cjs +0 -30
- package/cjs/__chunks/INFOPAHN.cjs +0 -117
- package/cjs/__chunks/J36P6UNE.cjs +0 -75
- package/cjs/__chunks/JB7T7PKQ.cjs +0 -538
- package/cjs/__chunks/JSL2JDMW.cjs +0 -1
- package/cjs/__chunks/K4QNHRTP.cjs +0 -163
- package/cjs/__chunks/KU76LC42.cjs +0 -192
- package/cjs/__chunks/LFDSHANP.cjs +0 -34
- package/cjs/__chunks/LHE24ECK.cjs +0 -192
- package/cjs/__chunks/LIKQ3SI4.cjs +0 -1
- package/cjs/__chunks/LXDF5QVZ.cjs +0 -313
- package/cjs/__chunks/LXOOJR2R.cjs +0 -74
- package/cjs/__chunks/N5MXFOQZ.cjs +0 -167
- package/cjs/__chunks/N7D56LPP.cjs +0 -25
- package/cjs/__chunks/NFXQNOQH.cjs +0 -393
- package/cjs/__chunks/NIMXXHJQ.cjs +0 -92
- package/cjs/__chunks/NLKJIUEX.cjs +0 -126
- package/cjs/__chunks/NT2XXAI6.cjs +0 -89
- package/cjs/__chunks/NWZGFHKH.cjs +0 -121
- package/cjs/__chunks/R3GUC7O7.cjs +0 -110
- package/cjs/__chunks/RPVAXPJ4.cjs +0 -1
- package/cjs/__chunks/S3LVCWPN.cjs +0 -23
- package/cjs/__chunks/SBBNW2BF.cjs +0 -249
- package/cjs/__chunks/T2A7TN4F.cjs +0 -81
- package/cjs/__chunks/TKNNDDIB.cjs +0 -97
- package/cjs/__chunks/TNSRDJPR.cjs +0 -1
- package/cjs/__chunks/UWHPE2GI.cjs +0 -20
- package/cjs/__chunks/W6K7BV74.cjs +0 -1
- package/cjs/__chunks/WBOQ6AUN.cjs +0 -320
- package/cjs/__chunks/WHGN5PZI.cjs +0 -299
- package/cjs/__chunks/WOYF2L6T.cjs +0 -11
- package/cjs/__chunks/X26XY2N6.cjs +0 -18
- package/cjs/__chunks/XMKOKRXZ.cjs +0 -16
- package/cjs/__chunks/XTJPQ3EX.cjs +0 -1
- package/cjs/__chunks/YRHFKTW2.cjs +0 -63
- package/cjs/__chunks/ZMDIOZPT.cjs +0 -22
- package/cjs/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.cjs +0 -28
- package/cjs/commands/aws/iam/policies/sts-federation.cjs +0 -19
- package/cjs/commands/aws/iam/policies/user-admins-deny-list.cjs +0 -183
- package/cjs/commands/aws/iam/policies/user-admins-deny-regions-list.cjs +0 -49
- package/cjs/commands/aws/iam/policies/user-admins-self-service-iam.cjs +0 -64
- package/cjs/commands/aws/iam/policies/user-admins-write-list.cjs +0 -125
- package/esm/__chunks/2FTTEFEK.js +0 -97
- package/esm/__chunks/33UYMUQD.js +0 -338
- package/esm/__chunks/3BKWTHLJ.js +0 -25
- package/esm/__chunks/3HE4BEJX.js +0 -105
- package/esm/__chunks/3QLI5BDL.js +0 -387
- package/esm/__chunks/5GIUAFXL.js +0 -89
- package/esm/__chunks/5ZBVGSOK.js +0 -0
- package/esm/__chunks/6G4PXXKF.js +0 -75
- package/esm/__chunks/73BJG53F.js +0 -11
- package/esm/__chunks/7VF4Q43Q.js +0 -0
- package/esm/__chunks/AEDEAYF5.js +0 -0
- package/esm/__chunks/AZCP3SFJ.js +0 -0
- package/esm/__chunks/B2DVQ2UL.js +0 -61
- package/esm/__chunks/CVQVHLW5.js +0 -0
- package/esm/__chunks/D62SPZXC.js +0 -0
- package/esm/__chunks/DLEJ25GZ.js +0 -121
- package/esm/__chunks/DMYFNF54.js +0 -192
- package/esm/__chunks/DNFTUMGD.js +0 -23
- package/esm/__chunks/DVKD6YSR.js +0 -49
- package/esm/__chunks/EMSH4P76.js +0 -20
- package/esm/__chunks/FFKFVMIE.js +0 -167
- package/esm/__chunks/FL7AILGH.js +0 -133
- package/esm/__chunks/FNXUONAV.js +0 -110
- package/esm/__chunks/G4NJHFFU.js +0 -320
- package/esm/__chunks/HJSXC6HP.js +0 -117
- package/esm/__chunks/IEOGAQYI.js +0 -46
- package/esm/__chunks/IZFGBYGE.js +0 -34
- package/esm/__chunks/J34UVKLA.js +0 -26
- package/esm/__chunks/JZPBBBIG.js +0 -74
- package/esm/__chunks/KWUJP5MG.js +0 -135
- package/esm/__chunks/M35URMT4.js +0 -313
- package/esm/__chunks/NF3M2L6C.js +0 -81
- package/esm/__chunks/O3CCA76Q.js +0 -22
- package/esm/__chunks/PNPPDYKC.js +0 -299
- package/esm/__chunks/QFXN4EHM.js +0 -393
- package/esm/__chunks/QKDDLIWD.js +0 -146
- package/esm/__chunks/QSE66AKY.js +0 -208
- package/esm/__chunks/QUF7PS4R.js +0 -18
- package/esm/__chunks/S7IJPJ4R.js +0 -126
- package/esm/__chunks/SD3E3EPH.js +0 -163
- package/esm/__chunks/SJXQJ7RS.js +0 -92
- package/esm/__chunks/SNCKIAOR.js +0 -0
- package/esm/__chunks/T3TTUHTW.js +0 -30
- package/esm/__chunks/TIOVE6HR.js +0 -0
- package/esm/__chunks/TXKMEIDQ.js +0 -0
- package/esm/__chunks/U7HAE2RF.js +0 -288
- package/esm/__chunks/UXWY7BYE.js +0 -63
- package/esm/__chunks/VKAKISRG.js +0 -192
- package/esm/__chunks/WD2YR6I7.js +0 -0
- package/esm/__chunks/WOZFZKFY.js +0 -0
- package/esm/__chunks/XI7GZDE2.js +0 -0
- package/esm/__chunks/XOUWDB3T.js +0 -249
- package/esm/__chunks/XQN2TA4S.js +0 -23
- package/esm/__chunks/XXK32TIM.js +0 -16
- package/esm/__chunks/YGWTVPZE.js +0 -538
- package/esm/__chunks/YRG7PT33.js +0 -127
- package/esm/__chunks/ZHKVJO2U.js +0 -47
- package/esm/__chunks/ZO55YUSY.js +0 -9
- package/esm/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.js +0 -28
- package/esm/commands/aws/iam/policies/sts-federation.js +0 -19
- package/esm/commands/aws/iam/policies/user-admins-deny-list.js +0 -183
- package/esm/commands/aws/iam/policies/user-admins-deny-regions-list.js +0 -49
- package/esm/commands/aws/iam/policies/user-admins-self-service-iam.js +0 -64
- package/esm/commands/aws/iam/policies/user-admins-write-list.js +0 -125
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } }
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
var _GUL36IFZcjs = require('./GUL36IFZ.cjs');
|
|
5
|
-
|
|
6
|
-
// src/commands/aws/ses/send-email/utils.js
|
|
7
|
-
var _crypto = require('crypto');
|
|
8
|
-
function defaultBody() {
|
|
9
|
-
const token = _crypto.randomBytes.call(void 0, 16).toString("hex");
|
|
10
|
-
const sentAt = (/* @__PURE__ */ new Date()).toISOString();
|
|
11
|
-
return `MTN CLI test email \u2014 random token: ${token} \u2014 sent at ${sentAt}`;
|
|
12
|
-
}
|
|
13
|
-
async function sendViaApi(params) {
|
|
14
|
-
const { to, from, subject, body, region, profile } = params;
|
|
15
|
-
const { SESClient, SendEmailCommand } = await Promise.resolve().then(() => _interopRequireWildcard(require("@aws-sdk/client-ses")));
|
|
16
|
-
const { fromNodeProviderChain } = await Promise.resolve().then(() => _interopRequireWildcard(require("@aws-sdk/credential-providers")));
|
|
17
|
-
const client = new SESClient({
|
|
18
|
-
region,
|
|
19
|
-
credentials: fromNodeProviderChain(profile ? { profile } : {})
|
|
20
|
-
});
|
|
21
|
-
const command = new SendEmailCommand({
|
|
22
|
-
Source: from,
|
|
23
|
-
Destination: { ToAddresses: [to] },
|
|
24
|
-
Message: {
|
|
25
|
-
Subject: { Data: subject },
|
|
26
|
-
Body: { Text: { Data: body } }
|
|
27
|
-
}
|
|
28
|
-
});
|
|
29
|
-
const result = await client.send(command);
|
|
30
|
-
return result.MessageId;
|
|
31
|
-
}
|
|
32
|
-
async function sendViaSmtp(params) {
|
|
33
|
-
const { to, from, subject, body, region, accessKeyId } = params;
|
|
34
|
-
const user = _nullishCoalesce(process.env.SES_SMTP_USER, () => ( accessKeyId));
|
|
35
|
-
let pass = process.env.SES_SMTP_PASSWORD;
|
|
36
|
-
if (!pass) {
|
|
37
|
-
const secret = process.env.AWS_SECRET_ACCESS_KEY;
|
|
38
|
-
if (secret) {
|
|
39
|
-
pass = _GUL36IFZcjs.calculateSmtpPassword.call(void 0, { secretAccessKey: secret, region });
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
if (!user || !pass) {
|
|
43
|
-
throw new Error(
|
|
44
|
-
"SMTP transport requires SES_SMTP_USER and SES_SMTP_PASSWORD, or AWS_SECRET_ACCESS_KEY (plus --access-key-id) to derive the SMTP password."
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
const nodemailerModule = await Promise.resolve().then(() => _interopRequireWildcard(require("nodemailer")));
|
|
48
|
-
const nodemailer = _nullishCoalesce(nodemailerModule.default, () => ( nodemailerModule));
|
|
49
|
-
const transporter = nodemailer.createTransport({
|
|
50
|
-
host: _GUL36IFZcjs.smtpEndpoint.call(void 0, region),
|
|
51
|
-
port: 587,
|
|
52
|
-
secure: false,
|
|
53
|
-
auth: { user, pass }
|
|
54
|
-
});
|
|
55
|
-
const info = await transporter.sendMail({ from, to, subject, text: body });
|
|
56
|
-
return info.messageId;
|
|
57
|
-
}
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
exports.defaultBody = defaultBody; exports.sendViaApi = sendViaApi; exports.sendViaSmtp = sendViaSmtp;
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/schema.js
|
|
2
|
-
var _zod = require('zod');
|
|
3
|
-
var globalOptionsSchema = _zod.z.object({
|
|
4
|
-
verbose: _zod.z.boolean().default(false).optional().describe("Enable verbose logging for detailed output and error traces")
|
|
5
|
-
});
|
|
6
|
-
var globalCommandsMetadata = {
|
|
7
|
-
name: "mtndev-cli",
|
|
8
|
-
version: "1.0.0",
|
|
9
|
-
description: "Omnibus CLI tool for mtndev projects",
|
|
10
|
-
options: {
|
|
11
|
-
verbose: {
|
|
12
|
-
description: globalOptionsSchema.shape.verbose.description,
|
|
13
|
-
default: false,
|
|
14
|
-
alias: "v"
|
|
15
|
-
}
|
|
16
|
-
}
|
|
17
|
-
};
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
exports.globalOptionsSchema = globalOptionsSchema; exports.globalCommandsMetadata = globalCommandsMetadata;
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/iam/policies/s3-restrictions-deny-non-s3-services.json
|
|
2
|
-
var Version = "2012-10-17";
|
|
3
|
-
var Statement = [
|
|
4
|
-
{
|
|
5
|
-
Sid: "DenyNonS3Services",
|
|
6
|
-
Effect: "Deny",
|
|
7
|
-
NotAction: [
|
|
8
|
-
"s3:*",
|
|
9
|
-
"logs:*",
|
|
10
|
-
"sts:AssumeRole",
|
|
11
|
-
"iam:PassRole",
|
|
12
|
-
"kms:Decrypt",
|
|
13
|
-
"kms:GenerateDataKey",
|
|
14
|
-
"kms:DescribeKey",
|
|
15
|
-
"lambda:InvokeFunction"
|
|
16
|
-
],
|
|
17
|
-
Resource: "*"
|
|
18
|
-
}
|
|
19
|
-
];
|
|
20
|
-
var s3_restrictions_deny_non_s3_services_default = {
|
|
21
|
-
Version,
|
|
22
|
-
Statement
|
|
23
|
-
};
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
exports.Statement = Statement; exports.Version = Version; exports.default = s3_restrictions_deny_non_s3_services_default;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/iam/policies/sts-federation.json
|
|
2
|
-
var Version = "2012-10-17";
|
|
3
|
-
var Statement = [
|
|
4
|
-
{
|
|
5
|
-
Sid: "StsFederation",
|
|
6
|
-
Effect: "Allow",
|
|
7
|
-
Action: ["sts:GetFederationToken", "sts:GetCallerIdentity"],
|
|
8
|
-
Resource: "*"
|
|
9
|
-
}
|
|
10
|
-
];
|
|
11
|
-
var sts_federation_default = {
|
|
12
|
-
Version,
|
|
13
|
-
Statement
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
exports.Statement = Statement; exports.Version = Version; exports.default = sts_federation_default;
|
|
@@ -1,183 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/iam/policies/user-admins-deny-list.json
|
|
2
|
-
var Version = "2012-10-17";
|
|
3
|
-
var Statement = [
|
|
4
|
-
{
|
|
5
|
-
Sid: "DenyAIServices",
|
|
6
|
-
Effect: "Deny",
|
|
7
|
-
Action: [
|
|
8
|
-
"bedrock:*",
|
|
9
|
-
"sagemaker:*",
|
|
10
|
-
"comprehend:*",
|
|
11
|
-
"comprehendmedical:*",
|
|
12
|
-
"rekognition:*",
|
|
13
|
-
"textract:*",
|
|
14
|
-
"personalize:*",
|
|
15
|
-
"forecast:*",
|
|
16
|
-
"lex:*",
|
|
17
|
-
"polly:*",
|
|
18
|
-
"translate:*",
|
|
19
|
-
"transcribe:*",
|
|
20
|
-
"kendra:*",
|
|
21
|
-
"q:*"
|
|
22
|
-
],
|
|
23
|
-
Resource: "*"
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
Sid: "DenyOrgAndAccountWrites",
|
|
27
|
-
Effect: "Deny",
|
|
28
|
-
Action: [
|
|
29
|
-
"organizations:*",
|
|
30
|
-
"account:CloseAccount",
|
|
31
|
-
"account:DeleteAlternateContact",
|
|
32
|
-
"account:PutAlternateContact",
|
|
33
|
-
"account:PutChallengeQuestions",
|
|
34
|
-
"account:EnableRegion",
|
|
35
|
-
"account:DisableRegion",
|
|
36
|
-
"account:PutAccountName"
|
|
37
|
-
],
|
|
38
|
-
Resource: "*"
|
|
39
|
-
},
|
|
40
|
-
{
|
|
41
|
-
Sid: "DenyBillingMutations",
|
|
42
|
-
Effect: "Deny",
|
|
43
|
-
Action: [
|
|
44
|
-
"aws-portal:Modify*",
|
|
45
|
-
"billing:Update*",
|
|
46
|
-
"billing:Put*",
|
|
47
|
-
"billing:Delete*",
|
|
48
|
-
"budgets:Modify*",
|
|
49
|
-
"budgets:Create*",
|
|
50
|
-
"budgets:Delete*",
|
|
51
|
-
"savingsplans:Create*",
|
|
52
|
-
"savingsplans:Delete*",
|
|
53
|
-
"supportplans:Create*",
|
|
54
|
-
"supportplans:Delete*",
|
|
55
|
-
"purchase-orders:Modify*",
|
|
56
|
-
"purchase-orders:Create*",
|
|
57
|
-
"cur:Put*",
|
|
58
|
-
"cur:Delete*"
|
|
59
|
-
],
|
|
60
|
-
Resource: "*"
|
|
61
|
-
},
|
|
62
|
-
{
|
|
63
|
-
Sid: "DenyCloudTrailTampering",
|
|
64
|
-
Effect: "Deny",
|
|
65
|
-
Action: [
|
|
66
|
-
"cloudtrail:StopLogging",
|
|
67
|
-
"cloudtrail:DeleteTrail",
|
|
68
|
-
"cloudtrail:UpdateTrail",
|
|
69
|
-
"cloudtrail:PutEventSelectors",
|
|
70
|
-
"cloudtrail:DeleteEventDataStore"
|
|
71
|
-
],
|
|
72
|
-
Resource: "*"
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
Sid: "DenyExpensiveServices",
|
|
76
|
-
Effect: "Deny",
|
|
77
|
-
Action: [
|
|
78
|
-
"airflow:CreateEnvironment",
|
|
79
|
-
"airflow:UpdateEnvironment",
|
|
80
|
-
"mwaa:*",
|
|
81
|
-
"transfer:CreateServer",
|
|
82
|
-
"transfer:UpdateServer",
|
|
83
|
-
"transfer:StartServer",
|
|
84
|
-
"shield:CreateSubscription",
|
|
85
|
-
"shield:CreateProtection",
|
|
86
|
-
"shield:CreateProtectionGroup"
|
|
87
|
-
],
|
|
88
|
-
Resource: "*"
|
|
89
|
-
},
|
|
90
|
-
{
|
|
91
|
-
Sid: "DenyKMSDestruction",
|
|
92
|
-
Effect: "Deny",
|
|
93
|
-
Action: [
|
|
94
|
-
"kms:ScheduleKeyDeletion",
|
|
95
|
-
"kms:DisableKey",
|
|
96
|
-
"kms:DisableKeyRotation"
|
|
97
|
-
],
|
|
98
|
-
Resource: "*"
|
|
99
|
-
},
|
|
100
|
-
{
|
|
101
|
-
Sid: "DenyNeptuneViaRds",
|
|
102
|
-
Effect: "Deny",
|
|
103
|
-
Action: [
|
|
104
|
-
"rds:CreateDBCluster",
|
|
105
|
-
"rds:CreateDBInstance",
|
|
106
|
-
"rds:ModifyDBCluster",
|
|
107
|
-
"rds:ModifyDBInstance",
|
|
108
|
-
"rds:RestoreDBClusterFromSnapshot",
|
|
109
|
-
"rds:RestoreDBInstanceFromDBSnapshot"
|
|
110
|
-
],
|
|
111
|
-
Resource: "*",
|
|
112
|
-
Condition: {
|
|
113
|
-
StringEquals: {
|
|
114
|
-
"rds:DatabaseEngine": "neptune"
|
|
115
|
-
}
|
|
116
|
-
}
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
Sid: "DenyExpensiveGpuEc2",
|
|
120
|
-
Effect: "Deny",
|
|
121
|
-
Action: [
|
|
122
|
-
"ec2:RunInstances",
|
|
123
|
-
"ec2:RequestSpotInstances",
|
|
124
|
-
"ec2:RequestSpotFleet",
|
|
125
|
-
"ec2:ModifyInstanceAttribute"
|
|
126
|
-
],
|
|
127
|
-
Resource: "*",
|
|
128
|
-
Condition: {
|
|
129
|
-
StringLike: {
|
|
130
|
-
"ec2:InstanceType": [
|
|
131
|
-
"p2.*",
|
|
132
|
-
"p3.*",
|
|
133
|
-
"p4d.*",
|
|
134
|
-
"p4de.*",
|
|
135
|
-
"p5.*",
|
|
136
|
-
"p5d.*",
|
|
137
|
-
"p5e.*",
|
|
138
|
-
"p5en.*",
|
|
139
|
-
"p6*",
|
|
140
|
-
"g3.*",
|
|
141
|
-
"g3s.*",
|
|
142
|
-
"g4dn.*",
|
|
143
|
-
"g4ad.*",
|
|
144
|
-
"g5.*",
|
|
145
|
-
"g5g.*",
|
|
146
|
-
"g6.*",
|
|
147
|
-
"g6e.*",
|
|
148
|
-
"g6f.*",
|
|
149
|
-
"inf1.*",
|
|
150
|
-
"inf2.*",
|
|
151
|
-
"trn1.*",
|
|
152
|
-
"trn1n.*",
|
|
153
|
-
"trn2.*",
|
|
154
|
-
"trn2a.*",
|
|
155
|
-
"trn2i.*",
|
|
156
|
-
"dl1.*",
|
|
157
|
-
"dl2q.*",
|
|
158
|
-
"f1.*",
|
|
159
|
-
"f2.*",
|
|
160
|
-
"vt1.*",
|
|
161
|
-
"hpc6id.*",
|
|
162
|
-
"u-12tb1.metal",
|
|
163
|
-
"u-18tb1.metal",
|
|
164
|
-
"u-24tb1.metal",
|
|
165
|
-
"u-6tb1.56xlarge",
|
|
166
|
-
"u-9tb1.112xlarge",
|
|
167
|
-
"x2iedn.*",
|
|
168
|
-
"x2idn.*",
|
|
169
|
-
"x2iezn.*"
|
|
170
|
-
]
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
];
|
|
175
|
-
var user_admins_deny_list_default = {
|
|
176
|
-
Version,
|
|
177
|
-
Statement
|
|
178
|
-
};
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
exports.Statement = Statement; exports.Version = Version; exports.default = user_admins_deny_list_default;
|
|
@@ -1,49 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/iam/policies/user-admins-deny-regions-list.json
|
|
2
|
-
var Version = "2012-10-17";
|
|
3
|
-
var Statement = [
|
|
4
|
-
{
|
|
5
|
-
Sid: "DenyNonApprovedRegions",
|
|
6
|
-
Effect: "Deny",
|
|
7
|
-
NotAction: [
|
|
8
|
-
"iam:*",
|
|
9
|
-
"organizations:*",
|
|
10
|
-
"route53:*",
|
|
11
|
-
"route53domains:*",
|
|
12
|
-
"cloudfront:*",
|
|
13
|
-
"waf:*",
|
|
14
|
-
"wafv2:*",
|
|
15
|
-
"shield:*",
|
|
16
|
-
"globalaccelerator:*",
|
|
17
|
-
"sts:*",
|
|
18
|
-
"support:*",
|
|
19
|
-
"supportplans:*",
|
|
20
|
-
"trustedadvisor:*",
|
|
21
|
-
"health:*",
|
|
22
|
-
"budgets:*",
|
|
23
|
-
"ce:*",
|
|
24
|
-
"cur:*",
|
|
25
|
-
"account:*",
|
|
26
|
-
"billing:*",
|
|
27
|
-
"aws-portal:*",
|
|
28
|
-
"tag:*",
|
|
29
|
-
"resource-groups:*",
|
|
30
|
-
"ram:*",
|
|
31
|
-
"cloudshell:*"
|
|
32
|
-
],
|
|
33
|
-
Resource: "*",
|
|
34
|
-
Condition: {
|
|
35
|
-
StringNotEquals: {
|
|
36
|
-
"aws:RequestedRegion": ["us-east-1", "us-east-2", "us-west-2"]
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
];
|
|
41
|
-
var user_admins_deny_regions_list_default = {
|
|
42
|
-
Version,
|
|
43
|
-
Statement
|
|
44
|
-
};
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
exports.Statement = Statement; exports.Version = Version; exports.default = user_admins_deny_regions_list_default;
|
|
@@ -1,64 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/iam/policies/user-admins-self-service-iam.json
|
|
2
|
-
var Version = "2012-10-17";
|
|
3
|
-
var Statement = [
|
|
4
|
-
{
|
|
5
|
-
Sid: "ViewAccountInfo",
|
|
6
|
-
Effect: "Allow",
|
|
7
|
-
Action: ["iam:GetAccountPasswordPolicy", "iam:ListVirtualMFADevices"],
|
|
8
|
-
Resource: "*"
|
|
9
|
-
},
|
|
10
|
-
{
|
|
11
|
-
Sid: "ManageOwnPassword",
|
|
12
|
-
Effect: "Allow",
|
|
13
|
-
Action: ["iam:ChangePassword", "iam:GetUser"],
|
|
14
|
-
Resource: "arn:aws:iam::*:user/${aws:username}"
|
|
15
|
-
},
|
|
16
|
-
{
|
|
17
|
-
Sid: "ManageOwnAccessKeys",
|
|
18
|
-
Effect: "Allow",
|
|
19
|
-
Action: [
|
|
20
|
-
"iam:CreateAccessKey",
|
|
21
|
-
"iam:DeleteAccessKey",
|
|
22
|
-
"iam:ListAccessKeys",
|
|
23
|
-
"iam:UpdateAccessKey",
|
|
24
|
-
"iam:GetAccessKeyLastUsed"
|
|
25
|
-
],
|
|
26
|
-
Resource: "arn:aws:iam::*:user/${aws:username}"
|
|
27
|
-
},
|
|
28
|
-
{
|
|
29
|
-
Sid: "ManageOwnMFA",
|
|
30
|
-
Effect: "Allow",
|
|
31
|
-
Action: [
|
|
32
|
-
"iam:CreateVirtualMFADevice",
|
|
33
|
-
"iam:DeleteVirtualMFADevice",
|
|
34
|
-
"iam:EnableMFADevice",
|
|
35
|
-
"iam:ListMFADevices",
|
|
36
|
-
"iam:ResyncMFADevice",
|
|
37
|
-
"iam:DeactivateMFADevice"
|
|
38
|
-
],
|
|
39
|
-
Resource: [
|
|
40
|
-
"arn:aws:iam::*:mfa/${aws:username}",
|
|
41
|
-
"arn:aws:iam::*:user/${aws:username}"
|
|
42
|
-
]
|
|
43
|
-
},
|
|
44
|
-
{
|
|
45
|
-
Sid: "ValidateIAMPolicies",
|
|
46
|
-
Effect: "Allow",
|
|
47
|
-
Action: [
|
|
48
|
-
"access-analyzer:ValidatePolicy",
|
|
49
|
-
"access-analyzer:CheckAccessNotGranted",
|
|
50
|
-
"access-analyzer:CheckNoNewAccess",
|
|
51
|
-
"access-analyzer:CheckNoPublicAccess"
|
|
52
|
-
],
|
|
53
|
-
Resource: "*"
|
|
54
|
-
}
|
|
55
|
-
];
|
|
56
|
-
var user_admins_self_service_iam_default = {
|
|
57
|
-
Version,
|
|
58
|
-
Statement
|
|
59
|
-
};
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
exports.Statement = Statement; exports.Version = Version; exports.default = user_admins_self_service_iam_default;
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true});// src/commands/aws/iam/policies/user-admins-write-list.json
|
|
2
|
-
var Version = "2012-10-17";
|
|
3
|
-
var Statement = [
|
|
4
|
-
{
|
|
5
|
-
Sid: "WriteComputeAndNetwork",
|
|
6
|
-
Effect: "Allow",
|
|
7
|
-
Action: [
|
|
8
|
-
"ec2:*",
|
|
9
|
-
"elasticloadbalancing:*",
|
|
10
|
-
"autoscaling:*",
|
|
11
|
-
"application-autoscaling:*",
|
|
12
|
-
"lambda:*",
|
|
13
|
-
"ecs:*",
|
|
14
|
-
"ecr:*",
|
|
15
|
-
"elasticfilesystem:*",
|
|
16
|
-
"route53:*",
|
|
17
|
-
"route53domains:*",
|
|
18
|
-
"cloudfront:*",
|
|
19
|
-
"apigateway:*",
|
|
20
|
-
"servicediscovery:*"
|
|
21
|
-
],
|
|
22
|
-
Resource: "*"
|
|
23
|
-
},
|
|
24
|
-
{
|
|
25
|
-
Sid: "WriteDataAndStorage",
|
|
26
|
-
Effect: "Allow",
|
|
27
|
-
Action: ["s3:*", "rds:*", "pi:*", "dynamodb:*", "backup:*"],
|
|
28
|
-
Resource: "*"
|
|
29
|
-
},
|
|
30
|
-
{
|
|
31
|
-
Sid: "WriteDeploymentAndOps",
|
|
32
|
-
Effect: "Allow",
|
|
33
|
-
Action: [
|
|
34
|
-
"cloudformation:*",
|
|
35
|
-
"cloudwatch:*",
|
|
36
|
-
"logs:*",
|
|
37
|
-
"events:*",
|
|
38
|
-
"scheduler:*",
|
|
39
|
-
"ssm:*",
|
|
40
|
-
"cloudtrail:*",
|
|
41
|
-
"xray:*",
|
|
42
|
-
"states:*",
|
|
43
|
-
"cloudshell:*"
|
|
44
|
-
],
|
|
45
|
-
Resource: "*"
|
|
46
|
-
},
|
|
47
|
-
{
|
|
48
|
-
Sid: "WriteSecurityAndMessaging",
|
|
49
|
-
Effect: "Allow",
|
|
50
|
-
Action: [
|
|
51
|
-
"acm:*",
|
|
52
|
-
"secretsmanager:*",
|
|
53
|
-
"kms:*",
|
|
54
|
-
"sns:*",
|
|
55
|
-
"sqs:*",
|
|
56
|
-
"ses:*"
|
|
57
|
-
],
|
|
58
|
-
Resource: "*"
|
|
59
|
-
},
|
|
60
|
-
{
|
|
61
|
-
Sid: "WriteResourceOrganization",
|
|
62
|
-
Effect: "Allow",
|
|
63
|
-
Action: ["resource-groups:*", "tag:*", "ram:*"],
|
|
64
|
-
Resource: "*"
|
|
65
|
-
},
|
|
66
|
-
{
|
|
67
|
-
Sid: "SupportAndHealth",
|
|
68
|
-
Effect: "Allow",
|
|
69
|
-
Action: [
|
|
70
|
-
"support:*",
|
|
71
|
-
"supportplans:Get*",
|
|
72
|
-
"supportplans:List*",
|
|
73
|
-
"health:*",
|
|
74
|
-
"trustedadvisor:*"
|
|
75
|
-
],
|
|
76
|
-
Resource: "*"
|
|
77
|
-
},
|
|
78
|
-
{
|
|
79
|
-
Sid: "Sts",
|
|
80
|
-
Effect: "Allow",
|
|
81
|
-
Action: [
|
|
82
|
-
"sts:GetCallerIdentity",
|
|
83
|
-
"sts:GetFederationToken",
|
|
84
|
-
"sts:GetSessionToken"
|
|
85
|
-
],
|
|
86
|
-
Resource: "*"
|
|
87
|
-
},
|
|
88
|
-
{
|
|
89
|
-
Sid: "IamPassRoleForServices",
|
|
90
|
-
Effect: "Allow",
|
|
91
|
-
Action: "iam:PassRole",
|
|
92
|
-
Resource: "arn:aws:iam::*:role/*",
|
|
93
|
-
Condition: {
|
|
94
|
-
StringEquals: {
|
|
95
|
-
"iam:PassedToService": [
|
|
96
|
-
"ec2.amazonaws.com",
|
|
97
|
-
"lambda.amazonaws.com",
|
|
98
|
-
"ecs.amazonaws.com",
|
|
99
|
-
"ecs-tasks.amazonaws.com",
|
|
100
|
-
"elasticloadbalancing.amazonaws.com",
|
|
101
|
-
"events.amazonaws.com",
|
|
102
|
-
"apigateway.amazonaws.com",
|
|
103
|
-
"rds.amazonaws.com",
|
|
104
|
-
"backup.amazonaws.com",
|
|
105
|
-
"cloudformation.amazonaws.com"
|
|
106
|
-
]
|
|
107
|
-
}
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
{
|
|
111
|
-
Sid: "ServiceLinkedRoles",
|
|
112
|
-
Effect: "Allow",
|
|
113
|
-
Action: ["iam:CreateServiceLinkedRole", "iam:DeleteServiceLinkedRole"],
|
|
114
|
-
Resource: "*"
|
|
115
|
-
}
|
|
116
|
-
];
|
|
117
|
-
var user_admins_write_list_default = {
|
|
118
|
-
Version,
|
|
119
|
-
Statement
|
|
120
|
-
};
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
exports.Statement = Statement; exports.Version = Version; exports.default = user_admins_write_list_default;
|
package/esm/__chunks/2FTTEFEK.js
DELETED
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
defaultBody,
|
|
3
|
-
sendViaApi,
|
|
4
|
-
sendViaSmtp
|
|
5
|
-
} from "./UXWY7BYE.js";
|
|
6
|
-
import {
|
|
7
|
-
resolveProfile
|
|
8
|
-
} from "./5GIUAFXL.js";
|
|
9
|
-
import {
|
|
10
|
-
sendEmailOptionsSchema
|
|
11
|
-
} from "./3BKWTHLJ.js";
|
|
12
|
-
|
|
13
|
-
// src/commands/aws/ses/send-email/handler.js
|
|
14
|
-
import chalk from "chalk";
|
|
15
|
-
import { ZodError } from "zod";
|
|
16
|
-
async function sendEmailCommand(options) {
|
|
17
|
-
try {
|
|
18
|
-
const parsed = sendEmailOptionsSchema.parse(options);
|
|
19
|
-
const {
|
|
20
|
-
to,
|
|
21
|
-
from,
|
|
22
|
-
subject,
|
|
23
|
-
transport,
|
|
24
|
-
region,
|
|
25
|
-
profile: profileOption,
|
|
26
|
-
accessKeyId,
|
|
27
|
-
dryRun,
|
|
28
|
-
verbose
|
|
29
|
-
} = parsed;
|
|
30
|
-
const body = parsed.body ?? defaultBody();
|
|
31
|
-
const profile = transport === "api" ? await resolveProfile({ profile: profileOption }) : profileOption;
|
|
32
|
-
console.log(chalk.blue("\n\u{1F4E7} SES send-email"));
|
|
33
|
-
console.log(chalk.gray(` transport: ${transport}`));
|
|
34
|
-
console.log(chalk.gray(` region: ${region}`));
|
|
35
|
-
console.log(chalk.gray(` from: ${from}`));
|
|
36
|
-
console.log(chalk.gray(` to: ${to}`));
|
|
37
|
-
console.log(chalk.gray(` subject: ${subject}`));
|
|
38
|
-
if (verbose) {
|
|
39
|
-
console.log(chalk.gray(` body: ${body}`));
|
|
40
|
-
}
|
|
41
|
-
if (dryRun) {
|
|
42
|
-
console.log(chalk.yellow("\n[dry-run] No email sent."));
|
|
43
|
-
return;
|
|
44
|
-
}
|
|
45
|
-
const messageId = transport === "api" ? await sendViaApi({ to, from, subject, body, region, profile }) : await sendViaSmtp({ to, from, subject, body, region, accessKeyId });
|
|
46
|
-
console.log(
|
|
47
|
-
chalk.green(
|
|
48
|
-
`
|
|
49
|
-
\u2705 Email sent${messageId ? ` (messageId: ${messageId})` : ""}.`
|
|
50
|
-
)
|
|
51
|
-
);
|
|
52
|
-
} catch (error) {
|
|
53
|
-
if (error instanceof ZodError) {
|
|
54
|
-
console.error(chalk.red("\n\u274C Invalid command options:"));
|
|
55
|
-
error.errors.forEach((err) => {
|
|
56
|
-
console.error(chalk.red(` ${err.path.join(".")}: ${err.message}`));
|
|
57
|
-
});
|
|
58
|
-
process.exit(1);
|
|
59
|
-
}
|
|
60
|
-
const verbose = (
|
|
61
|
-
/** @type {any} */
|
|
62
|
-
options?.verbose || false
|
|
63
|
-
);
|
|
64
|
-
console.error(chalk.red("\n\u274C send-email failed:"));
|
|
65
|
-
if (error instanceof Error) {
|
|
66
|
-
console.error(chalk.red(` ${error.message}`));
|
|
67
|
-
if (verbose && error.stack) {
|
|
68
|
-
console.error(chalk.gray("\nStack trace:"));
|
|
69
|
-
console.error(chalk.gray(error.stack));
|
|
70
|
-
}
|
|
71
|
-
} else {
|
|
72
|
-
console.error(chalk.red(` ${String(error)}`));
|
|
73
|
-
}
|
|
74
|
-
console.error(chalk.yellow("\n\u{1F4A1} Troubleshooting tips:"));
|
|
75
|
-
console.error(
|
|
76
|
-
chalk.yellow(" \u2022 The sender address must be verified in SES")
|
|
77
|
-
);
|
|
78
|
-
console.error(
|
|
79
|
-
chalk.yellow(
|
|
80
|
-
" \u2022 New SES accounts are sandboxed \u2014 recipients must also be verified"
|
|
81
|
-
)
|
|
82
|
-
);
|
|
83
|
-
console.error(
|
|
84
|
-
chalk.yellow(
|
|
85
|
-
" \u2022 For smtp transport, set SES_SMTP_USER and SES_SMTP_PASSWORD"
|
|
86
|
-
)
|
|
87
|
-
);
|
|
88
|
-
console.error(
|
|
89
|
-
chalk.yellow(" \u2022 Use --verbose for detailed error information\n")
|
|
90
|
-
);
|
|
91
|
-
process.exit(1);
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
export {
|
|
96
|
-
sendEmailCommand
|
|
97
|
-
};
|