UNPKG

28.6 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../source/metadata.js"],"names":["V2","V3","V4","DEFAULT_EXT_PREFIX","CALLING_CODE_REG_EXP","Metadata","metadata","validateMetadata","setVersion","call","Object","keys","countries","filter","_","countryCode","v1","v2","v3","nonGeographic","nonGeographical","country","getCountryMetadata","undefined","callingCode","getCountryCodesForCallingCode","countryCodes","countryCallingCodes","length","selectNumberingPlan","test","hasCountry","Error","numberingPlan","NumberingPlan","hasCallingCode","getNumberingPlanMetadata","getCountryCodeForCallingCode","IDDPrefix","defaultIDDPrefix","nationalNumberPattern","possibleLengths","formats","nationalPrefixForParsing","nationalPrefixTransformRule","leadingDigits","hasTypes","type","ext","country_phone_code_to_countries","country_calling_codes","globalMetadataObject","_getFormats","getDefaultCountryMetadataForRegion","map","Format","_getNationalPrefixFormattingRule","_nationalPrefixForParsing","nationalPrefix","_getNationalPrefixIsOptionalWhenFormatting","types","getType","Type","format","_format","nationalPrefixFormattingRule","nationalPrefixIsOptionalWhenFormattingInNationalFormat","usesNationalPrefix","FIRST_GROUP_ONLY_PREFIX_PATTERN","is_object","join","type_of","getExtPrefix","getCountryCallingCode","countryCallingCode","isSupportedCountry","version","v4"],"mappings":"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","sourcesContent":["import compare from './tools/semver-compare'\r\n\r\n// Added \"possibleLengths\" and renamed\r\n// \"country_phone_code_to_countries\" to \"country_calling_codes\".\r\nconst V2 = '1.0.18'\r\n\r\n// Added \"idd_prefix\" and \"default_idd_prefix\".\r\nconst V3 = '1.2.0'\r\n\r\n// Moved `001` country code to \"nonGeographic\" section of metadata.\r\nconst V4 = '1.7.35'\r\n\r\nconst DEFAULT_EXT_PREFIX = ' ext. '\r\n\r\nconst CALLING_CODE_REG_EXP = /^\\d+$/\r\n\r\n/**\r\n * See: https://gitlab.com/catamphetamine/libphonenumber-js/blob/master/METADATA.md\r\n */\r\nexport default class Metadata {\r\n\tconstructor(metadata) {\r\n\t\tvalidateMetadata(metadata)\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, metadata)\r\n\t}\r\n\r\n\tgetCountries() {\r\n\t\treturn Object.keys(this.metadata.countries).filter(_ => _ !== '001')\r\n\t}\r\n\r\n\tgetCountryMetadata(countryCode) {\r\n\t\treturn this.metadata.countries[countryCode]\r\n\t}\r\n\r\n\tnonGeographic() {\r\n\t\tif (this.v1 || this.v2 || this.v3) return\r\n\t\t// `nonGeographical` was a typo.\r\n\t\t// It's present in metadata generated from `1.7.35` to `1.7.37`.\r\n\t\treturn this.metadata.nonGeographic || this.metadata.nonGeographical\r\n\t}\r\n\r\n\thasCountry(country) {\r\n\t\treturn this.getCountryMetadata(country) !== undefined\r\n\t}\r\n\r\n\thasCallingCode(callingCode) {\r\n\t\tif (this.getCountryCodesForCallingCode(callingCode)) {\r\n\t\t\treturn true\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tif (this.nonGeographic()[callingCode]) {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn true\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tisNonGeographicCallingCode(callingCode) {\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\treturn this.nonGeographic()[callingCode] ? true : false\r\n\t\t} else {\r\n\t\t\treturn this.getCountryCodesForCallingCode(callingCode) ? false : true\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountry(countryCode) {\r\n\t\treturn this.selectNumberingPlan(countryCode)\r\n\t}\r\n\r\n\tselectNumberingPlan(countryCode, callingCode) {\r\n\t\t// Supports just passing `callingCode` as the first argument.\r\n\t\tif (countryCode && CALLING_CODE_REG_EXP.test(countryCode)) {\r\n\t\t\tcallingCode = countryCode\r\n\t\t\tcountryCode = null\r\n\t\t}\r\n\t\tif (countryCode && countryCode !== '001') {\r\n\t\t\tif (!this.hasCountry(countryCode)) {\r\n\t\t\t\tthrow new Error(`Unknown country: ${countryCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getCountryMetadata(countryCode), this)\r\n\t\t} else if (callingCode) {\r\n\t\t\tif (!this.hasCallingCode(callingCode)) {\r\n\t\t\t\tthrow new Error(`Unknown calling code: ${callingCode}`)\r\n\t\t\t}\r\n\t\t\tthis.numberingPlan = new NumberingPlan(this.getNumberingPlanMetadata(callingCode), this)\r\n\t\t} else {\r\n\t\t\tthis.numberingPlan = undefined\r\n\t\t}\r\n\t\treturn this\r\n\t}\r\n\r\n\tgetCountryCodesForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\tif (countryCodes) {\r\n\t\t\t// Metadata before V4 included \"non-geographic entity\" calling codes\r\n\t\t\t// inside `country_calling_codes` (for example, `\"881\":[\"001\"]`).\r\n\t\t\t// Now the semantics of `country_calling_codes` has changed:\r\n\t\t\t// it's specifically for \"countries\" now.\r\n\t\t\t// Older versions of custom metadata will simply skip parsing\r\n\t\t\t// \"non-geographic entity\" phone numbers with new versions\r\n\t\t\t// of this library: it's not considered a bug,\r\n\t\t\t// because such numbers are extremely rare,\r\n\t\t\t// and developers extremely rarely use custom metadata.\r\n\t\t\tif (countryCodes.length === 1 && countryCodes[0].length === 3) {\r\n\t\t\t\treturn\r\n\t\t\t}\r\n\t\t\treturn countryCodes\r\n\t\t}\r\n\t}\r\n\r\n\tgetCountryCodeForCallingCode(callingCode) {\r\n\t\tconst countryCodes = this.getCountryCodesForCallingCode(callingCode)\r\n\t\tif (countryCodes) {\r\n\t\t\treturn countryCodes[0]\r\n\t\t}\r\n\t}\r\n\r\n\tgetNumberingPlanMetadata(callingCode) {\r\n\t\tconst countryCode = this.getCountryCodeForCallingCode(callingCode)\r\n\t\tif (countryCode) {\r\n\t\t\treturn this.getCountryMetadata(countryCode)\r\n\t\t}\r\n\t\tif (this.nonGeographic()) {\r\n\t\t\tconst metadata = this.nonGeographic()[callingCode]\r\n\t\t\tif (metadata) {\r\n\t\t\t\treturn metadata\r\n\t\t\t}\r\n\t\t} else {\r\n\t\t\t// A hacky workaround for old custom metadata (generated before V4).\r\n\t\t\tconst countryCodes = this.countryCallingCodes()[callingCode]\r\n\t\t\tif (countryCodes && countryCodes.length === 1 && countryCodes[0] === '001') {\r\n\t\t\t\treturn this.metadata.countries['001']\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tcountryCallingCode() {\r\n\t\treturn this.numberingPlan.callingCode()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tIDDPrefix() {\r\n\t\treturn this.numberingPlan.IDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tdefaultIDDPrefix() {\r\n\t\treturn this.numberingPlan.defaultIDDPrefix()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalNumberPattern() {\r\n\t\treturn this.numberingPlan.nationalNumberPattern()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tpossibleLengths() {\r\n\t\treturn this.numberingPlan.possibleLengths()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tformats() {\r\n\t\treturn this.numberingPlan.formats()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixForParsing() {\r\n\t\treturn this.numberingPlan.nationalPrefixForParsing()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.numberingPlan.nationalPrefixTransformRule()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tleadingDigits() {\r\n\t\treturn this.numberingPlan.leadingDigits()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\thasTypes() {\r\n\t\treturn this.numberingPlan.hasTypes()\r\n\t}\r\n\r\n\t// Deprecated.\r\n\ttype(type) {\r\n\t\treturn this.numberingPlan.type(type)\r\n\t}\r\n\r\n\t// Deprecated.\r\n\text() {\r\n\t\treturn this.numberingPlan.ext()\r\n\t}\r\n\r\n\tcountryCallingCodes() {\r\n\t\tif (this.v1) return this.metadata.country_phone_code_to_countries\r\n\t\treturn this.metadata.country_calling_codes\r\n\t}\r\n\r\n\t// Deprecated.\r\n\tchooseCountryByCountryCallingCode(callingCode) {\r\n\t\treturn this.selectNumberingPlan(callingCode)\r\n\t}\r\n\r\n\thasSelectedNumberingPlan() {\r\n\t\treturn this.numberingPlan !== undefined\r\n\t}\r\n}\r\n\r\nclass NumberingPlan {\r\n\tconstructor(metadata, globalMetadataObject) {\r\n\t\tthis.globalMetadataObject = globalMetadataObject\r\n\t\tthis.metadata = metadata\r\n\t\tsetVersion.call(this, globalMetadataObject.metadata)\r\n\t}\r\n\r\n\tcallingCode() {\r\n\t\treturn this.metadata[0]\r\n\t}\r\n\r\n\t// Formatting information for regions which share\r\n\t// a country calling code is contained by only one region\r\n\t// for performance reasons. For example, for NANPA region\r\n\t// (\"North American Numbering Plan Administration\",\r\n\t// which includes USA, Canada, Cayman Islands, Bahamas, etc)\r\n\t// it will be contained in the metadata for `US`.\r\n\tgetDefaultCountryMetadataForRegion() {\r\n\t\treturn this.globalMetadataObject.getNumberingPlanMetadata(this.callingCode())\r\n\t}\r\n\r\n\tIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[1]\r\n\t}\r\n\r\n\tdefaultIDDPrefix() {\r\n\t\tif (this.v1 || this.v2) return\r\n\t\treturn this.metadata[12]\r\n\t}\r\n\r\n\tnationalNumberPattern() {\r\n\t\tif (this.v1 || this.v2) return this.metadata[1]\r\n\t\treturn this.metadata[2]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.v1) return\r\n\t\treturn this.metadata[this.v2 ? 2 : 3]\r\n\t}\r\n\r\n\t_getFormats(metadata) {\r\n\t\treturn metadata[this.v1 ? 2 : this.v2 ? 3 : 4]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// formats are all stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tformats() {\r\n\t\tconst formats = this._getFormats(this.metadata) || this._getFormats(this.getDefaultCountryMetadataForRegion()) || []\r\n\t\treturn formats.map(_ => new Format(_, this))\r\n\t}\r\n\r\n\tnationalPrefix() {\r\n\t\treturn this.metadata[this.v1 ? 3 : this.v2 ? 4 : 5]\r\n\t}\r\n\r\n\t_getNationalPrefixFormattingRule(metadata) {\r\n\t\treturn metadata[this.v1 ? 4 : this.v2 ? 5 : 6]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// national prefix formatting rule is stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._getNationalPrefixFormattingRule(this.metadata) || this._getNationalPrefixFormattingRule(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\t_nationalPrefixForParsing() {\r\n\t\treturn this.metadata[this.v1 ? 5 : this.v2 ? 6 : 7]\r\n\t}\r\n\r\n\tnationalPrefixForParsing() {\r\n\t\t// If `national_prefix_for_parsing` is not set explicitly,\r\n\t\t// then infer it from `national_prefix` (if any)\r\n\t\treturn this._nationalPrefixForParsing() || this.nationalPrefix()\r\n\t}\r\n\r\n\tnationalPrefixTransformRule() {\r\n\t\treturn this.metadata[this.v1 ? 6 : this.v2 ? 7 : 8]\r\n\t}\r\n\r\n\t_getNationalPrefixIsOptionalWhenFormatting() {\r\n\t\treturn !!this.metadata[this.v1 ? 7 : this.v2 ? 8 : 9]\r\n\t}\r\n\r\n\t// For countries of the same region (e.g. NANPA)\r\n\t// \"national prefix is optional when formatting\" flag is\r\n\t// stored in the \"main\" country for that region.\r\n\t// E.g. \"RU\" and \"KZ\", \"US\" and \"CA\".\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn this._getNationalPrefixIsOptionalWhenFormatting(this.metadata) ||\r\n\t\t\tthis._getNationalPrefixIsOptionalWhenFormatting(this.getDefaultCountryMetadataForRegion())\r\n\t}\r\n\r\n\tleadingDigits() {\r\n\t\treturn this.metadata[this.v1 ? 8 : this.v2 ? 9 : 10]\r\n\t}\r\n\r\n\ttypes() {\r\n\t\treturn this.metadata[this.v1 ? 9 : this.v2 ? 10 : 11]\r\n\t}\r\n\r\n\thasTypes() {\r\n\t\t// Versions 1.2.0 - 1.2.4: can be `[]`.\r\n\t\t/* istanbul ignore next */\r\n\t\tif (this.types() && this.types().length === 0) {\r\n\t\t\treturn false\r\n\t\t}\r\n\t\t// Versions <= 1.2.4: can be `undefined`.\r\n\t\t// Version >= 1.2.5: can be `0`.\r\n\t\treturn !!this.types()\r\n\t}\r\n\r\n\ttype(type) {\r\n\t\tif (this.hasTypes() && getType(this.types(), type)) {\r\n\t\t\treturn new Type(getType(this.types(), type), this)\r\n\t\t}\r\n\t}\r\n\r\n\text() {\r\n\t\tif (this.v1 || this.v2) return DEFAULT_EXT_PREFIX\r\n\t\treturn this.metadata[13] || DEFAULT_EXT_PREFIX\r\n\t}\r\n}\r\n\r\nclass Format {\r\n\tconstructor(format, metadata) {\r\n\t\tthis._format = format\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\treturn this._format[0]\r\n\t}\r\n\r\n\tformat() {\r\n\t\treturn this._format[1]\r\n\t}\r\n\r\n\tleadingDigitsPatterns() {\r\n\t\treturn this._format[2] || []\r\n\t}\r\n\r\n\tnationalPrefixFormattingRule() {\r\n\t\treturn this._format[3] || this.metadata.nationalPrefixFormattingRule()\r\n\t}\r\n\r\n\tnationalPrefixIsOptionalWhenFormattingInNationalFormat() {\r\n\t\treturn !!this._format[4] || this.metadata.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\tnationalPrefixIsMandatoryWhenFormattingInNationalFormat() {\r\n\t\t// National prefix is omitted if there's no national prefix formatting rule\r\n\t\t// set for this country, or when the national prefix formatting rule\r\n\t\t// contains no national prefix itself, or when this rule is set but\r\n\t\t// national prefix is optional for this phone number format\r\n\t\t// (and it is not enforced explicitly)\r\n\t\treturn this.usesNationalPrefix() && !this.nationalPrefixIsOptionalWhenFormattingInNationalFormat()\r\n\t}\r\n\r\n\t// Checks whether national prefix formatting rule contains national prefix.\r\n\tusesNationalPrefix() {\r\n\t\treturn this.nationalPrefixFormattingRule() &&\r\n\t\t\t// Check that national prefix formatting rule is not a \"dummy\" one.\r\n\t\t\t!FIRST_GROUP_ONLY_PREFIX_PATTERN.test(this.nationalPrefixFormattingRule())\r\n\t\t\t// In compressed metadata, `this.nationalPrefixFormattingRule()` is `0`\r\n\t\t\t// when `national_prefix_formatting_rule` is not present.\r\n\t\t\t// So, `true` or `false` are returned explicitly here, so that\r\n\t\t\t// `0` number isn't returned.\r\n\t\t\t? true\r\n\t\t\t: false\r\n\t}\r\n\r\n\tinternationalFormat() {\r\n\t\treturn this._format[5] || this.format()\r\n\t}\r\n}\r\n\r\n/**\r\n * A pattern that is used to determine if the national prefix formatting rule\r\n * has the first group only, i.e., does not start with the national prefix.\r\n * Note that the pattern explicitly allows for unbalanced parentheses.\r\n */\r\nconst FIRST_GROUP_ONLY_PREFIX_PATTERN = /^\\(?\\$1\\)?$/\r\n\r\nclass Type {\r\n\tconstructor(type, metadata) {\r\n\t\tthis.type = type\r\n\t\tthis.metadata = metadata\r\n\t}\r\n\r\n\tpattern() {\r\n\t\tif (this.metadata.v1) return this.type\r\n\t\treturn this.type[0]\r\n\t}\r\n\r\n\tpossibleLengths() {\r\n\t\tif (this.metadata.v1) return\r\n\t\treturn this.type[1] || this.metadata.possibleLengths()\r\n\t}\r\n}\r\n\r\nfunction getType(types, type) {\r\n\tswitch (type) {\r\n\t\tcase 'FIXED_LINE':\r\n\t\t\treturn types[0]\r\n\t\tcase 'MOBILE':\r\n\t\t\treturn types[1]\r\n\t\tcase 'TOLL_FREE':\r\n\t\t\treturn types[2]\r\n\t\tcase 'PREMIUM_RATE':\r\n\t\t\treturn types[3]\r\n\t\tcase 'PERSONAL_NUMBER':\r\n\t\t\treturn types[4]\r\n\t\tcase 'VOICEMAIL':\r\n\t\t\treturn types[5]\r\n\t\tcase 'UAN':\r\n\t\t\treturn types[6]\r\n\t\tcase 'PAGER':\r\n\t\t\treturn types[7]\r\n\t\tcase 'VOIP':\r\n\t\t\treturn types[8]\r\n\t\tcase 'SHARED_COST':\r\n\t\t\treturn types[9]\r\n\t}\r\n}\r\n\r\nexport function validateMetadata(metadata) {\r\n\tif (!metadata) {\r\n\t\tthrow new Error('[libphonenumber-js] `metadata` argument not passed. Check your arguments.')\r\n\t}\r\n\r\n\t// `country_phone_code_to_countries` was renamed to\r\n\t// `country_calling_codes` in `1.0.18`.\r\n\tif (!is_object(metadata) || !is_object(metadata.countries)) {\r\n\t\tthrow new Error(`[libphonenumber-js] \\`metadata\\` argument was passed but it's not a valid metadata. Must be an object having \\`.countries\\` child object property. Got ${is_object(metadata) ? 'an object of shape: { ' + Object.keys(metadata).join(', ') + ' }' : 'a ' + type_of(metadata) + ': ' + metadata}.`)\r\n\t}\r\n}\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst is_object = _ => typeof _ === 'object'\r\n\r\n// Babel transforms `typeof` into some \"branches\"\r\n// so istanbul will show this as \"branch not covered\".\r\n/* istanbul ignore next */\r\nconst type_of = _ => typeof _\r\n\r\n/**\r\n * Returns extension prefix for a country.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string?}\r\n * @example\r\n * // Returns \" ext. \"\r\n * getExtPrefix(\"US\")\r\n */\r\nexport function getExtPrefix(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).ext()\r\n\t}\r\n\treturn DEFAULT_EXT_PREFIX\r\n}\r\n\r\n/**\r\n * Returns \"country calling code\" for a country.\r\n * Throws an error if the country doesn't exist or isn't supported by this library.\r\n * @param {string} country\r\n * @param {object} metadata\r\n * @return {string}\r\n * @example\r\n * // Returns \"44\"\r\n * getCountryCallingCode(\"GB\")\r\n */\r\nexport function getCountryCallingCode(country, metadata) {\r\n\tmetadata = new Metadata(metadata)\r\n\tif (metadata.hasCountry(country)) {\r\n\t\treturn metadata.country(country).countryCallingCode()\r\n\t}\r\n\tthrow new Error(`Unknown country: ${country}`)\r\n}\r\n\r\nexport function isSupportedCountry(country, metadata) {\r\n\t// metadata = new Metadata(metadata)\r\n\t// return metadata.hasCountry(country)\r\n\treturn metadata.countries[country] !== undefined\r\n}\r\n\r\nfunction setVersion(metadata) {\r\n\tconst { version } = metadata\r\n\tif (typeof version === 'number') {\r\n\t\tthis.v1 = version === 1\r\n\t\tthis.v2 = version === 2\r\n\t\tthis.v3 = version === 3\r\n\t\tthis.v4 = version === 4\r\n\t} else {\r\n\t\tif (!version) {\r\n\t\t\tthis.v1 = true\r\n\t\t} else if (compare(version, V3) === -1) {\r\n\t\t\tthis.v2 = true\r\n\t\t} else if (compare(version, V4) === -1) {\r\n\t\t\tthis.v3 = true\r\n\t\t} else {\r\n\t\t\tthis.v4 = true\r\n\t\t}\r\n\t}\r\n}\r\n\r\n// const ISO_COUNTRY_CODE = /^[A-Z]{2}$/\r\n// function isCountryCode(countryCode) {\r\n// \treturn ISO_COUNTRY_CODE.test(countryCodeOrCountryCallingCode)\r\n// }"],"file":"metadata.js"}
\No newline at end of file