@pedwise/next-firebase-auth-edge
Version:
Next.js 13 Firebase Authentication for Edge and server runtimes. Dedicated for Next 13 server components. Compatible with Next.js middleware.
94 lines • 2.85 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.isPassword = exports.isPhoneNumber = exports.isEmail = exports.isURL = exports.isISODateString = exports.isNumber = exports.isUid = exports.isNonNullObject = exports.isArray = exports.isObject = exports.isNonEmptyString = exports.isString = void 0;
function isString(value) {
return typeof value === "string";
}
exports.isString = isString;
function isNonEmptyString(value) {
return isString(value) && value !== "";
}
exports.isNonEmptyString = isNonEmptyString;
function isObject(value) {
return typeof value === "object" && !isArray(value);
}
exports.isObject = isObject;
function isArray(value) {
return Array.isArray(value);
}
exports.isArray = isArray;
function isNonNullObject(value) {
return isObject(value) && value !== null;
}
exports.isNonNullObject = isNonNullObject;
function isUid(uid) {
return typeof uid === "string" && uid.length > 0 && uid.length <= 128;
}
exports.isUid = isUid;
function isNumber(value) {
return typeof value === "number" && !isNaN(value);
}
exports.isNumber = isNumber;
function isISODateString(dateString) {
try {
return (isNonEmptyString(dateString) &&
new Date(dateString).toISOString() === dateString);
}
catch (e) {
return false;
}
}
exports.isISODateString = isISODateString;
function isURL(urlStr) {
if (typeof urlStr !== "string") {
return false;
}
const re = /[^a-z0-9:/?#[\]@!$&'()*+,;=.\-_~%]/i;
if (re.test(urlStr)) {
return false;
}
try {
const uri = new URL(urlStr);
const scheme = uri.protocol;
const hostname = uri.hostname;
const pathname = uri.pathname;
if (scheme !== "http:" && scheme !== "https:") {
return false;
}
if (!hostname ||
!/^[a-zA-Z0-9]+[\w-]*([.]?[a-zA-Z0-9]+[\w-]*)*$/.test(hostname)) {
return false;
}
const pathnameRe = /^(\/[\w\-.~!$'()*+,;=:@%]+)*\/?$/;
if (pathname && pathname !== "/" && !pathnameRe.test(pathname)) {
return false;
}
}
catch (e) {
return false;
}
return true;
}
exports.isURL = isURL;
function isEmail(email) {
if (typeof email !== "string") {
return false;
}
const re = /^[^@]+@[^@]+$/;
return re.test(email);
}
exports.isEmail = isEmail;
function isPhoneNumber(phoneNumber) {
if (typeof phoneNumber !== "string") {
return false;
}
const re1 = /^\+/;
const re2 = /[\da-zA-Z]+/;
return re1.test(phoneNumber) && re2.test(phoneNumber);
}
exports.isPhoneNumber = isPhoneNumber;
function isPassword(password) {
return typeof password === "string" && password.length >= 6;
}
exports.isPassword = isPassword;
//# sourceMappingURL=validator.js.map