dtamind-components
Version:
DTAmindai Components
48 lines • 1.54 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPathTraversal = exports.isValidURL = exports.isValidUUID = void 0;
/**
* Validates if a string is a valid UUID v4
* @param {string} uuid The string to validate
* @returns {boolean} True if valid UUID, false otherwise
*/
const isValidUUID = (uuid) => {
// UUID v4 regex pattern
const uuidV4Pattern = /^[0-9a-f]{8}-[0-9a-f]{4}-4[0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
return uuidV4Pattern.test(uuid);
};
exports.isValidUUID = isValidUUID;
/**
* Validates if a string is a valid URL
* @param {string} url The string to validate
* @returns {boolean} True if valid URL, false otherwise
*/
const isValidURL = (url) => {
try {
new URL(url);
return true;
}
catch {
return false;
}
};
exports.isValidURL = isValidURL;
/**
* Validates if a string contains path traversal attempts
* @param {string} path The string to validate
* @returns {boolean} True if path traversal detected, false otherwise
*/
const isPathTraversal = (path) => {
// Check for common path traversal patterns
const dangerousPatterns = [
'..', // Directory traversal
'/', // Root directory
'\\', // Windows root directory
'%2e', // URL encoded .
'%2f', // URL encoded /
'%5c' // URL encoded \
];
return dangerousPatterns.some((pattern) => path.toLowerCase().includes(pattern));
};
exports.isPathTraversal = isPathTraversal;
//# sourceMappingURL=validator.js.map