OSDN Git Service

Ver8.5.2.0
[opengion/opengionV8.git] / uap / webapps / gf / src / META-INF / resources / jsp / common / option / tesseract.min.js.map
1 {"version":3,"sources":["webpack://Tesseract/webpack/universalModuleDefinition","webpack://Tesseract/webpack/bootstrap","webpack://Tesseract/./src/utils/getId.js","webpack://Tesseract/./src/utils/log.js","webpack://Tesseract/./node_modules/process/browser.js","webpack://Tesseract/./node_modules/resolve-url/resolve-url.js","webpack://Tesseract/./src/createJob.js","webpack://Tesseract/./src/createWorker.js","webpack://Tesseract/./src/constants/OEM.js","webpack://Tesseract/./src/index.js","webpack://Tesseract/./node_modules/regenerator-runtime/runtime.js","webpack://Tesseract/(webpack)/buildin/module.js","webpack://Tesseract/./src/createScheduler.js","webpack://Tesseract/./src/utils/resolvePaths.js","webpack://Tesseract/./src/utils/getEnvironment.js","webpack://Tesseract/./node_modules/is-electron/index.js","webpack://Tesseract/./src/utils/circularize.js","webpack://Tesseract/./src/constants/config.js","webpack://Tesseract/./src/worker/browser/index.js","webpack://Tesseract/./src/worker/browser/defaultOptions.js","webpack://Tesseract/./src/constants/defaultOptions.js","webpack://Tesseract/./src/worker/browser/spawnWorker.js","webpack://Tesseract/./src/worker/browser/terminateWorker.js","webpack://Tesseract/./src/worker/browser/onMessage.js","webpack://Tesseract/./src/worker/browser/send.js","webpack://Tesseract/./src/worker/browser/loadImage.js","webpack://Tesseract/./src/Tesseract.js","webpack://Tesseract/./src/constants/PSM.js"],"names":["root","factory","exports","module","define","amd","window","installedModules","__webpack_require__","moduleId","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","prefix","cnt","Math","random","toString","slice","logging","setLogging","_logging","log","args","console","apply","cachedSetTimeout","cachedClearTimeout","process","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","setTimeout","e","this","clearTimeout","currentQueue","queue","draining","queueIndex","cleanUpNextTick","length","concat","drainQueue","timeout","len","run","marker","runClearTimeout","Item","array","noop","nextTick","Array","arguments","push","title","browser","env","argv","version","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","numUrls","base","document","createElement","href","head","getElementsByTagName","insertBefore","firstChild","resolved","a","index","removeChild","getId","require","jobCounter","_id","id","action","payload","resolvePaths","circularize","createJob","defaultOEM","defaultOptions","spawnWorker","terminateWorker","onMessage","loadImage","send","workerCounter","_options","logger","errorHandler","options","resolves","rejects","worker","setResolve","res","setReject","rej","startJob","jobId","Promise","resolve","reject","workerId","load","writeText","path","text","method","readText","encoding","removeFile","FS","loadLanguage","langs","initialize","oem","setParameters","params","recognize","image","opts","getPDF","textonly","detect","terminate","status","data","from","keys","TESSERACT_ONLY","LSTM_ONLY","TESSERACT_LSTM_COMBINED","DEFAULT","createScheduler","createWorker","Tesseract","OEM","PSM","runtime","undefined","Op","hasOwn","$Symbol","iteratorSymbol","iterator","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","context","Context","_invoke","state","GenStateSuspendedStart","arg","GenStateExecuting","GenStateCompleted","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","type","done","GenStateSuspendedYield","makeInvokeMethod","fn","obj","err","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","values","Gp","defineIteratorMethods","forEach","AsyncIterator","previousPromise","callInvokeWithMethodAndArg","invoke","result","__await","then","unwrapped","error","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","reset","iterable","iteratorMethod","isNaN","constructor","displayName","isGeneratorFunction","genFun","ctor","mark","setPrototypeOf","__proto__","awrap","async","iter","reverse","pop","skipTempReset","prev","charAt","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","Function","webpackPolyfill","deprecate","paths","children","schedulerCounter","workers","runningWorkers","jobQueue","getNumWorkers","dequeue","wIds","job","w","shift","addWorker","addJob","wid","getQueueLen","resolveURL","isElectron","importScripts","electron","navigator","userAgent","indexOf","page","blocks","paragraphs","lines","words","symbols","block","paragraph","line","word","sym","dependencies","workerPath","TESS_ENV","corePath","substring","WebAssembly","langPath","workerBlobURL","Blob","URL","blob","Worker","createObjectURL","handler","onmessage","packet","postMessage","readFromBlobOrFile","fileReader","FileReader","onload","onerror","code","target","readAsArrayBuffer","test","atob","split","map","charCodeAt","fetch","resp","arrayBuffer","HTMLElement","tagName","src","poster","toBlob","File","Uint8Array","finally","OSD_ONLY","AUTO_OSD","AUTO_ONLY","AUTO","SINGLE_COLUMN","SINGLE_BLOCK_VERT_TEXT","SINGLE_BLOCK","SINGLE_LINE","SINGLE_WORD","CIRCLE_WORD","SINGLE_CHAR","SPARSE_TEXT","SPARSE_TEXT_OSD"],"mappings":"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","file":"tesseract.min.js","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[\"Tesseract\"] = factory();\n\telse\n\t\troot[\"Tesseract\"] = factory();\n})(window, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 7);\n","module.exports = (prefix, cnt) => (\n  `${prefix}-${cnt}-${Math.random().toString(16).slice(3, 8)}`\n);\n","let logging = false;\n\nexports.logging = logging;\n\nexports.setLogging = (_logging) => {\n  logging = _logging;\n};\n\nexports.log = (...args) => (logging ? console.log.apply(this, args) : null);\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things.  But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals.  It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n    throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n    throw new Error('clearTimeout has not been defined');\n}\n(function () {\n    try {\n        if (typeof setTimeout === 'function') {\n            cachedSetTimeout = setTimeout;\n        } else {\n            cachedSetTimeout = defaultSetTimout;\n        }\n    } catch (e) {\n        cachedSetTimeout = defaultSetTimout;\n    }\n    try {\n        if (typeof clearTimeout === 'function') {\n            cachedClearTimeout = clearTimeout;\n        } else {\n            cachedClearTimeout = defaultClearTimeout;\n        }\n    } catch (e) {\n        cachedClearTimeout = defaultClearTimeout;\n    }\n} ())\nfunction runTimeout(fun) {\n    if (cachedSetTimeout === setTimeout) {\n        //normal enviroments in sane situations\n        return setTimeout(fun, 0);\n    }\n    // if setTimeout wasn't available but was latter defined\n    if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n        cachedSetTimeout = setTimeout;\n        return setTimeout(fun, 0);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedSetTimeout(fun, 0);\n    } catch(e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n            return cachedSetTimeout.call(null, fun, 0);\n        } catch(e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n            return cachedSetTimeout.call(this, fun, 0);\n        }\n    }\n\n\n}\nfunction runClearTimeout(marker) {\n    if (cachedClearTimeout === clearTimeout) {\n        //normal enviroments in sane situations\n        return clearTimeout(marker);\n    }\n    // if clearTimeout wasn't available but was latter defined\n    if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n        cachedClearTimeout = clearTimeout;\n        return clearTimeout(marker);\n    }\n    try {\n        // when when somebody has screwed with setTimeout but no I.E. maddness\n        return cachedClearTimeout(marker);\n    } catch (e){\n        try {\n            // When we are in I.E. but the script has been evaled so I.E. doesn't  trust the global object when called normally\n            return cachedClearTimeout.call(null, marker);\n        } catch (e){\n            // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n            // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n            return cachedClearTimeout.call(this, marker);\n        }\n    }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n    if (!draining || !currentQueue) {\n        return;\n    }\n    draining = false;\n    if (currentQueue.length) {\n        queue = currentQueue.concat(queue);\n    } else {\n        queueIndex = -1;\n    }\n    if (queue.length) {\n        drainQueue();\n    }\n}\n\nfunction drainQueue() {\n    if (draining) {\n        return;\n    }\n    var timeout = runTimeout(cleanUpNextTick);\n    draining = true;\n\n    var len = queue.length;\n    while(len) {\n        currentQueue = queue;\n        queue = [];\n        while (++queueIndex < len) {\n            if (currentQueue) {\n                currentQueue[queueIndex].run();\n            }\n        }\n        queueIndex = -1;\n        len = queue.length;\n    }\n    currentQueue = null;\n    draining = false;\n    runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n    var args = new Array(arguments.length - 1);\n    if (arguments.length > 1) {\n        for (var i = 1; i < arguments.length; i++) {\n            args[i - 1] = arguments[i];\n        }\n    }\n    queue.push(new Item(fun, args));\n    if (queue.length === 1 && !draining) {\n        runTimeout(drainQueue);\n    }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n    this.fun = fun;\n    this.array = array;\n}\nItem.prototype.run = function () {\n    this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n    throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n    throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","// Copyright 2014 Simon Lydell\r\n// X11 (“MIT”) Licensed. (See LICENSE.)\r\n\r\nvoid (function(root, factory) {\r\n  if (typeof define === \"function\" && define.amd) {\r\n    define(factory)\r\n  } else if (typeof exports === \"object\") {\r\n    module.exports = factory()\r\n  } else {\r\n    root.resolveUrl = factory()\r\n  }\r\n}(this, function() {\r\n\r\n  function resolveUrl(/* ...urls */) {\r\n    var numUrls = arguments.length\r\n\r\n    if (numUrls === 0) {\r\n      throw new Error(\"resolveUrl requires at least one argument; got none.\")\r\n    }\r\n\r\n    var base = document.createElement(\"base\")\r\n    base.href = arguments[0]\r\n\r\n    if (numUrls === 1) {\r\n      return base.href\r\n    }\r\n\r\n    var head = document.getElementsByTagName(\"head\")[0]\r\n    head.insertBefore(base, head.firstChild)\r\n\r\n    var a = document.createElement(\"a\")\r\n    var resolved\r\n\r\n    for (var index = 1; index < numUrls; index++) {\r\n      a.href = arguments[index]\r\n      resolved = a.href\r\n      base.href = resolved\r\n    }\r\n\r\n    head.removeChild(base)\r\n\r\n    return resolved\r\n  }\r\n\r\n  return resolveUrl\r\n\r\n}));\r\n","const getId = require('./utils/getId');\n\nlet jobCounter = 0;\n\nmodule.exports = ({\n  id: _id,\n  action,\n  payload = {},\n}) => {\n  let id = _id;\n  if (typeof id === 'undefined') {\n    id = getId('Job', jobCounter);\n    jobCounter += 1;\n  }\n\n  return {\n    id,\n    action,\n    payload,\n  };\n};\n","const resolvePaths = require('./utils/resolvePaths');\nconst circularize = require('./utils/circularize');\nconst createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\nconst { defaultOEM } = require('./constants/config');\nconst {\n  defaultOptions,\n  spawnWorker,\n  terminateWorker,\n  onMessage,\n  loadImage,\n  send,\n} = require('./worker/node');\n\nlet workerCounter = 0;\n\nmodule.exports = (_options = {}) => {\n  const id = getId('Worker', workerCounter);\n  const {\n    logger,\n    errorHandler,\n    ...options\n  } = resolvePaths({\n    ...defaultOptions,\n    ..._options,\n  });\n  const resolves = {};\n  const rejects = {};\n  let worker = spawnWorker(options);\n\n  workerCounter += 1;\n\n  const setResolve = (action, res) => {\n    resolves[action] = res;\n  };\n\n  const setReject = (action, rej) => {\n    rejects[action] = rej;\n  };\n\n  const startJob = ({ id: jobId, action, payload }) => (\n    new Promise((resolve, reject) => {\n      log(`[${id}]: Start ${jobId}, action=${action}`);\n      setResolve(action, resolve);\n      setReject(action, reject);\n      send(worker, {\n        workerId: id,\n        jobId,\n        action,\n        payload,\n      });\n    })\n  );\n\n  const load = jobId => (\n    startJob(createJob({\n      id: jobId, action: 'load', payload: { options },\n    }))\n  );\n\n  const writeText = (path, text, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'FS',\n      payload: { method: 'writeFile', args: [path, text] },\n    }))\n  );\n\n  const readText = (path, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'FS',\n      payload: { method: 'readFile', args: [path, { encoding: 'utf8' }] },\n    }))\n  );\n\n  const removeFile = (path, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'FS',\n      payload: { method: 'unlink', args: [path] },\n    }))\n  );\n\n  const FS = (method, args, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'FS',\n      payload: { method, args },\n    }))\n  );\n\n  const loadLanguage = (langs = 'eng', jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'loadLanguage',\n      payload: { langs, options },\n    }))\n  );\n\n  const initialize = (langs = 'eng', oem = defaultOEM, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'initialize',\n      payload: { langs, oem },\n    }))\n  );\n\n  const setParameters = (params = {}, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'setParameters',\n      payload: { params },\n    }))\n  );\n\n  const recognize = async (image, opts = {}, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'recognize',\n      payload: { image: await loadImage(image), options: opts },\n    }))\n  );\n\n  const getPDF = (title = 'Tesseract OCR Result', textonly = false, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'getPDF',\n      payload: { title, textonly },\n    }))\n  );\n\n  const detect = async (image, jobId) => (\n    startJob(createJob({\n      id: jobId,\n      action: 'detect',\n      payload: { image: await loadImage(image) },\n    }))\n  );\n\n  const terminate = async () => {\n    if (worker !== null) {\n      /*\n      await startJob(createJob({\n        id: jobId,\n        action: 'terminate',\n      }));\n      */\n      terminateWorker(worker);\n      worker = null;\n    }\n    return Promise.resolve();\n  };\n\n  onMessage(worker, ({\n    workerId, jobId, status, action, data,\n  }) => {\n    if (status === 'resolve') {\n      log(`[${workerId}]: Complete ${jobId}`);\n      let d = data;\n      if (action === 'recognize') {\n        d = circularize(data);\n      } else if (action === 'getPDF') {\n        d = Array.from({ ...data, length: Object.keys(data).length });\n      }\n      resolves[action]({ jobId, data: d });\n    } else if (status === 'reject') {\n      rejects[action](data);\n      if (errorHandler) {\n        errorHandler(data);\n      } else {\n        throw Error(data);\n      }\n    } else if (status === 'progress') {\n      logger(data);\n    }\n  });\n\n  return {\n    id,\n    worker,\n    setResolve,\n    setReject,\n    load,\n    writeText,\n    readText,\n    removeFile,\n    FS,\n    loadLanguage,\n    initialize,\n    setParameters,\n    recognize,\n    getPDF,\n    detect,\n    terminate,\n  };\n};\n","/*\n * OEM = OCR Engine Mode, and there are 4 possible modes.\n *\n * By default tesseract.js uses LSTM_ONLY mode.\n *\n */\nmodule.exports = {\n  TESSERACT_ONLY: 0,\n  LSTM_ONLY: 1,\n  TESSERACT_LSTM_COMBINED: 2,\n  DEFAULT: 3,\n};\n","/**\n *\n * Entry point for tesseract.js, should be the entry when bundling.\n *\n * @fileoverview entry point for tesseract.js\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nrequire('regenerator-runtime/runtime');\nconst createScheduler = require('./createScheduler');\nconst createWorker = require('./createWorker');\nconst Tesseract = require('./Tesseract');\nconst OEM = require('./constants/OEM');\nconst PSM = require('./constants/PSM');\nconst { setLogging } = require('./utils/log');\n\nmodule.exports = {\n  OEM,\n  PSM,\n  createScheduler,\n  createWorker,\n  setLogging,\n  ...Tesseract,\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n  \"use strict\";\n\n  var Op = Object.prototype;\n  var hasOwn = Op.hasOwnProperty;\n  var undefined; // More compressible than void 0.\n  var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n  var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n  var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n  var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n  function wrap(innerFn, outerFn, self, tryLocsList) {\n    // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n    var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n    var generator = Object.create(protoGenerator.prototype);\n    var context = new Context(tryLocsList || []);\n\n    // The ._invoke method unifies the implementations of the .next,\n    // .throw, and .return methods.\n    generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n    return generator;\n  }\n  exports.wrap = wrap;\n\n  // Try/catch helper to minimize deoptimizations. Returns a completion\n  // record like context.tryEntries[i].completion. This interface could\n  // have been (and was previously) designed to take a closure to be\n  // invoked without arguments, but in all the cases we care about we\n  // already have an existing method we want to call, so there's no need\n  // to create a new function object. We can even get away with assuming\n  // the method takes exactly one argument, since that happens to be true\n  // in every case, so we don't have to touch the arguments object. The\n  // only additional allocation required is the completion record, which\n  // has a stable shape and so hopefully should be cheap to allocate.\n  function tryCatch(fn, obj, arg) {\n    try {\n      return { type: \"normal\", arg: fn.call(obj, arg) };\n    } catch (err) {\n      return { type: \"throw\", arg: err };\n    }\n  }\n\n  var GenStateSuspendedStart = \"suspendedStart\";\n  var GenStateSuspendedYield = \"suspendedYield\";\n  var GenStateExecuting = \"executing\";\n  var GenStateCompleted = \"completed\";\n\n  // Returning this object from the innerFn has the same effect as\n  // breaking out of the dispatch switch statement.\n  var ContinueSentinel = {};\n\n  // Dummy constructor functions that we use as the .constructor and\n  // .constructor.prototype properties for functions that return Generator\n  // objects. For full spec compliance, you may wish to configure your\n  // minifier not to mangle the names of these two functions.\n  function Generator() {}\n  function GeneratorFunction() {}\n  function GeneratorFunctionPrototype() {}\n\n  // This is a polyfill for %IteratorPrototype% for environments that\n  // don't natively support it.\n  var IteratorPrototype = {};\n  IteratorPrototype[iteratorSymbol] = function () {\n    return this;\n  };\n\n  var getProto = Object.getPrototypeOf;\n  var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n  if (NativeIteratorPrototype &&\n      NativeIteratorPrototype !== Op &&\n      hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n    // This environment has a native %IteratorPrototype%; use it instead\n    // of the polyfill.\n    IteratorPrototype = NativeIteratorPrototype;\n  }\n\n  var Gp = GeneratorFunctionPrototype.prototype =\n    Generator.prototype = Object.create(IteratorPrototype);\n  GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;\n  GeneratorFunctionPrototype.constructor = GeneratorFunction;\n  GeneratorFunctionPrototype[toStringTagSymbol] =\n    GeneratorFunction.displayName = \"GeneratorFunction\";\n\n  // Helper for defining the .next, .throw, and .return methods of the\n  // Iterator interface in terms of a single ._invoke method.\n  function defineIteratorMethods(prototype) {\n    [\"next\", \"throw\", \"return\"].forEach(function(method) {\n      prototype[method] = function(arg) {\n        return this._invoke(method, arg);\n      };\n    });\n  }\n\n  exports.isGeneratorFunction = function(genFun) {\n    var ctor = typeof genFun === \"function\" && genFun.constructor;\n    return ctor\n      ? ctor === GeneratorFunction ||\n        // For the native GeneratorFunction constructor, the best we can\n        // do is to check its .name property.\n        (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n      : false;\n  };\n\n  exports.mark = function(genFun) {\n    if (Object.setPrototypeOf) {\n      Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n    } else {\n      genFun.__proto__ = GeneratorFunctionPrototype;\n      if (!(toStringTagSymbol in genFun)) {\n        genFun[toStringTagSymbol] = \"GeneratorFunction\";\n      }\n    }\n    genFun.prototype = Object.create(Gp);\n    return genFun;\n  };\n\n  // Within the body of any async function, `await x` is transformed to\n  // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n  // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n  // meant to be awaited.\n  exports.awrap = function(arg) {\n    return { __await: arg };\n  };\n\n  function AsyncIterator(generator) {\n    function invoke(method, arg, resolve, reject) {\n      var record = tryCatch(generator[method], generator, arg);\n      if (record.type === \"throw\") {\n        reject(record.arg);\n      } else {\n        var result = record.arg;\n        var value = result.value;\n        if (value &&\n            typeof value === \"object\" &&\n            hasOwn.call(value, \"__await\")) {\n          return Promise.resolve(value.__await).then(function(value) {\n            invoke(\"next\", value, resolve, reject);\n          }, function(err) {\n            invoke(\"throw\", err, resolve, reject);\n          });\n        }\n\n        return Promise.resolve(value).then(function(unwrapped) {\n          // When a yielded Promise is resolved, its final value becomes\n          // the .value of the Promise<{value,done}> result for the\n          // current iteration.\n          result.value = unwrapped;\n          resolve(result);\n        }, function(error) {\n          // If a rejected Promise was yielded, throw the rejection back\n          // into the async generator function so it can be handled there.\n          return invoke(\"throw\", error, resolve, reject);\n        });\n      }\n    }\n\n    var previousPromise;\n\n    function enqueue(method, arg) {\n      function callInvokeWithMethodAndArg() {\n        return new Promise(function(resolve, reject) {\n          invoke(method, arg, resolve, reject);\n        });\n      }\n\n      return previousPromise =\n        // If enqueue has been called before, then we want to wait until\n        // all previous Promises have been resolved before calling invoke,\n        // so that results are always delivered in the correct order. If\n        // enqueue has not been called before, then it is important to\n        // call invoke immediately, without waiting on a callback to fire,\n        // so that the async generator function has the opportunity to do\n        // any necessary setup in a predictable way. This predictability\n        // is why the Promise constructor synchronously invokes its\n        // executor callback, and why async functions synchronously\n        // execute code before the first await. Since we implement simple\n        // async functions in terms of async generators, it is especially\n        // important to get this right, even though it requires care.\n        previousPromise ? previousPromise.then(\n          callInvokeWithMethodAndArg,\n          // Avoid propagating failures to Promises returned by later\n          // invocations of the iterator.\n          callInvokeWithMethodAndArg\n        ) : callInvokeWithMethodAndArg();\n    }\n\n    // Define the unified helper method that is used to implement .next,\n    // .throw, and .return (see defineIteratorMethods).\n    this._invoke = enqueue;\n  }\n\n  defineIteratorMethods(AsyncIterator.prototype);\n  AsyncIterator.prototype[asyncIteratorSymbol] = function () {\n    return this;\n  };\n  exports.AsyncIterator = AsyncIterator;\n\n  // Note that simple async functions are implemented on top of\n  // AsyncIterator objects; they just return a Promise for the value of\n  // the final result produced by the iterator.\n  exports.async = function(innerFn, outerFn, self, tryLocsList) {\n    var iter = new AsyncIterator(\n      wrap(innerFn, outerFn, self, tryLocsList)\n    );\n\n    return exports.isGeneratorFunction(outerFn)\n      ? iter // If outerFn is a generator, return the full iterator.\n      : iter.next().then(function(result) {\n          return result.done ? result.value : iter.next();\n        });\n  };\n\n  function makeInvokeMethod(innerFn, self, context) {\n    var state = GenStateSuspendedStart;\n\n    return function invoke(method, arg) {\n      if (state === GenStateExecuting) {\n        throw new Error(\"Generator is already running\");\n      }\n\n      if (state === GenStateCompleted) {\n        if (method === \"throw\") {\n          throw arg;\n        }\n\n        // Be forgiving, per 25.3.3.3.3 of the spec:\n        // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n        return doneResult();\n      }\n\n      context.method = method;\n      context.arg = arg;\n\n      while (true) {\n        var delegate = context.delegate;\n        if (delegate) {\n          var delegateResult = maybeInvokeDelegate(delegate, context);\n          if (delegateResult) {\n            if (delegateResult === ContinueSentinel) continue;\n            return delegateResult;\n          }\n        }\n\n        if (context.method === \"next\") {\n          // Setting context._sent for legacy support of Babel's\n          // function.sent implementation.\n          context.sent = context._sent = context.arg;\n\n        } else if (context.method === \"throw\") {\n          if (state === GenStateSuspendedStart) {\n            state = GenStateCompleted;\n            throw context.arg;\n          }\n\n          context.dispatchException(context.arg);\n\n        } else if (context.method === \"return\") {\n          context.abrupt(\"return\", context.arg);\n        }\n\n        state = GenStateExecuting;\n\n        var record = tryCatch(innerFn, self, context);\n        if (record.type === \"normal\") {\n          // If an exception is thrown from innerFn, we leave state ===\n          // GenStateExecuting and loop back for another invocation.\n          state = context.done\n            ? GenStateCompleted\n            : GenStateSuspendedYield;\n\n          if (record.arg === ContinueSentinel) {\n            continue;\n          }\n\n          return {\n            value: record.arg,\n            done: context.done\n          };\n\n        } else if (record.type === \"throw\") {\n          state = GenStateCompleted;\n          // Dispatch the exception by looping back around to the\n          // context.dispatchException(context.arg) call above.\n          context.method = \"throw\";\n          context.arg = record.arg;\n        }\n      }\n    };\n  }\n\n  // Call delegate.iterator[context.method](context.arg) and handle the\n  // result, either by returning a { value, done } result from the\n  // delegate iterator, or by modifying context.method and context.arg,\n  // setting context.delegate to null, and returning the ContinueSentinel.\n  function maybeInvokeDelegate(delegate, context) {\n    var method = delegate.iterator[context.method];\n    if (method === undefined) {\n      // A .throw or .return when the delegate iterator has no .throw\n      // method always terminates the yield* loop.\n      context.delegate = null;\n\n      if (context.method === \"throw\") {\n        // Note: [\"return\"] must be used for ES3 parsing compatibility.\n        if (delegate.iterator[\"return\"]) {\n          // If the delegate iterator has a return method, give it a\n          // chance to clean up.\n          context.method = \"return\";\n          context.arg = undefined;\n          maybeInvokeDelegate(delegate, context);\n\n          if (context.method === \"throw\") {\n            // If maybeInvokeDelegate(context) changed context.method from\n            // \"return\" to \"throw\", let that override the TypeError below.\n            return ContinueSentinel;\n          }\n        }\n\n        context.method = \"throw\";\n        context.arg = new TypeError(\n          \"The iterator does not provide a 'throw' method\");\n      }\n\n      return ContinueSentinel;\n    }\n\n    var record = tryCatch(method, delegate.iterator, context.arg);\n\n    if (record.type === \"throw\") {\n      context.method = \"throw\";\n      context.arg = record.arg;\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    var info = record.arg;\n\n    if (! info) {\n      context.method = \"throw\";\n      context.arg = new TypeError(\"iterator result is not an object\");\n      context.delegate = null;\n      return ContinueSentinel;\n    }\n\n    if (info.done) {\n      // Assign the result of the finished delegate to the temporary\n      // variable specified by delegate.resultName (see delegateYield).\n      context[delegate.resultName] = info.value;\n\n      // Resume execution at the desired location (see delegateYield).\n      context.next = delegate.nextLoc;\n\n      // If context.method was \"throw\" but the delegate handled the\n      // exception, let the outer generator proceed normally. If\n      // context.method was \"next\", forget context.arg since it has been\n      // \"consumed\" by the delegate iterator. If context.method was\n      // \"return\", allow the original .return call to continue in the\n      // outer generator.\n      if (context.method !== \"return\") {\n        context.method = \"next\";\n        context.arg = undefined;\n      }\n\n    } else {\n      // Re-yield the result returned by the delegate method.\n      return info;\n    }\n\n    // The delegate iterator is finished, so forget it and continue with\n    // the outer generator.\n    context.delegate = null;\n    return ContinueSentinel;\n  }\n\n  // Define Generator.prototype.{next,throw,return} in terms of the\n  // unified ._invoke helper method.\n  defineIteratorMethods(Gp);\n\n  Gp[toStringTagSymbol] = \"Generator\";\n\n  // A Generator should always return itself as the iterator object when the\n  // @@iterator function is called on it. Some browsers' implementations of the\n  // iterator prototype chain incorrectly implement this, causing the Generator\n  // object to not be returned from this call. This ensures that doesn't happen.\n  // See https://github.com/facebook/regenerator/issues/274 for more details.\n  Gp[iteratorSymbol] = function() {\n    return this;\n  };\n\n  Gp.toString = function() {\n    return \"[object Generator]\";\n  };\n\n  function pushTryEntry(locs) {\n    var entry = { tryLoc: locs[0] };\n\n    if (1 in locs) {\n      entry.catchLoc = locs[1];\n    }\n\n    if (2 in locs) {\n      entry.finallyLoc = locs[2];\n      entry.afterLoc = locs[3];\n    }\n\n    this.tryEntries.push(entry);\n  }\n\n  function resetTryEntry(entry) {\n    var record = entry.completion || {};\n    record.type = \"normal\";\n    delete record.arg;\n    entry.completion = record;\n  }\n\n  function Context(tryLocsList) {\n    // The root entry object (effectively a try statement without a catch\n    // or a finally block) gives us a place to store values thrown from\n    // locations where there is no enclosing try statement.\n    this.tryEntries = [{ tryLoc: \"root\" }];\n    tryLocsList.forEach(pushTryEntry, this);\n    this.reset(true);\n  }\n\n  exports.keys = function(object) {\n    var keys = [];\n    for (var key in object) {\n      keys.push(key);\n    }\n    keys.reverse();\n\n    // Rather than returning an object with a next method, we keep\n    // things simple and return the next function itself.\n    return function next() {\n      while (keys.length) {\n        var key = keys.pop();\n        if (key in object) {\n          next.value = key;\n          next.done = false;\n          return next;\n        }\n      }\n\n      // To avoid creating an additional object, we just hang the .value\n      // and .done properties off the next function object itself. This\n      // also ensures that the minifier will not anonymize the function.\n      next.done = true;\n      return next;\n    };\n  };\n\n  function values(iterable) {\n    if (iterable) {\n      var iteratorMethod = iterable[iteratorSymbol];\n      if (iteratorMethod) {\n        return iteratorMethod.call(iterable);\n      }\n\n      if (typeof iterable.next === \"function\") {\n        return iterable;\n      }\n\n      if (!isNaN(iterable.length)) {\n        var i = -1, next = function next() {\n          while (++i < iterable.length) {\n            if (hasOwn.call(iterable, i)) {\n              next.value = iterable[i];\n              next.done = false;\n              return next;\n            }\n          }\n\n          next.value = undefined;\n          next.done = true;\n\n          return next;\n        };\n\n        return next.next = next;\n      }\n    }\n\n    // Return an iterator with no values.\n    return { next: doneResult };\n  }\n  exports.values = values;\n\n  function doneResult() {\n    return { value: undefined, done: true };\n  }\n\n  Context.prototype = {\n    constructor: Context,\n\n    reset: function(skipTempReset) {\n      this.prev = 0;\n      this.next = 0;\n      // Resetting context._sent for legacy support of Babel's\n      // function.sent implementation.\n      this.sent = this._sent = undefined;\n      this.done = false;\n      this.delegate = null;\n\n      this.method = \"next\";\n      this.arg = undefined;\n\n      this.tryEntries.forEach(resetTryEntry);\n\n      if (!skipTempReset) {\n        for (var name in this) {\n          // Not sure about the optimal order of these conditions:\n          if (name.charAt(0) === \"t\" &&\n              hasOwn.call(this, name) &&\n              !isNaN(+name.slice(1))) {\n            this[name] = undefined;\n          }\n        }\n      }\n    },\n\n    stop: function() {\n      this.done = true;\n\n      var rootEntry = this.tryEntries[0];\n      var rootRecord = rootEntry.completion;\n      if (rootRecord.type === \"throw\") {\n        throw rootRecord.arg;\n      }\n\n      return this.rval;\n    },\n\n    dispatchException: function(exception) {\n      if (this.done) {\n        throw exception;\n      }\n\n      var context = this;\n      function handle(loc, caught) {\n        record.type = \"throw\";\n        record.arg = exception;\n        context.next = loc;\n\n        if (caught) {\n          // If the dispatched exception was caught by a catch block,\n          // then let that catch block handle the exception normally.\n          context.method = \"next\";\n          context.arg = undefined;\n        }\n\n        return !! caught;\n      }\n\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        var record = entry.completion;\n\n        if (entry.tryLoc === \"root\") {\n          // Exception thrown outside of any try block that could handle\n          // it, so set the completion value of the entire function to\n          // throw the exception.\n          return handle(\"end\");\n        }\n\n        if (entry.tryLoc <= this.prev) {\n          var hasCatch = hasOwn.call(entry, \"catchLoc\");\n          var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n          if (hasCatch && hasFinally) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            } else if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else if (hasCatch) {\n            if (this.prev < entry.catchLoc) {\n              return handle(entry.catchLoc, true);\n            }\n\n          } else if (hasFinally) {\n            if (this.prev < entry.finallyLoc) {\n              return handle(entry.finallyLoc);\n            }\n\n          } else {\n            throw new Error(\"try statement without catch or finally\");\n          }\n        }\n      }\n    },\n\n    abrupt: function(type, arg) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc <= this.prev &&\n            hasOwn.call(entry, \"finallyLoc\") &&\n            this.prev < entry.finallyLoc) {\n          var finallyEntry = entry;\n          break;\n        }\n      }\n\n      if (finallyEntry &&\n          (type === \"break\" ||\n           type === \"continue\") &&\n          finallyEntry.tryLoc <= arg &&\n          arg <= finallyEntry.finallyLoc) {\n        // Ignore the finally entry if control is not jumping to a\n        // location outside the try/catch block.\n        finallyEntry = null;\n      }\n\n      var record = finallyEntry ? finallyEntry.completion : {};\n      record.type = type;\n      record.arg = arg;\n\n      if (finallyEntry) {\n        this.method = \"next\";\n        this.next = finallyEntry.finallyLoc;\n        return ContinueSentinel;\n      }\n\n      return this.complete(record);\n    },\n\n    complete: function(record, afterLoc) {\n      if (record.type === \"throw\") {\n        throw record.arg;\n      }\n\n      if (record.type === \"break\" ||\n          record.type === \"continue\") {\n        this.next = record.arg;\n      } else if (record.type === \"return\") {\n        this.rval = this.arg = record.arg;\n        this.method = \"return\";\n        this.next = \"end\";\n      } else if (record.type === \"normal\" && afterLoc) {\n        this.next = afterLoc;\n      }\n\n      return ContinueSentinel;\n    },\n\n    finish: function(finallyLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.finallyLoc === finallyLoc) {\n          this.complete(entry.completion, entry.afterLoc);\n          resetTryEntry(entry);\n          return ContinueSentinel;\n        }\n      }\n    },\n\n    \"catch\": function(tryLoc) {\n      for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n        var entry = this.tryEntries[i];\n        if (entry.tryLoc === tryLoc) {\n          var record = entry.completion;\n          if (record.type === \"throw\") {\n            var thrown = record.arg;\n            resetTryEntry(entry);\n          }\n          return thrown;\n        }\n      }\n\n      // The context.catch method must only be called with a location\n      // argument that corresponds to a known catch block.\n      throw new Error(\"illegal catch attempt\");\n    },\n\n    delegateYield: function(iterable, resultName, nextLoc) {\n      this.delegate = {\n        iterator: values(iterable),\n        resultName: resultName,\n        nextLoc: nextLoc\n      };\n\n      if (this.method === \"next\") {\n        // Deliberately forget the last sent value so that we don't\n        // accidentally pass it on to the delegate.\n        this.arg = undefined;\n      }\n\n      return ContinueSentinel;\n    }\n  };\n\n  // Regardless of whether this script is executing as a CommonJS module\n  // or not, return the runtime object so that we can declare the variable\n  // regeneratorRuntime in the outer scope, which allows this module to be\n  // injected easily by `bin/regenerator --include-runtime script.js`.\n  return exports;\n\n}(\n  // If this script is executing as a CommonJS module, use module.exports\n  // as the regeneratorRuntime namespace. Otherwise create a new empty\n  // object. Either way, the resulting object will be used to initialize\n  // the regeneratorRuntime variable at the top of this file.\n  typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n  regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n  // This module should not be running in strict mode, so the above\n  // assignment should always work unless something is misconfigured. Just\n  // in case runtime.js accidentally runs in strict mode, we can escape\n  // strict mode using a global Function call. This could conceivably fail\n  // if a Content Security Policy forbids using Function, but in that case\n  // the proper solution is to fix the accidental strict mode problem. If\n  // you've misconfigured your bundler to force strict mode and applied a\n  // CSP to forbid Function, and you're not willing to fix either of those\n  // problems, please detail your unique predicament in a GitHub issue.\n  Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n}\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","const createJob = require('./createJob');\nconst { log } = require('./utils/log');\nconst getId = require('./utils/getId');\n\nlet schedulerCounter = 0;\n\nmodule.exports = () => {\n  const id = getId('Scheduler', schedulerCounter);\n  const workers = {};\n  const runningWorkers = {};\n  let jobQueue = [];\n\n  schedulerCounter += 1;\n\n  const getQueueLen = () => jobQueue.length;\n  const getNumWorkers = () => Object.keys(workers).length;\n\n  const dequeue = () => {\n    if (jobQueue.length !== 0) {\n      const wIds = Object.keys(workers);\n      for (let i = 0; i < wIds.length; i += 1) {\n        if (typeof runningWorkers[wIds[i]] === 'undefined') {\n          jobQueue[0](workers[wIds[i]]);\n          break;\n        }\n      }\n    }\n  };\n\n  const queue = (action, payload) => (\n    new Promise((resolve, reject) => {\n      const job = createJob({ action, payload });\n      jobQueue.push(async (w) => {\n        jobQueue.shift();\n        runningWorkers[w.id] = job;\n        try {\n          resolve(await w[action].apply(this, [...payload, job.id]));\n        } catch (err) {\n          reject(err);\n        } finally {\n          delete runningWorkers[w.id];\n          dequeue();\n        }\n      });\n      log(`[${id}]: Add ${job.id} to JobQueue`);\n      log(`[${id}]: JobQueue length=${jobQueue.length}`);\n      dequeue();\n    })\n  );\n\n  const addWorker = (w) => {\n    workers[w.id] = w;\n    log(`[${id}]: Add ${w.id}`);\n    log(`[${id}]: Number of workers=${getNumWorkers()}`);\n    dequeue();\n    return w.id;\n  };\n\n  const addJob = async (action, ...payload) => {\n    if (getNumWorkers() === 0) {\n      throw Error(`[${id}]: You need to have at least one worker before adding jobs`);\n    }\n    return queue(action, payload);\n  };\n\n  const terminate = async () => {\n    Object.keys(workers).forEach(async (wid) => {\n      await workers[wid].terminate();\n    });\n    jobQueue = [];\n  };\n\n  return {\n    addWorker,\n    addJob,\n    terminate,\n    getQueueLen,\n    getNumWorkers,\n  };\n};\n","const isBrowser = require('./getEnvironment')('type') === 'browser';\nconst resolveURL = isBrowser ? require('resolve-url') : s => s; // eslint-disable-line\n\nmodule.exports = (options) => {\n  const opts = { ...options };\n  ['corePath', 'workerPath', 'langPath'].forEach((key) => {\n    if (typeof options[key] !== 'undefined') {\n      opts[key] = resolveURL(opts[key]);\n    }\n  });\n  return opts;\n};\n","const isElectron = require('is-electron');\n\nmodule.exports = (key) => {\n  const env = {};\n\n  if (isElectron()) {\n    env.type = 'electron';\n  } else if (typeof window === 'object') {\n    env.type = 'browser';\n  } else if (typeof importScripts === 'function') {\n    env.type = 'webworker';\n  } else if (typeof process === 'object' && typeof require === 'function') {\n    env.type = 'node';\n  }\n\n  if (typeof key === 'undefined') {\n    return env;\n  }\n\n  return env[key];\n};\n","// https://github.com/electron/electron/issues/2288\nfunction isElectron() {\n    // Renderer process\n    if (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n        return true;\n    }\n\n    // Main process\n    if (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n        return true;\n    }\n\n    // Detect the user agent when the `nodeIntegration` option is set to true\n    if (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') >= 0) {\n        return true;\n    }\n\n    return false;\n}\n\nmodule.exports = isElectron;\n","/**\n * In the recognition result of tesseract, there\n * is a deep JSON object for details, it has around\n *\n * The result of dump.js is a big JSON tree\n * which can be easily serialized (for instance\n * to be sent from a webworker to the main app\n * or through Node's IPC), but we want\n * a (circular) DOM-like interface for walking\n * through the data.\n *\n * @fileoverview DOM-like interface for walking through data\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\n\nmodule.exports = (page) => {\n  const blocks = [];\n  const paragraphs = [];\n  const lines = [];\n  const words = [];\n  const symbols = [];\n\n  page.blocks.forEach((block) => {\n    block.paragraphs.forEach((paragraph) => {\n      paragraph.lines.forEach((line) => {\n        line.words.forEach((word) => {\n          word.symbols.forEach((sym) => {\n            symbols.push({\n              ...sym, page, block, paragraph, line, word,\n            });\n          });\n          words.push({\n            ...word, page, block, paragraph, line,\n          });\n        });\n        lines.push({\n          ...line, page, block, paragraph,\n        });\n      });\n      paragraphs.push({\n        ...paragraph, page, block,\n      });\n    });\n    blocks.push({\n      ...block, page,\n    });\n  });\n\n  return {\n    ...page, blocks, paragraphs, lines, words, symbols,\n  };\n};\n","const OEM = require('./OEM');\n\nmodule.exports = {\n  defaultOEM: OEM.DEFAULT,\n};\n","/**\n *\n * Tesseract Worker adapter for browser\n *\n * @fileoverview Tesseract Worker adapter for browser\n * @author Kevin Kwok <antimatter15@gmail.com>\n * @author Guillermo Webster <gui@mit.edu>\n * @author Jerome Wu <jeromewus@gmail.com>\n */\nconst defaultOptions = require('./defaultOptions');\nconst spawnWorker = require('./spawnWorker');\nconst terminateWorker = require('./terminateWorker');\nconst onMessage = require('./onMessage');\nconst send = require('./send');\nconst loadImage = require('./loadImage');\n\nmodule.exports = {\n  defaultOptions,\n  spawnWorker,\n  terminateWorker,\n  onMessage,\n  send,\n  loadImage,\n};\n","const resolveURL = require('resolve-url');\nconst { version, dependencies } = require('../../../package.json');\nconst defaultOptions = require('../../constants/defaultOptions');\n\n/*\n * Default options for browser worker\n */\nmodule.exports = {\n  ...defaultOptions,\n  workerPath: (typeof process !== 'undefined' && process.env.TESS_ENV === 'development')\n    ? resolveURL(`/dist/worker.dev.js?nocache=${Math.random().toString(36).slice(3)}`)\n    : `https://unpkg.com/tesseract.js@v${version}/dist/worker.min.js`,\n  /*\n   * If browser doesn't support WebAssembly,\n   * load ASM version instead\n   */\n  corePath: `https://unpkg.com/tesseract.js-core@v${dependencies['tesseract.js-core'].substring(1)}/tesseract-core.${typeof WebAssembly === 'object' ? 'wasm' : 'asm'}.js`,\n};\n","module.exports = {\n  /*\n   * default path for downloading *.traineddata\n   */\n  langPath: 'https://tessdata.projectnaptha.com/4.0.0',\n  /*\n   * Use BlobURL for worker script by default\n   * TODO: remove this option\n   *\n   */\n  workerBlobURL: true,\n  logger: () => {},\n};\n","/**\n * spawnWorker\n *\n * @name spawnWorker\n * @function create a new Worker in browser\n * @access public\n */\nmodule.exports = ({ workerPath, workerBlobURL }) => {\n  let worker;\n  if (Blob && URL && workerBlobURL) {\n    const blob = new Blob([`importScripts(\"${workerPath}\");`], {\n      type: 'application/javascript',\n    });\n    worker = new Worker(URL.createObjectURL(blob));\n  } else {\n    worker = new Worker(workerPath);\n  }\n\n  return worker;\n};\n","/**\n * terminateWorker\n *\n * @name terminateWorker\n * @function terminate worker\n * @access public\n */\nmodule.exports = (worker) => {\n  worker.terminate();\n};\n","module.exports = (worker, handler) => {\n  worker.onmessage = ({ data }) => { // eslint-disable-line\n    handler(data);\n  };\n};\n","/**\n * send\n *\n * @name send\n * @function send packet to worker and create a job\n * @access public\n */\nmodule.exports = async (worker, packet) => {\n  worker.postMessage(packet);\n};\n","const resolveURL = require('resolve-url');\n\n/**\n * readFromBlobOrFile\n *\n * @name readFromBlobOrFile\n * @function\n * @access private\n */\nconst readFromBlobOrFile = blob => (\n  new Promise((resolve, reject) => {\n    const fileReader = new FileReader();\n    fileReader.onload = () => {\n      resolve(fileReader.result);\n    };\n    fileReader.onerror = ({ target: { error: { code } } }) => {\n      reject(Error(`File could not be read! Code=${code}`));\n    };\n    fileReader.readAsArrayBuffer(blob);\n  })\n);\n\n/**\n * loadImage\n *\n * @name loadImage\n * @function load image from different source\n * @access private\n */\nconst loadImage = async (image) => {\n  let data = image;\n  if (typeof image === 'undefined') {\n    return 'undefined';\n  }\n\n  if (typeof image === 'string') {\n    // Base64 Image\n    if (/data:image\\/([a-zA-Z]*);base64,([^\"]*)/.test(image)) {\n      data = atob(image.split(',')[1])\n        .split('')\n        .map(c => c.charCodeAt(0));\n    } else {\n      const resp = await fetch(resolveURL(image));\n      data = await resp.arrayBuffer();\n    }\n  } else if (image instanceof HTMLElement) {\n    if (image.tagName === 'IMG') {\n      data = await loadImage(image.src);\n    }\n    if (image.tagName === 'VIDEO') {\n      data = await loadImage(image.poster);\n    }\n    if (image.tagName === 'CANVAS') {\n      await new Promise((resolve) => {\n        image.toBlob(async (blob) => {\n          data = await readFromBlobOrFile(blob);\n          resolve();\n        });\n      });\n    }\n  } else if (image instanceof File || image instanceof Blob) {\n    data = await readFromBlobOrFile(image);\n  }\n\n  return new Uint8Array(data);\n};\n\nmodule.exports = loadImage;\n","const createWorker = require('./createWorker');\n\nconst recognize = async (image, langs, options) => {\n  const worker = createWorker(options);\n  await worker.load();\n  await worker.loadLanguage(langs);\n  await worker.initialize(langs);\n  return worker.recognize(image)\n    .finally(async () => {\n      await worker.terminate();\n    });\n};\n\nconst detect = async (image, options) => {\n  const worker = createWorker(options);\n  await worker.load();\n  await worker.loadLanguage('osd');\n  await worker.initialize('osd');\n  return worker.detect(image)\n    .finally(async () => {\n      await worker.terminate();\n    });\n};\n\nmodule.exports = {\n  recognize,\n  detect,\n};\n","/*\n * PSM = Page Segmentation Mode\n */\nmodule.exports = {\n  OSD_ONLY: '0',\n  AUTO_OSD: '1',\n  AUTO_ONLY: '2',\n  AUTO: '3',\n  SINGLE_COLUMN: '4',\n  SINGLE_BLOCK_VERT_TEXT: '5',\n  SINGLE_BLOCK: '6',\n  SINGLE_LINE: '7',\n  SINGLE_WORD: '8',\n  CIRCLE_WORD: '9',\n  SINGLE_CHAR: '10',\n  SPARSE_TEXT: '11',\n  SPARSE_TEXT_OSD: '12',\n};\n"],"sourceRoot":""}