{"version":3,"sources":["jsdelivr-header.js","/npm/react-native-blinkid@1.1.0/index.js"],"names":[],"mappings":"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","file":"/npm/react-native-blinkid@1.1.0/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/react-native-blinkid@1.1.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","import {\n  NativeModules,\n  Platform\n} from 'react-native'\n\nlet { RNBlinkID } = NativeModules\nif (Platform.OS === 'ios') {\n  RNBlinkID = promisifyAll(RNBlinkID)\n}\n\nconst { scan, setLicenseKey, notSupportedBecause } = RNBlinkID\nconst resultProps = ['mrtd', 'usdl', 'eudl']\nconst validators = {\n  mrtd: validateMRTDOptions,\n  usdl: validateUSDLOptions,\n  eudl: validateEUDLOptions,\n  detector: validateDetectorOptions\n}\n\nconst normalizers = {\n  mrtd: normalizeMRTDResult,\n  usdl: normalizeUSDLResult,\n  eudl: normalizeEUDLResult\n}\n\nconst SCAN_IN_PROGRESS_ERROR = new Error('RNMBScanInProgress')\n\nmodule.exports = (function () {\n  let licenseKeySet\n  let scanInProgress\n\n  if (notSupportedBecause) return { notSupportedBecause }\n\n  return {\n    ...RNBlinkID,\n    setLicenseKey: key => {\n      licenseKeySet = true\n      return setLicenseKey(key)\n    },\n    /**\n     * start a scan\n     * @param  {Object} opts\n     * @param  {Boolean}[base64] - if true, returns base64 image\n     * @param  {String} [imagePath] - path to which to save image\n     * @param  {String} [licenseKey]\n     * @param  {String} [opts.tooltip] - tooltip text for camera view\n     * @param  {Object} [opts.mrtd]\n     * @param  {Object} [opts.usdl]\n     * @param  {Object} [opts.eudl]\n     * @param  {Object} [opts.detector]\n     * @return {Promise}\n     */\n    scan: async (opts={}) => {\n      if (scanInProgress) {\n        throw SCAN_IN_PROGRESS_ERROR\n      }\n\n      scanInProgress = true\n      try {\n        return doScan(opts)\n      } finally {\n        scanInProgress = false\n      }\n    }\n  }\n\n  async function doScan (opts={}) {\n    const { licenseKey } = opts\n    if (licenseKey) {\n      opts = {\n        ...opts,\n        licenseKey\n      }\n    } else if (!licenseKeySet) {\n      throw new Error('set or pass in licenseKey first')\n    }\n\n    for (let p in opts) {\n      let validate = validators[p]\n      if (validate) validate(opts[p])\n    }\n\n    const result = await scan(opts)\n    for (let p in result) {\n      let normalize = normalizers[p]\n      if (normalize) {\n        result[p] = normalize(result[p])\n      }\n    }\n\n    return result\n  }\n}())\n\nfunction validateMRTDOptions (options) {\n  // TODO:\n}\n\nfunction validateUSDLOptions (options) {\n  // TODO:\n}\n\nfunction validateEUDLOptions (options) {\n  // TODO:\n}\n\nfunction validateDetectorOptions (options) {\n  // TODO:\n}\n\nfunction normalizeEUDLResult (result) {\n  const { personal } = result\n  const { birthData } = personal\n  if (birthData) {\n    const match = birthData.match(/^(\\d+\\.\\d+\\.\\d+)/)\n    if (match) {\n      personal.dateOfBirth = match[1]\n    }\n  }\n\n  normalizeDates(result, parseEUDate)\n  return result\n}\n\nfunction normalizeMRTDResult (result) {\n  return result\n}\n\nfunction normalizeUSDLResult (result) {\n  normalizeDates(result, parseUSDate)\n  return result\n}\n\nfunction normalizeDates (result, normalizer) {\n  const { personal, document } = result\n  if (typeof personal.dateOfBirth === 'string') {\n    personal.dateOfBirth = normalizer(personal.dateOfBirth)\n  }\n\n  if (typeof document.dateOfExpiry === 'string') {\n    document.dateOfExpiry = normalizer(document.dateOfExpiry)\n  }\n\n  if (typeof document.dateOfIssue === 'string') {\n    document.dateOfIssue = normalizer(document.dateOfIssue)\n  }\n\n  return result\n}\n\nfunction parseEUDate (str) {\n  const [day, month, year] = str.split('.')\n  return dateFromParts({ day, month, year })\n}\n\nfunction parseUSDate (str) {\n  const [month, day, year] = [\n    str.slice(0, 2),\n    str.slice(2, 4),\n    str.slice(4)\n  ]\n\n  return dateFromParts({ day, month, year })\n}\n\n/**\n * @return {Number} UTC millis\n */\nfunction dateFromParts ({ day, month, year }) {\n  year = Number(year)\n  month = Number(month) - 1\n  day = Number(day)\n  return Date.UTC(year, month, day)\n}\n\nfunction promisify (fn) {\n  return function (...args) {\n    return new Promise((resolve, reject) => {\n      args.push((err, res) => {\n        if (err) {\n          if (typeof err === 'string') {\n            err = new Error(err)\n          }\n\n          reject(err)\n        } else {\n          resolve(res)\n        }\n      })\n\n      fn.apply(this, args)\n    })\n  }\n}\n\nfunction promisifyAll (obj) {\n  const promisified = {}\n  for (var p in obj) {\n    let val = obj[p]\n    if (typeof val === 'function') {\n      promisified[p] = promisify(val)\n    } else {\n      promisified[p] = val\n    }\n  }\n\n  return promisified\n}\n"]}