nx-config2
Version:
Next-generation configuration management for Node.js - Zero dependencies, TypeScript-first, production-ready
47 lines • 1.92 kB
JavaScript
;
/**
* Constants and patterns for nx-config2
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.BUILTIN_FORMATS = exports.SECRET_FIELD_PATTERNS = exports.ENV_SIMPLE_TOKEN_WITH_TYPE = exports.ENV_SIMPLE_TOKEN_PATTERN = exports.ENV_TOKEN_WITH_TYPE = exports.ENV_TOKEN_PATTERN = void 0;
// Patterns for multi-segment env file paths: ENV.TEST.VARIABLE, ENV.PROD.DATABASE.HOST
exports.ENV_TOKEN_PATTERN = /^ENV\.([A-Za-z0-9_.]+)\.([A-Za-z0-9_]+)(?:\|\|(.+))?$/;
exports.ENV_TOKEN_WITH_TYPE = /^ENV\.([A-Za-z0-9_.]+)\.([A-Za-z0-9_]+)(?::(\w+))?(?:\|\|(.+))?$/;
// Patterns for simple env variables: ENV.VARIABLE (uses default .env file)
exports.ENV_SIMPLE_TOKEN_PATTERN = /^ENV\.([A-Za-z0-9_]+)(?:\|\|(.+))?$/;
exports.ENV_SIMPLE_TOKEN_WITH_TYPE = /^ENV\.([A-Za-z0-9_]+)(?::(\w+))?(?:\|\|(.+))?$/;
exports.SECRET_FIELD_PATTERNS = [
/password/i,
/secret/i,
/key/i,
/token/i,
/credential/i,
/auth/i,
/api[_-]?key/i,
/access[_-]?token/i,
];
exports.BUILTIN_FORMATS = {
'port': (val) => {
const num = Number(val);
return Number.isInteger(num) && num >= 0 && num <= 65535;
},
'nat': (val) => {
const num = Number(val);
return Number.isInteger(num) && num >= 0;
},
'int': (val) => {
return Number.isInteger(Number(val));
},
'ipaddress': (val) => {
const ipv4 = /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/;
const ipv6 = /^(([0-9a-fA-F]{1,4}:){7,7}[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,7}:|([0-9a-fA-F]{1,4}:){1,6}:[0-9a-fA-F]{1,4}|([0-9a-fA-F]{1,4}:){1,5}(:[0-9a-fA-F]{1,4}){1,2})$/;
return ipv4.test(val) || ipv6.test(val);
},
'duration': (val) => {
return /^\d+[smhdw]$/.test(val);
},
'timestamp': (val) => {
return !isNaN(Date.parse(val));
},
};
//# sourceMappingURL=constants.js.map