UNPKG

universal-geocoder

Version:

Universal geocoding abstraction server-side and client-side with multiple built-in providers

88 lines 3.85 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getRequireFunc = exports.isIpv6 = exports.isIpv4 = exports.decodeBase64 = exports.encodeUrlSafeBase64 = exports.decodeUrlSafeBase64 = exports.flattenObject = exports.filterUndefinedObjectValues = exports.isBrowser = void 0; var isBrowser = function () { return typeof window !== "undefined"; }; exports.isBrowser = isBrowser; var filterUndefinedObjectValues = function (object) { return Object.keys(object).reduce(function (acc, key) { var filtered = acc; var value = object[key]; if (value !== undefined) { filtered[key] = value; } return filtered; }, {}); }; exports.filterUndefinedObjectValues = filterUndefinedObjectValues; var flattenObject = function (object) { var flattened = {}; var isNested = function (value) { var isArray = Array.isArray(value); var type = Object.prototype.toString.call(value); var isObject = type === "[object Object]" || type === "[object Array]"; if (!isArray && isObject && Object.keys(value).length) { return true; } return false; }; var step = function (nestedObject) { Object.keys(nestedObject).forEach(function (key) { var value = nestedObject[key]; if (undefined === value) { return; } if (isNested(value)) { step(value); return; } flattened[key] = value; }); }; step(object); return flattened; }; exports.flattenObject = flattenObject; /** * Decode from URL-safe base64 to true base64. */ var decodeUrlSafeBase64 = function (safe) { return safe.replace(/-/g, "+").replace(/_/g, "/"); }; exports.decodeUrlSafeBase64 = decodeUrlSafeBase64; /** * Encode from true base64 to URL-safe base64. */ var encodeUrlSafeBase64 = function (base64) { return base64.replace(/\+/g, "-").replace(/\//g, "_"); }; exports.encodeUrlSafeBase64 = encodeUrlSafeBase64; var decodeBase64 = function (base64) { if (exports.isBrowser()) { throw new Error("decodeBase64 can only be used in a Node environment."); } return Buffer.from(base64, "base64").toString(); }; exports.decodeBase64 = decodeBase64; // From https://github.com/sindresorhus/ip-regex var ipv4RegExp = "(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)(?:\\.(?:25[0-5]|2[0-4]\\d|1\\d\\d|[1-9]\\d|\\d)){3}"; var isIpv4 = function (ip) { return new RegExp("^" + ipv4RegExp + "$").test(ip); }; exports.isIpv4 = isIpv4; // From https://github.com/sindresorhus/ip-regex var ipv6Seg = "[a-fA-F\\d]{1,4}"; var ipv6RegExp = "((?:" + ipv6Seg + ":){7}(?:" + ipv6Seg + "|:)|(?:" + ipv6Seg + ":){6}(?:" + ipv4RegExp + "|:" + ipv6Seg + "|:)|(?:" + ipv6Seg + ":){5}(?::" + ipv4RegExp + "|(:" + ipv6Seg + "){1,2}|:)|(?:" + ipv6Seg + ":){4}(?:(:" + ipv6Seg + "){0,1}:" + ipv4RegExp + "|(:" + ipv6Seg + "){1,3}|:)|(?:" + ipv6Seg + ":){3}(?:(:" + ipv6Seg + "){0,2}:" + ipv4RegExp + "|(:" + ipv6Seg + "){1,4}|:)|(?:" + ipv6Seg + ":){2}(?:(:" + ipv6Seg + "){0,3}:" + ipv4RegExp + "|(:" + ipv6Seg + "){1,5}|:)|(?:" + ipv6Seg + ":){1}(?:(:" + ipv6Seg + "){0,4}:" + ipv4RegExp + "|(:" + ipv6Seg + "){1,6}|:)|(?::((?::" + ipv6Seg + "){0,5}:" + ipv4RegExp + "|(?::" + ipv6Seg + "){1,7}|:)))(%[0-9a-zA-Z]{1,})?"; var isIpv6 = function (ip) { return new RegExp("^" + ipv6RegExp + "$").test(ip); }; exports.isIpv6 = isIpv6; // eslint-disable-next-line @typescript-eslint/ban-types var getRequireFunc = function () { // eslint-disable-next-line camelcase return typeof __non_webpack_require__ === "function" ? // eslint-disable-next-line camelcase __non_webpack_require__ : require; }; exports.getRequireFunc = getRequireFunc; //# sourceMappingURL=utils.js.map