57 lines
2.0 KiB
JavaScript
57 lines
2.0 KiB
JavaScript
|
|
"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
|