{"version":3,"file":"index.min.js","mappings":"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","sources":["webpack://taiwanIdValidator/webpack/universalModuleDefinition","webpack://taiwanIdValidator/./src/index.ts","webpack://taiwanIdValidator/./src|sync","webpack://taiwanIdValidator/webpack/bootstrap","webpack://taiwanIdValidator/webpack/runtime/hasOwnProperty shorthand","webpack://taiwanIdValidator/webpack/startup"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"taiwanIdValidator\"] = factory();\n\telse\n\t\troot[\"taiwanIdValidator\"] = factory();\n})(this, function() {\nreturn ","function zipWith(a1: T[], a2: T[], f: (v1: T, v2: T) => R): R[] {\n const length = Math.min(a1.length, a2.length)\n const result: R[] = []\n\n for (let i = 0; i < length; i++) result[i] = f(a1[i], a2[i])\n\n return result\n}\n\nfunction add(a: number, b: number) {\n return a + b\n}\n\nfunction multiply(a: number, b: number) {\n return a * b\n}\n\n/**\n * Verify the input is a valid GUI Number (中華民國統一編號)\n *\n * @param { string | number } input GUI Number\n * @param { boolean } extended check input using extended format: https://www.fia.gov.tw/singlehtml/6?cntId=aaa97a9dcf2649d5bdd317f554e24f75\n * @returns { boolean } is `input` a valid GUI number\n */\nexport function isGuiNumberValid(\n input: string | number,\n extended = false\n): boolean {\n if (typeof input !== 'string' && typeof input !== 'number') return false\n\n /**\n * Example: 12345675\n * Step 1:\n * 1 * 1 = 1\n * 2 * 2 = 4\n * 3 * 1 = 3\n * 4 * 2 = 8\n * 5 * 1 = 5\n * 6 * 2 = 12\n * 7 * 4 = 28\n * 5 * 1 = 5\n *\n * Step 2:\n * 1 -> 1\n * 4 -> 4\n * 3 -> 3\n * 8 -> 8\n * 5 -> 5\n * 12 -> 1 + 2 = 3\n * 28 -> 2 + 8 = 10\n * 5 -> 5\n *\n * Step 3:\n * (1 + 4 + 3 + 8 + 5 + 3 + 10 + 5) % 10 = 9\n */\n\n const GUI_NUMBER_COEFFICIENTS = [1, 2, 1, 2, 1, 2, 4, 1]\n\n const n = input.toString()\n const regex = /^\\d{8}$/\n\n if (!regex.test(n)) return false\n\n /**\n * Step 1: 先把統一編號的每個數字分別乘上對應的係數 (1, 2, 1, 2, 1, 2, 4, 1)\n * Step 2: 再把個別乘積的十位數與個位數相加,得出八個小於 10 的數字\n */\n\n const intRadix = 10\n const checksum = zipWith(\n GUI_NUMBER_COEFFICIENTS,\n n.split('').map(c => parseInt(c, intRadix)),\n multiply\n )\n .map(n => (n % 10) + Math.floor(n / 10))\n .reduce(add, 0)\n\n /**\n * Step 3: 檢查把這 8 個數字相加之後計算此和除以 5 or 10 的餘數\n * Step 4:\n * 4-1: 若是餘數為 0,則為正確的統一編號\n * 4-2: 若是餘數為 9,且原統一編號的第七位是 7,則也為正確的統一編號\n */\n\n const divisor = extended ? 5 : 10\n\n return (\n checksum % divisor === 0 ||\n (parseInt(n.charAt(6), intRadix) === 7 && (checksum + 1) % divisor === 0)\n )\n}\n\n/**\n * Verify the input is a valid National identification number (中華民國身分證字號)\n *\n * @param { string } input National identification number\n * @returns { boolean } is `input` a valid national ID number\n */\nexport function isNationalIdentificationNumberValid(input: string): boolean {\n if (typeof input !== 'string') return false\n\n const regex = /^[A-Z][1,2]\\d{8}$/\n\n return regex.test(input) && verifyTaiwanIdIntermediateString(input)\n}\n\n/**\n * Verify the input is a valid resident certificate number (臺灣地區無戶籍國民、外國人、大陸地區人民及香港或澳門居民之專屬代號)\n *\n * @param { string } input resident certificate number\n * @returns { boolean } is `input` a valid resident certificate number\n */\nexport function isResidentCertificateNumberValid(input: string): boolean {\n if (typeof input !== 'string') return false\n\n return (\n isNewResidentCertificateNumberValid(input) ||\n isOriginalResidentCertificateNumberValid(input)\n )\n}\n\n/**\n * Verify the input is a valid new resident certificate number (臺灣地區無戶籍國民、外國人、大陸地區人民及香港或澳門居民之專屬代號)\n *\n * @param { string } input resident certificate number\n * @returns { boolean } is `input` a valid new resident certificate number\n */\nexport function isNewResidentCertificateNumberValid(input: string): boolean {\n if (typeof input !== 'string') return false\n\n const regex = /^[A-Z][8,9]\\d{8}$/\n\n return regex.test(input) && verifyTaiwanIdIntermediateString(input)\n}\n\n/**\n * Verify the input is a original valid resident certificate number (臺灣地區無戶籍國民、外國人、大陸地區人民及香港或澳門居民之專屬代號)\n *\n * @param { string } input resident certificate number\n * @returns { boolean } is `input` a valid original resident certificate number\n */\nexport function isOriginalResidentCertificateNumberValid(\n input: string\n): boolean {\n if (typeof input !== 'string') return false\n\n const regex = /^[A-Z]{2}\\d{8}$/\n\n return regex.test(input) && verifyTaiwanIdIntermediateString(input)\n}\n\n/**\n * Verify the input is a valid citizen digital certificate number (自然人憑證)\n *\n * @param { string } input citizen digital certificate number\n * @returns { boolean } is `input` a valid citizen digital certificate number\n */\nexport function isCitizenDigitalCertificateNumberValid(input: string): boolean {\n if (typeof input !== 'string') return false\n\n const n = input.toString()\n\n // 驗證規則為兩碼英文 + 14 碼數字\n const regex = /^[A-Z]{2}\\d{14}$/\n\n return regex.test(n)\n}\n\n/**\n * Verify the input is a valid E-Invoice cell phone barcode (電子發票手機條碼)\n *\n * @param { string } input E-Invoice cell phone barcode\n * @returns { boolean } is `input` a valid e-invoice cell phone barcode\n */\nexport function isEInvoiceCellPhoneBarcodeValid(input: string): boolean {\n if (typeof input !== 'string') return false\n\n const n = input.toString()\n\n /**\n * 總長度為 8 碼\n * 第 1 碼為 /\n * 第 2-8 碼由 0-9 (數字), A-Z (大寫英文字母), .(period), -(hyphen), +(plus) 組成\n */\n const regex = /^\\/[\\dA-Z.\\-+]{7}$/\n\n return regex.test(n)\n}\n\n/**\n * Verify the input is a valid E-Invoice donate code (電子發票捐贈碼)\n *\n * @param { string | number } input E-Invoice donate code\n * @returns { boolean } is `input` a valid e-invoice donate code\n */\nexport function isEInvoiceDonateCodeValid(input: string | number): boolean {\n if (typeof input !== 'string' && typeof input !== 'number') return false\n\n const n = input.toString()\n\n // 總長度為 3-7 碼 0-9 的數字\n const regex = /^[\\d]{3,7}$/\n\n return regex.test(n)\n}\n\nexport type CreditCardValidationOptions = {\n /**\n * validate `input` with regex\n * (Warning! Card issuers might introduce new card number patterns. Use this in production might cause unexpected results.)\n */\n checkIssuerRegexes?: boolean\n}\n\n/**\n * Verify the input is a valid credit card number (信用卡卡號)\n *\n * @param { string | number } input credit card number\n * @param { CreditCardValidationOptions } creditCardValidationOptions credit card validation options\n * @returns { boolean } is `input` a valid credit card number\n */\nexport function isCreditCardNumberValid(input: string, options: CreditCardValidationOptions = {}): boolean {\n if (typeof input !== 'string') return false\n\n const regex = /^[0-9]{12,19}$/\n\n if (!regex.test(input)) return false\n\n // ref:\n // https://stackoverflow.com/questions/9315647/regex-credit-card-number-tests\n // https://en.wikipedia.org/wiki/Payment_card_number\n const issuerRegexes = [\n /^3[47][0-9]{13}$/, // American Express\n /^(6541|6556)[0-9]{12}$/, // BCGlobal\n /^389[0-9]{11}$/, // Carte Blanche\n /^3(?:0[0-5]|[68][0-9])[0-9]{11}$/, // Diner's Club\n /^65[4-9][0-9]{13}|64[4-9][0-9]{13}|6011[0-9]{12}|(622(?:12[6-9]|1[3-9][0-9]|[2-8][0-9][0-9]|9[01][0-9]|92[0-5])[0-9]{10})$/, // Discover\n /^63[7-9][0-9]{13}$/, // Insta Payment\n /^(?:2131|1800|35\\d{3})\\d{11}$/, // JCB\n /^9[0-9]{15}$/, // KoreanLocalCard\n /^(6304|6706|6709|6771)[0-9]{12,15}$/, // Laser\n /^(5018|5020|5038|6304|6759|6761|6763)[0-9]{8,15}$/, // Maestro\n /^(5[1-5][0-9]{14}|2(22[1-9][0-9]{12}|2[3-9][0-9]{13}|[3-6][0-9]{14}|7[0-1][0-9]{13}|720[0-9]{12}))$/, // Mastercard\n /^(6334|6767)[0-9]{12}|(6334|6767)[0-9]{14}|(6334|6767)[0-9]{15}$/, // Solo\n /^(4903|4905|4911|4936|6333|6759)[0-9]{12}|(4903|4905|4911|4936|6333|6759)[0-9]{14}|(4903|4905|4911|4936|6333|6759)[0-9]{15}|564182[0-9]{10}|564182[0-9]{12}|564182[0-9]{13}|633110[0-9]{10}|633110[0-9]{12}|633110[0-9]{13}$/, // Switch\n /^(62[0-9]{14,17})$/, // Union Pay\n /^4[0-9]{12}(?:[0-9]{3})?$/, // Visa\n /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14})$/ // Visa Master\n ]\n\n const { checkIssuerRegexes = false } = options\n\n if (checkIssuerRegexes && !issuerRegexes.some(regex => regex.test(input)))\n return false\n\n // Luhn algorithm\n // ref: https://en.wikipedia.org/wiki/Luhn_algorithm\n const digits = input.split('').map(d => parseInt(d, 10))\n const sum = digits.reverse().reduce((acc, d, i) => {\n if (i % 2 === 0) return acc + d\n return acc + (d * 2 > 9 ? d * 2 - 9 : d * 2)\n }, 0)\n\n return sum % 10 === 0\n}\n\n/**\n * Verify the intermediate string for isNationalIdentificationNumberValid and isResidentCertificateNumberValid\n *\n * @param { string } input String to verify\n * @returns { boolean } is `input` a valid Taiwan ID intermediate string\n */\nfunction verifyTaiwanIdIntermediateString(input: string): boolean {\n const intRadix = 10\n\n /**\n * A=10 台北市 J=18 新竹縣 S=26 高雄縣\n * B=11 台中市 K=19 苗栗縣 T=27 屏東縣\n * C=12 基隆市 L=20 台中縣 U=28 花蓮縣\n * D=13 台南市 M=21 南投縣 V=29 台東縣\n * E=14 高雄市 N=22 彰化縣 W=32 金門縣*\n * F=15 台北縣 O=35 新竹市* X=30 澎湖縣\n * G=16 宜蘭縣 P=23 雲林縣 Y=31 陽明山\n * H=17 桃園縣 Q=24 嘉義縣 Z=33 連江縣*\n * I=34 嘉義市* R=25 台南縣\n *\n * Step 1: 英文字母按照上表轉換為數字之後,十位數 * 1 + 個位數 * 9 相加\n */\n const TAIWAN_ID_LOCALE_CODE_LIST = [\n 1, // A -> 10 -> 1 * 1 + 9 * 0 = 1\n 10, // B -> 11 -> 1 * 1 + 9 * 1 = 10\n 19, // C -> 12 -> 1 * 1 + 9 * 2 = 19\n 28, // D\n 37, // E\n 46, // F\n 55, // G\n 64, // H\n 39, // I -> 34 -> 1 * 3 + 9 * 4 = 39\n 73, // J\n 82, // K\n 2, // L\n 11, // M\n 20, // N\n 48, // O -> 35 -> 1 * 3 + 9 * 5 = 48\n 29, // P\n 38, // Q\n 47, // R\n 56, // S\n 65, // T\n 74, // U\n 83, // V\n 21, // W -> 32 -> 1 * 3 + 9 * 2 = 21\n 3, // X\n 12, // Y\n 30 // Z -> 33 -> 1 * 3 + 9 * 3 = 30\n ]\n\n const RESIDENT_CERTIFICATE_NUMBER_LIST = [\n 0, // A\n 1, // B\n 2, // C\n 3, // D\n 4, // E\n 5, // F\n 6, // G\n 7, // H\n 4, // I\n 8, // J\n 9, // K\n 0, // L\n 1, // M\n 2, // N\n 5, // O\n 3, // P\n 4, // Q\n 5, // R\n 6, // S\n 7, // T\n 8, // U\n 9, // V\n 2, // W\n 0, // X\n 1, // Y\n 3 // Z\n ]\n\n const getCharOrder = (s: string, i: number) =>\n s.charCodeAt(i) - 'A'.charCodeAt(0)\n\n const firstDigit = TAIWAN_ID_LOCALE_CODE_LIST[getCharOrder(input, 0)]\n\n const secondDigit = isNaN(parseInt(input[1], intRadix)) // if is not a number (舊版居留證編號)\n ? RESIDENT_CERTIFICATE_NUMBER_LIST[getCharOrder(input, 1)]\n : parseInt(input[1], intRadix)\n\n const rest = input\n .substring(2)\n .split('')\n .map(n => parseInt(n, intRadix))\n\n const idInDigits = [firstDigit, secondDigit, ...rest]\n\n // Step 2: 第 1 位數字 (只能為 1 or 2) 至第 8 位數字分別乘上 8, 7, 6, 5, 4, 3, 2, 1 後相加,再加上第 9 位數字\n\n const ID_COEFFICIENTS = [1, 8, 7, 6, 5, 4, 3, 2, 1, 1]\n const sum = zipWith(idInDigits, ID_COEFFICIENTS, multiply).reduce(add, 0)\n\n // Step 3: 如果該數字為 10 的倍數,則為正確身分證字號\n\n return sum % 10 === 0\n}\n\nexport const isGUI = isGuiNumberValid\nexport const isNI = isNationalIdentificationNumberValid\nexport const isRC = isResidentCertificateNumberValid\nexport const isNewRC = isNewResidentCertificateNumberValid\nexport const isOriginalRC = isOriginalResidentCertificateNumberValid\nexport const isCDC = isCitizenDigitalCertificateNumberValid\nexport const isCellPhoneBarcode = isEInvoiceCellPhoneBarcodeValid\nexport const isDonateCode = isEInvoiceDonateCodeValid\nexport const isCreditCard = isCreditCardNumberValid\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nwebpackEmptyContext.id = 875;\nmodule.exports = webpackEmptyContext;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// startup\n// Load entry module and return exports\n// This entry module is referenced by other modules so it can't be inlined\nvar __webpack_exports__ = __webpack_require__(607);\n"],"names":["root","factory","exports","module","define","amd","this","zipWith","a1","a2","f","length","Math","min","result","i","add","a","b","multiply","isGuiNumberValid","input","extended","n","toString","test","checksum","split","map","c","parseInt","floor","reduce","divisor","charAt","isNationalIdentificationNumberValid","verifyTaiwanIdIntermediateString","isResidentCertificateNumberValid","isNewResidentCertificateNumberValid","isOriginalResidentCertificateNumberValid","isCitizenDigitalCertificateNumberValid","isEInvoiceCellPhoneBarcodeValid","isEInvoiceDonateCodeValid","isCreditCardNumberValid","options","some","regex","d","reverse","acc","getCharOrder","s","charCodeAt","firstDigit","secondDigit","isNaN","rest","substring","isGUI","isNI","isRC","isNewRC","isOriginalRC","isCDC","isCellPhoneBarcode","isDonateCode","isCreditCard","webpackEmptyContext","req","e","Error","code","keys","resolve","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","undefined","__webpack_modules__","call","o","obj","prop","Object","prototype","hasOwnProperty"],"sourceRoot":""}