UNPKG

mira

Version:

NearForm Accelerator for Cloud Native Serverless AWS

83 lines 3.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isValidAwsSecretsManagerArn = exports.isValidSshRsaPublicKey = exports.isValidEnvironmentNameList = exports.isValidGitBranchName = exports.isValidDomain = exports.isValidBaseDomain = exports.isValidAwsHostedZoneId = exports.isValidAwsCliProfile = exports.isValidAwsAccountIdList = exports.isValidAwsAccountId = void 0; const child_process_1 = require("child_process"); function isValidAwsAccountId(input) { if (!input) return false; return /^\d{12}$/.test(input); } exports.isValidAwsAccountId = isValidAwsAccountId; function isValidAwsAccountIdList(input) { if (!input) return false; for (const id of input.split(',')) { if (!isValidAwsAccountId(id)) return false; } return true; } exports.isValidAwsAccountIdList = isValidAwsAccountIdList; async function isValidAwsCliProfile(input) { return new Promise((resolve) => { if (!input) return resolve(false); child_process_1.execFile('aws', ['configure', 'list', '--profile', input], (error) => { if (error === null || error === void 0 ? void 0 : error.code) { console.log(`\nProfile "${input}" not found.`); return resolve(false); } resolve(true); }); }); } exports.isValidAwsCliProfile = isValidAwsCliProfile; function isValidAwsHostedZoneId(input) { if (!input) return false; return /^Z[A-Z0-9]{1,32}$/.test(input); } exports.isValidAwsHostedZoneId = isValidAwsHostedZoneId; function isValidBaseDomain(input) { if (!input) return false; return /^[a-zA-Z0-9-]{1,61}\.[a-zA-Z]{2,}$/.test(input); } exports.isValidBaseDomain = isValidBaseDomain; function isValidDomain(input) { if (!input) return false; return /^(?:[a-zA-Z0-9-]{1,61}\.)+[a-zA-Z]{2,}$/.test(input); } exports.isValidDomain = isValidDomain; async function isValidGitBranchName(input) { return new Promise((resolve) => { if (!input) return resolve(false); child_process_1.execFile('git', ['check-ref-format', '--branch', input], (error) => { if (error === null || error === void 0 ? void 0 : error.code) { return resolve(false); } resolve(true); }); }); } exports.isValidGitBranchName = isValidGitBranchName; function isValidEnvironmentNameList(input) { const envNameRegex = /^[a-zA-Z][a-zA-Z0-9]+$/; return input.split(',').every(env => envNameRegex.test(env)); } exports.isValidEnvironmentNameList = isValidEnvironmentNameList; function isValidSshRsaPublicKey(input) { if (!input) return false; return /^ssh-rsa AAAA[0-9a-z+/]+[=]{0,3}/i.test(input); } exports.isValidSshRsaPublicKey = isValidSshRsaPublicKey; function isValidAwsSecretsManagerArn(input) { if (!input) return false; return /^arn:aws:secretsmanager:[a-z]{2}((-gov)|(-iso(b?)))?-[a-z]+-\d{1}:\d{12}:secret:[a-zA-Z0-9-_]+$/.test(input); } exports.isValidAwsSecretsManagerArn = isValidAwsSecretsManagerArn; //# sourceMappingURL=validators.js.map