{"version":3,"sources":["jsdelivr-header.js","/npm/chinese-idcard-parity@1.0.0/index.js"],"names":[],"mappings":"AAAA;AACA;AACA;AACA;AACA;AACA;AACA,ACNA,MAAM,QAAW,CAAC,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAC9D,OAAS,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAE5D,MAAQ,WAER,SAAW,CACb,KAAK,UACL,OAAO,mBACP,MAAM,yBACN,OAAO,gBAGL,UAAY,CACd,KAAK,EACL,OAAO,EACP,MAAM,EACN,OAAO,GAGL,GAAK,CACP,CAAC,SAAS,MAAM,EAChB,EAAE,SAAS,KACX,CAAC,SAAS,QAAQ,EAClB,EAAE,SAAS,OACX,CAAC,SAAS,OAAO,EACjB,EAAE,SAAS,MACX,CAAC,SAAS,QAAQ,EAClB,EAAE,SAAS,QAIT,YAAc,CAChB,OAAO,UACP,SAAS,mBACT,QAAQ,yBACR,SAAS,gBAIb,SAAS,YAAY,GACjB,IAAI,EAAM,MAAM,KAAK,GACjB,EAAM,EACV,IAAI,IAAI,EAAE,EAAE,EAAE,GAAG,IAAM,GAAY,EAAI,GAAG,QAAQ,GAElD,OADQ,OAAO,EAAI,GAEvB,CAGA,SAAS,MAAM,EAAG,GACd,EAAO,EAAK,cACZ,IACI,EAAO,CAAC,EACZ,GAAgB,IAFN,MAAM,KAAK,GAEd,OACH,MAAM,CACF,KAAK,UAAU,OACf,IAAI,GAGR,GAAI,MAAM,KAAK,GAKR,CACH,IAAI,EAAS,YAAY,GACzB,OAAG,IAAW,GACV,EAAK,OAAS,EACR,CACF,KAAK,UAAU,KACf,IAAI,IAGF,CACF,KAAK,UAAU,OACf,IAAI,EAGhB,CAlBI,MAAM,CACF,KAAK,UAAU,MACf,IAAI,EAkBpB,CAIA,OAAO,QAAU,CACb,YACA,wBACA,kBACA,oBACA,MACA","file":"/npm/chinese-idcard-parity@1.0.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/chinese-idcard-parity@1.0.0/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","const INT_ARR =  [7, 9, 10, 5, 8, 4, 2, 1, 6, 3, 7, 9, 10, 5, 8, 4, 2];\nconst CH_ARR = ['1', '0', 'X', '9', '8', '7', '6', '5', '4', '3', '2'];\n\nconst REGEX = /^[0-9X]$/\n\nconst MSG_DICT = {\n    succ:\"success\",\n    length:\"length-must-be-1\",\n    value:\"value-must-be-^[0-9X]$\",\n    parity:\"parity-error\"\n}\n\nconst CODE_DICT = {\n    succ:0,\n    length:1,\n    value:2,\n    parity:3\n}\n\nconst MD = {\n    [MSG_DICT.succ]:0,\n    0:MSG_DICT.succ,\n    [MSG_DICT.length]:1,\n    1:MSG_DICT.length,\n    [MSG_DICT.value]:2,\n    2:MSG_DICT.value,\n    [MSG_DICT.parity]:3,\n    3:MSG_DICT.parity\n}\n\n\nconst SERROR_DICT = {\n    succ$0:\"success\",\n    length$1:\"length-must-be-1\",\n    value$2:\"value-must-be-^[0-9X]$\",\n    parity$3:\"parity-error\"\n}\n\n\nfunction calc_parity(id) {\n    let arr = Array.from(id);\n    let tmp = 0;\n    for(let i=0;i<17;i++) {tmp = tmp + arr[i]*INT_ARR[i]}\n    let p = CH_ARR[tmp%11]\n    return(p)\n}\n\n\nfunction parse(id,code) {\n    code = code.toUpperCase();\n    let arr = Array.from(code);\n    let rslt = {}\n    if(arr.length!==1) {\n        return({\n            code:CODE_DICT.length,\n            msg:rslt,\n        })\n    } else {\n        if(!REGEX.test(code)) {\n            return({\n                code:CODE_DICT.value,\n                msg:rslt,\n            })\n        } else {\n            let parity = calc_parity(id);\n            if(parity === code) {\n                rslt.parity = parity;\n                return({\n                    code:CODE_DICT.succ,\n                    msg:rslt,\n                })\n            } else {\n                return({\n                    code:CODE_DICT.parity,\n                    msg:rslt,\n                })\n            }\n        }\n    }\n}\n\n\n\nmodule.exports = {\n    parse,\n    calc_parity,\n    MSG_DICT,\n    CODE_DICT,\n    MD,\n    SERROR_DICT\n}\n\n\n\n"]}