UNPKG

@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
"use strict"; 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