57 lines
2.0 KiB
JavaScript
Raw Normal View History

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.urlSchema = exports.customerNumberSchema = exports.salesforceIdSchema = exports.requiredStringSchema = exports.uuidSchema = void 0;
exports.normalizeAndValidateEmail = normalizeAndValidateEmail;
exports.validateUuidV4OrThrow = validateUuidV4OrThrow;
exports.isValidEmail = isValidEmail;
exports.isValidUuid = isValidUuid;
exports.validateUrlOrThrow = validateUrlOrThrow;
exports.validateUrl = validateUrl;
exports.isValidUrl = isValidUrl;
const zod_1 = require("zod");
exports.uuidSchema = zod_1.z.string().uuid();
exports.requiredStringSchema = zod_1.z.string().min(1, "This field is required").trim();
exports.salesforceIdSchema = zod_1.z
.string()
.length(18, "Salesforce ID must be 18 characters")
.regex(/^[A-Za-z0-9]+$/, "Salesforce ID must be alphanumeric")
.trim();
exports.customerNumberSchema = zod_1.z.string().min(1, "Customer number is required").trim();
function normalizeAndValidateEmail(email) {
const emailValidationSchema = zod_1.z.string().email().transform(e => e.toLowerCase().trim());
return emailValidationSchema.parse(email);
}
function validateUuidV4OrThrow(id) {
try {
return exports.uuidSchema.parse(id);
}
catch {
throw new Error("Invalid user ID format");
}
}
function isValidEmail(email) {
return zod_1.z.string().email().safeParse(email).success;
}
function isValidUuid(id) {
return exports.uuidSchema.safeParse(id).success;
}
exports.urlSchema = zod_1.z.string().url();
function validateUrlOrThrow(url) {
try {
return exports.urlSchema.parse(url);
}
catch {
throw new Error("Invalid URL format");
}
}
function validateUrl(url) {
const result = exports.urlSchema.safeParse(url);
return {
isValid: result.success,
errors: result.success ? [] : result.error.issues.map(i => i.message),
};
}
function isValidUrl(url) {
return exports.urlSchema.safeParse(url).success;
}
//# sourceMappingURL=validation.js.map