@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,13 +1,125 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
1
|
+
import { CHANNEL_TEXT_MAP, ICON_SIZE_MAP } from "./schema.js";
|
|
2
|
+
import chalk from "chalk";
|
|
3
|
+
import { execSync } from "child_process";
|
|
4
|
+
import { existsSync } from "fs";
|
|
5
|
+
import { join, resolve } from "path";
|
|
6
|
+
//#region src/commands/icons/utils.js
|
|
7
|
+
/**
|
|
8
|
+
* Check if ImageMagick is installed
|
|
9
|
+
* @param {boolean} verbose - Show verbose output
|
|
10
|
+
* @throws {Error} If ImageMagick is not installed
|
|
11
|
+
*/
|
|
12
|
+
function checkDependencies(verbose = false) {
|
|
13
|
+
if (verbose) console.log(chalk.blue("\n🔍 Checking dependencies..."));
|
|
14
|
+
try {
|
|
15
|
+
execSync("which magick", { stdio: "pipe" });
|
|
16
|
+
if (verbose) console.log(chalk.green(" ✓ ImageMagick is installed"));
|
|
17
|
+
} catch {
|
|
18
|
+
throw new Error("ImageMagick is not installed. Please install it (brew install imagemagick) and try again.");
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Validate that required base icons exist
|
|
23
|
+
* @param {string} baseDir - Base directory containing icons
|
|
24
|
+
* @param {string[]} iconTypes - Icon types to validate
|
|
25
|
+
* @param {boolean} verbose - Show verbose output
|
|
26
|
+
* @throws {Error} If required icons are missing
|
|
27
|
+
*/
|
|
28
|
+
function validateBaseIcons(baseDir, iconTypes, verbose = false) {
|
|
29
|
+
if (verbose) console.log(chalk.blue("\n📁 Validating base icons..."));
|
|
30
|
+
const resolvedDir = resolve(baseDir);
|
|
31
|
+
if (!existsSync(resolvedDir)) throw new Error(`Input directory does not exist: ${resolvedDir}`);
|
|
32
|
+
const missingIcons = [];
|
|
33
|
+
for (const iconType of iconTypes) {
|
|
34
|
+
const iconPath = join(resolvedDir, `${iconType}.png`);
|
|
35
|
+
if (!existsSync(iconPath)) missingIcons.push(`${iconType}.png`);
|
|
36
|
+
else if (verbose) console.log(chalk.green(` ✓ Found: ${iconType}.png`));
|
|
37
|
+
}
|
|
38
|
+
if (missingIcons.length > 0) throw new Error(`Missing base icons in ${resolvedDir}: ${missingIcons.join(", ")}`);
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Generate a single icon with channel overlay
|
|
42
|
+
* @param {{
|
|
43
|
+
* baseDir: string;
|
|
44
|
+
* channel: string;
|
|
45
|
+
* iconType: string;
|
|
46
|
+
* verbose: boolean;
|
|
47
|
+
* }} options - Generation options
|
|
48
|
+
* @returns {string} Path to generated icon
|
|
49
|
+
*/
|
|
50
|
+
function generateIcon(options) {
|
|
51
|
+
const { baseDir, channel, iconType, verbose } = options;
|
|
52
|
+
const resolvedDir = resolve(baseDir);
|
|
53
|
+
const inputFile = join(resolvedDir, `${iconType}.png`);
|
|
54
|
+
const outputFile = join(resolvedDir, `${iconType}-${channel}.png`);
|
|
55
|
+
const size = ICON_SIZE_MAP[iconType] || 378;
|
|
56
|
+
const text = CHANNEL_TEXT_MAP[channel] || channel.toUpperCase().slice(0, 3);
|
|
57
|
+
const command = [
|
|
58
|
+
"magick",
|
|
59
|
+
`"${inputFile}"`,
|
|
60
|
+
`-pointsize ${size}`,
|
|
61
|
+
"-fill white",
|
|
62
|
+
"-gravity center",
|
|
63
|
+
"-font Arial-Black",
|
|
64
|
+
"-stroke black",
|
|
65
|
+
"-strokewidth 5",
|
|
66
|
+
`-draw "rotate -45 text 0,0 '${text}'"`,
|
|
67
|
+
`"${outputFile}"`
|
|
68
|
+
].join(" ");
|
|
69
|
+
if (verbose) console.log(chalk.gray(` Command: ${command}`));
|
|
70
|
+
try {
|
|
71
|
+
execSync(command, { stdio: verbose ? "inherit" : "pipe" });
|
|
72
|
+
return outputFile;
|
|
73
|
+
} catch (error) {
|
|
74
|
+
throw new Error(`Failed to generate ${iconType}-${channel}.png: ${error instanceof Error ? error.message : String(error)}`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Generate all icons for specified channels and types
|
|
79
|
+
* @param {{
|
|
80
|
+
* baseDir: string;
|
|
81
|
+
* channels: string[];
|
|
82
|
+
* iconTypes: string[];
|
|
83
|
+
* verbose: boolean;
|
|
84
|
+
* }} options - Generation options
|
|
85
|
+
* @returns {{ success: string[]; failed: { icon: string; error: string }[] }}
|
|
86
|
+
*/
|
|
87
|
+
function generateAllIcons(options) {
|
|
88
|
+
const { baseDir, channels, iconTypes, verbose } = options;
|
|
89
|
+
/** @type {string[]} */
|
|
90
|
+
const success = [];
|
|
91
|
+
/** @type {{ icon: string; error: string }[]} */
|
|
92
|
+
const failed = [];
|
|
93
|
+
const totalIcons = channels.length * iconTypes.length;
|
|
94
|
+
let current = 0;
|
|
95
|
+
if (verbose) console.log(chalk.blue(`\n🎨 Generating ${totalIcons} icon(s)...`));
|
|
96
|
+
for (const channel of channels) for (const iconType of iconTypes) {
|
|
97
|
+
current++;
|
|
98
|
+
const iconName = `${iconType}-${channel}.png`;
|
|
99
|
+
if (verbose) console.log(chalk.blue(`\n[${current}/${totalIcons}] Generating ${iconName}...`));
|
|
100
|
+
try {
|
|
101
|
+
const outputPath = generateIcon({
|
|
102
|
+
baseDir,
|
|
103
|
+
channel,
|
|
104
|
+
iconType,
|
|
105
|
+
verbose
|
|
106
|
+
});
|
|
107
|
+
success.push(outputPath);
|
|
108
|
+
console.log(chalk.green(` ✓ Generated: ${iconName}`));
|
|
109
|
+
} catch (error) {
|
|
110
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
111
|
+
failed.push({
|
|
112
|
+
icon: iconName,
|
|
113
|
+
error: errorMessage
|
|
114
|
+
});
|
|
115
|
+
console.log(chalk.red(` ✗ Failed: ${iconName}`));
|
|
116
|
+
if (verbose) console.log(chalk.red(` ${errorMessage}`));
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
return {
|
|
120
|
+
success,
|
|
121
|
+
failed
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
//#endregion
|
|
125
|
+
export { checkDependencies, generateAllIcons, generateIcon, validateBaseIcons };
|
package/esm/commands/index.js
CHANGED
|
@@ -1,168 +1,60 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
import "
|
|
9
|
-
import "
|
|
10
|
-
import "
|
|
11
|
-
import "../__chunks/J34UVKLA.js";
|
|
12
|
-
import "../__chunks/5ZBVGSOK.js";
|
|
13
|
-
import "../__chunks/S7IJPJ4R.js";
|
|
14
|
-
import "../__chunks/QUF7PS4R.js";
|
|
15
|
-
import "../__chunks/TIOVE6HR.js";
|
|
16
|
-
import "../__chunks/VKAKISRG.js";
|
|
17
|
-
import "../__chunks/EMSH4P76.js";
|
|
18
|
-
import "../__chunks/D62SPZXC.js";
|
|
19
|
-
import "../__chunks/FFKFVMIE.js";
|
|
20
|
-
import "../__chunks/DNFTUMGD.js";
|
|
21
|
-
import "../__chunks/NF3M2L6C.js";
|
|
22
|
-
import "../__chunks/CVQVHLW5.js";
|
|
23
|
-
import "../__chunks/JZPBBBIG.js";
|
|
24
|
-
import "../__chunks/XXK32TIM.js";
|
|
25
|
-
import "../__chunks/WOZFZKFY.js";
|
|
26
|
-
import "../__chunks/DMYFNF54.js";
|
|
27
|
-
import "../__chunks/XOUWDB3T.js";
|
|
28
|
-
import "../__chunks/3QLI5BDL.js";
|
|
29
|
-
import "../__chunks/XQN2TA4S.js";
|
|
30
|
-
import "../__chunks/7VF4Q43Q.js";
|
|
31
|
-
import "../__chunks/QKDDLIWD.js";
|
|
32
|
-
import "../__chunks/IZFGBYGE.js";
|
|
33
|
-
import "../__chunks/XI7GZDE2.js";
|
|
34
|
-
import "../__chunks/G4NJHFFU.js";
|
|
35
|
-
import "../__chunks/33UYMUQD.js";
|
|
36
|
-
import "../__chunks/IEOGAQYI.js";
|
|
37
|
-
import {
|
|
38
|
-
registerDbCommands
|
|
39
|
-
} from "../__chunks/DVKD6YSR.js";
|
|
40
|
-
import "../__chunks/FNXUONAV.js";
|
|
41
|
-
import "../__chunks/ZO55YUSY.js";
|
|
42
|
-
import "../__chunks/TXKMEIDQ.js";
|
|
43
|
-
import "../__chunks/2FTTEFEK.js";
|
|
44
|
-
import "../__chunks/UXWY7BYE.js";
|
|
45
|
-
import "../__chunks/B2DVQ2UL.js";
|
|
46
|
-
import "../__chunks/5GIUAFXL.js";
|
|
47
|
-
import "../__chunks/3BKWTHLJ.js";
|
|
48
|
-
import "../__chunks/73BJG53F.js";
|
|
49
|
-
import "../__chunks/WD2YR6I7.js";
|
|
50
|
-
import "../__chunks/M35URMT4.js";
|
|
51
|
-
import "../__chunks/3HE4BEJX.js";
|
|
52
|
-
import "../__chunks/SD3E3EPH.js";
|
|
53
|
-
import "../__chunks/T3TTUHTW.js";
|
|
54
|
-
import "../__chunks/DLEJ25GZ.js";
|
|
55
|
-
import "../__chunks/SNCKIAOR.js";
|
|
56
|
-
import {
|
|
57
|
-
iconsCommand
|
|
58
|
-
} from "../__chunks/HJSXC6HP.js";
|
|
59
|
-
import "../__chunks/FL7AILGH.js";
|
|
60
|
-
import {
|
|
61
|
-
iconsCommandMetadata
|
|
62
|
-
} from "../__chunks/6G4PXXKF.js";
|
|
63
|
-
import "../__chunks/AZCP3SFJ.js";
|
|
64
|
-
import {
|
|
65
|
-
dopplerCommand
|
|
66
|
-
} from "../__chunks/YRG7PT33.js";
|
|
67
|
-
import "../__chunks/QFXN4EHM.js";
|
|
68
|
-
import "../__chunks/YGWTVPZE.js";
|
|
69
|
-
import "../__chunks/ZHKVJO2U.js";
|
|
70
|
-
import "../__chunks/SJXQJ7RS.js";
|
|
71
|
-
import {
|
|
72
|
-
dopplerCommandMetadata
|
|
73
|
-
} from "../__chunks/KWUJP5MG.js";
|
|
74
|
-
|
|
75
|
-
// src/commands/index.js
|
|
2
|
+
import { iconsCommandMetadata } from "./icons/schema.js";
|
|
3
|
+
import { iconsCommand } from "./icons/handler.js";
|
|
4
|
+
import "./icons/index.js";
|
|
5
|
+
import { dopplerCommandMetadata } from "./doppler/schema.js";
|
|
6
|
+
import { dopplerCommand } from "./doppler/handler.js";
|
|
7
|
+
import "./doppler/index.js";
|
|
8
|
+
import { registerDbCommands } from "./db/index.js";
|
|
9
|
+
import { registerAwsCommands } from "./aws/index.js";
|
|
10
|
+
import { globalCommandsMetadata } from "./schema.js";
|
|
76
11
|
import chalk from "chalk";
|
|
77
12
|
import { program } from "commander";
|
|
13
|
+
//#region src/commands/index.js
|
|
78
14
|
function displayWelcomeMessage() {
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
`));
|
|
15
|
+
console.log(chalk.bold.blue("\n🚀 @mtndev/cli"));
|
|
16
|
+
console.log(chalk.gray(` ${globalCommandsMetadata.description}\n`));
|
|
82
17
|
}
|
|
83
18
|
displayWelcomeMessage();
|
|
84
|
-
program.name(globalCommandsMetadata.name).description(globalCommandsMetadata.description).version(globalCommandsMetadata.version).option(
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
19
|
+
program.name(globalCommandsMetadata.name).description(globalCommandsMetadata.description).version(globalCommandsMetadata.version).option(`-${globalCommandsMetadata.options.verbose.alias}, --verbose`, globalCommandsMetadata.options.verbose.description, globalCommandsMetadata.options.verbose.default).configureHelp({ subcommandDescription: (cmd) => {
|
|
20
|
+
return (cmd.summary() || cmd.description().split("\n")[0] || "") + "\n";
|
|
21
|
+
} });
|
|
22
|
+
program.command("doppler [action]").summary("Manage Doppler configurations").description(dopplerCommandMetadata.description).option(`-${dopplerCommandMetadata.options.environments.alias}, --environments <envs>`, dopplerCommandMetadata.options.environments.description).option(`--from <project>`, dopplerCommandMetadata.options.from.description).option(`--to <project>`, dopplerCommandMetadata.options.to.description).option(`-${dopplerCommandMetadata.options.force.alias}, --force`, dopplerCommandMetadata.options.force.description, dopplerCommandMetadata.options.force.default).option(`-${dopplerCommandMetadata.options.project.alias}, --project <project>`, dopplerCommandMetadata.options.project.description).option(`--environment <env>`, dopplerCommandMetadata.options.environment.description).option(`-${dopplerCommandMetadata.options.config.alias}, --config <config>`, dopplerCommandMetadata.options.config.description).option(`--name <name>`, dopplerCommandMetadata.options.name.description).option(`--value <value>`, dopplerCommandMetadata.options.value.description).option(`-${dopplerCommandMetadata.options.yes.alias}, --yes`, dopplerCommandMetadata.options.yes.description, dopplerCommandMetadata.options.yes.default).option(`-${dopplerCommandMetadata.options.help.alias}, --help`, dopplerCommandMetadata.options.help.description, dopplerCommandMetadata.options.help.default).action(async (action, options, cmd) => {
|
|
23
|
+
const globalOptions = cmd.parent?.opts() || {};
|
|
24
|
+
await dopplerCommand({
|
|
25
|
+
action,
|
|
26
|
+
environments: options.environments,
|
|
27
|
+
from: options.from,
|
|
28
|
+
to: options.to,
|
|
29
|
+
force: options.force,
|
|
30
|
+
project: options.project,
|
|
31
|
+
environment: options.environment,
|
|
32
|
+
config: options.config,
|
|
33
|
+
name: options.name,
|
|
34
|
+
value: options.value,
|
|
35
|
+
yes: options.yes,
|
|
36
|
+
verbose: globalOptions.verbose,
|
|
37
|
+
help: options.help
|
|
38
|
+
});
|
|
93
39
|
});
|
|
94
|
-
program.command("
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
)
|
|
105
|
-
`--environment <env>`,
|
|
106
|
-
dopplerCommandMetadata.options.environment.description
|
|
107
|
-
).option(
|
|
108
|
-
`-${dopplerCommandMetadata.options.config.alias}, --config <config>`,
|
|
109
|
-
dopplerCommandMetadata.options.config.description
|
|
110
|
-
).option(`--name <name>`, dopplerCommandMetadata.options.name.description).option(`--value <value>`, dopplerCommandMetadata.options.value.description).option(
|
|
111
|
-
`-${dopplerCommandMetadata.options.yes.alias}, --yes`,
|
|
112
|
-
dopplerCommandMetadata.options.yes.description,
|
|
113
|
-
dopplerCommandMetadata.options.yes.default
|
|
114
|
-
).option(
|
|
115
|
-
`-${dopplerCommandMetadata.options.help.alias}, --help`,
|
|
116
|
-
dopplerCommandMetadata.options.help.description,
|
|
117
|
-
dopplerCommandMetadata.options.help.default
|
|
118
|
-
).action(async (action, options, cmd) => {
|
|
119
|
-
const globalOptions = cmd.parent?.opts() || {};
|
|
120
|
-
await dopplerCommand({
|
|
121
|
-
action,
|
|
122
|
-
environments: options.environments,
|
|
123
|
-
from: options.from,
|
|
124
|
-
to: options.to,
|
|
125
|
-
force: options.force,
|
|
126
|
-
project: options.project,
|
|
127
|
-
environment: options.environment,
|
|
128
|
-
config: options.config,
|
|
129
|
-
name: options.name,
|
|
130
|
-
value: options.value,
|
|
131
|
-
yes: options.yes,
|
|
132
|
-
verbose: globalOptions.verbose,
|
|
133
|
-
help: options.help
|
|
134
|
-
});
|
|
135
|
-
});
|
|
136
|
-
program.command("icons <input>").summary("Generate app channel version icons with overlay text").description(iconsCommandMetadata.description).option(
|
|
137
|
-
`-${iconsCommandMetadata.options.channels.alias}, --channels <channels>`,
|
|
138
|
-
iconsCommandMetadata.options.channels.description,
|
|
139
|
-
iconsCommandMetadata.options.channels.default
|
|
140
|
-
).option(
|
|
141
|
-
`-${iconsCommandMetadata.options.iconTypes.alias}, --icon-types <types>`,
|
|
142
|
-
iconsCommandMetadata.options.iconTypes.description,
|
|
143
|
-
iconsCommandMetadata.options.iconTypes.default
|
|
144
|
-
).option(
|
|
145
|
-
`-${iconsCommandMetadata.options.help.alias}, --help`,
|
|
146
|
-
iconsCommandMetadata.options.help.description,
|
|
147
|
-
iconsCommandMetadata.options.help.default
|
|
148
|
-
).action(async (input, options, cmd) => {
|
|
149
|
-
const globalOptions = cmd.parent?.opts() || {};
|
|
150
|
-
const channels = typeof options.channels === "string" ? options.channels.split(",").map((c) => c.trim()) : options.channels;
|
|
151
|
-
const iconTypes = typeof options.iconTypes === "string" ? options.iconTypes.split(",").map((t) => t.trim()) : options.iconTypes;
|
|
152
|
-
await iconsCommand({
|
|
153
|
-
input,
|
|
154
|
-
channels,
|
|
155
|
-
iconTypes,
|
|
156
|
-
verbose: globalOptions.verbose,
|
|
157
|
-
help: options.help
|
|
158
|
-
});
|
|
40
|
+
program.command("icons <input>").summary("Generate app channel version icons with overlay text").description(iconsCommandMetadata.description).option(`-${iconsCommandMetadata.options.channels.alias}, --channels <channels>`, iconsCommandMetadata.options.channels.description, iconsCommandMetadata.options.channels.default).option(`-${iconsCommandMetadata.options.iconTypes.alias}, --icon-types <types>`, iconsCommandMetadata.options.iconTypes.description, iconsCommandMetadata.options.iconTypes.default).option(`-${iconsCommandMetadata.options.help.alias}, --help`, iconsCommandMetadata.options.help.description, iconsCommandMetadata.options.help.default).action(async (input, options, cmd) => {
|
|
41
|
+
const globalOptions = cmd.parent?.opts() || {};
|
|
42
|
+
const channels = typeof options.channels === "string" ? options.channels.split(",").map((c) => c.trim()) : options.channels;
|
|
43
|
+
const iconTypes = typeof options.iconTypes === "string" ? options.iconTypes.split(",").map((t) => t.trim()) : options.iconTypes;
|
|
44
|
+
await iconsCommand({
|
|
45
|
+
input,
|
|
46
|
+
channels,
|
|
47
|
+
iconTypes,
|
|
48
|
+
verbose: globalOptions.verbose,
|
|
49
|
+
help: options.help
|
|
50
|
+
});
|
|
159
51
|
});
|
|
160
52
|
registerAwsCommands(program);
|
|
161
53
|
registerDbCommands(program);
|
|
162
54
|
program.on("command:*", () => {
|
|
163
|
-
|
|
55
|
+
program.help();
|
|
164
56
|
});
|
|
165
|
-
if (process.argv.length <= 2)
|
|
166
|
-
program.help();
|
|
167
|
-
}
|
|
57
|
+
if (process.argv.length <= 2) program.help();
|
|
168
58
|
program.parse();
|
|
59
|
+
//#endregion
|
|
60
|
+
export {};
|
package/esm/commands/schema.js
CHANGED
|
@@ -1,8 +1,23 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
//#region src/commands/schema.js
|
|
3
|
+
/**
|
|
4
|
+
* Zod schema for global command options
|
|
5
|
+
* These options are available across all commands
|
|
6
|
+
*/
|
|
7
|
+
const globalOptionsSchema = z.object({ verbose: z.boolean().default(false).optional().describe("Enable verbose logging for detailed output and error traces") });
|
|
8
|
+
/**
|
|
9
|
+
* Global CLI metadata
|
|
10
|
+
* Defines the CLI contract and available global options
|
|
11
|
+
*/
|
|
12
|
+
const globalCommandsMetadata = {
|
|
13
|
+
name: "mtndev-cli",
|
|
14
|
+
version: "1.0.0",
|
|
15
|
+
description: "Omnibus CLI tool for mtndev projects",
|
|
16
|
+
options: { verbose: {
|
|
17
|
+
description: globalOptionsSchema.shape.verbose.description,
|
|
18
|
+
default: false,
|
|
19
|
+
alias: "v"
|
|
20
|
+
} }
|
|
8
21
|
};
|
|
22
|
+
//#endregion
|
|
23
|
+
export { globalCommandsMetadata, globalOptionsSchema };
|
package/esm/index.js
CHANGED
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"private": false,
|
|
3
3
|
"name": "@mtndev/cli",
|
|
4
4
|
"description": "A CLI tool for mtndev projects",
|
|
5
|
-
"version": "2.0.
|
|
5
|
+
"version": "2.0.1",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"publishConfig": {
|
|
8
8
|
"access": "public"
|
|
@@ -45,7 +45,8 @@
|
|
|
45
45
|
"@types/node": "^20.11.0",
|
|
46
46
|
"@types/nodemailer": "^8.0.1",
|
|
47
47
|
"@types/pg": "^8.20.0",
|
|
48
|
-
"typescript": "^5.9.3"
|
|
48
|
+
"typescript": "^5.9.3",
|
|
49
|
+
"vitest": "^4.1.10"
|
|
49
50
|
},
|
|
50
51
|
"exports": {
|
|
51
52
|
".": {
|
|
@@ -64,6 +65,8 @@
|
|
|
64
65
|
"lint": "eslint \"src/**/*.{ts,tsx,js,jsx}\"",
|
|
65
66
|
"lint:fix": "eslint \"src/**/*.{ts,tsx,js,jsx}\" --fix",
|
|
66
67
|
"publish:staging": "libsync publish:staging --force",
|
|
68
|
+
"test": "vitest run",
|
|
69
|
+
"test:watch": "vitest",
|
|
67
70
|
"typecheck": "libsync build --types-only"
|
|
68
71
|
}
|
|
69
72
|
}
|
package/vitest.config.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { defineConfig } from "vitest/config";
|
|
2
|
+
|
|
3
|
+
export default defineConfig({
|
|
4
|
+
test: {
|
|
5
|
+
// The CLI runs on Node; no DOM needed.
|
|
6
|
+
environment: "node",
|
|
7
|
+
// Tests are colocated in src/ so they get typechecking, linting, and
|
|
8
|
+
// formatting. libsync excludes *.test.* from both export and build paths.
|
|
9
|
+
include: ["src/**/*.test.js"],
|
|
10
|
+
},
|
|
11
|
+
});
|
|
@@ -1,146 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; }
|
|
2
|
-
|
|
3
|
-
var _LFDSHANPcjs = require('./LFDSHANP.cjs');
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
var _WBOQ6AUNcjs = require('./WBOQ6AUN.cjs');
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
var _B6XM5KSFcjs = require('./B6XM5KSF.cjs');
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
var _R3GUC7O7cjs = require('./R3GUC7O7.cjs');
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
var _NT2XXAI6cjs = require('./NT2XXAI6.cjs');
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
var _CMUD7LLNcjs = require('./CMUD7LLN.cjs');
|
|
27
|
-
|
|
28
|
-
// src/commands/aws/route53/remove-record/handler.js
|
|
29
|
-
var _chalk = require('chalk'); var _chalk2 = _interopRequireDefault(_chalk);
|
|
30
|
-
var _zod = require('zod');
|
|
31
|
-
async function removeRecordCommand(options) {
|
|
32
|
-
try {
|
|
33
|
-
const {
|
|
34
|
-
profile: profileOption,
|
|
35
|
-
zone: zoneOption,
|
|
36
|
-
type: typeOption,
|
|
37
|
-
name: nameOption,
|
|
38
|
-
yes,
|
|
39
|
-
dryRun,
|
|
40
|
-
verbose
|
|
41
|
-
} = _LFDSHANPcjs.removeRecordOptionsSchema.parse(options);
|
|
42
|
-
const profile = await _NT2XXAI6cjs.resolveProfile.call(void 0, { profile: profileOption });
|
|
43
|
-
if (!profile) {
|
|
44
|
-
console.error(_chalk2.default.red("Error: pass --profile or set AWS_PROFILE."));
|
|
45
|
-
process.exit(1);
|
|
46
|
-
}
|
|
47
|
-
_R3GUC7O7cjs.requireCommands.call(void 0, ["aws"]);
|
|
48
|
-
const identity = _R3GUC7O7cjs.getCallerIdentity.call(void 0, { profile, verbose });
|
|
49
|
-
console.log("Caller:");
|
|
50
|
-
console.log(` Account: ${identity.Account}`);
|
|
51
|
-
console.log(` Arn: ${identity.Arn}`);
|
|
52
|
-
console.log("");
|
|
53
|
-
const zone = await _WBOQ6AUNcjs.resolveHostedZone.call(void 0, { profile, zoneOption, verbose });
|
|
54
|
-
console.log(`Hosted zone: ${_B6XM5KSFcjs.hostedZoneLabel.call(void 0, zone)}`);
|
|
55
|
-
console.log("");
|
|
56
|
-
const type = await _WBOQ6AUNcjs.resolveRecordType.call(void 0, typeOption);
|
|
57
|
-
const name = await _WBOQ6AUNcjs.resolveName.call(void 0, { nameOption, zoneName: zone.name });
|
|
58
|
-
const existing = _B6XM5KSFcjs.getResourceRecordSet.call(void 0, {
|
|
59
|
-
profile,
|
|
60
|
-
hostedZoneId: zone.id,
|
|
61
|
-
name,
|
|
62
|
-
type,
|
|
63
|
-
verbose
|
|
64
|
-
});
|
|
65
|
-
if (!existing) {
|
|
66
|
-
console.log(
|
|
67
|
-
_chalk2.default.yellow(
|
|
68
|
-
`No ${type} record at ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, name)}. Nothing to remove.`
|
|
69
|
-
)
|
|
70
|
-
);
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
console.log("Record to remove:");
|
|
74
|
-
console.log(` Name: ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, name)}`);
|
|
75
|
-
console.log(` Type: ${type}`);
|
|
76
|
-
if (existing.isAlias) {
|
|
77
|
-
console.log(
|
|
78
|
-
` Alias: ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, String(_nullishCoalesce(_optionalChain([existing, 'access', _ => _.aliasTarget, 'optionalAccess', _2 => _2.DNSName]), () => ( ""))))}`
|
|
79
|
-
);
|
|
80
|
-
} else {
|
|
81
|
-
if (existing.ttl !== void 0) {
|
|
82
|
-
console.log(` TTL: ${existing.ttl}`);
|
|
83
|
-
}
|
|
84
|
-
console.log(` Value:${_B6XM5KSFcjs.formatValues.call(void 0, existing.values)}`);
|
|
85
|
-
}
|
|
86
|
-
console.log("");
|
|
87
|
-
if (dryRun) {
|
|
88
|
-
console.log(_chalk2.default.cyan("Dry run \u2014 no changes made."));
|
|
89
|
-
return;
|
|
90
|
-
}
|
|
91
|
-
if (!yes) {
|
|
92
|
-
const confirmed = await _CMUD7LLNcjs.promptYesNo.call(void 0, {
|
|
93
|
-
message: `Delete this ${type} record?`,
|
|
94
|
-
defaultYes: false
|
|
95
|
-
});
|
|
96
|
-
if (!confirmed) {
|
|
97
|
-
console.log("Aborted.");
|
|
98
|
-
return;
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
const changeInfo = _B6XM5KSFcjs.deleteResourceRecordSet.call(void 0, {
|
|
102
|
-
profile,
|
|
103
|
-
hostedZoneId: zone.id,
|
|
104
|
-
record: existing,
|
|
105
|
-
verbose
|
|
106
|
-
});
|
|
107
|
-
console.log("");
|
|
108
|
-
console.log(
|
|
109
|
-
_chalk2.default.green(`Done. Deleted ${type} ${_B6XM5KSFcjs.withoutTrailingDot.call(void 0, name)}.`)
|
|
110
|
-
);
|
|
111
|
-
if (_optionalChain([changeInfo, 'optionalAccess', _3 => _3.Id])) {
|
|
112
|
-
console.log(` Change ID: ${changeInfo.Id}`);
|
|
113
|
-
console.log(` Status: ${_nullishCoalesce(changeInfo.Status, () => ( "PENDING"))}`);
|
|
114
|
-
}
|
|
115
|
-
} catch (error) {
|
|
116
|
-
if (error instanceof _zod.ZodError) {
|
|
117
|
-
console.error(_chalk2.default.red("\n\u274C Invalid command options:"));
|
|
118
|
-
error.errors.forEach((err) => {
|
|
119
|
-
console.error(_chalk2.default.red(` ${err.path.join(".")}: ${err.message}`));
|
|
120
|
-
});
|
|
121
|
-
process.exit(1);
|
|
122
|
-
}
|
|
123
|
-
const verbose = (
|
|
124
|
-
/** @type {any} */
|
|
125
|
-
_optionalChain([options, 'optionalAccess', _4 => _4.verbose]) || false
|
|
126
|
-
);
|
|
127
|
-
console.error(_chalk2.default.red("\n\u274C remove-record failed:"));
|
|
128
|
-
if (error instanceof _R3GUC7O7cjs.AwsCliError || error instanceof Error) {
|
|
129
|
-
console.error(_chalk2.default.red(` ${error.message}`));
|
|
130
|
-
if (verbose && error.stack) {
|
|
131
|
-
console.error(_chalk2.default.gray("\nStack trace:"));
|
|
132
|
-
console.error(_chalk2.default.gray(error.stack));
|
|
133
|
-
}
|
|
134
|
-
} else {
|
|
135
|
-
console.error(_chalk2.default.red(` ${String(error)}`));
|
|
136
|
-
}
|
|
137
|
-
console.error(
|
|
138
|
-
_chalk2.default.yellow("\n\u{1F4A1} Use --verbose for detailed error information\n")
|
|
139
|
-
);
|
|
140
|
-
process.exit(1);
|
|
141
|
-
}
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
exports.removeRecordCommand = removeRecordCommand;
|