{"version":3,"file":"indexeddbshim-UnicodeIdentifiers-node.cjs","sources":["../node_modules/eventtargeter/dist/index-es.js","../src/CFG.js","../src/unicode-regex.js","../src/util.js","../src/Event.js","../src/IDBVersionChangeEvent.js","../src/DOMException.js","../src/IDBRequest.js","../node_modules/sync-promise-expanded/index.js","../src/cmp.js","../src/Key.js","../src/IDBKeyRange.js","../src/DOMStringList.js","../src/IDBTransaction.js","../node_modules/typeson-registry/dist/index.min.js","../src/Sca.js","../src/IDBIndex.js","../src/IDBObjectStore.js","../src/IDBDatabase.js","../src/IDBFactory.js","../src/IDBCursor.js","../src/setGlobalVars.js","../node_modules/immediate/lib/nextTick.js","../node_modules/immediate/lib/queueMicrotask.js","../node_modules/immediate/lib/mutation.js","../node_modules/immediate/lib/messageChannel.js","../node_modules/immediate/lib/stateChange.js","../node_modules/immediate/lib/timeout.js","../node_modules/immediate/lib/index.js","../node_modules/tiny-queue/index.js","../node_modules/noop-fn/index.js","../node_modules/websql-configurable/lib/websql/WebSQLResultSet.js","../node_modules/websql-configurable/lib/websql/WebSQLTransaction.js","../node_modules/websql-configurable/lib/websql/WebSQLDatabase.js","../node_modules/websql-configurable/lib/custom.js","../node_modules/@mapbox/node-pre-gyp/lib/util/s3_setup.js","../node_modules/abbrev/abbrev.js","../node_modules/nopt/lib/nopt.js","../node_modules/are-we-there-yet/lib/tracker-base.js","../node_modules/are-we-there-yet/lib/tracker.js","../node_modules/delegates/index.js","../node_modules/are-we-there-yet/lib/tracker-stream.js","../node_modules/are-we-there-yet/lib/tracker-group.js","../node_modules/are-we-there-yet/lib/index.js","../node_modules/console-control-strings/index.js","../node_modules/strip-ansi/node_modules/ansi-regex/index.js","../node_modules/strip-ansi/index.js","../node_modules/is-fullwidth-code-point/index.js","../node_modules/emoji-regex/index.js","../node_modules/string-width/index.js","../node_modules/wide-align/align.js","../node_modules/aproba/index.js","../node_modules/gauge/wide-truncate.js","../node_modules/gauge/error.js","../node_modules/gauge/template-item.js","../node_modules/gauge/render-template.js","../node_modules/gauge/plumbing.js","../node_modules/has-unicode/index.js","../node_modules/color-support/index.js","../node_modules/gauge/has-color.js","../node_modules/signal-exit/signals.js","../node_modules/signal-exit/index.js","../node_modules/object-assign/index.js","../node_modules/gauge/spin.js","../node_modules/gauge/progress-bar.js","../node_modules/gauge/base-theme.js","../node_modules/gauge/theme-set.js","../node_modules/gauge/themes.js","../node_modules/gauge/set-interval.js","../node_modules/gauge/process.js","../node_modules/gauge/set-immediate.js","../node_modules/gauge/index.js","../node_modules/set-blocking/index.js","../node_modules/npmlog/log.js","../node_modules/fs.realpath/old.js","../node_modules/fs.realpath/index.js","../node_modules/concat-map/index.js","../node_modules/balanced-match/index.js","../node_modules/brace-expansion/index.js","../node_modules/minimatch/minimatch.js","../node_modules/inherits/inherits_browser.js","../node_modules/inherits/inherits.js","../node_modules/path-is-absolute/index.js","../node_modules/@mapbox/node-pre-gyp/node_modules/glob/common.js","../node_modules/@mapbox/node-pre-gyp/node_modules/glob/sync.js","../node_modules/wrappy/wrappy.js","../node_modules/once/once.js","../node_modules/inflight/inflight.js","../node_modules/@mapbox/node-pre-gyp/node_modules/glob/glob.js","../node_modules/@mapbox/node-pre-gyp/node_modules/rimraf/rimraf.js","../node_modules/@mapbox/node-pre-gyp/lib/util/napi.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/internal/constants.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/internal/debug.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/internal/re.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/internal/parse-options.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/internal/identifiers.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/classes/semver.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/parse.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/valid.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/clean.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/inc.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/diff.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/major.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/minor.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/patch.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/prerelease.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/compare.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/rcompare.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/compare-loose.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/compare-build.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/sort.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/rsort.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/gt.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/lt.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/eq.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/neq.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/gte.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/lte.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/cmp.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/coerce.js","../node_modules/@mapbox/node-pre-gyp/node_modules/yallist/iterator.js","../node_modules/@mapbox/node-pre-gyp/node_modules/yallist/yallist.js","../node_modules/@mapbox/node-pre-gyp/node_modules/lru-cache/index.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/classes/range.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/classes/comparator.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/functions/satisfies.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/to-comparators.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/max-satisfying.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/min-satisfying.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/min-version.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/valid.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/outside.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/gtr.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/ltr.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/intersects.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/simplify.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/ranges/subset.js","../node_modules/@mapbox/node-pre-gyp/node_modules/semver/index.js","../node_modules/detect-libc/lib/process.js","../node_modules/detect-libc/lib/filesystem.js","../node_modules/detect-libc/lib/detect-libc.js","../node_modules/@mapbox/node-pre-gyp/lib/util/versioning.js","../node_modules/@mapbox/node-pre-gyp/lib/pre-binding.js","../node_modules/@mapbox/node-pre-gyp/lib/node-pre-gyp.js","../node_modules/sqlite3/lib/sqlite3-binding.js","../node_modules/sqlite3/lib/trace.js","../node_modules/sqlite3/lib/sqlite3.js","../node_modules/websql-configurable/lib/sqlite/SQLiteResult.js","../node_modules/websql-configurable/lib/sqlite/SQLiteDatabase.js","../src/nodeWebSQL.js","../src/UnicodeIdentifiers.js","../src/node-UnicodeIdentifiers.js"],"sourcesContent":["function _typeof(obj) {\n  \"@babel/helpers - typeof\";\n\n  return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n    return typeof obj;\n  } : function (obj) {\n    return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n  }, _typeof(obj);\n}\n\n/* eslint-disable n/no-sync -- Want sync naming */\n/* eslint-disable no-restricted-syntax -- Instanceof checks */\n/* eslint-disable unicorn/no-this-assignment -- TS */\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @callback InvokeCurrentListeners\n * @param {AllListeners} listeners\n * @param {EventWithProps} eventCopy\n * @param {string} type\n * @param {boolean} [checkOnListeners]\n * @returns {boolean}\n */\n\n/**\n * @typedef {{\n *   defaultSync?: boolean,\n *   extraProperties?: string[],\n *   legacyOutputDidListenersThrowFlag?: boolean\n * }} CustomOptions\n */\n/**\n * @typedef {{\n *   __legacyOutputDidListenersThrowError: unknown,\n *   target: EventTarget & {\n *     invokeCurrentListeners: InvokeCurrentListeners,\n *     _earlyListeners: AllListeners,\n *     _listeners: AllListeners,\n *     _lateListeners: AllListeners,\n *     _defaultListeners: AllListeners\n *   },\n *   composed: boolean,\n *   currentTarget: EventTarget,\n *   eventPhase: 0|1|2|3\n *   defaultPrevented: boolean,\n *   type: string,\n *   bubbles: boolean,\n *   cancelable: boolean,\n *   isTrusted: boolean,\n *   timeStamp: Integer,\n *   initEvent: (type: string, bubbles: boolean, cancelable: boolean) => void,\n *   preventDefault: () => void,\n *   composedPath: () => void,\n *   detail: any,\n *   initCustomEvent: (\n *     type: string, canBubble: boolean, cancelable: boolean,\n *     detail: any\n *   ) => void\n * }} EventWithProps\n */\n\n// Todo: Switch to ES6 classes\n\nvar phases = {\n  NONE: 0,\n  CAPTURING_PHASE: 1,\n  AT_TARGET: 2,\n  BUBBLING_PHASE: 3\n};\nvar ShimDOMException = typeof DOMException === 'undefined'\n// Todo: Better polyfill (if even needed here)\n/* eslint-disable no-shadow -- Polyfill */\n// eslint-disable-next-line operator-linebreak -- TS/JSDoc needs\n?\n/**\n * @param {string} msg\n * @param {string} name\n * @returns {Error}\n */\nfunction DOMException(msg, name) {\n  // No need for `toString` as same as for `Error`\n  /* eslint-enable no-shadow -- Polyfill */\n  var err = new Error(msg);\n  err.name = name;\n  return err;\n} : DOMException;\nvar ev = new WeakMap();\nvar evCfg = new WeakMap();\n\n// Todo: Set _ev argument outside of this function\n\n/* eslint-disable func-name-matching -- Shim vs. Polyfill */\n/* eslint-disable no-shadow -- Polyfilling */\n/**\n* We use an adapter class rather than a proxy not only for compatibility\n* but also since we have to clone native event properties anyways in order\n* to properly set `target`, etc.\n* The regular DOM method `dispatchEvent` won't work with this polyfill as\n* it expects a native event.\n* @class\n* @param {string} type\n*/\nvar ShimEvent = /** @type {unknown} */function Event(type) {\n  var _this = this;\n  /* eslint-enable func-name-matching -- Shim vs. Polyfill */\n  /* eslint-enable no-shadow -- Polyfilling */\n  // For WebIDL checks of function's `length`, we check `arguments` for the optional arguments\n  // @ts-expect-error\n  this[Symbol.toStringTag] = 'Event';\n  this.toString = function () {\n    return '[object Event]';\n  };\n  // eslint-disable-next-line prefer-rest-params -- Don't want to change signature\n  var _arguments = Array.prototype.slice.call(arguments),\n    evInit = _arguments[1],\n    _ev = _arguments[2];\n  if (!arguments.length) {\n    throw new TypeError(\"Failed to construct 'Event': 1 argument required, but only 0 present.\");\n  }\n  evInit = evInit || {};\n  _ev = _ev || {};\n\n  /** @type {EventWithProps} */\n  var _evCfg = {};\n  if ('composed' in evInit) {\n    _evCfg.composed = evInit.composed;\n  }\n\n  // _evCfg.isTrusted = true; // We are not always using this for user-created events\n  // _evCfg.timeStamp = new Date().valueOf(); // This is no longer a timestamp, but monotonic (elapsed?)\n\n  ev.set(this, _ev);\n  evCfg.set(this, _evCfg);\n  var that = /** @type {unknown} */this;\n  /** @type {ShimEvent} */\n  that.initEvent(type, evInit.bubbles, evInit.cancelable);\n  ['target', 'currentTarget', 'eventPhase', 'defaultPrevented'].forEach(function (pr) {\n    var prop = /** @type {\"target\"|\"currentTarget\"|\"eventPhase\"|\"defaultPrevented\"} */\n    pr;\n    Object.defineProperty(_this, prop, {\n      get: function get() {\n        return (/* prop in _evCfg && */_evCfg[prop] !== undefined ? _evCfg[prop] : prop in _ev ? _ev[prop] :\n          // Defaults\n          prop === 'eventPhase' ? 0 : prop === 'defaultPrevented' ? false : null\n        );\n      }\n    });\n  });\n  var props = [\n  // Event\n  'type', 'bubbles', 'cancelable',\n  // Defaults to false\n  'isTrusted', 'timeStamp', 'initEvent',\n  // Other event properties (not used by our code)\n  'composedPath', 'composed'];\n  if (this.toString() === '[object CustomEvent]') {\n    props.push('detail', 'initCustomEvent');\n  }\n  Object.defineProperties(this, props.reduce(function (obj, pr) {\n    var prop =\n    /**\n     * @type {\"type\"|\"bubbles\"|\"cancelable\"|\"isTrusted\"|\n     *   \"timeStamp\"|\"initEvent\"|\"composedPath\"|\"composed\"|\n     *   \"detail\"|\"initCustomEvent\"\n     * }\n     */\n    pr;\n    obj[prop] = {\n      get: function get() {\n        return prop in _evCfg ? _evCfg[prop] : prop in _ev ? _ev[prop] : ['bubbles', 'cancelable', 'composed'].includes(prop) ? false : undefined;\n      }\n    };\n    return obj;\n  }, /** @type {{[key: string]: any}} */{}));\n};\n\n// @ts-expect-error Casting doesn't work\nShimEvent.prototype.preventDefault = function () {\n  // @ts-expect-error Needed for exporting\n  if (!(this instanceof ShimEvent)) {\n    throw new TypeError('Illegal invocation');\n  }\n  var _ev = ev.get(this);\n  var _evCfg = evCfg.get(this);\n  if (this.cancelable && !_evCfg._passive) {\n    _evCfg.defaultPrevented = true;\n    if (typeof _ev.preventDefault === 'function') {\n      // Prevent any predefined defaults\n      _ev.preventDefault();\n    }\n  }\n};\n\n// @ts-expect-error Casting doesn't work\nShimEvent.prototype.stopImmediatePropagation = function () {\n  var _evCfg = evCfg.get(this);\n  _evCfg._stopImmediatePropagation = true;\n};\n\n// @ts-expect-error Casting doesn't work\nShimEvent.prototype.stopPropagation = function () {\n  var _evCfg = evCfg.get(this);\n  _evCfg._stopPropagation = true;\n};\n\n// @ts-expect-error Casting doesn't work\nShimEvent.prototype.initEvent = function (type, bubbles, cancelable) {\n  // Chrome currently has function length 1 only but WebIDL says 3\n  // const bubbles = arguments[1];\n  // const cancelable = arguments[2];\n  var _evCfg = evCfg.get(this);\n  if (_evCfg._dispatched) {\n    return;\n  }\n  Object.defineProperty(this, 'type', {\n    enumerable: true,\n    configurable: true,\n    get: function get() {\n      return type;\n    }\n  });\n  Object.defineProperty(this, 'bubbles', {\n    enumerable: true,\n    configurable: true,\n    get: function get() {\n      return bubbles;\n    }\n  });\n  Object.defineProperty(this, 'cancelable', {\n    enumerable: true,\n    configurable: true,\n    get: function get() {\n      return cancelable;\n    }\n  });\n  _evCfg.type = type;\n  if (bubbles !== undefined) {\n    _evCfg.bubbles = bubbles;\n  }\n  if (cancelable !== undefined) {\n    _evCfg.cancelable = cancelable;\n  }\n};\n['type', 'target', 'currentTarget'].forEach(function (prop) {\n  // @ts-expect-error Casting doesn't work\n  Object.defineProperty(ShimEvent.prototype, prop, {\n    enumerable: true,\n    configurable: true,\n    get: function get() {\n      throw new TypeError('Illegal invocation');\n    }\n  });\n});\n['eventPhase', 'defaultPrevented', 'bubbles', 'cancelable', 'timeStamp'].forEach(function (prop) {\n  // @ts-expect-error Casting doesn't work\n  Object.defineProperty(ShimEvent.prototype, prop, {\n    enumerable: true,\n    configurable: true,\n    get: function get() {\n      throw new TypeError('Illegal invocation');\n    }\n  });\n});\n['NONE', 'CAPTURING_PHASE', 'AT_TARGET', 'BUBBLING_PHASE'].forEach(function (prop, i) {\n  Object.defineProperty(ShimEvent, prop, {\n    enumerable: true,\n    writable: false,\n    value: i\n  });\n  // @ts-expect-error Casting doesn't work\n  Object.defineProperty(ShimEvent.prototype, prop, {\n    writable: false,\n    value: i\n  });\n});\n// @ts-expect-error Casting doesn't work\nShimEvent[Symbol.toStringTag] = 'Function';\n\n// @ts-expect-error Casting doesn't work\nShimEvent.prototype[Symbol.toStringTag] = 'EventPrototype';\nObject.defineProperty(ShimEvent, 'prototype', {\n  writable: false\n});\n\n/* eslint-disable func-name-matching -- Polyfill */\n/* eslint-disable no-shadow -- Polyfill */\n/**\n * @class\n * @param {string} type\n */\nvar ShimCustomEvent = /** @type {unknown} */function CustomEvent(type) {\n  /* eslint-enable func-name-matching -- Polyfill */\n  /* eslint-enable no-shadow -- Polyfill */\n\n  // eslint-disable-next-line prefer-rest-params -- Keep signature\n  var _arguments2 = Array.prototype.slice.call(arguments),\n    evInit = _arguments2[1],\n    _ev = _arguments2[2];\n  // @ts-expect-error Casting doesn't work\n  ShimEvent.call(this, type, evInit, _ev);\n  // @ts-expect-error\n  this[Symbol.toStringTag] = 'CustomEvent';\n  this.toString = function () {\n    return '[object CustomEvent]';\n  };\n  // var _evCfg = evCfg.get(this);\n  evInit = evInit || {};\n  // @ts-ignore\n  this.initCustomEvent(type, evInit.bubbles, evInit.cancelable, 'detail' in evInit ? evInit.detail : null);\n};\n// @ts-expect-error Casting doesn't work\nObject.defineProperty(ShimCustomEvent.prototype, 'constructor', {\n  enumerable: false,\n  writable: true,\n  configurable: true,\n  value: ShimCustomEvent\n});\n// @ts-expect-error Casting doesn't work\nShimCustomEvent.prototype.initCustomEvent = function (type, bubbles, cancelable, detail) {\n  // @ts-expect-error Needed for exporting\n  if (!(this instanceof ShimCustomEvent)) {\n    throw new TypeError('Illegal invocation');\n  }\n  var _evCfg = evCfg.get(this);\n  // @ts-expect-error Casting doesn't work\n  ShimCustomEvent.call(this, type, {\n    bubbles: bubbles,\n    cancelable: cancelable,\n    detail: detail\n    // eslint-disable-next-line prefer-rest-params -- Keep signature\n  }, arguments[4]);\n  if (_evCfg._dispatched) {\n    return;\n  }\n  if (detail !== undefined) {\n    _evCfg.detail = detail;\n  }\n  Object.defineProperty(this, 'detail', {\n    get: function get() {\n      return _evCfg.detail;\n    }\n  });\n};\n// @ts-expect-error Casting doesn't work\nShimCustomEvent[Symbol.toStringTag] = 'Function';\n// @ts-expect-error Casting doesn't work\nShimCustomEvent.prototype[Symbol.toStringTag] = 'CustomEventPrototype';\n\n// @ts-expect-error Casting doesn't work\nObject.defineProperty(ShimCustomEvent.prototype, 'detail', {\n  enumerable: true,\n  configurable: true,\n  get: function get() {\n    throw new TypeError('Illegal invocation');\n  }\n});\nObject.defineProperty(ShimCustomEvent, 'prototype', {\n  writable: false\n});\n\n/**\n *\n * @param {EventWithProps} e\n * @returns {EventWithProps}\n */\nfunction copyEvent(e) {\n  var bubbles = e.bubbles,\n    cancelable = e.cancelable,\n    detail = e.detail,\n    type = e.type;\n  if ('detail' in e) {\n    // @ts-expect-error Casting doesn't work\n    return new ShimCustomEvent(type, {\n      bubbles: bubbles,\n      cancelable: cancelable,\n      detail: detail\n    }, e);\n  }\n  // @ts-expect-error Casting doesn't work\n  return new ShimEvent(type, {\n    bubbles: bubbles,\n    cancelable: cancelable\n  }, e);\n}\n\n/**\n* @typedef {object} ListenerOptions\n* @property {boolean} [once] Remove listener after invoking once\n* @property {boolean} [passive] Don't allow `preventDefault`\n* @property {boolean} [capture] Use `_children` and set `eventPhase`\n*/\n\n/**\n* @typedef {object} ListenerAndOptions\n* @property {Listener} listener\n* @property {ListenerOptions} options\n*/\n\n/**\n* @typedef {object} ListenerInfo\n* @property {ListenerAndOptions[]} listenersByTypeOptions\n* @property {ListenerOptions} options\n* @property {ListenerAndOptions[]} listenersByType\n*/\n\n/**\n* @callback Listener\n* @param {EventWithProps} e\n* @returns {boolean}\n*/\n\n/**\n * Keys are event types.\n * @typedef {{[key: string]: Listener[]}} Listeners\n */\n\n/**\n * @typedef {{\n *   [type: string]: ListenerAndOptions[]\n * }} AllListeners\n */\n\n/**\n *\n * @param {AllListeners} listeners\n * @param {string} type\n * @param {boolean|ListenerOptions} options\n * @returns {ListenerInfo}\n */\nfunction getListenersOptions(listeners, type, options) {\n  var listenersByType = listeners[type];\n  if (listenersByType === undefined) listeners[type] = listenersByType = [];\n  var opts = typeof options === 'boolean' ? {\n    capture: options\n  } : options || {};\n  var stringifiedOptions = JSON.stringify(opts);\n  var listenersByTypeOptions = listenersByType.filter(function (obj) {\n    return stringifiedOptions === JSON.stringify(obj.options);\n  });\n  return {\n    listenersByTypeOptions: listenersByTypeOptions,\n    options: opts,\n    listenersByType: listenersByType\n  };\n}\nvar methods = {\n  /**\n   * @param {AllListeners} listeners\n   * @param {Listener} listener\n   * @param {string} type\n   * @param {boolean|ListenerOptions} options\n   * @returns {void}\n   */\n  addListener: function addListener(listeners, listener, type, options) {\n    var listenersOptions = getListenersOptions(listeners, type, options);\n    var listenersByTypeOptions = listenersOptions.listenersByTypeOptions;\n    options = listenersOptions.options;\n    var listenersByType = listenersOptions.listenersByType;\n    if (listenersByTypeOptions.some(function (l) {\n      return l.listener === listener;\n    })) return;\n    listenersByType.push({\n      listener: listener,\n      options: options\n    });\n  },\n  /**\n   * @param {AllListeners} listeners\n   * @param {Listener} listener\n   * @param {string} type\n   * @param {boolean|ListenerOptions} options\n   * @returns {void}\n   */\n  removeListener: function removeListener(listeners, listener, type, options) {\n    var listenersOptions = getListenersOptions(listeners, type, options);\n    var listenersByType = listenersOptions.listenersByType;\n    var stringifiedOptions = JSON.stringify(listenersOptions.options);\n    listenersByType.some(function (l, i) {\n      if (l.listener === listener && stringifiedOptions === JSON.stringify(l.options)) {\n        listenersByType.splice(i, 1);\n        if (!listenersByType.length) delete listeners[type];\n        return true;\n      }\n      return false;\n    });\n  },\n  /**\n   *\n   * @param {AllListeners} listeners\n   * @param {Listener} listener\n   * @param {string} type\n   * @param {boolean|ListenerOptions} options\n   * @returns {boolean}\n   */\n  hasListener: function hasListener(listeners, listener, type, options) {\n    var listenersOptions = getListenersOptions(listeners, type, options);\n    var listenersByTypeOptions = listenersOptions.listenersByTypeOptions;\n    return listenersByTypeOptions.some(function (l) {\n      return l.listener === listener;\n    });\n  }\n};\n\n/* eslint-disable no-shadow -- Polyfill */\n/**\n * @class\n */\nfunction EventTarget() {\n  /* eslint-enable no-shadow -- Polyfill */\n  throw new TypeError('Illegal constructor');\n}\n\n/**\n * @typedef {\"addEarlyEventListener\"|\"removeEarlyEventListener\"|\"hasEarlyEventListener\"|\n *   \"addEventListener\"|\"removeEventListener\"|\"hasEventListener\"|\n *   \"addLateEventListener\"|\"removeLateEventListener\"|\"hasLateEventListener\"|\n *   \"addDefaultEventListener\"|\"removeDefaultEventListener\"|\"hasDefaultEventListener\"\n * } ListenerName\n */\nObject.assign(EventTarget.prototype, ['Early', '', 'Late', 'Default'].reduce(function ( /** @type {{[key: string]: Function}} */\nobj, listenerType) {\n  ['add', 'remove', 'has'].forEach(function (method) {\n    var mainMethod = /** @type {ListenerName} */method + listenerType + 'EventListener';\n    /**\n     * @param {string} type\n     * @param {Listener|{handleEvent: Listener}} listener\n     * @this {EventTarget & {\n     *   _earlyListeners: AllListeners,\n     *   _listeners: AllListeners,\n     *   _lateListeners: AllListeners,\n     *   _defaultListeners: AllListeners,\n     * }}\n     * @returns {boolean|void}\n     */\n    obj[mainMethod] = function (type, listener) {\n      // eslint-disable-next-line prefer-rest-params -- Keep signature\n      var options = arguments[2]; // We keep the listener `length` as per WebIDL\n      if (arguments.length < 2) throw new TypeError('2 or more arguments required');\n      if (typeof type !== 'string') {\n        // @ts-expect-error It's ok to construct\n        throw new ShimDOMException('UNSPECIFIED_EVENT_TYPE_ERR', 'UNSPECIFIED_EVENT_TYPE_ERR');\n      }\n      try {\n        // As per code such as the following, handleEvent may throw,\n        //  but is uncaught\n        // https://github.com/web-platform-tests/wpt/blob/master/IndexedDB/fire-error-event-exception.html#L54-L56\n        if ('handleEvent' in listener && listener.handleEvent.bind) {\n          listener = listener.handleEvent.bind(listener);\n        }\n      } catch (err) {\n        // eslint-disable-next-line no-console -- Feedback to user\n        console.log('Uncaught `handleEvent` error', err);\n      }\n      var arrStr = /** @type {\"_earlyListeners\"|\"_listeners\"|\"_lateListeners\"|\"_defaultListeners\"} */\n      '_' + listenerType.toLowerCase() + (listenerType === '' ? 'l' : 'L') + 'isteners';\n      if (!this[arrStr]) {\n        Object.defineProperty(this, arrStr, {\n          value: {}\n        });\n      }\n      var meth = /** @type {\"addListener\"|\"removeListener\"|\"hasListener\"} */\n      method + 'Listener';\n      return methods[meth](this[arrStr], /** @type {Listener} */listener, type, options);\n    };\n  });\n  return obj;\n}, {}));\nObject.assign(EventTarget.prototype, {\n  _legacyOutputDidListenersThrowCheck: undefined,\n  /**\n   * @param {CustomOptions} customOptions\n   * @this {EventTarget.prototype}\n   * @returns {void}\n   */\n  __setOptions: function __setOptions(customOptions) {\n    customOptions = customOptions || {};\n    // Todo: Make into event properties?\n    this._defaultSync = customOptions.defaultSync;\n    this._extraProperties = customOptions.extraProperties || [];\n    if (customOptions.legacyOutputDidListenersThrowFlag) {\n      // IndexedDB\n      this._legacyOutputDidListenersThrowCheck = true;\n      this._extraProperties.push('__legacyOutputDidListenersThrowError');\n    }\n  },\n  /**\n   * @param {ShimEvent} e\n   * @this {EventTarget & {\n   *   _dispatchEvent: (e: ShimEvent|ShimCustomEvent, setTarget: boolean) => boolean,\n  * }}\n   * @returns {boolean}\n   */\n  dispatchEvent: function dispatchEvent(e) {\n    return this._dispatchEvent(e, true);\n  },\n  /**\n   * @param {EventWithProps} e\n   * @param {boolean} setTarget\n   * @this {EventTarget.prototype & {\n   *   _earlyListeners: AllListeners,\n   *   _listeners: AllListeners,\n   *   _lateListeners: AllListeners,\n   *   _defaultListeners: AllListeners,\n   * }}\n   * @returns {boolean}\n   */\n  _dispatchEvent: function _dispatchEvent(e, setTarget) {\n    var _this2 = this;\n    ['early', '', 'late', 'default'].forEach(function (listenerType) {\n      var arrStr = /** @type {\"_earlyListeners\"|\"_listeners\"|\"_lateListeners\"|\"_defaultListeners\"} */\n      '_' + listenerType + (listenerType === '' ? 'l' : 'L') + 'isteners';\n      if (!_this2[arrStr]) {\n        Object.defineProperty(_this2, arrStr, {\n          value: {}\n        });\n      }\n    });\n    var _evCfg = evCfg.get(e);\n    if (_evCfg && setTarget && _evCfg._dispatched) {\n      // @ts-expect-error It's ok to construct\n      throw new ShimDOMException('The object is in an invalid state.', 'InvalidStateError');\n    }\n\n    /** @type {EventWithProps} */\n    var eventCopy;\n    if (_evCfg) {\n      eventCopy = e;\n    } else {\n      eventCopy = copyEvent(e);\n      _evCfg = evCfg.get(eventCopy);\n      _evCfg._dispatched = true;\n\n      /** @type {string[]} */\n      this._extraProperties.forEach(function (prop) {\n        if (prop in e) {\n          /** @type {{[key: string]: any}} */eventCopy[prop] = /** @type {{[key: string]: any}} */e[prop]; // Todo: Put internal to `ShimEvent`?\n        }\n      });\n    }\n\n    var _eventCopy = eventCopy,\n      type = _eventCopy.type;\n\n    /**\n     *\n     * @returns {void}\n     */\n    function finishEventDispatch() {\n      _evCfg.eventPhase = phases.NONE;\n      _evCfg.currentTarget = null;\n      delete _evCfg._children;\n    }\n    /**\n     *\n     * @returns {void}\n     */\n    function invokeDefaults() {\n      // Ignore stopPropagation from defaults\n      _evCfg._stopImmediatePropagation = undefined;\n      _evCfg._stopPropagation = undefined;\n      // We check here for whether we should invoke since may have changed since timeout (if late listener prevented default)\n      if (!eventCopy.defaultPrevented || !_evCfg.cancelable) {\n        // 2nd check should be redundant\n        _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke default listeners\n        eventCopy.target.invokeCurrentListeners(eventCopy.target._defaultListeners, eventCopy, type);\n      }\n      finishEventDispatch();\n    }\n    var continueEventDispatch = function continueEventDispatch() {\n      // Ignore stop propagation of user now\n      _evCfg._stopImmediatePropagation = undefined;\n      _evCfg._stopPropagation = undefined;\n      if (!_this2._defaultSync) {\n        setTimeout(invokeDefaults, 0);\n      } else invokeDefaults();\n      _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke late listeners\n      // Sync default might have stopped\n      if (!_evCfg._stopPropagation) {\n        _evCfg._stopImmediatePropagation = undefined;\n        _evCfg._stopPropagation = undefined;\n        // We could allow stopPropagation by only executing upon (_evCfg._stopPropagation)\n        eventCopy.target.invokeCurrentListeners(eventCopy.target._lateListeners, eventCopy, type);\n      }\n      finishEventDispatch();\n      return !eventCopy.defaultPrevented;\n    };\n    if (setTarget) _evCfg.target = this;\n    switch ('eventPhase' in eventCopy && eventCopy.eventPhase) {\n      case phases.CAPTURING_PHASE:\n        {\n          if (_evCfg._stopPropagation) {\n            return continueEventDispatch();\n          }\n          this.invokeCurrentListeners(this._listeners, eventCopy, type);\n          var child = _evCfg._children && _evCfg._children.length && _evCfg._children.pop();\n          if (!child || child === eventCopy.target) {\n            _evCfg.eventPhase = phases.AT_TARGET;\n          }\n          if (child) child._defaultSync = this._defaultSync;\n          return (child || this)._dispatchEvent(eventCopy, false);\n        }\n      case phases.AT_TARGET:\n        if (_evCfg._stopPropagation) {\n          return continueEventDispatch();\n        }\n        this.invokeCurrentListeners(this._listeners, eventCopy, type, true);\n        if (!_evCfg.bubbles) {\n          return continueEventDispatch();\n        }\n        _evCfg.eventPhase = phases.BUBBLING_PHASE;\n        return this._dispatchEvent(eventCopy, false);\n      case phases.BUBBLING_PHASE:\n        {\n          if (_evCfg._stopPropagation) {\n            return continueEventDispatch();\n          }\n          var parent = this.__getParent && this.__getParent();\n          if (!parent) {\n            return continueEventDispatch();\n          }\n          parent.invokeCurrentListeners(parent._listeners, eventCopy, type, true);\n          parent._defaultSync = this._defaultSync;\n          return parent._dispatchEvent(eventCopy, false);\n        }\n      case phases.NONE:\n      default:\n        {\n          _evCfg.eventPhase = phases.AT_TARGET; // Temporarily set before we invoke early listeners\n          this.invokeCurrentListeners(this._earlyListeners, eventCopy, type);\n          if (!('__getParent' in this)) {\n            _evCfg.eventPhase = phases.AT_TARGET;\n            return this._dispatchEvent(eventCopy, false);\n          }\n\n          /* eslint-disable consistent-this -- Readability */\n          var par = this;\n          var root_ = this;\n          /* eslint-enable consistent-this -- Readability */\n          while (par.__getParent && (par = par.__getParent()) !== null) {\n            if (!_evCfg._children) {\n              _evCfg._children = [];\n            }\n            _evCfg._children.push(root_);\n            root_ = par;\n          }\n          root_._defaultSync = this._defaultSync;\n          _evCfg.eventPhase = phases.CAPTURING_PHASE;\n          return root_._dispatchEvent(eventCopy, false);\n        }\n    }\n  },\n  /**\n   * @type {InvokeCurrentListeners}\n   * @this {EventTarget.prototype & {[key: string]: Listener}}\n   */\n  invokeCurrentListeners: function invokeCurrentListeners(listeners, eventCopy, type, checkOnListeners) {\n    var _this3 = this;\n    var _evCfg = evCfg.get(eventCopy);\n    _evCfg.currentTarget = this;\n    var listOpts = getListenersOptions(listeners, type, {});\n    // eslint-disable-next-line unicorn/prefer-spread -- Performance?\n    var listenersByType = listOpts.listenersByType.concat();\n    var dummyIPos = listenersByType.length ? 1 : 0;\n    listenersByType.some(function (listenerObj, i) {\n      var onListener = checkOnListeners ? _this3['on' + type] : null;\n      if (_evCfg._stopImmediatePropagation) return true;\n      if (i === dummyIPos && typeof onListener === 'function') {\n        // We don't splice this in as could be overwritten; executes here per\n        //    https://html.spec.whatwg.org/multipage/webappapis.html#event-handler-attributes:event-handlers-14\n        _this3.tryCatch(eventCopy, function () {\n          var ret = onListener.call(eventCopy.currentTarget, eventCopy);\n          if (ret === false) {\n            eventCopy.preventDefault();\n          }\n        });\n      }\n      var options = listenerObj.options;\n      var once = options.once,\n        passive = options.passive,\n        capture = options.capture;\n      _evCfg._passive = passive;\n      if (capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.CAPTURING_PHASE || eventCopy.eventPhase === phases.AT_TARGET || !capture && eventCopy.target !== eventCopy.currentTarget && eventCopy.eventPhase === phases.BUBBLING_PHASE) {\n        var listener = listenerObj.listener;\n        _this3.tryCatch(eventCopy, function () {\n          listener.call(eventCopy.currentTarget, eventCopy);\n        });\n        if (once) {\n          _this3.removeEventListener(type, listener, options);\n        }\n      }\n      return false;\n    });\n    this.tryCatch(eventCopy, function () {\n      var onListener = checkOnListeners ? _this3['on' + type] : null;\n      if (typeof onListener === 'function' && listenersByType.length < 2) {\n        var ret = onListener.call(eventCopy.currentTarget, eventCopy); // Won't have executed if too short\n        if (ret === false) {\n          eventCopy.preventDefault();\n        }\n      }\n    });\n    return !eventCopy.defaultPrevented;\n  },\n  /* eslint-disable promise/prefer-await-to-callbacks -- Try-catch */\n  /**\n   * @param {EventWithProps} evt\n   * @param {() => void} cb\n   * @returns {void}\n   */\n  tryCatch: function tryCatch(evt, cb) {\n    /* eslint-enable promise/prefer-await-to-callbacks -- Try-catch */\n    try {\n      // Per MDN: Exceptions thrown by event handlers are reported\n      //    as uncaught exceptions; the event handlers run on a nested\n      //    callstack: they block the caller until they complete, but\n      //    exceptions do not propagate to the caller.\n      // eslint-disable-next-line promise/prefer-await-to-callbacks, n/callback-return --  Try-catch\n      cb();\n    } catch (err) {\n      this.triggerErrorEvent(err, evt);\n    }\n  },\n  /**\n   * @param {unknown} err\n   * @param {EventWithProps} evt\n   * @returns {void}\n   */\n  triggerErrorEvent: function triggerErrorEvent(err, evt) {\n    var error = err;\n    if (typeof err === 'string') {\n      error = new Error('Uncaught exception: ' + err);\n    }\n    var triggerGlobalErrorEvent;\n    var useNodeImpl = false;\n    if (typeof window === 'undefined' || typeof ErrorEvent === 'undefined' || window && (typeof window === \"undefined\" ? \"undefined\" : _typeof(window)) === 'object' && !window.dispatchEvent) {\n      useNodeImpl = true;\n      triggerGlobalErrorEvent = function triggerGlobalErrorEvent() {\n        setTimeout(function () {\n          // Node won't be able to catch in this way if we throw in the main thread\n          // console.log(err); // Should we auto-log for user?\n          throw error; // Let user listen to `process.on('uncaughtException', (err) => {});`\n        });\n      };\n    } else {\n      triggerGlobalErrorEvent = function triggerGlobalErrorEvent() {\n        // See https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror\n        //     and https://github.com/w3c/IndexedDB/issues/49\n\n        // Note that a regular Event will properly trigger\n        //     `window.addEventListener('error')` handlers, but it will not trigger\n        //     `window.onerror` as per https://html.spec.whatwg.org/multipage/webappapis.html#handler-onerror\n        // Note also that the following line won't handle `window.addEventListener` handlers\n        //        if (window.onerror) window.onerror(error.message, err.fileName, err.lineNumber, error.columnNumber, error);\n\n        // `ErrorEvent` properly triggers `window.onerror` and `window.addEventListener('error')` handlers\n        var errEv = new ErrorEvent('error', {\n          error: err,\n          message: /** @type {Error} */error.message || '',\n          // We can't get the actually useful user's values!\n          filename: /** @type {Error & {fileName: string}} */error.fileName || '',\n          lineno: /** @type {Error & {lineNumber: Integer}} */error.lineNumber || 0,\n          colno: /** @type {Error & {columnNumber: Integer}} */error.columnNumber || 0\n        });\n        window.dispatchEvent(errEv);\n        // console.log(err); // Should we auto-log for user?\n      };\n    }\n\n    // Todo: This really should always run here but as we can't set the global\n    //     `window` (e.g., using jsdom) since `setGlobalVars` becomes unable to\n    //     shim `indexedDB` in such a case currently (apparently due to\n    //     <https://github.com/axemclion/IndexedDBShim/issues/280>), we can't\n    //     avoid the above Node implementation (which, while providing some\n    //     fallback mechanism, is unstable)\n    if (!useNodeImpl || !this._legacyOutputDidListenersThrowCheck) triggerGlobalErrorEvent();\n\n    // See https://dom.spec.whatwg.org/#concept-event-listener-inner-invoke and\n    //    https://github.com/w3c/IndexedDB/issues/140 (also https://github.com/w3c/IndexedDB/issues/49 )\n    if (this._legacyOutputDidListenersThrowCheck) {\n      evt.__legacyOutputDidListenersThrowError = error;\n    }\n  }\n});\nEventTarget.prototype[Symbol.toStringTag] = 'EventTargetPrototype';\nObject.defineProperty(EventTarget, 'prototype', {\n  writable: false\n});\nvar ShimEventTarget = EventTarget;\nvar EventTargetFactory = {\n  /**\n   * @param {CustomOptions} customOptions\n   * @returns {EventTarget}\n   */\n  createInstance: function createInstance(customOptions) {\n    /* eslint-disable func-name-matching -- Shim vs. Polyfill */\n    /* eslint-disable no-shadow -- Polyfill */\n    /**\n     * @class\n     * @this {typeof ShimEventTarget.prototype}\n     */\n    var ET = /** @type {unknown} */function EventTarget() {\n      /* eslint-enable no-shadow -- Polyfill */\n      /* eslint-enable func-name-matching -- Shim vs. Polyfill */\n      this.__setOptions(customOptions);\n    };\n    // @ts-expect-error Casting doesn't work\n    ET.prototype = ShimEventTarget.prototype;\n    // @ts-expect-error Casting doesn't work\n    return new ET();\n  }\n};\nEventTarget.ShimEvent = ShimEvent;\nEventTarget.ShimCustomEvent = ShimCustomEvent;\nEventTarget.ShimDOMException = ShimDOMException;\nEventTarget.ShimEventTarget = EventTarget;\nEventTarget.EventTargetFactory = EventTargetFactory;\n\n/**\n * @returns {void}\n */\nfunction setPrototypeOfCustomEvent() {\n  // TODO: IDL needs but reported as slow!\n  Object.setPrototypeOf(ShimCustomEvent, /** @type {object} */ShimEvent);\n  // @ts-expect-error How to overcome?\n  Object.setPrototypeOf(ShimCustomEvent.prototype, ShimEvent.prototype);\n}\n\nexport { EventTargetFactory, ShimCustomEvent, ShimDOMException, ShimEvent, EventTarget as ShimEventTarget, setPrototypeOfCustomEvent };\n","/* eslint-disable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/147 */\n/**\n * @typedef {T[keyof T]} ValueOf<T>\n * @template T\n */\n/* eslint-enable jsdoc/valid-types -- https://github.com/jsdoc-type-pratt-parser/jsdoc-type-pratt-parser/issues/147 */\n\n/**\n * @typedef {{unlink: (path: string, cb: import('fs').NoParamCallback) => void}} FSApi\n */\n\n/**\n * @typedef {{\n *   DEBUG: boolean,\n *   cacheDatabaseInstances: boolean,\n *   autoName: boolean,\n *   fullIDLSupport: boolean,\n *   checkOrigin: boolean,\n *   cursorPreloadPackSize: number,\n *   UnicodeIDStart: string,\n *   UnicodeIDContinue: string,\n *   registerSCA: (\n *     preset: import('typeson').Preset\n *   ) => import('typeson').Preset,\n *   avoidAutoShim: boolean,\n *   win: {\n *     openDatabase: (name: string, version: string, displayName: string, estimatedSize: number) => import('websql-configurable').default\n *   },\n *   DEFAULT_DB_SIZE: number,\n *   useSQLiteIndexes: boolean,\n *   fs: FSApi,\n *   addNonIDBGlobals: boolean,\n *   replaceNonIDBGlobals: boolean,\n *   escapeDatabaseName: (name: string) => string,\n *   unescapeDatabaseName: (name: string) => string,\n *   databaseCharacterEscapeList: string|false,\n *   databaseNameLengthLimit: number|false,\n *   escapeNFDForDatabaseNames: boolean,\n *   addSQLiteExtension: boolean,\n *   memoryDatabase: string,\n *   deleteDatabaseFiles: boolean,\n *   databaseBasePath: string,\n *   sysDatabaseBasePath: string,\n *   sqlBusyTimeout: number,\n *   sqlTrace: () => void,\n *   sqlProfile: () => void,\n *   createIndexes: boolean\n * }} ConfigValues\n */\n\n/**\n * @typedef {ValueOf<ConfigValues>} ConfigValue\n */\n\n/** @type {{[key: string]: ConfigValue}} */\nconst map = {};\n\nconst CFG = /** @type {ConfigValues} */ ({});\n\n/**\n * @typedef {keyof ConfigValues} KeyofConfigValues\n */\n\n/**\n * @typedef {KeyofConfigValues[]} Config\n */\n\n/** @type {Config} */\n([\n    // Boolean for verbose reporting\n    'DEBUG', // Effectively defaults to false (ignored unless `true`)\n\n    // Boolean (effectively defaults to true) on whether to cache WebSQL\n    //  `openDatabase` instances\n    'cacheDatabaseInstances',\n\n    // Boolean on whether to auto-name databases (based on an\n    //   auto-increment) when the empty string is supplied; useful with\n    //   `memoryDatabase`; defaults to `false` which means the empty string\n    //   will be used as the (valid) database name\n    'autoName',\n\n    // Determines whether the slow-performing `Object.setPrototypeOf`\n    //    calls required for full WebIDL compliance will be used. Probably\n    //    only needed for testing or environments where full introspection\n    //    on class relationships is required; see\n    //    http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n    'fullIDLSupport', // Effectively defaults to false (ignored unless `true`)\n\n    // Boolean on whether to perform origin checks in `IDBFactory` methods\n    // Effectively defaults to `true` (must be set to `false` to cancel checks)\n    'checkOrigin',\n\n    // Used by `IDBCursor` continue methods for number of records to cache;\n    //  Defaults to 100\n    'cursorPreloadPackSize',\n\n    // See optional API (`shimIndexedDB.__setUnicodeIdentifiers`);\n    //    or just use the Unicode builds which invoke this method\n    //    automatically using the large, fully spec-compliant, regular\n    //    expression strings of `src/UnicodeIdentifiers.js`)\n    // In the non-Unicode builds, defaults to /[$A-Z_a-z]/\n    'UnicodeIDStart',\n    // In the non-Unicode builds, defaults to /[$0-9A-Z_a-z]/\n    'UnicodeIDContinue',\n\n    // Used by SCA.js for optional restructuring of typeson-registry\n    //   Structured Cloning Algorithm; should only be needed for ensuring data\n    //   created in 3.* versions of IndexedDBShim continue to work; see the\n    //   library `typeson-registry-sca-reverter` to get a function to do this\n    'registerSCA',\n\n    // BROWSER-SPECIFIC CONFIG\n    'avoidAutoShim', // Where WebSQL is detected but where `indexedDB` is\n    //    missing or poor support is known (non-Chrome Android or\n    //    non-Safari iOS9), the shim will be auto-applied without\n    //   `shimIndexedDB.__useShim()`. Set this to `true` to avoid forcing\n    //    the shim for such cases.\n\n    // -----------SQL CONFIG----------\n    // Object (`window` in the browser) on which there may be an\n    //  `openDatabase` method (if any) for WebSQL. (The browser\n    //  throws if attempting to call `openDatabase` without the window\n    //  so this is why the config doesn't just allow the function.)\n    // Defaults to `window` or `self` in browser builds or\n    //  a singleton object with the `openDatabase` method set to\n    //  the \"websql\" package in Node.\n    'win',\n\n    // For internal `openDatabase` calls made by `IDBFactory` methods;\n    //  per the WebSQL spec, \"User agents are expected to use the display name\n    //  and the estimated database size to optimize the user experience.\n    //  For example, a user agent could use the estimated size to suggest an\n    //  initial quota to the user. This allows a site that is aware that it\n    //  will try to use hundreds of megabytes to declare this upfront, instead\n    //  of the user agent prompting the user for permission to increase the\n    //  quota every five megabytes.\"\n    // Defaults to (4 * 1024 * 1024) or (25 * 1024 * 1024) in Safari\n    'DEFAULT_DB_SIZE',\n    // Whether to create indexes on SQLite tables (and also whether to try\n    //   dropping)\n    // Effectively defaults to `false` (ignored unless `true`)\n    'useSQLiteIndexes',\n\n    // NODE-IMPINGING SETTINGS (created for sake of limitations in Node\n    //    or desktop file system implementation but applied by default in\n    //    browser for parity)\n\n    // File system module with `unlink` to remove deleted database files\n    'fs',\n\n    // Used when setting global shims to determine whether to try to add\n    //   other globals shimmed by the library (`ShimDOMException`,\n    //   `ShimDOMStringList`, `ShimEvent`, `ShimCustomEvent`, `ShimEventTarget`)\n    // Effectively defaults to `false` (ignored unless `true`)\n    'addNonIDBGlobals',\n    // Used when setting global shims to determine whether to try to overwrite\n    //   other globals shimmed by the library (`DOMException`, `DOMStringList`,\n    //   `Event`, `CustomEvent`, `EventTarget`)\n    // Effectively defaults to `false` (ignored unless `true`)\n    'replaceNonIDBGlobals',\n\n    // Overcoming limitations with node-sqlite3/storing database name on\n    //   file systems\n    // https://en.wikipedia.org/wiki/Filename#Reserved_characters_and_words\n    // Defaults to prefixing database with `D_`, escaping\n    //   `databaseCharacterEscapeList`, escaping NUL, and\n    //   escaping upper case letters, as well as enforcing\n    //   `databaseNameLengthLimit`\n    'escapeDatabaseName',\n    // Not used internally; usable as a convenience method\n    'unescapeDatabaseName',\n\n    // Defaults to global regex representing the following\n    //   (characters nevertheless commonly reserved in modern,\n    //   Unicode-supporting systems): 0x00-0x1F 0x7F \" * / : < > ? \\ |\n    'databaseCharacterEscapeList',\n    // Defaults to 254 (shortest typical modern file length limit)\n    'databaseNameLengthLimit',\n\n    // Boolean defaulting to true on whether to escape NFD-escaping\n    //   characters to avoid clashes on MacOS which performs NFD on files\n    'escapeNFDForDatabaseNames',\n\n    // Boolean on whether to add the `.sqlite` extension to file names;\n    //   defaults to `true`\n    'addSQLiteExtension',\n    // Various types of in-memory databases that can auto-delete\n    [\n        'memoryDatabase',\n        /**\n         * @param {string} val\n         * @throws {TypeError}\n         * @returns {void}\n         */\n        (val) => {\n            if (!(/^(?::memory:|file::memory:(\\?[^#]*)?(#.*)?)?$/u).test(\n                /** @type {string} */ (val)\n            )) {\n                throw new TypeError(\n                    '`memoryDatabase` must be the empty string, \":memory:\", or a ' +\n                    '\"file::memory:[?queryString][#hash] URL\".'\n                );\n            }\n        }\n    ],\n\n    // NODE-SPECIFIC CONFIG\n    // Boolean on whether to delete the database file itself after\n    //   `deleteDatabase`; defaults to `true` as the database will be empty\n    'deleteDatabaseFiles',\n    'databaseBasePath',\n    'sysDatabaseBasePath',\n\n    // NODE-SPECIFIC WEBSQL CONFIG\n    'sqlBusyTimeout', // Defaults to 1000\n    'sqlTrace', // Callback not used by default\n    'sqlProfile', // Callback not used by default\n\n    'createIndexes'\n]).forEach((prop) => {\n    /** @type {(val: any) => void} */\n    let validator;\n    if (Array.isArray(prop)) {\n        [prop, validator] = prop;\n    }\n    Object.defineProperty(CFG, prop, {\n        get () {\n            return map[prop];\n        },\n        set (val) {\n            if (validator) {\n                validator(val);\n            }\n            map[prop] = val;\n        }\n    });\n});\n\nexport default CFG;\n","// @ts-nocheck\n\nfunction getDefaultExportFromCjs (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nvar regex=/[\\xC0-\\xC5\\xC7-\\xCF\\xD1-\\xD6\\xD9-\\xDD\\xE0-\\xE5\\xE7-\\xEF\\xF1-\\xF6\\xF9-\\xFD\\xFF-\\u010F\\u0112-\\u0125\\u0128-\\u0130\\u0134-\\u0137\\u0139-\\u013E\\u0143-\\u0148\\u014C-\\u0151\\u0154-\\u0165\\u0168-\\u017E\\u01A0\\u01A1\\u01AF\\u01B0\\u01CD-\\u01DC\\u01DE-\\u01E3\\u01E6-\\u01F0\\u01F4\\u01F5\\u01F8-\\u021B\\u021E\\u021F\\u0226-\\u0233\\u0344\\u0385\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u0390\\u03AA-\\u03B0\\u03CA-\\u03CE\\u03D3\\u03D4\\u0400\\u0401\\u0403\\u0407\\u040C-\\u040E\\u0419\\u0439\\u0450\\u0451\\u0453\\u0457\\u045C-\\u045E\\u0476\\u0477\\u04C1\\u04C2\\u04D0-\\u04D3\\u04D6\\u04D7\\u04DA-\\u04DF\\u04E2-\\u04E7\\u04EA-\\u04F5\\u04F8\\u04F9\\u0622-\\u0626\\u06C0\\u06C2\\u06D3\\u0929\\u0931\\u0934\\u0958-\\u095F\\u09CB\\u09CC\\u09DC\\u09DD\\u09DF\\u0A33\\u0A36\\u0A59-\\u0A5B\\u0A5E\\u0B48\\u0B4B\\u0B4C\\u0B5C\\u0B5D\\u0B94\\u0BCA-\\u0BCC\\u0C48\\u0CC0\\u0CC7\\u0CC8\\u0CCA\\u0CCB\\u0D4A-\\u0D4C\\u0DDA\\u0DDC-\\u0DDE\\u0F43\\u0F4D\\u0F52\\u0F57\\u0F5C\\u0F69\\u0F73\\u0F75\\u0F76\\u0F78\\u0F81\\u0F93\\u0F9D\\u0FA2\\u0FA7\\u0FAC\\u0FB9\\u1026\\u1B06\\u1B08\\u1B0A\\u1B0C\\u1B0E\\u1B12\\u1B3B\\u1B3D\\u1B40\\u1B41\\u1B43\\u1E00-\\u1E99\\u1E9B\\u1EA0-\\u1EF9\\u1F00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FC1-\\u1FC4\\u1FC6-\\u1FD3\\u1FD6-\\u1FDB\\u1FDD-\\u1FEE\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u212B\\u219A\\u219B\\u21AE\\u21CD-\\u21CF\\u2204\\u2209\\u220C\\u2224\\u2226\\u2241\\u2244\\u2247\\u2249\\u2260\\u2262\\u226D-\\u2271\\u2274\\u2275\\u2278\\u2279\\u2280\\u2281\\u2284\\u2285\\u2288\\u2289\\u22AC-\\u22AF\\u22E0-\\u22E3\\u22EA-\\u22ED\\u2ADC\\u304C\\u304E\\u3050\\u3052\\u3054\\u3056\\u3058\\u305A\\u305C\\u305E\\u3060\\u3062\\u3065\\u3067\\u3069\\u3070\\u3071\\u3073\\u3074\\u3076\\u3077\\u3079\\u307A\\u307C\\u307D\\u3094\\u309E\\u30AC\\u30AE\\u30B0\\u30B2\\u30B4\\u30B6\\u30B8\\u30BA\\u30BC\\u30BE\\u30C0\\u30C2\\u30C5\\u30C7\\u30C9\\u30D0\\u30D1\\u30D3\\u30D4\\u30D6\\u30D7\\u30D9\\u30DA\\u30DC\\u30DD\\u30F4\\u30F7-\\u30FA\\u30FE\\uAC00-\\uD7A3\\uFB1D\\uFB1F\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFB4E]|\\uD804[\\uDC9A\\uDC9C\\uDCAB\\uDD2E\\uDD2F\\uDF4B\\uDF4C]|\\uD805[\\uDCBB\\uDCBC\\uDCBE\\uDDBA\\uDDBB]|\\uD806\\uDD38|\\uD834[\\uDD5E-\\uDD64\\uDDBB-\\uDDC0]/;\n\nvar regex$1 = /*@__PURE__*/getDefaultExportFromCjs(regex);\n\nexport { regex$1 as default };\n","/* eslint-disable new-cap -- ToString is how it is defined */\nimport CFG from './CFG.js';\nimport expandsOnNFD from './unicode-regex.js';\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @param {string} arg\n * @returns {string}\n */\nfunction escapeUnmatchedSurrogates (arg) {\n    // http://stackoverflow.com/a/6701665/271577\n    return arg.replaceAll(\n        /([\\uD800-\\uDBFF])(?![\\uDC00-\\uDFFF])|(^|[^\\uD800-\\uDBFF])([\\uDC00-\\uDFFF])/gu,\n        function (_, unmatchedHighSurrogate, precedingLow, unmatchedLowSurrogate) {\n            // Could add a corresponding surrogate for compatibility with `node-sqlite3`: http://bugs.python.org/issue12569 and http://stackoverflow.com/a/6701665/271577\n            //   but Chrome having problems\n            if (unmatchedHighSurrogate) {\n                return '^2' + unmatchedHighSurrogate.codePointAt()\n                    .toString(16).padStart(4, '0');\n            }\n            return (precedingLow || '') + '^3' +\n                unmatchedLowSurrogate.codePointAt().toString(16).padStart(4, '0');\n        }\n    );\n}\n\n/**\n * @param {string} arg\n * @returns {string}\n */\nfunction escapeNameForSQLiteIdentifier (arg) {\n    // http://stackoverflow.com/a/6701665/271577\n    return '_' + // Prevent empty string\n        escapeUnmatchedSurrogates(\n            arg.replaceAll('^', '^^') // Escape our escape\n                // http://www.sqlite.org/src/tktview?name=57c971fc74\n                .replaceAll('\\0', '^0')\n                // We need to avoid identifiers being treated as duplicates based on SQLite's ASCII-only case-insensitive table and column names\n                // (For SQL in general, however, see http://stackoverflow.com/a/17215009/271577\n                // See also https://www.sqlite.org/faq.html#q18 re: Unicode (non-ASCII) case-insensitive not working\n                .replaceAll(/([A-Z])/gu, '^$1')\n        );\n}\n\n/**\n * The escaping of unmatched surrogates was needed by Chrome but not Node.\n * @param {string} arg\n * @returns {string}\n */\nfunction escapeSQLiteStatement (arg) {\n    return escapeUnmatchedSurrogates(arg.replaceAll('^', '^^').replaceAll('\\0', '^0'));\n}\n\n/**\n * @param {string} arg\n * @returns {string}\n */\nfunction unescapeSQLiteResponse (arg) {\n    return unescapeUnmatchedSurrogates(arg)\n        .replaceAll(/(\\^+)0/gu, (_, esc) => {\n            return esc.length % 2\n                ? esc.slice(1) + '\\0'\n                : _;\n        })\n        .replaceAll('^^', '^');\n}\n\n/**\n * @param {string} arg\n * @returns {string}\n */\nfunction sqlEscape (arg) {\n    // https://www.sqlite.org/lang_keywords.html\n    // http://stackoverflow.com/a/6701665/271577\n    // There is no need to escape ', `, or [], as\n    //   we should always be within double quotes\n    // NUL should have already been stripped\n    return arg.replaceAll('\"', '\"\"');\n}\n\n/**\n * @param {string} arg\n * @returns {string}\n */\nfunction sqlQuote (arg) {\n    return '\"' + sqlEscape(arg) + '\"';\n}\n\n/**\n * @param {string} db\n * @throws {Error}\n * @returns {string}\n */\nfunction escapeDatabaseNameForSQLAndFiles (db) {\n    if (CFG.escapeDatabaseName) {\n        // We at least ensure NUL is escaped by default, but we need to still\n        //   handle empty string and possibly also length (potentially\n        //   throwing if too long), escaping casing (including Unicode?),\n        //   and escaping special characters depending on file system\n        return CFG.escapeDatabaseName(escapeSQLiteStatement(db));\n    }\n    db = 'D' + escapeNameForSQLiteIdentifier(db);\n    if (CFG.escapeNFDForDatabaseNames !== false) {\n        // ES6 copying of regex with different flags\n        db = db.replaceAll(new RegExp(expandsOnNFD, 'gu'), function (expandable) {\n            return '^4' + /** @type {Integer} */ (expandable.codePointAt(0)).toString(16).padStart(6, '0');\n        });\n    }\n    if (CFG.databaseCharacterEscapeList !== false) {\n        db = db.replace(\n            (CFG.databaseCharacterEscapeList\n                ? new RegExp(CFG.databaseCharacterEscapeList, 'gu')\n                : /[\\u0000-\\u001F\\u007F\"*/:<>?\\\\|]/gu), // eslint-disable-line no-control-regex\n            function (n0) {\n                // eslint-disable-next-line unicorn/prefer-code-point -- Switch to `codePointAt`?\n                return '^1' + n0.charCodeAt(0).toString(16).padStart(2, '0');\n            }\n        );\n    }\n    if (CFG.databaseNameLengthLimit !== false &&\n        db.length >= ((CFG.databaseNameLengthLimit || 254) - (CFG.addSQLiteExtension !== false ? 7 /* '.sqlite'.length */ : 0))) {\n        throw new Error(\n            'Unexpectedly long database name supplied; length limit required for Node compatibility; passed length: ' +\n            db.length + '; length limit setting: ' + (CFG.databaseNameLengthLimit || 254) + '.'\n        );\n    }\n    return db + (CFG.addSQLiteExtension !== false ? '.sqlite' : ''); // Shouldn't have quoting (do we even need NUL/case escaping here?)\n}\n\n/**\n * @param {string} arg\n * @returns {string}\n */\nfunction unescapeUnmatchedSurrogates (arg) {\n    return arg\n        .replaceAll(/(\\^+)3(d[0-9a-f]{3})/gu, (_, esc, lowSurr) => {\n            return esc.length % 2\n                ? esc.slice(1) + String.fromCodePoint(Number.parseInt(lowSurr, 16))\n                : _;\n        }).replaceAll(/(\\^+)2(d[0-9a-f]{3})/gu, (_, esc, highSurr) => {\n            return esc.length % 2\n                ? esc.slice(1) + String.fromCodePoint(Number.parseInt(highSurr, 16))\n                : _;\n        });\n}\n\n/**\n * Not in use internally but supplied for convenience.\n * @param {string} db\n * @returns {string}\n */\nfunction unescapeDatabaseNameForSQLAndFiles (db) {\n    if (CFG.unescapeDatabaseName) {\n        // We at least ensure NUL is unescaped by default, but we need to still\n        //   handle empty string and possibly also length (potentially\n        //   throwing if too long), unescaping casing (including Unicode?),\n        //   and unescaping special characters depending on file system\n        return CFG.unescapeDatabaseName(unescapeSQLiteResponse(db));\n    }\n\n    return unescapeUnmatchedSurrogates(\n        db.slice(2) // D_\n            // CFG.databaseCharacterEscapeList\n            .replaceAll(/(\\^+)1([0-9a-f]{2})/gu, (_, esc, hex) => {\n                return esc.length % 2\n                    ? esc.slice(1) + String.fromCodePoint(Number.parseInt(hex, 16))\n                    : _;\n            // CFG.escapeNFDForDatabaseNames\n            }).replaceAll(/(\\^+)4([0-9a-f]{6})/gu, (_, esc, hex) => {\n                return esc.length % 2\n                    ? esc.slice(1) + String.fromCodePoint(Number.parseInt(hex, 16))\n                    : _;\n            })\n    // escapeNameForSQLiteIdentifier (including unescapeUnmatchedSurrogates() above)\n    ).replaceAll(/(\\^+)([A-Z])/gu, (_, esc, upperCase) => {\n        return esc.length % 2\n            ? esc.slice(1) + upperCase\n            : _;\n    }).replaceAll(/(\\^+)0/gu, (_, esc) => {\n        return esc.length % 2\n            ? esc.slice(1) + '\\0'\n            : _;\n    }).replaceAll('^^', '^');\n}\n\n/**\n * @param {string} store\n * @returns {string}\n */\nfunction escapeStoreNameForSQL (store) {\n    return sqlQuote('S' + escapeNameForSQLiteIdentifier(store));\n}\n\n/**\n * @param {string} index\n * @returns {string}\n */\nfunction escapeIndexNameForSQL (index) {\n    return sqlQuote('I' + escapeNameForSQLiteIdentifier(index));\n}\n\n/**\n * @param {string} index\n * @returns {string}\n */\nfunction escapeIndexNameForSQLKeyColumn (index) {\n    return 'I' + escapeNameForSQLiteIdentifier(index);\n}\n\n/**\n * @param {string} str\n * @returns {string}\n */\nfunction sqlLIKEEscape (str) {\n    // https://www.sqlite.org/lang_expr.html#like\n    return sqlEscape(str).replaceAll('^', '^^');\n}\n\n/**\n * @typedef {Function} AnyClass\n */\n\n// Babel doesn't seem to provide a means of using the `instanceof` operator with Symbol.hasInstance (yet?)\n/**\n *\n * @param {AnyValue} obj\n * @param {AnyClass} Clss\n * @returns {boolean}\n */\nfunction instanceOf (obj, Clss) {\n    return Clss[Symbol.hasInstance](obj);\n}\n\n/**\n *\n * @param {AnyValue} obj\n * @returns {obj is object}\n */\nfunction isObj (obj) {\n    return obj !== null && typeof obj === 'object';\n}\n\n/**\n *\n * @param {object} obj\n * @returns {boolean}\n */\nfunction isDate (obj) {\n    return isObj(obj) && 'getDate' in obj && typeof obj.getDate === 'function';\n}\n\n/**\n *\n * @param {object} obj\n * @returns {boolean}\n */\nfunction isBlob (obj) {\n    return isObj(obj) && 'size' in obj && typeof obj.size === 'number' &&\n    'slice' in obj && typeof obj.slice === 'function' && !('lastModified' in obj);\n}\n\n/**\n *\n * @param {object} obj\n * @returns {boolean}\n */\nfunction isRegExp (obj) {\n    return isObj(obj) && 'flags' in obj && typeof obj.flags === 'string' &&\n    'exec' in obj && typeof obj.exec === 'function';\n}\n\n/**\n *\n * @param {object} obj\n * @returns {boolean}\n */\nfunction isFile (obj) {\n    return isObj(obj) && 'name' in obj && typeof obj.name === 'string' &&\n    'slice' in obj && typeof obj.slice === 'function' && 'lastModified' in obj;\n}\n\n/**\n *\n * @param {AnyValue} obj\n * @returns {boolean}\n */\nfunction isBinary (obj) {\n    return isObj(obj) && 'byteLength' in obj && typeof obj.byteLength === 'number' && (\n        ('slice' in obj && typeof obj.slice === 'function') || // `TypedArray` (view on buffer) or `ArrayBuffer`\n        ('getFloat64' in obj && typeof obj.getFloat64 === 'function') // `DataView` (view on buffer)\n    );\n}\n\n/**\n *\n * @param {AnyValue} obj\n * @returns {boolean}\n */\nfunction isIterable (obj) {\n    return isObj(obj) && Symbol.iterator in obj &&\n        typeof obj[Symbol.iterator] === 'function';\n}\n\n/**\n *\n * @param {object} obj\n * @param {string[]} props\n * @returns {void}\n */\nfunction defineOuterInterface (obj, props) {\n    props.forEach((prop) => {\n        const o = {\n            get [prop] () {\n                throw new TypeError('Illegal invocation');\n            },\n            // @ts-expect-error Deliberately errs\n            set [prop] (val) {\n                throw new TypeError('Illegal invocation');\n            }\n        };\n        const desc = /** @type {PropertyDescriptor} */ (\n            Object.getOwnPropertyDescriptor(o, prop)\n        );\n        Object.defineProperty(obj, prop, desc);\n    });\n}\n\n/**\n *\n * @param {object} obj\n * @param {string[]} props\n * @returns {void}\n */\nfunction defineReadonlyOuterInterface (obj, props) {\n    props.forEach((prop) => {\n        const o = {\n            get [prop] () {\n                throw new TypeError('Illegal invocation');\n            }\n        };\n        const desc = /** @type {PropertyDescriptor} */ (\n            Object.getOwnPropertyDescriptor(o, prop)\n        );\n        Object.defineProperty(obj, prop, desc);\n    });\n}\n\n/**\n *\n * @param {object & {\n *   [key: string]: any\n * }} obj\n * @param {string[]} listeners\n * @returns {void}\n */\nfunction defineListenerProperties (obj, listeners) {\n    listeners = typeof listeners === 'string' ? [listeners] : listeners;\n    listeners.forEach((listener) => {\n        const o = {\n            get [listener] () {\n                return obj['__' + listener];\n            },\n            /**\n             * @param {AnyValue} val\n             * @returns {void}\n             */\n            set [listener] (val) {\n                obj['__' + listener] = val;\n            }\n        };\n        const desc = /** @type {PropertyDescriptor} */ (\n            Object.getOwnPropertyDescriptor(o, listener)\n        );\n        // desc.enumerable = true; // Default\n        // desc.configurable = true; // Default // Needed by support.js in W3C IndexedDB tests (for openListeners)\n        Object.defineProperty(obj, listener, desc);\n    });\n    listeners.forEach((l) => {\n        obj[l] = null;\n    });\n}\n\n/**\n *\n * @param {object} obj\n * @param {string|string[]} props\n * @param {null|{\n *   [key: string]: any\n * }} getter\n * @returns {void}\n */\nfunction defineReadonlyProperties (obj, props, getter = null) {\n    props = typeof props === 'string' ? [props] : props;\n    props.forEach(function (prop) {\n        let o;\n        if (getter && prop in getter) {\n            o = getter[prop];\n        } else {\n            Object.defineProperty(obj, '__' + prop, {\n                enumerable: false,\n                configurable: false,\n                writable: true\n            });\n            // We must resort to this to get \"get <name>\" as\n            //   the function `name` for proper IDL\n            o = {\n                get [prop] () {\n                    return this['__' + prop];\n                }\n            };\n        }\n\n        const desc = /** @type {PropertyDescriptor} */ (\n            Object.getOwnPropertyDescriptor(o, prop)\n        );\n        // desc.enumerable = true; // Default\n        // desc.configurable = true; // Default\n        Object.defineProperty(obj, prop, desc);\n    });\n}\n\n/**\n *\n * @param {string} item\n * @returns {boolean}\n */\nfunction isIdentifier (item) {\n    // For load-time and run-time performance, we don't provide the complete regular\n    //   expression for identifiers, but these can be passed in, using the expressions\n    //   found at https://gist.github.com/brettz9/b4cd6821d990daa023b2e604de371407\n    // ID_Start (includes Other_ID_Start)\n    const UnicodeIDStart = CFG.UnicodeIDStart || '[$A-Z_a-z]';\n    // ID_Continue (includes Other_ID_Continue)\n    const UnicodeIDContinue = CFG.UnicodeIDContinue || '[$0-9A-Z_a-z]';\n    const IdentifierStart = '(?:' + UnicodeIDStart + '|[$_])';\n    const IdentifierPart = '(?:' + UnicodeIDContinue + '|[$_\\u200C\\u200D])';\n    return (new RegExp('^' + IdentifierStart + IdentifierPart + '*$', 'u')).test(item);\n}\n\n/**\n *\n * @param {string|string[]} keyPathString\n * @returns {boolean}\n */\nfunction isValidKeyPathString (keyPathString) {\n    return typeof keyPathString === 'string' &&\n        (keyPathString === '' || isIdentifier(keyPathString) || keyPathString.split('.').every((pathComponent) => {\n            return isIdentifier(pathComponent);\n        }));\n}\n\n/**\n *\n * @param {string|string[]} keyPath\n * @returns {boolean}\n */\nfunction isValidKeyPath (keyPath) {\n    return isValidKeyPathString(keyPath) || (\n        Array.isArray(keyPath) && Boolean(keyPath.length) &&\n            // Convert array from sparse to dense http://www.2ality.com/2012/06/dense-arrays.html\n            // See also https://heycam.github.io/webidl/#idl-DOMString\n            [...keyPath].every((pathComponent) => {\n                return isValidKeyPathString(pathComponent);\n            })\n    );\n}\n\n/**\n * @param {number} number\n * @param {\"unsigned long long\"|\"unsigned long\"} type\n * @throws {Error|TypeError}\n * @returns {number}\n */\nfunction enforceRange (number, type) {\n    number = Math.floor(Number(number));\n    let max, min;\n    switch (type) {\n    case 'unsigned long long': {\n        max = 0x1FFFFFFFFFFFFF; // 2^53 - 1\n        min = 0;\n        break;\n    }\n    case 'unsigned long': {\n        max = 0xFFFFFFFF; // 2^32 - 1\n        min = 0;\n        break;\n    }\n    default:\n        throw new Error('Unrecognized type supplied to enforceRange');\n    }\n    if (!Number.isFinite(number) ||\n        number > max ||\n        number < min) {\n        throw new TypeError('Invalid range: ' + number);\n    }\n    return number;\n}\n\n/**\n * @typedef {any} AnyValue\n */\n\n/**\n * @param {AnyValue} v\n * @param {boolean} [treatNullAs]\n * @returns {string}\n */\nfunction convertToDOMString (v, treatNullAs) {\n    return v === null && treatNullAs ? '' : ToString(v);\n}\n\n/**\n * @param {AnyValue} o\n * @returns {string}\n */\nfunction ToString (o) { // Todo: See `es-abstract/es7`\n    // `String()` will not throw with Symbols\n    return '' + o; // eslint-disable-line no-implicit-coercion\n}\n\n/**\n *\n * @param {AnyValue} val\n * @returns {string|string[]}\n */\nfunction convertToSequenceDOMString (val) {\n    // Per <https://heycam.github.io/webidl/#idl-sequence>, converting to a sequence works with iterables\n    if (isIterable(val)) { // We don't want conversion to array to convert primitives\n        // Per <https://heycam.github.io/webidl/#es-DOMString>, converting to a `DOMString` to be via `ToString`: https://tc39.github.io/ecma262/#sec-tostring\n        return [...val].map((item) => {\n            return ToString(item);\n        });\n    }\n    return ToString(val);\n}\n\n/**\n * @param {AnyValue} v\n * @returns {v is null|undefined}\n */\nfunction isNullish (v) {\n    return v === null || v === undefined;\n}\n\nexport {escapeSQLiteStatement, unescapeSQLiteResponse,\n    escapeDatabaseNameForSQLAndFiles, unescapeDatabaseNameForSQLAndFiles,\n    escapeStoreNameForSQL, escapeIndexNameForSQL, escapeIndexNameForSQLKeyColumn,\n    sqlLIKEEscape, sqlQuote,\n    instanceOf,\n    isObj, isDate, isBlob, isRegExp, isFile, isBinary, isIterable,\n    defineOuterInterface, defineReadonlyOuterInterface,\n    defineListenerProperties, defineReadonlyProperties,\n    isValidKeyPath, enforceRange,\n    convertToDOMString, convertToSequenceDOMString,\n    isNullish};\n","import {ShimEventTarget, ShimEvent, ShimCustomEvent} from 'eventtargeter';\nimport * as util from './util.js';\n\n/**\n * @typedef {Error} DebuggingError\n */\n\n/**\n *\n * @param {string} type\n * @param {DebuggingError|null} [debug]\n * @param {EventInit} [evInit]\n * @returns {Event & {\n *   __legacyOutputDidListenersThrowError?: boolean\n * }}\n */\nfunction createEvent (type, debug, evInit) {\n    // @ts-expect-error It's ok\n    const ev = new ShimEvent(type, evInit);\n    ev.debug = debug;\n    return ev;\n}\n\n// We don't add within polyfill repo as might not always be the desired implementation\nObject.defineProperty(ShimEvent, Symbol.hasInstance, {\n    /**\n     * @typedef {any} AnyValue\n     */\n    value:\n        /**\n         * @param {AnyValue} obj\n         * @returns {boolean}\n         */\n        (obj) => util.isObj(obj) && 'target' in obj && 'bubbles' in obj && typeof obj.bubbles === 'boolean'\n});\n\nexport {createEvent, ShimEvent, ShimCustomEvent, ShimEventTarget};\n","import {ShimEvent} from './Event.js';\nimport * as util from './util.js';\n\nconst readonlyProperties = ['oldVersion', 'newVersion'];\n\n/**\n * Babel apparently having a problem adding `hasInstance` to a class,\n * so we are redefining as a function.\n * @class\n * @param {string} type\n */\nfunction IDBVersionChangeEvent (type /* , eventInitDict */) { // eventInitDict is a IDBVersionChangeEventInit (but is not defined as a global)\n    // @ts-expect-error It's passing only one!\n    ShimEvent.call(this, type);\n    this[Symbol.toStringTag] = 'IDBVersionChangeEvent';\n    this.toString = function () {\n        return '[object IDBVersionChangeEvent]';\n    };\n    // eslint-disable-next-line prefer-rest-params\n    this.__eventInitDict = arguments[1] || {};\n}\n\n// @ts-expect-error It's ok\nIDBVersionChangeEvent.prototype = Object.create(ShimEvent.prototype);\n\nIDBVersionChangeEvent.prototype[Symbol.toStringTag] = 'IDBVersionChangeEventPrototype';\n\n/**\n * @typedef {number} Integer\n */\n\nreadonlyProperties.forEach((prop) => {\n    // Ensure for proper interface testing that \"get <name>\" is the function name\n    const o = {\n        /**\n         * @returns {Integer|null}\n         */\n        get [prop] () {\n            if (!(this instanceof IDBVersionChangeEvent)) {\n                throw new TypeError('Illegal invocation');\n            }\n            return (this.__eventInitDict && this.__eventInitDict[prop]) || (prop === 'oldVersion' ? 0 : null);\n        }\n    };\n    const desc = /** @type {PropertyDescriptor} */ (\n        Object.getOwnPropertyDescriptor(o, prop)\n    );\n    // desc.enumerable = true; // Default\n    // desc.configurable = true; // Default\n    Object.defineProperty(IDBVersionChangeEvent.prototype, prop, desc);\n});\n\nObject.defineProperty(IDBVersionChangeEvent, Symbol.hasInstance, {\n    /**\n     * @typedef {any} AnyValue\n     */\n    value:\n        /**\n         * @param {AnyValue} obj\n         * @returns {boolean}\n         */\n        (obj) => util.isObj(obj) && 'oldVersion' in obj &&\n        'defaultPrevented' in obj && typeof obj.defaultPrevented === 'boolean'\n});\n\nObject.defineProperty(IDBVersionChangeEvent.prototype, 'constructor', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: IDBVersionChangeEvent\n});\n\nObject.defineProperty(IDBVersionChangeEvent, 'prototype', {\n    writable: false\n});\n\nexport default IDBVersionChangeEvent;\n","import CFG from './CFG.js';\n\n/**\n * Creates a native DOMException, for browsers that support it.\n * @param {string} name\n * @param {string} message\n * @returns {DOMException}\n */\nfunction createNativeDOMException (name, message) {\n    // @ts-expect-error It's ok\n    return new DOMException.prototype.constructor(\n        message,\n        name || 'DOMException'\n    );\n}\n\n// From web-platform-tests testharness.js name_code_map (though not in new spec)\n\n/**\n * @typedef {\"IndexSizeError\"|\"HierarchyRequestError\"|\"WrongDocumentError\"|\n * \"InvalidCharacterError\"|\"NoModificationAllowedError\"|\"NotFoundError\"|\n * \"NotSupportedError\"|\"InUseAttributeError\"|\"InvalidStateError\"|\n * \"SyntaxError\"|\"InvalidModificationError\"|\"NamespaceError\"|\n * \"InvalidAccessError\"|\"TypeMismatchError\"|\"SecurityError\"|\n * \"NetworkError\"|\"AbortError\"|\"URLMismatchError\"|\"QuotaExceededError\"|\n * \"TimeoutError\"|\"InvalidNodeTypeError\"|\"DataCloneError\"|\"EncodingError\"|\n * \"NotReadableError\"|\"UnknownError\"|\"ConstraintError\"|\"DataError\"|\n * \"TransactionInactiveError\"|\"ReadOnlyError\"|\"VersionError\"|\n * \"OperationError\"|\"NotAllowedError\"} Code\n */\n\nconst codes = {\n    IndexSizeError: 1,\n    HierarchyRequestError: 3,\n    WrongDocumentError: 4,\n    InvalidCharacterError: 5,\n    NoModificationAllowedError: 7,\n    NotFoundError: 8,\n    NotSupportedError: 9,\n    InUseAttributeError: 10,\n    InvalidStateError: 11,\n    SyntaxError: 12,\n    InvalidModificationError: 13,\n    NamespaceError: 14,\n    InvalidAccessError: 15,\n    TypeMismatchError: 17,\n    SecurityError: 18,\n    NetworkError: 19,\n    AbortError: 20,\n    URLMismatchError: 21,\n    QuotaExceededError: 22,\n    TimeoutError: 23,\n    InvalidNodeTypeError: 24,\n    DataCloneError: 25,\n\n    EncodingError: 0,\n    NotReadableError: 0,\n    UnknownError: 0,\n    ConstraintError: 0,\n    DataError: 0,\n    TransactionInactiveError: 0,\n    ReadOnlyError: 0,\n    VersionError: 0,\n    OperationError: 0,\n    NotAllowedError: 0\n};\n\n/**\n * @typedef {\"INDEX_SIZE_ERR\"|\"DOMSTRING_SIZE_ERR\"|\"HIERARCHY_REQUEST_ERR\"|\n * \"WRONG_DOCUMENT_ERR\"|\"INVALID_CHARACTER_ERR\"|\"NO_DATA_ALLOWED_ERR\"|\n * \"NO_MODIFICATION_ALLOWED_ERR\"|\"NOT_FOUND_ERR\"|\"NOT_SUPPORTED_ERR\"|\n * \"INUSE_ATTRIBUTE_ERR\"|\"INVALID_STATE_ERR\"|\"SYNTAX_ERR\"|\n * \"INVALID_MODIFICATION_ERR\"|\"NAMESPACE_ERR\"|\"INVALID_ACCESS_ERR\"|\n * \"VALIDATION_ERR\"|\"TYPE_MISMATCH_ERR\"|\"SECURITY_ERR\"|\"NETWORK_ERR\"|\n * \"ABORT_ERR\"|\"URL_MISMATCH_ERR\"|\"QUOTA_EXCEEDED_ERR\"|\"TIMEOUT_ERR\"|\n * \"INVALID_NODE_TYPE_ERR\"|\"DATA_CLONE_ERR\"} LegacyCode\n */\n\nconst legacyCodes = {\n    INDEX_SIZE_ERR: 1,\n    DOMSTRING_SIZE_ERR: 2,\n    HIERARCHY_REQUEST_ERR: 3,\n    WRONG_DOCUMENT_ERR: 4,\n    INVALID_CHARACTER_ERR: 5,\n    NO_DATA_ALLOWED_ERR: 6,\n    NO_MODIFICATION_ALLOWED_ERR: 7,\n    NOT_FOUND_ERR: 8,\n    NOT_SUPPORTED_ERR: 9,\n    INUSE_ATTRIBUTE_ERR: 10,\n    INVALID_STATE_ERR: 11,\n    SYNTAX_ERR: 12,\n    INVALID_MODIFICATION_ERR: 13,\n    NAMESPACE_ERR: 14,\n    INVALID_ACCESS_ERR: 15,\n    VALIDATION_ERR: 16,\n    TYPE_MISMATCH_ERR: 17,\n    SECURITY_ERR: 18,\n    NETWORK_ERR: 19,\n    ABORT_ERR: 20,\n    URL_MISMATCH_ERR: 21,\n    QUOTA_EXCEEDED_ERR: 22,\n    TIMEOUT_ERR: 23,\n    INVALID_NODE_TYPE_ERR: 24,\n    DATA_CLONE_ERR: 25\n};\n\n/**\n *\n * @returns {typeof DOMException}\n */\nfunction createNonNativeDOMExceptionClass () {\n    /**\n     * @param {string|undefined} message\n     * @param {Code|LegacyCode} name\n     * @returns {void}\n     */\n    function DOMException (message, name) {\n        // const err = Error.prototype.constructor.call(this, message); // Any use to this? Won't set this.message\n        this[Symbol.toStringTag] = 'DOMException';\n        this._code = name in codes\n            ? codes[/** @type {Code} */ (name)]\n            : (legacyCodes[/** @type {LegacyCode} */ (name)] || 0);\n        this._name = name || 'Error';\n        // We avoid `String()` in this next line as it converts Symbols\n        this._message = message === undefined ? '' : ('' + message); // eslint-disable-line no-implicit-coercion\n        Object.defineProperty(this, 'code', {\n            configurable: true,\n            enumerable: true,\n            writable: true,\n            value: this._code\n        });\n        if (name !== undefined) {\n            Object.defineProperty(this, 'name', {\n                configurable: true,\n                enumerable: true,\n                writable: true,\n                value: this._name\n            });\n        }\n        if (message !== undefined) {\n            Object.defineProperty(this, 'message', {\n                configurable: true,\n                enumerable: false,\n                writable: true,\n                value: this._message\n            });\n        }\n    }\n\n    // Necessary for W3C tests which complains if `DOMException` has properties on its \"own\" prototype\n\n    // class DummyDOMException extends Error {}; // Sometimes causing problems in Node\n    /* eslint-disable func-name-matching */\n    /**\n     * @class\n     */\n    const DummyDOMException = function DOMException () { /* */ };\n    /* eslint-enable func-name-matching */\n    DummyDOMException.prototype = Object.create(Error.prototype); // Intended for subclassing\n    /** @type {const} */ (['name', 'message']).forEach((prop) => {\n        Object.defineProperty(DummyDOMException.prototype, prop, {\n            enumerable: true,\n            /**\n             * @this {DOMException}\n             * @returns {string}\n             */\n            get () {\n                if (!(this instanceof DOMException ||\n                    // @ts-expect-error Just checking\n                    this instanceof DummyDOMException ||\n                    // @ts-expect-error Just checking\n                    this instanceof Error)) {\n                    throw new TypeError('Illegal invocation');\n                }\n                return this[prop === 'name' ? '_name' : '_message'];\n            }\n        });\n    });\n    // DOMException uses the same `toString` as `Error`\n    Object.defineProperty(DummyDOMException.prototype, 'code', {\n        configurable: true,\n        enumerable: true,\n        get () {\n            throw new TypeError('Illegal invocation');\n        }\n    });\n    // @ts-expect-error It's ok\n    DOMException.prototype = new DummyDOMException();\n\n    DOMException.prototype[Symbol.toStringTag] = 'DOMExceptionPrototype';\n    Object.defineProperty(DOMException, 'prototype', {\n        writable: false\n    });\n\n    const keys = Object.keys(codes);\n\n    /** @type {(keyof codes)[]} */ (keys).forEach(\n        (codeName) => {\n            Object.defineProperty(DOMException.prototype, codeName, {\n                enumerable: true,\n                configurable: false,\n                value: codes[codeName]\n            });\n            Object.defineProperty(DOMException, codeName, {\n                enumerable: true,\n                configurable: false,\n                value: codes[codeName]\n            });\n        }\n    );\n    /** @type {(keyof legacyCodes)[]} */ (Object.keys(legacyCodes)).forEach((\n        codeName\n    ) => {\n        Object.defineProperty(DOMException.prototype, codeName, {\n            enumerable: true,\n            configurable: false,\n            value: legacyCodes[codeName]\n        });\n        Object.defineProperty(DOMException, codeName, {\n            enumerable: true,\n            configurable: false,\n            value: legacyCodes[codeName]\n        });\n    });\n    Object.defineProperty(DOMException.prototype, 'constructor', {\n        writable: true,\n        configurable: true,\n        enumerable: false,\n        value: DOMException\n    });\n\n    // @ts-expect-error We don't need all its properties\n    return DOMException;\n}\n\nconst ShimNonNativeDOMException = createNonNativeDOMExceptionClass();\n\n/**\n * Creates a generic Error object.\n * @param {string} name\n * @param {string} message\n * @returns {Error}\n */\nfunction createNonNativeDOMException (name, message) {\n    return new ShimNonNativeDOMException(message, name);\n}\n\n/**\n * @typedef {{\n *   message: string|DOMString\n * }} ErrorLike\n */\n\n/**\n * Logs detailed error information to the console.\n * @param {string} name\n * @param {string} message\n * @param {string|ErrorLike|boolean|null} [error]\n * @returns {void}\n */\nfunction logError (name, message, error) {\n    if (CFG.DEBUG) {\n        const msg = error && typeof error === 'object' && error.message\n            ? error.message\n            : /** @type {string} */ (error);\n\n        const method = typeof (console.error) === 'function' ? 'error' : 'log';\n        console[method](name + ': ' + message + '. ' + (msg || ''));\n        if (console.trace) { console.trace(); }\n    }\n}\n\n/**\n * @typedef {any} ArbitraryValue\n */\n\n/**\n * @param {ArbitraryValue} obj\n * @returns {boolean}\n */\nfunction isErrorOrDOMErrorOrDOMException (obj) {\n    return obj && typeof obj === 'object' && // We don't use util.isObj here as mutual dependency causing problems in Babel with browser\n        typeof obj.name === 'string';\n}\n\n/**\n * Finds the error argument.  This is useful because some WebSQL callbacks\n * pass the error as the first argument, and some pass it as the second\n * argument.\n * @param {(Error|{message?: string, name?: string}|any)[]} args\n * @returns {Error|DOMException|undefined}\n */\nfunction findError (args) {\n    let err;\n    if (args) {\n        if (args.length === 1) {\n            return args[0];\n        }\n        for (const arg of args) {\n            if (isErrorOrDOMErrorOrDOMException(arg)) {\n                return arg;\n            }\n            if (arg && typeof arg.message === 'string') {\n                err = arg;\n            }\n        }\n    }\n    return err;\n}\n\n/**\n *\n * @param {SQLError} webSQLErr\n * @returns {(DOMException|Error) & {\n *   sqlError: SQLError\n * }}\n */\nfunction webSQLErrback (webSQLErr) {\n    let name, message;\n    switch (webSQLErr.code) {\n    case 4: { // SQLError.QUOTA_ERR\n        name = 'QuotaExceededError';\n        message = 'The operation failed because there was not enough ' +\n            'remaining storage space, or the storage quota was reached ' +\n            'and the user declined to give more space to the database.';\n        break;\n    }\n    /*\n    // Should a WebSQL timeout treat as IndexedDB `TransactionInactiveError` or `UnknownError`?\n    case 7: { // SQLError.TIMEOUT_ERR\n        // All transaction errors abort later, so no need to mark inactive\n        name = 'TransactionInactiveError';\n        message = 'A request was placed against a transaction which is currently not active, or which is finished (Internal SQL Timeout).';\n        break;\n    }\n    */\n    default: {\n        name = 'UnknownError';\n        message = 'The operation failed for reasons unrelated to the database itself and not covered by any other errors.';\n        break;\n    }\n    }\n    message += ' (' + webSQLErr.message + ')--(' + webSQLErr.code + ')';\n    const err =\n        /**\n         * @type {(Error | DOMException) & {\n         *   sqlError: SQLError\n         * }}\n         */\n        (createDOMException(name, message));\n    err.sqlError = webSQLErr;\n    return err;\n}\n\nlet test, useNativeDOMException = false;\n\n// Test whether we can use the browser's native DOMException class\ntry {\n    test = createNativeDOMException('test name', 'test message');\n    if (isErrorOrDOMErrorOrDOMException(test) && test.name === 'test name' && test.message === 'test message') {\n        // Native DOMException works as expected\n        useNativeDOMException = true;\n    }\n} catch (e) {}\n\nconst createDOMException = useNativeDOMException\n    // eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc\n    ? /**\n     * @param {string} name\n     * @param {string} message\n     * @param {ErrorLike} [error]\n     * @returns {DOMException}\n     */\n    function (name, message, error) {\n        logError(name, message, error);\n        return createNativeDOMException(name, message);\n    }\n    // eslint-disable-next-line @stylistic/operator-linebreak -- Need JSDoc\n    : /**\n    * @param {string} name\n    * @param {string} message\n    * @param {ErrorLike} [error]\n    * @returns {Error}\n    */\n    function (name, message, error) {\n        logError(name, message, error);\n        return createNonNativeDOMException(name, message);\n    };\n\nconst ShimDOMException = useNativeDOMException\n    ? DOMException\n    : ShimNonNativeDOMException;\n\nexport {logError, findError, ShimDOMException, createDOMException, webSQLErrback};\n","import {EventTargetFactory} from 'eventtargeter';\nimport {createDOMException} from './DOMException.js';\nimport * as util from './util.js';\n\nconst listeners = ['onsuccess', 'onerror'];\nconst readonlyProperties = ['source', 'transaction', 'readyState'];\nconst doneFlagGetters = ['result', 'error'];\n\n/**\n * The IDBRequest Object that is returns for all async calls.\n * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#request-api\n * @class\n */\nfunction IDBRequest () {\n    throw new TypeError('Illegal constructor');\n}\n\n/**\n * @typedef {IDBRequest & EventTarget & import('eventtargeter').ShimEventTarget & {\n *   transaction: import('./IDBTransaction.js').IDBTransactionFull,\n *   __done: boolean,\n *   __result: import('./IDBDatabase.js').IDBDatabaseFull|undefined,\n *   __error: null|DOMException|Error,\n *   __source: null|import('./IDBDatabase.js').IDBDatabaseFull|\n *     import('./IDBObjectStore.js').IDBObjectStoreFull|\n *     import('./IDBIndex.js').IDBIndexFull,\n *   __transaction: undefined|null|\n *     import('./IDBTransaction.js').IDBTransactionFull,\n *   addLateEventListener: (ev: string, listener: (e: Event & {\n *     __legacyOutputDidListenersThrowError: boolean\n *   }) => void) => void\n *   addDefaultEventListener: (ev: string, listener: (e: Event & {\n *     __legacyOutputDidListenersThrowError: boolean\n *   }) => void) => void\n * }} IDBRequestFull\n */\n\n/* eslint-disable func-name-matching -- Polyfill */\n/**\n * @class\n * @this {IDBRequestFull}\n */\nIDBRequest.__super = function IDBRequest () {\n    // @ts-expect-error It's ok\n    this[Symbol.toStringTag] = 'IDBRequest';\n    // @ts-expect-error Part of `ShimEventTarget`\n    this.__setOptions({\n        legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n    });\n    doneFlagGetters.forEach((prop) => {\n        Object.defineProperty(this, '__' + prop, {\n            enumerable: false,\n            configurable: false,\n            writable: true\n        });\n        Object.defineProperty(this, prop, {\n            enumerable: true,\n            configurable: true,\n            get () {\n                if (!this.__done) {\n                    throw createDOMException('InvalidStateError', \"Can't get \" + prop + '; the request is still pending.');\n                }\n                return this['__' + prop];\n            }\n        });\n    });\n    util.defineReadonlyProperties(this, readonlyProperties, {\n        readyState: {\n            /**\n             * @this {IDBRequestFull}\n             * @returns {\"done\"|\"pending\"}\n             */\n            get readyState () {\n                return this.__done ? 'done' : 'pending';\n            }\n        }\n    });\n    util.defineListenerProperties(this, listeners);\n\n    this.__result = undefined;\n    this.__error = this.__source = this.__transaction = null;\n    this.__done = false;\n};\n/* eslint-enable func-name-matching -- Polyfill */\n\n/**\n * @returns {IDBRequestFull}\n */\nIDBRequest.__createInstance = function () {\n    // @ts-expect-error Casting this causes other errors\n    return new IDBRequest.__super();\n};\n\n// @ts-expect-error It's ok\nIDBRequest.prototype = EventTargetFactory.createInstance({extraProperties: ['debug']});\nIDBRequest.prototype[Symbol.toStringTag] = 'IDBRequestPrototype';\n\n/**\n * @this {IDBRequestFull}\n * @returns {import('./IDBTransaction.js').IDBTransactionFull|null|undefined}\n */\nIDBRequest.prototype.__getParent = function () {\n    if (this.toString() === '[object IDBOpenDBRequest]') {\n        return null;\n    }\n    return this.__transaction;\n};\n\n// Illegal invocations\nutil.defineReadonlyOuterInterface(IDBRequest.prototype, readonlyProperties);\nutil.defineReadonlyOuterInterface(IDBRequest.prototype, doneFlagGetters);\n\nutil.defineOuterInterface(IDBRequest.prototype, listeners);\n\nObject.defineProperty(IDBRequest.prototype, 'constructor', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: IDBRequest\n});\nIDBRequest.__super.prototype = IDBRequest.prototype;\n\nObject.defineProperty(IDBRequest, 'prototype', {\n    writable: false\n});\n\nconst openListeners = ['onblocked', 'onupgradeneeded'];\n\n/**\n * @typedef {IDBRequestFull & IDBOpenDBRequest & {}} IDBOpenDBRequestFull\n */\n\n/**\n * The IDBOpenDBRequest called when a database is opened.\n * @class\n */\nfunction IDBOpenDBRequest () {\n    throw new TypeError('Illegal constructor');\n}\n\n// @ts-expect-error It's ok\nIDBOpenDBRequest.prototype = Object.create(IDBRequest.prototype);\n\nObject.defineProperty(IDBOpenDBRequest.prototype, 'constructor', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: IDBOpenDBRequest\n});\n\nconst IDBOpenDBRequestAlias = IDBOpenDBRequest;\n/**\n * @returns {IDBRequestFull & IDBOpenDBRequest}\n */\nIDBOpenDBRequest.__createInstance = function () {\n    /**\n     * @class\n     * @this {IDBOpenDBRequestFull}\n     */\n    function IDBOpenDBRequest () {\n        IDBRequest.__super.call(this);\n\n        // @ts-expect-error It's ok\n        this[Symbol.toStringTag] = 'IDBOpenDBRequest';\n        // @ts-expect-error It's ok\n        this.__setOptions({\n            legacyOutputDidListenersThrowFlag: true, // Event hook for IndexedB\n            extraProperties: ['oldVersion', 'newVersion', 'debug']\n        }); // Ensure EventTarget preserves our properties\n        util.defineListenerProperties(this, openListeners);\n    }\n    IDBOpenDBRequest.prototype = IDBOpenDBRequestAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBOpenDBRequest();\n};\n\nutil.defineOuterInterface(IDBOpenDBRequest.prototype, openListeners);\n\nIDBOpenDBRequest.prototype[Symbol.toStringTag] = 'IDBOpenDBRequestPrototype';\n\nObject.defineProperty(IDBOpenDBRequest, 'prototype', {\n    writable: false\n});\n\nexport {IDBRequest, IDBOpenDBRequest};\n","/* eslint-disable promise/prefer-await-to-callbacks -- Needed for API */\n/* eslint-disable promise/catch-or-return, n/callback-return,\n    promise/always-return -- Not needed */\n/* eslint-disable unicorn/no-this-assignment -- Clarity */\n// Since [immediate](https://github.com/calvinmetcalf/immediate) is\n//   not doing the trick for our WebSQL transactions (at least in Node),\n//   we are forced to make the promises run fully synchronously.\n\n// Todo: Use ES6 classes\n\n/**\n * @typedef {any} ArbitraryValue\n */\n\n/**\n * @callback Resolve\n * @param {ArbitraryValue} val\n * @returns {void}\n */\n/**\n * @callback Reject\n * @param {ArbitraryValue} reason\n * @returns {void}\n */\n/**\n * @callback Settle\n * @returns {void}\n */\n\n/**\n * @callback ResolveReject\n * @param {Resolve} resolve\n * @param {Reject} reject\n * @returns {void}\n */\n\n/**\n * @callback OnFulfilled\n * @param {ArbitraryValue} resolve\n * @returns {void}\n */\n\n/**\n * @typedef {[(Settle|Resolve)[], (Settle|Reject)[]]} Callbacks\n */\n\n/**\n *\n * @param {PromiseLike<ArbitraryValue>} p\n * @returns {boolean}\n */\nfunction isPromise (p) {\n  return p && typeof p.then === 'function';\n}\n/**\n *\n * @param {PromiseLike<ArbitraryValue>} prom\n * @param {(err: Error) => void} reject\n * @returns {void}\n */\nfunction addReject (prom, reject) {\n  // Use this style for sake of non-Promise thenables (e.g., jQuery Deferred)\n  prom.then(null, reject);\n}\n\n// States\nconst PENDING = 2,\n  FULFILLED = 0, // We later abuse these as array indices\n  REJECTED = 1;\n\n/**\n * @class\n * @param {(\n *   resolve: (value: ArbitraryValue | PromiseLike<ArbitraryValue>) => void,\n *   reject: (reason?: any) => void\n * ) => void} fn\n */\nfunction SyncPromise (fn) {\n  const that = this;\n  // Value, this will be set to either a resolved value or rejected reason\n  that.v = 0;\n  // State of the promise\n  that.s = PENDING;\n  // Callbacks c[0] is fulfillment and c[1] contains rejection callbacks\n  /** @type {Callbacks|null} */\n  that.c = [[], []];\n  /**\n   *\n   * @param {ArbitraryValue} val\n   * @param {0|1} state\n   * @returns {void}\n   */\n  function transist (val, state) {\n    that.v = val;\n    that.s = state;\n\n    // console.log('state', state);\n    /** @type {Callbacks} */ (\n      that.c\n    )[state].forEach(function (func) { func(val); });\n    // Release memory, but if no handlers have been added, as we\n    //   assume that we will resolve/reject (truly) synchronously\n    //   and thus we avoid flagging checks about whether we've\n    //   already resolved/rejected.\n    if (/** @type {Callbacks} */(that.c)[state].length) {\n      that.c = null;\n    }\n  }\n\n  /** @type {Resolve} */\n  function resolve (val) {\n    if (!that.c) {\n      // Already resolved (or will be resolved), do nothing.\n    } else if (isPromise(val)) {\n      addReject(val.then(resolve), reject);\n    } else {\n      transist(val, FULFILLED);\n    }\n  }\n\n  /** @type {Reject} */\n  function reject (reason) {\n    if (!that.c) {\n      // Already resolved (or will be resolved), do nothing.\n    } else if (isPromise(reason)) {\n      addReject(reason.then(reject), reject);\n    } else {\n      transist(reason, REJECTED);\n    }\n  }\n  try {\n    fn(resolve, reject);\n  } catch (err) {\n    reject(err);\n  }\n}\n\n/* eslint-disable unicorn/no-thenable -- Promise API */\n/**\n * @param {((value: ArbitraryValue) => ArbitraryValue)|null|undefined} [cb]\n * @param {(reason: any) => PromiseLike<never>} [errBack]\n * @returns {SyncPromise}\n */\nSyncPromise.prototype.then = function (cb, errBack) {\n  /* eslint-enable unicorn/no-thenable -- Promise API */\n  const that = this;\n  return new SyncPromise(\n    /** @type {ResolveReject} */\n    function (resolve, reject) {\n      const rej = typeof errBack === 'function' ? errBack : reject;\n\n      /** @type {Settle} */\n      function settle () {\n        try {\n          resolve(cb ? cb(that.v) : that.v);\n        } catch (e) {\n          rej(e);\n        }\n      }\n      if (that.s === FULFILLED) {\n        settle();\n      } else if (that.s === REJECTED) {\n        rej(that.v);\n      } else {\n        /** @type {Callbacks} */ (that.c)[FULFILLED].push(settle);\n        /** @type {Callbacks} */ (that.c)[REJECTED].push(rej);\n      }\n    }\n  );\n};\n\n/**\n * @param {(reason: any) => PromiseLike<never>|null|undefined} cb\n * @returns {SyncPromise}\n */\nSyncPromise.prototype.catch = function (cb) {\n  const that = this;\n  return new SyncPromise(\n    /** @type {ResolveReject} */\n    function (resolve, reject) {\n      /**\n       * @returns {void}\n       */\n      function settle () {\n        try {\n          resolve(cb(that.v));\n        } catch (e) {\n          reject(e);\n        }\n      }\n\n      if (that.s === REJECTED) {\n        settle();\n      } else if (that.s === FULFILLED) {\n        resolve(that.v);\n      } else {\n        /** @type {Callbacks} */ (that.c)[REJECTED].push(settle);\n        /** @type {Callbacks} */ (that.c)[FULFILLED].push(resolve);\n      }\n    }\n  );\n};\n\n/**\n * @param {unknown[]|[]} promises\n * @returns {SyncPromise}\n */\nSyncPromise.all = function (promises) {\n  return new SyncPromise(\n    /** @type {ResolveReject} */\n    (resolve, reject) => {\n      let l = promises.length;\n      /** @type {ArbitraryValue[]} */\n      const newPromises = [];\n      if (!l) {\n        resolve(newPromises);\n        return;\n      }\n      promises.forEach((p, i) => {\n        if (isPromise(/** @type {PromiseLike<any>} */ (p))) {\n          addReject(/** @type {PromiseLike<any>} */ (p).then(\n            /** @type {OnFulfilled} */\n            (res) => {\n              newPromises[i] = res;\n              --l || resolve(newPromises);\n            }\n          ), reject);\n        } else {\n          newPromises[i] = p;\n          --l || resolve(promises);\n        }\n      });\n    }\n  );\n};\n\n/**\n * @param {unknown[]|[]} promises\n * @returns {SyncPromise}\n */\nSyncPromise.race = function (promises) {\n  let resolved = false;\n  return new SyncPromise(\n    /** @type {ResolveReject} */\n    (resolve, reject) => {\n      promises.some((p, i) => {\n        if (isPromise(/** @type {PromiseLike<any>} */ (p))) {\n          addReject(/** @type {PromiseLike<any>} */ (p).then(\n            /** @type {OnFulfilled} */\n            (res) => {\n              if (resolved) {\n                return;\n              }\n              resolve(res);\n              resolved = true;\n            }\n          ), reject);\n          return false;\n        }\n        resolve(p);\n        resolved = true;\n        return true;\n      });\n    }\n  );\n};\n\n/**\n * @param {ArbitraryValue} val\n * @returns {SyncPromise}\n */\nSyncPromise.resolve = function (val) {\n  return new SyncPromise(\n    /** @type {ResolveReject} */\n    (resolve, reject) => {\n      resolve(val);\n    }\n  );\n};\n\n/**\n * @param {ArbitraryValue} val\n * @returns {SyncPromise}\n */\nSyncPromise.reject = function (val) {\n  return new SyncPromise(\n    /** @type {ResolveReject} */\n    (resolve, reject) => {\n      reject(val);\n    }\n  );\n};\n\nexport default SyncPromise;\n","import CFG from './CFG.js';\nimport {encode as keyEncode, decode as keyDecode} from './Key.js';\n\n/**\n * Compares two keys.\n * @param {import('./Key.js').Key} first\n * @param {import('./Key.js').Key} second\n * @returns {0|1|-1}\n */\nfunction cmp (first, second) {\n    const encodedKey1 = /** @type {string} */ (keyEncode(first));\n    const encodedKey2 = /** @type {string} */ (keyEncode(second));\n    const result = encodedKey1 > encodedKey2\n        ? 1\n        : encodedKey1 === encodedKey2 ? 0 : -1;\n\n    if (CFG.DEBUG) {\n        // verify that the keys encoded correctly\n        let decodedKey1 = keyDecode(encodedKey1);\n        let decodedKey2 = keyDecode(encodedKey2);\n        if (typeof first === 'object') {\n            first = JSON.stringify(first);\n            decodedKey1 = JSON.stringify(decodedKey1);\n        }\n        if (typeof second === 'object') {\n            second = JSON.stringify(second);\n            decodedKey2 = JSON.stringify(decodedKey2);\n        }\n\n        // Encoding/decoding mismatches are usually due to a loss of\n        //   floating-point precision\n        if (decodedKey1 !== first) {\n            console.warn(\n                first + ' was incorrectly encoded as ' + decodedKey1\n            );\n        }\n        if (decodedKey2 !== second) {\n            console.warn(\n                second + ' was incorrectly encoded as ' + decodedKey2\n            );\n        }\n    }\n\n    return result;\n}\n\nexport default cmp;\n","import {createDOMException} from './DOMException.js';\nimport * as util from './util.js';\nimport cmp from './cmp.js';\nimport CFG from './CFG.js';\n\n/**\n * @typedef {NodeJS.TypedArray|DataView} ArrayBufferView\n */\n\n/**\n * @typedef {ArrayBufferView|ArrayBuffer} BufferSource\n */\n\n/**\n * @typedef {\"number\"|\"date\"|\"string\"|\"binary\"|\"array\"} KeyType\n */\n\n/**\n * @typedef {any} Value\n */\n\n/**\n * @typedef {any} Key\n * @todo Specify possible value more precisely\n */\n\n/**\n * @typedef {KeyPath[]} KeyPathArray\n */\n/**\n * @typedef {string|KeyPathArray} KeyPath\n */\n\n/**\n* @typedef {object} KeyValueObject\n* @property {KeyType|\"NaN\"|\"null\"|\"undefined\"|\"boolean\"|\"object\"|\"symbol\"|\n*   \"function\"|\"bigint\"} type If not `KeyType`, indicates invalid value\n* @property {Value} [value]\n* @property {boolean} [invalid]\n* @property {string} [message]\n* @todo Specify acceptable `value` more precisely\n*/\n\n/**\n * @typedef {number|string|Date|ArrayBuffer} ValueTypePrimitive\n */\n/**\n * @typedef {ValueType[]} ValueTypeArray\n */\n/**\n * @typedef {ValueTypePrimitive|ValueTypeArray} ValueType\n */\n\n/**\n * Encodes the keys based on their types. This is required to maintain collations\n * We leave space for future keys.\n * @type {{[key: string]: Integer|string}}\n */\nconst keyTypeToEncodedChar = {\n    invalid: 100,\n    number: 200,\n    date: 300,\n    string: 400,\n    binary: 500,\n    array: 600\n};\nconst keyTypes = /** @type {(KeyType|\"invalid\")[]} */ (Object.keys(keyTypeToEncodedChar));\nkeyTypes.forEach((k) => {\n    keyTypeToEncodedChar[k] = String.fromCodePoint(\n        /** @type {number} */ (keyTypeToEncodedChar[k])\n    );\n});\n\nconst encodedCharToKeyType = keyTypes.reduce((o, k) => {\n    o[keyTypeToEncodedChar[k]] = k;\n    return o;\n}, /** @type {{[key: string]: KeyType|\"invalid\"}} */ ({}));\n\n/**\n * The sign values for numbers, ordered from least to greatest.\n *  - \"negativeInfinity\": Sorts below all other values.\n *  - \"bigNegative\": Negative values less than or equal to negative one.\n *  - \"smallNegative\": Negative values between negative one and zero, noninclusive.\n *  - \"smallPositive\": Positive values between zero and one, including zero but not one.\n *  - \"largePositive\": Positive values greater than or equal to one.\n *  - \"positiveInfinity\": Sorts above all other values.\n */\nconst signValues = ['negativeInfinity', 'bigNegative', 'smallNegative', 'smallPositive', 'bigPositive', 'positiveInfinity'];\n\n/**\n * @typedef {any} AnyValue\n */\n\nconst types = {\n    invalid: {\n        /**\n         * @returns {string}\n         */\n        encode () {\n            return keyTypeToEncodedChar.invalid + '-';\n        },\n        /**\n         * @returns {undefined}\n         */\n        decode () {\n            return undefined;\n        }\n    },\n\n    // Numbers are represented in a lexically sortable base-32 sign-exponent-mantissa\n    // notation.\n    //\n    // sign: takes a value between zero and five, inclusive. Represents infinite cases\n    //     and the signs of both the exponent and the fractional part of the number.\n    // exponent: padded to two base-32 digits, represented by the 32's compliment in the\n    //     \"smallPositive\" and \"bigNegative\" cases to ensure proper lexical sorting.\n    // mantissa: also called the fractional part. Normed 11-digit base-32 representation.\n    //     Represented by the 32's compliment in the \"smallNegative\" and \"bigNegative\"\n    //     cases to ensure proper lexical sorting.\n    number: {\n        // The encode step checks for six numeric cases and generates 14-digit encoded\n        // sign-exponent-mantissa strings.\n        /**\n         * @param {number} key\n         * @returns {string}\n         */\n        encode (key) {\n            let key32 = key === Number.MIN_VALUE\n                // Mocha test `IDBFactory/cmp-spec.js` exposed problem for some\n                //   Node (and Chrome) versions with `Number.MIN_VALUE` being treated\n                //   as 0\n                // https://stackoverflow.com/questions/43305403/number-min-value-and-tostring\n                ? '0.' + '0'.repeat(214) + '2'\n                : Math.abs(key).toString(32);\n            // Get the index of the decimal.\n            const decimalIndex = key32.indexOf('.');\n            // Remove the decimal.\n            key32 = (decimalIndex !== -1) ? key32.replace('.', '') : key32;\n            // Get the index of the first significant digit.\n            const significantDigitIndex = key32.search(/[^0]/u);\n            // Truncate leading zeros.\n            key32 = key32.slice(significantDigitIndex);\n            let sign, exponent, mantissa;\n\n            // Finite cases:\n            if (Number.isFinite(\n                Number(key)\n            )) {\n                // Negative cases:\n                if (key < 0) {\n                    // Negative exponent case:\n                    if (key > -1) {\n                        sign = signValues.indexOf('smallNegative');\n                        exponent = padBase32Exponent(significantDigitIndex);\n                        mantissa = flipBase32(padBase32Mantissa(key32));\n                    // Non-negative exponent case:\n                    } else {\n                        sign = signValues.indexOf('bigNegative');\n                        exponent = flipBase32(padBase32Exponent(\n                            (decimalIndex !== -1) ? decimalIndex : key32.length\n                        ));\n                        mantissa = flipBase32(padBase32Mantissa(key32));\n                    }\n                // Non-negative cases:\n                // Negative exponent case:\n                } else if (key < 1) {\n                    sign = signValues.indexOf('smallPositive');\n                    exponent = flipBase32(padBase32Exponent(significantDigitIndex));\n                    mantissa = padBase32Mantissa(key32);\n                // Non-negative exponent case:\n                } else {\n                    sign = signValues.indexOf('bigPositive');\n                    exponent = padBase32Exponent(\n                        (decimalIndex !== -1) ? decimalIndex : key32.length\n                    );\n                    mantissa = padBase32Mantissa(key32);\n                }\n            // Infinite cases:\n            } else {\n                exponent = zeros(2);\n                mantissa = zeros(11);\n                sign = signValues.indexOf(\n                    key > 0 ? 'positiveInfinity' : 'negativeInfinity'\n                );\n            }\n\n            return keyTypeToEncodedChar.number + '-' + sign + exponent + mantissa;\n        },\n        // The decode step must interpret the sign, reflip values encoded as the 32's complements,\n        // apply signs to the exponent and mantissa, do the base-32 power operation, and return\n        // the original JavaScript number values.\n        /**\n         * @param {string} key\n         * @returns {number}\n         */\n        decode (key) {\n            const sign = Number(key.slice(2, 3));\n            let exponent = key.slice(3, 5);\n            let mantissa = key.slice(5, 16);\n\n            switch (signValues[sign]) {\n            case 'negativeInfinity':\n                return Number.NEGATIVE_INFINITY;\n            case 'positiveInfinity':\n                return Number.POSITIVE_INFINITY;\n            case 'bigPositive':\n                return pow32(mantissa, exponent);\n            case 'smallPositive':\n                exponent = negate(flipBase32(exponent));\n                return pow32(mantissa, exponent);\n            case 'smallNegative':\n                exponent = negate(exponent);\n                mantissa = flipBase32(mantissa);\n                return -pow32(mantissa, exponent);\n            case 'bigNegative':\n                exponent = flipBase32(exponent);\n                mantissa = flipBase32(mantissa);\n                return -pow32(mantissa, exponent);\n            default:\n                throw new Error('Invalid number.');\n            }\n        }\n    },\n\n    // Strings are encoded as JSON strings (with quotes and unicode characters escaped).\n    //\n    // If the strings are in an array, then some extra encoding is done to make sorting work correctly:\n    // Since we can't force all strings to be the same length, we need to ensure that characters line-up properly\n    // for sorting, while also accounting for the extra characters that are added when the array itself is encoded as JSON.\n    // To do this, each character of the string is prepended with a dash (\"-\"), and a space is added to the end of the string.\n    // This effectively doubles the size of every string, but it ensures that when two arrays of strings are compared,\n    // the indexes of each string's characters line up with each other.\n    string: {\n        /**\n         * @param {string} key\n         * @param {boolean} [inArray]\n         * @returns {string}\n         */\n        encode (key, inArray) {\n            if (inArray) {\n                // prepend each character with a dash, and append a space to the end\n                key = key.replaceAll(/(.)/gu, '-$1') + ' ';\n            }\n            return keyTypeToEncodedChar.string + '-' + key;\n        },\n        /**\n         * @param {string} key\n         * @param {boolean} [inArray]\n         * @returns {string}\n         */\n        decode (key, inArray) {\n            key = key.slice(2);\n            if (inArray) {\n                // remove the space at the end, and the dash before each character\n                key = key.slice(0, -1).replaceAll(/-(.)/gu, '$1');\n            }\n            return key;\n        }\n    },\n\n    // Arrays are encoded as JSON strings.\n    // An extra, value is added to each array during encoding to make\n    //  empty arrays sort correctly.\n    array: {\n        /**\n         * @param {ValueTypeArray} key\n         * @returns {string}\n         */\n        encode (key) {\n            const encoded = [];\n            for (const [i, item] of key.entries()) {\n                const encodedItem = encode(item, true); // encode the array item\n                encoded[i] = encodedItem;\n            }\n            encoded.push(keyTypeToEncodedChar.invalid + '-'); // append an extra item, so empty arrays sort correctly\n            return keyTypeToEncodedChar.array + '-' + JSON.stringify(encoded);\n        },\n        /**\n         * @param {string} key\n         * @returns {ValueTypeArray}\n         */\n        decode (key) {\n            const decoded = JSON.parse(key.slice(2));\n            decoded.pop(); // remove the extra item\n            for (let i = 0; i < decoded.length; i++) {\n                const item = decoded[i];\n                const decodedItem = decode(item, true); // decode the item\n                decoded[i] = decodedItem;\n            }\n            return decoded;\n        }\n    },\n\n    // Dates are encoded as ISO 8601 strings, in UTC time zone.\n    date: {\n        /**\n         * @param {Date} key\n         * @returns {string}\n         */\n        encode (key) {\n            return keyTypeToEncodedChar.date + '-' + key.toJSON();\n        },\n        /**\n         * @param {string} key\n         * @returns {Date}\n         */\n        decode (key) {\n            return new Date(key.slice(2));\n        }\n    },\n    binary: {\n        // `ArrayBuffer`/Views on buffers (`TypedArray` or `DataView`)\n        /**\n         * @param {BufferSource} key\n         * @returns {string}\n         */\n        encode (key) {\n            return keyTypeToEncodedChar.binary + '-' + (key.byteLength\n                ? [...getCopyBytesHeldByBufferSource(key)].map(\n                    (b) => String(b).padStart(3, '0')\n                ) // e.g., '255,005,254,000,001,033'\n                : '');\n        },\n        /**\n         * @param {string} key\n         * @returns {ArrayBuffer}\n         */\n        decode (key) {\n            // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n            const k = key.slice(2);\n            const arr = k.length ? k.split(',').map((s) => Number.parseInt(s)) : [];\n            const buffer = new ArrayBuffer(arr.length);\n            const uint8 = new Uint8Array(buffer);\n            uint8.set(arr);\n            return buffer;\n        }\n    }\n};\n\n/**\n * Return a padded base-32 exponent value.\n * @param {number} n\n * @returns {string}\n */\nfunction padBase32Exponent (n) {\n    const exp = n.toString(32);\n    return (exp.length === 1) ? '0' + exp : exp;\n}\n\n/**\n * Return a padded base-32 mantissa.\n * @param {string} s\n * @returns {string}\n */\nfunction padBase32Mantissa (s) {\n    return (s + zeros(11)).slice(0, 11);\n}\n\n/**\n * Flips each digit of a base-32 encoded string.\n * @param {string} encoded\n * @returns {string}\n */\nfunction flipBase32 (encoded) {\n    let flipped = '';\n    for (const ch of encoded) {\n        flipped += (31 - Number.parseInt(ch, 32)).toString(32);\n    }\n    return flipped;\n}\n\n/**\n * Base-32 power function.\n * RESEARCH: This function does not precisely decode floats because it performs\n * floating point arithmetic to recover values. But can the original values be\n * recovered exactly?\n * Someone may have already figured out a good way to store JavaScript floats as\n * binary strings and convert back. Barring a better method, however, one route\n * may be to generate decimal strings that `parseFloat` decodes predictably.\n * @param {string} mantissa\n * @param {string} exponent\n * @returns {number}\n */\nfunction pow32 (mantissa, exponent) {\n    const exp = Number.parseInt(exponent, 32);\n    if (exp < 0) {\n        return roundToPrecision(\n            Number.parseInt(mantissa, 32) * (32 ** (exp - 10))\n        );\n    }\n    if (exp < 11) {\n        const whole = mantissa.slice(0, exp);\n        const wholeNum = Number.parseInt(whole, 32);\n        const fraction = mantissa.slice(exp);\n        const fractionNum = Number.parseInt(fraction, 32) * (32 ** (exp - 11));\n        return roundToPrecision(wholeNum + fractionNum);\n    }\n    const expansion = mantissa + zeros(exp - 11);\n    return Number.parseInt(expansion, 32);\n}\n\n/**\n * @typedef {number} Float\n */\n\n/**\n * @param {Float} num\n * @param {Float} [precision]\n * @returns {Float}\n */\nfunction roundToPrecision (num, precision = 16) {\n    return Number.parseFloat(num.toPrecision(precision));\n}\n\n/**\n * Returns a string of n zeros.\n * @param {number} n\n * @returns {string}\n */\nfunction zeros (n) {\n    return '0'.repeat(n);\n}\n\n/**\n * Negates numeric strings.\n * @param {string} s\n * @returns {string}\n */\nfunction negate (s) {\n    return '-' + s;\n}\n\n/**\n * @param {Key} key\n * @returns {KeyType|\"invalid\"}\n */\nfunction getKeyType (key) {\n    if (Array.isArray(key)) { return 'array'; }\n    if (util.isDate(key)) { return 'date'; }\n    if (util.isBinary(key)) { return 'binary'; }\n    const keyType = typeof key;\n    return ['string', 'number'].includes(keyType)\n        ? /** @type {\"string\"|\"number\"} */ (keyType)\n        : 'invalid';\n}\n\n/**\n * Keys must be strings, numbers (besides `NaN`), Dates (if value is not\n *   `NaN`), binary objects or Arrays.\n * @param {Value} input The key input\n * @param {Value[]|null|undefined} [seen] An array of already seen keys\n * @returns {KeyValueObject}\n */\nfunction convertValueToKey (input, seen) {\n    return convertValueToKeyValueDecoded(input, seen, false, true);\n}\n\n/**\n* Currently not in use.\n* @param {Value} input\n* @returns {KeyValueObject}\n*/\nfunction convertValueToMultiEntryKey (input) {\n    return convertValueToKeyValueDecoded(input, null, true, true);\n}\n\n/**\n *\n * @param {BufferSource} O\n * @throws {TypeError}\n * @see https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\n * @returns {Uint8Array}\n */\nfunction getCopyBytesHeldByBufferSource (O) {\n    let offset = 0;\n    let length = 0;\n    if (ArrayBuffer.isView(O)) { // Has [[ViewedArrayBuffer]] internal slot\n        const arrayBuffer = O.buffer;\n        if (arrayBuffer === undefined) {\n            throw new TypeError(\n                'Could not copy the bytes held by a buffer source as the buffer was undefined.'\n            );\n        }\n        offset = O.byteOffset; // [[ByteOffset]] (will also throw as desired if detached)\n        length = O.byteLength; // [[ByteLength]] (will also throw as desired if detached)\n    } else {\n        length = O.byteLength; // [[ArrayBufferByteLength]] on ArrayBuffer (will also throw as desired if detached)\n    }\n    // const octets = new Uint8Array(input);\n    // const octets = types.binary.decode(types.binary.encode(input));\n    return new Uint8Array(\n        // Should allow DataView\n        /** @type {ArrayBuffer} */\n        (('buffer' in O && O.buffer) || O),\n        offset,\n        length\n    );\n}\n\n/**\n* Shortcut utility to avoid returning full keys from `convertValueToKey`\n*   and subsequent need to process in calling code unless `fullKeys` is\n*   set; may throw.\n* @param {Value} input\n* @param {Value[]|null} [seen]\n* @param {boolean} [multiEntry]\n* @param {boolean} [fullKeys]\n* @throws {TypeError} See `getCopyBytesHeldByBufferSource`\n* @todo Document other allowable `input`\n* @returns {KeyValueObject}\n*/\nfunction convertValueToKeyValueDecoded (input, seen, multiEntry, fullKeys) {\n    seen = seen || [];\n    if (seen.includes(input)) {\n        return {\n            type: 'array',\n            invalid: true,\n            message: 'An array key cannot be circular'\n        };\n    }\n    const type = getKeyType(input);\n    const ret = {type, value: input};\n    switch (type) {\n    case 'number': {\n        if (Number.isNaN(input)) {\n            // List as 'NaN' type for convenience of consumers in reporting errors\n            return {type: 'NaN', invalid: true};\n        }\n\n        // https://github.com/w3c/IndexedDB/issues/375\n        // https://github.com/w3c/IndexedDB/pull/386\n        if (Object.is(input, -0)) {\n            return {type, value: 0};\n        }\n        return /** @type {{type: KeyType; value: Value}} */ (ret);\n    } case 'string': {\n        return /** @type {{type: KeyType; value: Value}} */ (ret);\n    } case 'binary': { // May throw (if detached)\n        // Get a copy of the bytes held by the buffer source\n        // https://heycam.github.io/webidl/#ref-for-dfn-get-buffer-source-copy-2\n        const octets = getCopyBytesHeldByBufferSource(\n            /** @type {BufferSource} */ (input)\n        );\n        return {type: 'binary', value: octets};\n    } case 'array': { // May throw (from binary)\n        const arr = /** @type {Array<any>} */ (input);\n        const len = arr.length;\n        seen.push(input);\n\n        /** @type {(KeyValueObject|Value)[]} */\n        const keys = [];\n        for (let i = 0; i < len; i++) { // We cannot iterate here with array extras as we must ensure sparse arrays are invalidated\n            if (!multiEntry && !Object.hasOwn(arr, i)) {\n                return {type, invalid: true, message: 'Does not have own index property'};\n            }\n            try {\n                const entry = arr[i];\n                const key = convertValueToKeyValueDecoded(entry, seen, false, fullKeys); // Though steps do not list rethrowing, the next is returnifabrupt when not multiEntry\n                if (key.invalid) {\n                    if (multiEntry) {\n                        continue;\n                    }\n                    return {type, invalid: true, message: 'Bad array entry value-to-key conversion'};\n                }\n                if (!multiEntry ||\n                    (!fullKeys && keys.every((k) => cmp(k, key.value) !== 0)) ||\n                    (fullKeys && keys.every((k) => cmp(k, key) !== 0))\n                ) {\n                    keys.push(fullKeys ? key : key.value);\n                }\n            } catch (err) {\n                if (!multiEntry) {\n                    throw err;\n                }\n            }\n        }\n        return {type, value: keys};\n    } case 'date': {\n        const date = /** @type {Date} */ (input);\n        if (!Number.isNaN(date.getTime())) {\n            return fullKeys\n                ? {type, value: date.getTime()}\n                : {type, value: new Date(date.getTime())};\n        }\n        return {type, invalid: true, message: 'Not a valid date'};\n        // Falls through\n    } case 'invalid': default: {\n        // Other `typeof` types which are not valid keys:\n        //    'undefined', 'boolean', 'object' (including `null`), 'symbol', 'function'\n        const type = input === null ? 'null' : typeof input; // Convert `null` for convenience of consumers in reporting errors\n        return {type, invalid: true, message: 'Not a valid key; type ' + type};\n    }\n    }\n}\n\n/**\n *\n * @param {Key} key\n * @param {boolean} [fullKeys]\n * @returns {KeyValueObject}\n * @todo Document other allowable `key`?\n */\nfunction convertValueToMultiEntryKeyDecoded (key, fullKeys) {\n    return convertValueToKeyValueDecoded(key, null, true, fullKeys);\n}\n\n/**\n* An internal utility.\n* @param {Value} input\n* @param {Value[]|null|undefined} [seen]\n* @throws {DOMException} `DataError`\n* @returns {KeyValueObject}\n*/\nfunction convertValueToKeyRethrowingAndIfInvalid (input, seen) {\n    const key = convertValueToKey(input, seen);\n    if (key.invalid) {\n        throw createDOMException('DataError', key.message || 'Not a valid key; type: ' + key.type);\n    }\n    return key;\n}\n\n/**\n *\n * @param {Value} value\n * @param {KeyPath} keyPath\n * @param {boolean} multiEntry\n * @returns {KeyValueObject|KeyPathEvaluateValue}\n * @todo Document other possible return?\n */\nfunction extractKeyFromValueUsingKeyPath (value, keyPath, multiEntry) {\n    return extractKeyValueDecodedFromValueUsingKeyPath(value, keyPath, multiEntry, true);\n}\n/**\n* Not currently in use.\n* @param {Value} value\n* @param {KeyPath} keyPath\n* @param {boolean} multiEntry\n* @returns {KeyPathEvaluateValue}\n*/\nfunction evaluateKeyPathOnValue (value, keyPath, multiEntry) {\n    return evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, true);\n}\n\n/**\n* May throw, return `{failure: true}` (e.g., non-object on keyPath resolution)\n*    or `{invalid: true}` (e.g., `NaN`).\n* @param {Value} value\n* @param {KeyPath} keyPath\n* @param {boolean} [multiEntry]\n* @param {boolean} [fullKeys]\n* @returns {KeyValueObject|KeyPathEvaluateValue}\n* @todo Document other possible return?\n*/\nfunction extractKeyValueDecodedFromValueUsingKeyPath (value, keyPath, multiEntry, fullKeys) {\n    const r = evaluateKeyPathOnValueToDecodedValue(value, keyPath, multiEntry, fullKeys);\n    if (r.failure) {\n        return r;\n    }\n    if (!multiEntry) {\n        return convertValueToKeyValueDecoded(r.value, null, false, fullKeys);\n    }\n    return convertValueToMultiEntryKeyDecoded(r.value, fullKeys);\n}\n\n/**\n * Unused?\n * @typedef {object} KeyPathEvaluateFailure\n * @property {boolean} failure\n */\n\n/**\n * @typedef {KeyPathEvaluateValueValue[]} KeyPathEvaluateValueValueArray\n */\n\n/**\n * @typedef {undefined|number|string|Date|object|KeyPathEvaluateValueValueArray} KeyPathEvaluateValueValue\n */\n\n/**\n * @typedef {object} KeyPathEvaluateValue\n * @property {KeyPathEvaluateValueValue} [value]\n * @property {boolean} [failure]\n */\n\n/**\n * Returns the value of an inline key based on a key path (wrapped in an\n *   object with key `value`) or `{failure: true}`\n * @param {Value} value\n * @param {KeyPath} keyPath\n * @param {boolean} [multiEntry]\n * @param {boolean} [fullKeys]\n * @returns {KeyPathEvaluateValue}\n */\nfunction evaluateKeyPathOnValueToDecodedValue (value, keyPath, multiEntry, fullKeys) {\n    if (Array.isArray(keyPath)) {\n        /** @type {KeyPathEvaluateValueValueArray} */\n        const result = [];\n        return keyPath.some((item) => {\n            const key = evaluateKeyPathOnValueToDecodedValue(value, item, multiEntry, fullKeys);\n            if (key.failure) {\n                return true;\n            }\n            result.push(key.value);\n            return false;\n        })\n            ? {failure: true}\n            : {value: result};\n    }\n    if (keyPath === '') {\n        return {value};\n    }\n    const identifiers = keyPath.split('.');\n    return identifiers.some((idntfr) => {\n        if (idntfr === 'length' && (\n            typeof value === 'string' || Array.isArray(value)\n        )) {\n            value = value.length;\n        } else if (util.isBlob(value)) {\n            switch (idntfr) {\n            case 'size': case 'type':\n                value = /** @type {Blob} */ (value)[idntfr];\n                break;\n            }\n        } else if (util.isFile(value)) {\n            switch (idntfr) {\n            case 'name': case 'lastModified':\n                value = /** @type {File} */ (value)[idntfr];\n                break;\n            case 'lastModifiedDate':\n                value = new Date(/** @type {File} */ (value).lastModified);\n                break;\n            }\n        } else if (!util.isObj(value) || !Object.hasOwn(value, idntfr)) {\n            return true;\n        } else {\n            value = /** @type {{[key: string]: KeyPathEvaluateValueValue}} */ (\n                value\n            )[idntfr];\n            return value === undefined;\n        }\n        return false;\n    })\n        ? {failure: true}\n        : {value};\n}\n\n/**\n * Sets the inline key value.\n * @param {{[key: string]: AnyValue}} value\n * @param {Key} key\n * @param {string} keyPath\n * @returns {void}\n */\nfunction injectKeyIntoValueUsingKeyPath (value, key, keyPath) {\n    const identifiers = keyPath.split('.');\n    const last = identifiers.pop();\n    identifiers.forEach((identifier) => {\n        const hop = Object.hasOwn(value, identifier);\n        if (!hop) {\n            value[identifier] = {};\n        }\n        value = value[identifier];\n    });\n    value[/** @type {string} */ (last)] = key; // key is already a `keyValue` in our processing so no need to convert\n}\n\n/**\n *\n * @param {Value} value\n * @param {string} keyPath\n * @see https://github.com/w3c/IndexedDB/pull/146\n * @returns {boolean}\n */\nfunction checkKeyCouldBeInjectedIntoValue (value, keyPath) {\n    const identifiers = keyPath.split('.');\n    identifiers.pop();\n    for (const identifier of identifiers) {\n        if (!util.isObj(value)) {\n            return false;\n        }\n        const hop = Object.hasOwn(value, identifier);\n        if (!hop) {\n            return true;\n        }\n        value = /** @type {{[key: string]: Value}} */ (value)[identifier];\n    }\n    return util.isObj(value);\n}\n\n/**\n *\n * @param {Key} key\n * @param {import('./IDBKeyRange.js').IDBKeyRangeFull} range\n * @param {boolean} [checkCached]\n * @returns {boolean}\n */\nfunction isKeyInRange (key, range, checkCached) {\n    let lowerMatch = range.lower === undefined;\n    let upperMatch = range.upper === undefined;\n    const encodedKey = encode(key, true);\n    const lower = checkCached ? range.__lowerCached : encode(range.lower, true);\n    const upper = checkCached ? range.__upperCached : encode(range.upper, true);\n\n    if (!lowerMatch && (\n        (range.lowerOpen &&\n            encodedKey !== null && lower !== null && encodedKey > lower) ||\n        (!range.lowerOpen && (\n            (!encodedKey && !lower) ||\n            (encodedKey !== null && lower !== null && encodedKey >= lower))\n        )\n    )) {\n        lowerMatch = true;\n    }\n    if (!upperMatch && (\n        (range.upperOpen &&\n            encodedKey !== null && upper !== null && encodedKey < upper) ||\n        (!range.upperOpen && (\n            (!encodedKey && !upper) ||\n            (encodedKey !== null && upper !== null && encodedKey <= upper))\n        )\n    )) {\n        upperMatch = true;\n    }\n\n    return lowerMatch && upperMatch;\n}\n\n/**\n * Determines whether an index entry matches a multi-entry key value.\n * @param {string} encodedEntry     The entry value (already encoded)\n * @param {string} encodedKey       The full index key (already encoded)\n * @returns {boolean}\n */\nfunction isMultiEntryMatch (encodedEntry, encodedKey) {\n    const keyType = encodedCharToKeyType[encodedKey.slice(0, 1)];\n\n    if (keyType === 'array') {\n        return encodedKey.indexOf(encodedEntry) > 1;\n    }\n    return encodedKey === encodedEntry;\n}\n\n/**\n *\n * @param {Key} keyEntry\n * @param {import('./IDBKeyRange.js').IDBKeyRangeFull|undefined} range\n * @returns {Key[]}\n */\nfunction findMultiEntryMatches (keyEntry, range) {\n    const matches = [];\n\n    if (Array.isArray(keyEntry)) {\n        for (let key of keyEntry) {\n            if (Array.isArray(key)) {\n                if (range && range.lower === range.upper) {\n                    continue;\n                }\n                if (key.length === 1) {\n                    key = key[0];\n                } else {\n                    const nested = findMultiEntryMatches(key, range);\n                    if (nested.length > 0) {\n                        matches.push(key);\n                    }\n                    continue;\n                }\n            }\n\n            if (util.isNullish(range) || isKeyInRange(key, range, true)) {\n                matches.push(key);\n            }\n        }\n    } else if (util.isNullish(range) || isKeyInRange(keyEntry, range, true)) {\n        matches.push(keyEntry);\n    }\n    return matches;\n}\n\n/**\n* Not currently in use but keeping for spec parity.\n* @param {Key} key\n* @throws {Error} Upon a \"bad key\"\n* @returns {ValueType}\n*/\nfunction convertKeyToValue (key) {\n    const {type, value} = key;\n    switch (type) {\n    case 'number': case 'string': {\n        return value;\n    } case 'array': {\n        const array = [];\n        const len = value.length;\n        let index = 0;\n        while (index < len) {\n            const entry = convertKeyToValue(value[index]);\n            array[index] = entry;\n            index++;\n        }\n        return array;\n    } case 'date': {\n        return new Date(value);\n    } case 'binary': {\n        const len = value.length;\n        const buffer = new ArrayBuffer(len);\n        // Set the entries in buffer's [[ArrayBufferData]] to those in `value`\n        const uint8 = new Uint8Array(buffer, value.byteOffset || 0, value.byteLength);\n        uint8.set(value);\n        return buffer;\n    } case 'invalid': default:\n        throw new Error('Bad key');\n    }\n}\n\n/**\n *\n * @param {Key} key\n * @param {boolean} [inArray]\n * @returns {string|null}\n */\nfunction encode (key, inArray) {\n    // Bad keys like `null`, `object`, `boolean`, 'function', 'symbol' should not be passed here due to prior validation\n    if (key === undefined) {\n        return null;\n    }\n    // array, date, number, string, binary (should already have detected \"invalid\")\n    // @ts-expect-error Argument may be ignored\n    return types[getKeyType(key)].encode(key, inArray);\n}\n\n/**\n *\n * @param {Key} key\n * @param {boolean} [inArray]\n * @throws {Error} Invalid number\n * @returns {undefined|ValueType}\n */\nfunction decode (key, inArray) {\n    if (typeof key !== 'string') {\n        return undefined;\n    }\n    return types[encodedCharToKeyType[key.slice(0, 1)]].decode(key, inArray);\n}\n\n/**\n *\n * @param {Key} key\n * @param {boolean} [inArray]\n * @returns {undefined|ValueType}\n */\nfunction roundTrip (key, inArray) {\n    return decode(encode(key, inArray), inArray);\n}\n\nconst MAX_ALLOWED_CURRENT_NUMBER = 9007199254740992; // 2 ^ 53 (Also equal to `Number.MAX_SAFE_INTEGER + 1`)\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @callback CurrentNumberCallback\n * @param {Integer} cn The current number\n * @returns {void}\n */\n\n/**\n* @callback SQLFailureCallback\n* @param {DOMException|Error} exception\n* @returns {void}\n*/\n\n/**\n *\n * @param {SQLTransaction} tx\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {CurrentNumberCallback} func\n * @param {SQLFailureCallback} sqlFailCb\n * @returns {void}\n */\nfunction getCurrentNumber (tx, store, func, sqlFailCb) {\n    tx.executeSql('SELECT \"currNum\" FROM __sys__ WHERE \"name\" = ?', [\n        util.escapeSQLiteStatement(store.__currentName)\n    ], function (tx, data) {\n        if (data.rows.length !== 1) {\n            func(1);\n        } else {\n            func(data.rows.item(0).currNum);\n        }\n    }, function (tx, error) {\n        sqlFailCb(createDOMException(\n            'DataError',\n            'Could not get the auto increment value for key',\n            error\n        ));\n        return false;\n    });\n}\n\n/**\n *\n * @param {SQLTransaction} tx\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {Integer} num\n * @param {CurrentNumberCallback} successCb\n * @param {SQLFailureCallback} failCb\n * @returns {void}\n */\nfunction assignCurrentNumber (tx, store, num, successCb, failCb) {\n    const sql = 'UPDATE __sys__ SET \"currNum\" = ? WHERE \"name\" = ?';\n    const sqlValues = [num, util.escapeSQLiteStatement(store.__currentName)];\n    if (CFG.DEBUG) { console.log(sql, sqlValues); }\n    tx.executeSql(sql, sqlValues, function () {\n        successCb(num);\n    }, function (tx, err) {\n        failCb(createDOMException('UnknownError', 'Could not set the auto increment value for key', err));\n        return false;\n    });\n}\n\n/**\n * Bump up the auto-inc counter if the key path-resolved value is valid\n *   (greater than old value and >=1) OR if a manually passed in key is\n *   valid (numeric and >= 1) and >= any primaryKey.\n * @param {SQLTransaction} tx\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {Integer} num\n * @param {CurrentNumberCallback} successCb\n * @param {SQLFailureCallback} failCb\n * @returns {void}\n */\nfunction setCurrentNumber (tx, store, num, successCb, failCb) {\n    num = num === MAX_ALLOWED_CURRENT_NUMBER\n        ? num + 2 // Since incrementing by one will have no effect in JavaScript on this unsafe max, we represent the max as a number incremented by two. The getting of the current number is never returned to the user and is only used in safe comparisons, so it is safe for us to represent it in this manner\n        : num + 1;\n    return assignCurrentNumber(tx, store, num, successCb, failCb);\n}\n\n/**\n * @callback KeyForStoreCallback\n * @param {\"failure\"|null} arg1\n * @param {Integer} [arg2]\n * @param {Integer} [arg3]\n * @returns {void}\n */\n\n/**\n *\n * @param {SQLTransaction} tx\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {KeyForStoreCallback} cb\n * @param {SQLFailureCallback} sqlFailCb\n * @returns {void}\n */\nfunction generateKeyForStore (tx, store, cb, sqlFailCb) {\n    getCurrentNumber(tx, store, function (key) {\n        if (key > MAX_ALLOWED_CURRENT_NUMBER) { // 2 ^ 53 (See <https://github.com/w3c/IndexedDB/issues/147>)\n            cb('failure'); // eslint-disable-line n/no-callback-literal\n            return;\n        }\n        // Increment current number by 1 (we cannot leverage SQLite's\n        //  autoincrement (and decrement when not needed), as decrementing\n        //  will be overwritten/ignored upon the next insert)\n        setCurrentNumber(\n            tx, store, key,\n            function () {\n                cb(null, key, key);\n            },\n            sqlFailCb\n        );\n    }, sqlFailCb);\n}\n\n// Fractional or numbers exceeding the max do not get changed in the result\n//     per https://github.com/w3c/IndexedDB/issues/147\n//     so we do not return a key\n/**\n *\n * @param {SQLTransaction} tx\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {import('./Key.js').Key} key\n * @param {(num?: Integer) => void} successCb\n * @param {SQLFailureCallback} sqlFailCb\n * @returns {void}\n */\nfunction possiblyUpdateKeyGenerator (tx, store, key, successCb, sqlFailCb) {\n    // Per https://github.com/w3c/IndexedDB/issues/147 , non-finite numbers\n    //   (or numbers larger than the max) are now to have the explicit effect of\n    //   setting the current number (up to the max), so we do not optimize them\n    //   out here\n    if (typeof key !== 'number' || key < 1) { // Optimize with no need to get the current number\n        // Auto-increment attempted with a bad key;\n        //   we are not to change the current number, but the steps don't call for failure\n        // Numbers < 1 are optimized out as they will never be greater than the current number which must be at least 1\n        successCb();\n    } else {\n        // If auto-increment and the keyPath item is a valid numeric key, get the old auto-increment to compare if the new is higher\n        //  to determine which to use and whether to update the current number\n        getCurrentNumber(tx, store, function (cn) {\n            const value = Math.floor(\n                Math.min(key, MAX_ALLOWED_CURRENT_NUMBER)\n            );\n            const useNewKeyForAutoInc = value >= cn;\n            if (useNewKeyForAutoInc) {\n                setCurrentNumber(tx, store, value, function () {\n                    successCb(cn); // Supply old current number in case needs to be reverted\n                }, sqlFailCb);\n            } else { // Not updated\n                successCb();\n            }\n        }, sqlFailCb);\n    }\n}\n\nexport {encode, decode, roundTrip, convertKeyToValue, convertValueToKeyValueDecoded,\n    convertValueToMultiEntryKeyDecoded,\n    convertValueToKey,\n    convertValueToMultiEntryKey, convertValueToKeyRethrowingAndIfInvalid,\n    extractKeyFromValueUsingKeyPath, evaluateKeyPathOnValue,\n    extractKeyValueDecodedFromValueUsingKeyPath, injectKeyIntoValueUsingKeyPath, checkKeyCouldBeInjectedIntoValue,\n    isMultiEntryMatch, isKeyInRange, findMultiEntryMatches,\n    assignCurrentNumber,\n    generateKeyForStore, possiblyUpdateKeyGenerator};\n","import {createDOMException} from './DOMException.js';\nimport * as Key from './Key.js';\nimport * as util from './util.js';\n\nconst readonlyProperties = /** @type {const} */ (['lower', 'upper', 'lowerOpen', 'upperOpen']);\n\n/**\n * @typedef {globalThis.IDBKeyRange & {\n*   __lowerCached: string|null|false,\n*   __upperCached: string|null|false,\n*   __lowerOpen: boolean,\n* }} IDBKeyRangeFull\n*/\n\n/**\n * The IndexedDB KeyRange object.\n * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#dfn-key-range\n * @throws {TypeError}\n * @class\n */\nfunction IDBKeyRange () {\n    this.__lowerOpen = false;\n    this.__upperOpen = false;\n    throw new TypeError('Illegal constructor');\n}\nconst IDBKeyRangeAlias = IDBKeyRange;\n\n/**\n * @param {import('./Key.js').Key|null} lower\n * @param {import('./Key.js').Key|null} upper\n * @param {boolean} lowerOpen\n * @param {boolean} upperOpen\n * @returns {import('./IDBKeyRange.js').IDBKeyRangeFull}\n */\nIDBKeyRange.__createInstance = function (lower, upper, lowerOpen, upperOpen) {\n    /**\n     * @class\n     */\n    function IDBKeyRange () {\n        this[Symbol.toStringTag] = 'IDBKeyRange';\n        if (lower === undefined && upper === undefined) {\n            throw createDOMException('DataError', 'Both arguments to the key range method cannot be undefined');\n        }\n        let lowerConverted, upperConverted;\n        if (lower !== undefined) {\n            lowerConverted = Key.roundTrip(lower); // Todo: does this make the \"conversions\" redundant\n            Key.convertValueToKeyRethrowingAndIfInvalid(lower);\n        }\n        if (upper !== undefined) {\n            upperConverted = Key.roundTrip(upper); // Todo: does this make the \"conversions\" redundant\n            Key.convertValueToKeyRethrowingAndIfInvalid(upper);\n        }\n        if (lower !== undefined && upper !== undefined && lower !== upper) {\n            if (\n                /** @type {string} */ (Key.encode(lower)) >\n                /** @type {string} */ (Key.encode(upper))\n            ) {\n                throw createDOMException('DataError', '`lower` must not be greater than `upper` argument in `bound()` call.');\n            }\n        }\n\n        this.__lower = lowerConverted;\n        this.__upper = upperConverted;\n        this.__lowerOpen = Boolean(lowerOpen);\n        this.__upperOpen = Boolean(upperOpen);\n    }\n    IDBKeyRange.prototype = IDBKeyRangeAlias.prototype;\n\n    // @ts-expect-error Properties added by `defineProperty/ies`\n    return new IDBKeyRange();\n};\n\n/**\n * @param {import('./Key.js').Key} key\n * @this {IDBKeyRangeFull}\n * @returns {boolean}\n */\nIDBKeyRange.prototype.includes = function (key) {\n    // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n    if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n        throw new TypeError('Illegal invocation');\n    }\n    if (!arguments.length) {\n        throw new TypeError('IDBKeyRange.includes requires a key argument');\n    }\n    Key.convertValueToKeyRethrowingAndIfInvalid(key);\n    return Key.isKeyInRange(key, this);\n};\n\n/**\n * @param {import('./Key.js').Value} value\n * @returns {import('./IDBKeyRange.js').IDBKeyRangeFull}\n */\nIDBKeyRange.only = function (value) {\n    if (!arguments.length) {\n        throw new TypeError('IDBKeyRange.only requires a value argument');\n    }\n    return IDBKeyRange.__createInstance(value, value, false, false);\n};\n\n/**\n * @param {import('./Key.js').Value} value\n * @returns {globalThis.IDBKeyRange}\n */\nIDBKeyRange.lowerBound = function (value /* , open */) {\n    if (!arguments.length) {\n        throw new TypeError('IDBKeyRange.lowerBound requires a value argument');\n    }\n    // eslint-disable-next-line prefer-rest-params\n    return IDBKeyRange.__createInstance(value, undefined, arguments[1], true);\n};\n\n/**\n * @param {import('./Key.js').Value} value\n * @returns {globalThis.IDBKeyRange}\n */\nIDBKeyRange.upperBound = function (value /* , open */) {\n    if (!arguments.length) {\n        throw new TypeError('IDBKeyRange.upperBound requires a value argument');\n    }\n    // eslint-disable-next-line prefer-rest-params\n    return IDBKeyRange.__createInstance(undefined, value, true, arguments[1]);\n};\n\n/**\n * @param {import('./Key.js').Value} lower\n * @param {import('./Key.js').Value} upper\n * @returns {globalThis.IDBKeyRange}\n */\nIDBKeyRange.bound = function (lower, upper /* , lowerOpen, upperOpen */) {\n    if (arguments.length <= 1) {\n        throw new TypeError('IDBKeyRange.bound requires lower and upper arguments');\n    }\n    // eslint-disable-next-line prefer-rest-params\n    return IDBKeyRange.__createInstance(lower, upper, arguments[2], arguments[3]);\n};\nIDBKeyRange.prototype[Symbol.toStringTag] = 'IDBKeyRangePrototype';\n\nreadonlyProperties.forEach((prop) => {\n    Object.defineProperty(IDBKeyRange.prototype, '__' + prop, {\n        enumerable: false,\n        configurable: false,\n        writable: true\n    });\n    // Ensure for proper interface testing that \"get <name>\" is the function name\n    const o = {\n        /**\n         * @returns {import('./Key.js').Key|null|boolean}\n         */\n        get [prop] () {\n            // We can't do a regular instanceof check as it will create a loop given our hasInstance implementation\n            if (!util.isObj(this) || typeof this.__lowerOpen !== 'boolean') {\n                throw new TypeError('Illegal invocation');\n            }\n            return this['__' + prop];\n        }\n    };\n    const desc = /** @type {PropertyDescriptor} */ (\n        Object.getOwnPropertyDescriptor(o, prop)\n    );\n    // desc.enumerable = true; // Default\n    // desc.configurable = true; // Default\n    Object.defineProperty(IDBKeyRange.prototype, prop, desc);\n});\n\nObject.defineProperty(IDBKeyRange, Symbol.hasInstance, {\n    value:\n        /**\n         * @param {object} obj\n         * @returns {boolean}\n         */\n        (obj) => util.isObj(obj) && 'upper' in obj && 'lowerOpen' in obj &&\n            typeof obj.lowerOpen === 'boolean'\n});\n\nObject.defineProperty(IDBKeyRange, 'prototype', {\n    writable: false\n});\n\n/**\n * @param {IDBKeyRangeFull|undefined} range\n * @param {string} quotedKeyColumnName\n * @param {string[]} sql\n * @param {string[]} sqlValues\n * @param {boolean} [addAnd]\n * @param {boolean} [checkCached]\n * @returns {void}\n */\nfunction setSQLForKeyRange (\n    range, quotedKeyColumnName, sql, sqlValues, addAnd, checkCached\n) {\n    if (range && (range.lower !== undefined || range.upper !== undefined)) {\n        if (addAnd) { sql.push('AND'); }\n        let encodedLowerKey, encodedUpperKey;\n        const hasLower = range.lower !== undefined;\n        const hasUpper = range.upper !== undefined;\n        if (hasLower) {\n            encodedLowerKey = checkCached ? range.__lowerCached : Key.encode(range.lower);\n        }\n        if (hasUpper) {\n            encodedUpperKey = checkCached ? range.__upperCached : Key.encode(range.upper);\n        }\n        if (hasLower) {\n            sqlValues.push(util.escapeSQLiteStatement(/** @type {string} */ (encodedLowerKey)));\n            if (hasUpper && encodedLowerKey === encodedUpperKey && !range.lowerOpen && !range.upperOpen) {\n                sql.push(quotedKeyColumnName, '=', '?');\n                return;\n            }\n            sql.push(quotedKeyColumnName, (range.lowerOpen ? '>' : '>='), '?');\n        }\n        if (hasLower && hasUpper) { sql.push('AND'); }\n        if (hasUpper) {\n            sql.push(quotedKeyColumnName, (range.upperOpen ? '<' : '<='), '?');\n            sqlValues.push(util.escapeSQLiteStatement(/** @type {string} */ (encodedUpperKey)));\n        }\n    }\n}\n\n/**\n * @param {import('./Key.js').Value} value\n * @param {boolean} [nullDisallowed]\n * @throws {DOMException}\n * @returns {import('./IDBKeyRange.js').IDBKeyRangeFull|undefined}\n */\nfunction convertValueToKeyRange (value, nullDisallowed) {\n    if (util.instanceOf(value, IDBKeyRange)) {\n        // We still need to validate IDBKeyRange-like objects (the above check is based on loose duck-typing)\n        if (value.toString() !== '[object IDBKeyRange]') {\n            return IDBKeyRange.__createInstance(value.lower, value.upper, value.lowerOpen, value.upperOpen);\n        }\n        return value;\n    }\n    if (util.isNullish(value)) {\n        if (nullDisallowed) {\n            throw createDOMException('DataError', 'No key or range was specified');\n        }\n        return undefined; // Represents unbounded\n    }\n    Key.convertValueToKeyRethrowingAndIfInvalid(value);\n    return IDBKeyRange.only(value);\n}\n\nexport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange, IDBKeyRange as default};\n","/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {{\n *   _items: string[],\n *   _length: Integer,\n *   [key: number]: string,\n *   addIndexes: () => void,\n *   sortList: () => string[],\n *   push: (item: string) => void,\n *   clone: () => DOMStringListFull,\n *   contains: (str: string) => boolean,\n *   indexOf: (str: string) => Integer,\n *   splice: (index: Integer, howmany: Integer, ...args: any) => void\n *   length: Integer\n * }} DOMStringListFull\n */\n\nlet cleanInterface = false;\n\nconst testObject = {test: true};\n// Test whether Object.defineProperty really works.\nif (Object.defineProperty) {\n    try {\n        Object.defineProperty(testObject, 'test', {enumerable: false});\n        if (testObject.test) {\n            cleanInterface = true;\n        }\n    } catch (e) {\n    // Object.defineProperty does not work as intended.\n    }\n}\n\n/**\n * Shim the DOMStringList object.\n * @throws {TypeError}\n * @class\n */\nconst DOMStringList = function () {\n    /** @type {string[]} */\n    this._items = [];\n    /** @type {Integer} */\n    this._length = 0;\n    throw new TypeError('Illegal constructor');\n};\n\n// @ts-expect-error It's ok\nDOMStringList.prototype = {\n    constructor: DOMStringList,\n    // Interface.\n\n    /**\n     * @param {string} str\n     * @returns {boolean}\n     */\n    contains (str) {\n        if (!arguments.length) {\n            throw new TypeError('DOMStringList.contains must be supplied a value');\n        }\n        return this._items.includes(str);\n    },\n\n    /**\n     * @param {number} key\n     * @returns {string|null}\n     */\n    item (key) {\n        if (!arguments.length) {\n            throw new TypeError('DOMStringList.item must be supplied a value');\n        }\n        if (key < 0 || key >= this.length || !Number.isInteger(key)) {\n            return null;\n        }\n        return this._items[key];\n    },\n\n    // Helpers. Should only be used internally.\n    /**\n     * @returns {DOMStringListFull}\n     */\n    clone () {\n        const stringList = DOMStringList.__createInstance();\n        stringList._items = this._items.slice();\n        stringList._length = this.length;\n        stringList.addIndexes();\n        return stringList;\n    },\n    /**\n     * @this {DOMStringListFull}\n     * @returns {void}\n     */\n    addIndexes () {\n        for (let i = 0; i < this._items.length; i++) {\n            this[i] = this._items[i];\n        }\n    },\n    /**\n     * @this {DOMStringListFull}\n     * @returns {string[]}\n     */\n    sortList () {\n        // http://w3c.github.io/IndexedDB/#sorted-list\n        // https://tc39.github.io/ecma262/#sec-abstract-relational-comparison\n        this._items.sort();\n        this.addIndexes();\n        return this._items;\n    },\n    /**\n     * @param {(value: string, i: Integer, arr: string[]) => void} cb\n     * @param {object} thisArg\n     * @returns {void}\n     */\n    forEach (cb, thisArg) {\n        // eslint-disable-next-line unicorn/no-array-callback-reference, unicorn/no-array-method-this-argument\n        this._items.forEach(cb, thisArg);\n    },\n    /**\n     * @param {(value: string, i: Integer, arr: string[]) => any[]} cb\n     * @param {object} thisArg\n     * @returns {any[]}\n     */\n    map (cb, thisArg) {\n        // eslint-disable-next-line unicorn/no-array-callback-reference, unicorn/no-array-method-this-argument\n        return this._items.map(cb, thisArg);\n    },\n    /**\n     * @param {string} str\n     * @returns {Integer}\n     */\n    indexOf (str) {\n        return this._items.indexOf(str);\n    },\n    /**\n     * @param {string} item\n     * @this {DOMStringListFull}\n     * @returns {void}\n     */\n    push (item) {\n        this._items.push(item);\n        this._length++;\n        this.sortList();\n    },\n    /**\n     * @typedef {any} AnyArgs\n     */\n    /**\n     * @param {[index: Integer, howmany: Integer, ...args: any]} args\n     * @this {DOMStringListFull}\n     * @returns {void}\n     */\n    splice (...args /* index, howmany, item1, ..., itemX */) {\n        this._items.splice(...args);\n        this._length = this._items.length;\n        for (const i in this) {\n            if (i === String(Number.parseInt(i))) {\n                delete this[i];\n            }\n        }\n        this.sortList();\n    },\n    [Symbol.toStringTag]: 'DOMStringListPrototype',\n    // At least because `DOMStringList`, as a [list](https://infra.spec.whatwg.org/#list)\n    //    can be converted to a sequence per https://infra.spec.whatwg.org/#list-iterate\n    //    and particularly as some methods, e.g., `IDBDatabase.transaction`\n    //    expect such sequence<DOMString> (or DOMString), we need an iterator (some of\n    //    the Mocha tests rely on these)\n    *[Symbol.iterator] () {\n        let i = 0;\n        while (i < this._items.length) {\n            yield this._items[i++];\n        }\n    }\n};\n\n/**\n * @typedef {any} AnyValue\n */\nObject.defineProperty(DOMStringList, Symbol.hasInstance, {\n    /**\n     * @param {AnyValue} obj\n     * @returns {boolean}\n     */\n    value (obj) {\n        return Object.prototype.toString.call(obj) === 'DOMStringListPrototype';\n    }\n});\nconst DOMStringListAlias = DOMStringList;\nObject.defineProperty(DOMStringList, '__createInstance', {\n    /**\n     * @returns {DOMStringListFull}\n     */\n    value () {\n        /**\n         * @class\n         * @this {DOMStringList}\n         */\n        const DOMStringList = function DOMStringList () {\n            this.toString = function () {\n                return '[object DOMStringList]';\n            };\n            // Internal functions on the prototype have been made non-enumerable below.\n            Object.defineProperty(this, 'length', {\n                enumerable: true,\n                get () {\n                    return this._length;\n                }\n            });\n            this._items = /** @type {string[]} */ ([]);\n            this._length = 0;\n        };\n        DOMStringList.prototype = DOMStringListAlias.prototype;\n        return /** @type {DOMStringListFull} */ (new DOMStringList());\n    }\n});\n\nif (cleanInterface) {\n    Object.defineProperty(DOMStringList, 'prototype', {\n        writable: false\n    });\n\n    const nonenumerableReadonly = ['addIndexes', 'sortList', 'forEach', 'map', 'indexOf', 'push', 'splice', 'constructor', '__createInstance'];\n    nonenumerableReadonly.forEach((nonenumerableReadonly) => {\n        Object.defineProperty(DOMStringList.prototype, nonenumerableReadonly, {\n            enumerable: false\n        });\n    });\n\n    // Illegal invocations\n    // @ts-expect-error No return value\n    Object.defineProperty(DOMStringList.prototype, 'length', {\n        configurable: true,\n        enumerable: true,\n        get () {\n            throw new TypeError('Illegal invocation');\n        }\n    });\n\n    const nonenumerableWritable = ['_items', '_length'];\n    nonenumerableWritable.forEach((nonenumerableWritable) => {\n        Object.defineProperty(DOMStringList.prototype, nonenumerableWritable, {\n            enumerable: false,\n            writable: true\n        });\n    });\n}\n\nexport default DOMStringList;\n","import {EventTargetFactory} from 'eventtargeter';\nimport SyncPromise from 'sync-promise-expanded';\nimport {createEvent} from './Event.js';\nimport {logError, findError, webSQLErrback, createDOMException} from './DOMException.js';\nimport {IDBRequest} from './IDBRequest.js';\nimport * as util from './util.js';\nimport IDBObjectStore from './IDBObjectStore.js';\nimport CFG from './CFG.js';\n\nlet uniqueID = 0;\nconst listeners = ['onabort', 'oncomplete', 'onerror'];\nconst readonlyProperties = ['objectStoreNames', 'mode', 'db', 'error'];\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {{\n *   op: SQLCallback,\n *   args: ObjectArray,\n *   req: import('./IDBRequest.js').IDBRequestFull|null\n * }} RequestInfo\n */\n\n/**\n * @typedef {EventTarget & {\n *   mode: \"readonly\"|\"readwrite\"|\"versionchange\",\n *   db: import('./IDBDatabase.js').IDBDatabaseFull,\n *   on__abort: () => void,\n *   on__complete: () => void,\n *   on__beforecomplete: (ev: Event & {\n *     complete: () => void\n *   }) => void,\n *   on__preabort: () => void,\n *   __abortTransaction: (err: Error|DOMException|null) => void,\n *   __executeRequests: () => void,\n *   __tx: SQLTransaction,\n *   __id: Integer,\n *   __active: boolean,\n *   __running: boolean,\n *   __errored: boolean,\n *   __requests: RequestInfo[],\n *   __db: import('./IDBDatabase.js').IDBDatabaseFull,\n *   __mode: string,\n *   __error: null|DOMException|Error,\n *   __objectStoreNames: import('./DOMStringList.js').DOMStringListFull,\n *   __storeHandles: {\n *     [key: string]: import('./IDBObjectStore.js').IDBObjectStoreFull\n *   },\n *   __requestsFinished: boolean,\n *   __transFinishedCb: (err: boolean, cb: ((bool?: boolean) => void)) => void,\n *   __transactionEndCallback: () => void,\n *   __transactionFinished: boolean,\n *   __completed: boolean,\n *   __internal: boolean,\n *   __abortFinished: boolean,\n *   __createRequest: (\n *     source: import('./IDBDatabase.js').IDBDatabaseFull|\n *       import('./IDBObjectStore.js').IDBObjectStoreFull|\n *       import('./IDBIndex.js').IDBIndexFull|\n *       import('./IDBCursor.js').IDBCursorFull\n *   ) => import('./IDBRequest.js').IDBRequestFull,\n *   __pushToQueue: (\n *     request: import('./IDBRequest.js').IDBRequestFull|null,\n *     callback: SQLCallback,\n *     args?: ObjectArray\n *   ) => void,\n *   __assertActive: () => void,\n *   __addNonRequestToTransactionQueue: (\n *     callback: SQLCallback,\n *     args?: ObjectArray\n *   ) => void\n *   __addToTransactionQueue: (\n *     callback: SQLCallback,\n *     args: ObjectArray|undefined,\n *     source: import('./IDBDatabase.js').IDBDatabaseFull|\n *       import('./IDBObjectStore.js').IDBObjectStoreFull|\n *       import('./IDBIndex.js').IDBIndexFull|\n *       import('./IDBCursor.js').IDBCursorFull\n *   ) => import('./IDBRequest.js').IDBRequestFull\n *   __assertWritable: () => void,\n * }} IDBTransactionFull\n */\n\n/**\n * The IndexedDB Transaction.\n * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBTransaction\n * @class\n */\nfunction IDBTransaction () {\n    throw new TypeError('Illegal constructor');\n}\nconst IDBTransactionAlias = IDBTransaction;\n/**\n * @param {import('./IDBDatabase.js').IDBDatabaseFull} db\n * @param {import('./DOMStringList.js').DOMStringListFull} storeNames\n * @param {string} mode\n * @returns {IDBTransactionFull}\n */\nIDBTransaction.__createInstance = function (db, storeNames, mode) {\n    /**\n     * @class\n     * @this {IDBTransactionFull}\n     */\n    function IDBTransaction () {\n        const me = this;\n        // @ts-expect-error It's ok\n        me[Symbol.toStringTag] = 'IDBTransaction';\n        util.defineReadonlyProperties(me, readonlyProperties);\n        me.__id = ++uniqueID; // for debugging simultaneous transactions\n        me.__active = true;\n        me.__running = false;\n        me.__errored = false;\n        me.__requests = [];\n        me.__objectStoreNames = storeNames;\n        me.__mode = mode;\n        me.__db = db;\n        me.__error = null;\n        // @ts-expect-error Part of `ShimEventTarget`\n        me.__setOptions({\n            legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n        });\n\n        readonlyProperties.forEach((readonlyProp) => {\n            Object.defineProperty(this, readonlyProp, {\n                configurable: true\n            });\n        });\n        util.defineListenerProperties(this, listeners);\n        me.__storeHandles = {};\n\n        // Kick off the transaction as soon as all synchronous code is done\n        setTimeout(() => { me.__executeRequests(); }, 0);\n    }\n    IDBTransaction.prototype = IDBTransactionAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBTransaction();\n};\n\n// @ts-expect-error It's ok\nIDBTransaction.prototype = EventTargetFactory.createInstance({\n    // eslint-disable-next-line n/no-sync -- API\n    defaultSync: true,\n    // Ensure EventTarget preserves our properties\n    extraProperties: ['complete']\n});\n\n/**\n *\n * @param {boolean} err\n * @param {(bool: boolean) => void} cb\n * @returns {void}\n */\nIDBTransaction.prototype.__transFinishedCb = function (err, cb) {\n    cb(Boolean(err));\n};\n/**\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.__executeRequests = function () {\n    const me = this;\n    if (me.__running) {\n        if (CFG.DEBUG) { console.log('Looks like the request set is already running', me.mode); }\n        return;\n    }\n\n    me.__running = true;\n\n    me.db.__db[me.mode === 'readonly' ? 'readTransaction' : 'transaction']( // `readTransaction` is optimized, at least in `node-websql`\n        function executeRequests (tx) {\n            me.__tx = tx;\n            /** @type {RequestInfo} */\n            let q,\n                i = -1;\n\n            /**\n             * @typedef {any} IDBRequestResult\n             */\n\n            /**\n             * @param {IDBRequestResult} [result]\n             * @param {import('./IDBRequest.js').IDBRequestFull} [req]\n             * @returns {void}\n             */\n            function success (result, req) {\n                if (me.__errored || me.__requestsFinished) {\n                    // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n                    return;\n                }\n                if (req) {\n                    q.req = req; // Need to do this in case of cursors\n                }\n                if (!q.req) { // TS guard\n                    return;\n                }\n                if (q.req.__done) { // Avoid continuing with aborted requests\n                    return;\n                }\n                q.req.__done = true;\n                q.req.__result = result;\n                q.req.__error = null;\n\n                me.__active = true;\n                const e = createEvent('success');\n                q.req.dispatchEvent(e);\n                // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n                if (e.__legacyOutputDidListenersThrowError) {\n                    logError('Error', 'An error occurred in a success handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n                    // me.__active = false;\n                    me.__abortTransaction(createDOMException('AbortError', 'A request was aborted (in user handler after success).'));\n                    return;\n                }\n                executeNextRequest();\n            }\n\n            /**\n             * @param {[tx: SQLTransaction|DOMException|Error|SQLError, err?: SQLError]} args\n             * @returns {void}\n             */\n            function error (...args /* tx, err */) {\n                if (me.__errored || me.__requestsFinished) {\n                    // We've already called \"onerror\", \"onabort\", or thrown within\n                    //  the transaction, so don't do it again.\n                    return;\n                }\n                if (q.req && q.req.__done) { // Avoid continuing with aborted requests\n                    return;\n                }\n                const err = /** @type {Error|DOMException} */ (findError(args));\n                if (!q.req) {\n                    me.__abortTransaction(err);\n                    return;\n                }\n\n                // Fire an error event for the current IDBRequest\n                q.req.__done = true;\n                q.req.__error = err;\n                q.req.__result = undefined; // Must be undefined if an error per `result` getter\n                q.req.addLateEventListener('error', function (e) {\n                    if (e.cancelable && e.defaultPrevented && !e.__legacyOutputDidListenersThrowError) {\n                        executeNextRequest();\n                    }\n                });\n                q.req.addDefaultEventListener('error', function () {\n                    if (!q.req) { // TS guard\n                        return;\n                    }\n                    me.__abortTransaction(q.req.__error);\n                });\n\n                me.__active = true;\n                const e = createEvent('error', err, {bubbles: true, cancelable: true});\n                q.req.dispatchEvent(e);\n                // Do not set __active flag to false yet: https://github.com/w3c/IndexedDB/issues/87\n                if (e.__legacyOutputDidListenersThrowError) {\n                    logError('Error', 'An error occurred in an error handler attached to request chain', e.__legacyOutputDidListenersThrowError); // We do nothing else with this error as per spec\n                    e.preventDefault(); // Prevent 'error' default as steps indicate we should abort with `AbortError` even without cancellation\n                    me.__abortTransaction(createDOMException('AbortError', 'A request was aborted (in user handler after error).'));\n                }\n            }\n\n            /**\n             * @returns {void}\n             */\n            function executeNextRequest () {\n                if (me.__errored || me.__requestsFinished) {\n                    // We've already called \"onerror\", \"onabort\", or thrown within the transaction, so don't do it again.\n                    return;\n                }\n                i++;\n                if (i >= me.__requests.length) {\n                    // All requests in the transaction are done\n                    me.__requests = [];\n                    if (me.__active) {\n                        requestsFinished();\n                    }\n                } else {\n                    try {\n                        q = me.__requests[i];\n                        if (!q.req) {\n                            q.op(tx, q.args, executeNextRequest, error);\n                            return;\n                        }\n                        if (q.req.__done) { // Avoid continuing with aborted requests\n                            return;\n                        }\n                        q.op(tx, q.args, success, error, executeNextRequest);\n                    } catch (e) {\n                        error(/** @type {Error} */ (e));\n                    }\n                }\n            }\n\n            executeNextRequest();\n        },\n        function webSQLError (webSQLErr) {\n            // @ts-expect-error It's ok\n            if (webSQLErr === true) { // Not a genuine SQL error\n                return;\n            }\n            const err = webSQLErrback(/** @type {SQLError} */ (webSQLErr));\n            me.__abortTransaction(err);\n        },\n        function () {\n            // For Node, we don't need to try running here as we can keep\n            //   the transaction running long enough to rollback (in the\n            //   next (non-standard) callback for this transaction call)\n            if (me.__transFinishedCb !== IDBTransaction.prototype.__transFinishedCb) { // Node\n                return;\n            }\n            if (!me.__transactionEndCallback && !me.__requestsFinished) {\n                me.__transactionFinished = true;\n                return;\n            }\n            if (me.__transactionEndCallback && !me.__completed) {\n                me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n            }\n        },\n        function (currentTask, err, done, rollback, commit) {\n            if (currentTask.readOnly || err) {\n                return true;\n            }\n            me.__transFinishedCb = function (err, cb) {\n                if (err) {\n                    rollback(err, cb);\n                } else {\n                    commit(cb);\n                }\n            };\n            if (me.__transactionEndCallback && !me.__completed) {\n                me.__transFinishedCb(me.__errored, me.__transactionEndCallback);\n            }\n            return false;\n        }\n    );\n\n    /**\n     * @returns {void}\n     */\n    function requestsFinished () {\n        me.__active = false;\n        me.__requestsFinished = true;\n\n        /**\n         * @throws {Error}\n         * @returns {void}\n         */\n        function complete () {\n            me.__completed = true;\n            if (CFG.DEBUG) { console.log('Transaction completed'); }\n            const evt = createEvent('complete');\n            try {\n                me.__internal = true;\n                me.dispatchEvent(evt);\n                me.__internal = false;\n                me.dispatchEvent(createEvent('__complete'));\n            } catch (e) {\n                me.__internal = false;\n                // An error occurred in the \"oncomplete\" handler.\n                // It's too late to call \"onerror\" or \"onabort\". Throw a global error instead.\n                // (this may seem odd/bad, but it's how all native IndexedDB implementations work)\n                me.__errored = true;\n                throw e;\n            } finally {\n                me.__storeHandles = {};\n            }\n        }\n        if (me.mode === 'readwrite') {\n            if (me.__transactionFinished) {\n                complete();\n                return;\n            }\n            me.__transactionEndCallback = complete;\n            return;\n        }\n        if (me.mode === 'readonly') {\n            complete();\n            return;\n        }\n        const ev = /** @type {Event & {complete: () => void}} */ (\n            createEvent('__beforecomplete')\n        );\n        ev.complete = complete;\n        me.dispatchEvent(ev);\n    }\n};\n\n/**\n * Creates a new IDBRequest for the transaction.\n * NOTE: The transaction is not queued until you call {@link IDBTransaction#__pushToQueue}.\n * @param {import('./IDBDatabase.js').IDBDatabaseFull} source\n * @this {IDBTransactionFull}\n * @returns {IDBRequest}\n */\nIDBTransaction.prototype.__createRequest = function (source) {\n    const me = this;\n    const request = IDBRequest.__createInstance();\n    request.__source = source !== undefined ? source : me.db;\n    request.__transaction = me;\n    return request;\n};\n\n/**\n * @typedef {(\n *   tx: SQLTransaction,\n *   args: ObjectArray,\n *   success: (result?: any, req?: import('./IDBRequest.js').IDBRequestFull) => void,\n *   error: (tx: SQLTransaction|Error|DOMException|SQLError, err?: SQLError) => void,\n *   executeNextRequest?: () => void\n * ) => void} SQLCallback\n */\n\n/**\n * Adds a callback function to the transaction queue.\n * @param {SQLCallback} callback\n * @param {ObjectArray} args\n * @param {import('./IDBDatabase.js').IDBDatabaseFull|\n *   import('./IDBObjectStore.js').IDBObjectStoreFull|\n *   import('./IDBIndex.js').IDBIndexFull} source\n * @this {IDBTransactionFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBTransaction.prototype.__addToTransactionQueue = function (callback, args, source) {\n    const request = this.__createRequest(source);\n    this.__pushToQueue(request, callback, args);\n    return request;\n};\n\n/**\n * Adds a callback function to the transaction queue without generating a\n *   request.\n * @param {SQLCallback} callback\n * @param {ObjectArray} args\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.__addNonRequestToTransactionQueue = function (callback, args) {\n    this.__pushToQueue(null, callback, args);\n};\n\n/**\n * Adds an IDBRequest to the transaction queue.\n * @param {import('./IDBRequest.js').IDBRequestFull|null} request\n * @param {SQLCallback} callback\n * @param {ObjectArray} args\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.__pushToQueue = function (request, callback, args) {\n    this.__assertActive();\n    this.__requests.push({\n        op: callback,\n        args,\n        req: request\n    });\n};\n\n/**\n * @throws {DOMException}\n * @returns {void}\n */\nIDBTransaction.prototype.__assertActive = function () {\n    if (!this.__active) {\n        throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n    }\n};\n\n/**\n * @throws {DOMException}\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.__assertWritable = function () {\n    if (this.mode === 'readonly') {\n        throw createDOMException('ReadOnlyError', 'The transaction is read only');\n    }\n};\n\n/**\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.__assertVersionChange = function () {\n    IDBTransaction.__assertVersionChange(this);\n};\n\n/**\n * Returns the specified object store.\n * @param {string} objectStoreName\n * @this {IDBTransactionFull}\n * @returns {IDBObjectStore}\n */\nIDBTransaction.prototype.objectStore = function (objectStoreName) {\n    const me = this;\n    if (!(me instanceof IDBTransaction)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No object store name was specified');\n    }\n    IDBTransaction.__assertNotFinished(me);\n    if (me.__objectStoreNames.indexOf(objectStoreName) === -1) { // eslint-disable-line unicorn/prefer-includes\n        throw createDOMException('NotFoundError', objectStoreName + ' is not participating in this transaction');\n    }\n    const store = me.db.__objectStores[objectStoreName];\n    if (!store) {\n        throw createDOMException('NotFoundError', objectStoreName + ' does not exist in ' + me.db.name);\n    }\n\n    if (!me.__storeHandles[objectStoreName] ||\n        // These latter conditions are to allow store\n        //   recreation to create new clone object\n        me.__storeHandles[objectStoreName].__pendingDelete ||\n        me.__storeHandles[objectStoreName].__deleted) {\n        me.__storeHandles[objectStoreName] = IDBObjectStore.__clone(store, me);\n    }\n    return me.__storeHandles[objectStoreName];\n};\n\n/**\n *\n * @param {Error|DOMException|null} err\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.__abortTransaction = function (err) {\n    const me = this;\n    logError('Error', 'An error occurred in a transaction', err);\n    if (me.__errored) {\n        // We've already called \"onerror\", \"onabort\", or thrown, so don't do it again.\n        return;\n    }\n    me.__errored = true;\n\n    if (me.mode === 'versionchange') { // Steps for aborting an upgrade transaction\n        me.db.__version = me.db.__oldVersion;\n        me.db.__objectStoreNames = me.db.__oldObjectStoreNames;\n        me.__objectStoreNames = me.db.__oldObjectStoreNames;\n        Object.values(me.db.__objectStores).concat(\n            Object.values(me.__storeHandles)\n        ).forEach(function (store) {\n            // Store was already created so we restore to name before the rename\n            if ('__pendingName' in store &&\n                me.db.__oldObjectStoreNames.indexOf(store.__pendingName) > -1 // eslint-disable-line unicorn/prefer-includes\n            ) {\n                store.__name = store.__originalName;\n            }\n            store.__indexNames = store.__oldIndexNames;\n            delete store.__pendingDelete;\n            Object.values(store.__indexes).concat(\n                Object.values(store.__indexHandles)\n            ).forEach(function (index) {\n                // Index was already created so we restore to name before the rename\n                if ('__pendingName' in index &&\n                    store.__oldIndexNames.indexOf(index.__pendingName) > -1 // eslint-disable-line unicorn/prefer-includes\n                ) {\n                    index.__name = index.__originalName;\n                }\n                delete index.__pendingDelete;\n            });\n        });\n    }\n    me.__active = false; // Setting here and in requestsFinished for https://github.com/w3c/IndexedDB/issues/87\n\n    if (err !== null) {\n        me.__error = err;\n    }\n\n    if (me.__requestsFinished) {\n        // The transaction has already completed, so we can't call \"onerror\" or \"onabort\".\n        // So throw the error instead.\n        setTimeout(() => {\n            throw err;\n        }, 0);\n    }\n\n    /**\n     * @param {SQLTransaction|null} [tx]\n     * @param {SQLResultSet|SQLError|{code: 0}} [errOrResult]\n     * @returns {void}\n     */\n    function abort (tx, errOrResult) {\n        if (!tx) {\n            if (CFG.DEBUG) { console.log('Rollback not possible due to missing transaction', me); }\n        } else if (errOrResult && 'code' in errOrResult && typeof errOrResult.code === 'number') {\n            if (CFG.DEBUG) { console.log('Rollback erred; feature is probably not supported as per WebSQL', me); }\n        } else if (CFG.DEBUG) { console.log('Rollback succeeded', me); }\n\n        me.dispatchEvent(createEvent('__preabort'));\n        me.__requests.filter(function (q, i, arr) { // eslint-disable-line promise/no-promise-in-callback\n            return q.req && !q.req.__done && [i, -1].includes(\n                arr.map((q) => q.req).lastIndexOf(q.req)\n            );\n        }).reduce(function (promises, q) {\n            // We reduce to a chain of promises to be queued in order, so we cannot\n            //  use `Promise.all`, and I'm unsure whether `setTimeout` currently\n            //  behaves first-in-first-out with the same timeout so we could\n            //  just use a `forEach`.\n            return promises.then(function () {\n                if (!q.req) { // TS guard\n                    throw new Error('Missing request');\n                }\n                q.req.__done = true;\n                q.req.__result = undefined;\n                q.req.__error = createDOMException('AbortError', 'A request was aborted (an unfinished request).');\n                const reqEvt = createEvent('error', q.req.__error, {bubbles: true, cancelable: true});\n                return new SyncPromise(\n                    /** @type {() => void} */\n                    (resolve) => {\n                        setTimeout(() => {\n                            if (!q.req) { // TS guard\n                                throw new Error('Missing request');\n                            }\n                            q.req.dispatchEvent(reqEvt); // No need to catch errors\n                            resolve();\n                        });\n                    }\n                );\n            });\n        }, SyncPromise.resolve(undefined)).then(function () { // Also works when there are no pending requests\n            const evt = createEvent('abort', err, {bubbles: true, cancelable: false});\n            setTimeout(() => {\n                me.__abortFinished = true;\n                me.dispatchEvent(evt);\n                me.__storeHandles = {};\n                me.dispatchEvent(createEvent('__abort'));\n            });\n            return undefined;\n        }).catch((err) => {\n            console.log('Abort error');\n            throw err;\n        });\n    }\n\n    me.__transFinishedCb(true, function (rollback) {\n        if (rollback && me.__tx) { // Not supported in standard SQL (and WebSQL errors should\n            //   rollback automatically), but for Node.js, etc., we give chance for\n            //   manual aborts which would otherwise not work.\n            if (me.mode === 'readwrite') {\n                if (me.__transactionFinished) {\n                    abort();\n                    return;\n                }\n                me.__transactionEndCallback = abort;\n                return;\n            }\n            try {\n                me.__tx.executeSql(\n                    'ROLLBACK',\n                    [],\n                    abort,\n                    /** @type {SQLStatementErrorCallback} */ (abort)\n                ); // Not working in some circumstances, even in Node\n            } catch (err) {\n                // Browser errs when transaction has ended and since it most likely already erred here,\n                //   we call to abort\n                abort();\n            }\n        } else {\n            abort(null, {code: 0});\n        }\n    });\n};\n\n/**\n * @this {IDBTransactionFull}\n * @returns {void}\n */\nIDBTransaction.prototype.abort = function () {\n    const me = this;\n    if (!(me instanceof IDBTransaction)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (CFG.DEBUG) { console.log('The transaction was aborted', me); }\n    IDBTransaction.__assertNotFinished(me);\n    me.__abortTransaction(null);\n};\n\nIDBTransaction.prototype[Symbol.toStringTag] = 'IDBTransactionPrototype';\n\n/**\n *\n * @param {IDBTransactionFull|undefined} tx\n * @returns {void}\n */\nIDBTransaction.__assertVersionChange = function (tx) {\n    if (!tx || tx.mode !== 'versionchange') {\n        throw createDOMException('InvalidStateError', 'Not a version transaction');\n    }\n};\n/**\n *\n * @param {IDBTransactionFull} tx\n * @throws {DOMException}\n * @returns {void}\n */\nIDBTransaction.__assertNotVersionChange = function (tx) {\n    if (tx && tx.mode === 'versionchange') {\n        throw createDOMException('InvalidStateError', 'Cannot be called during a version transaction');\n    }\n};\n\n/**\n *\n * @param {IDBTransactionFull|undefined} tx\n * @throws {DOMException}\n * @returns {void}\n */\nIDBTransaction.__assertNotFinished = function (tx) {\n    if (!tx || tx.__completed || tx.__abortFinished || tx.__errored) {\n        throw createDOMException('InvalidStateError', 'Transaction finished by commit or abort');\n    }\n};\n\n// object store methods behave differently: see https://github.com/w3c/IndexedDB/issues/192\n/**\n *\n * @param {IDBTransactionFull} tx\n * @returns {void}\n */\nIDBTransaction.__assertNotFinishedObjectStoreMethod = function (tx) {\n    try {\n        IDBTransaction.__assertNotFinished(tx);\n    } catch (err) {\n        if (tx && !tx.__completed && !tx.__abortFinished) {\n            throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n        }\n        throw err;\n    }\n};\n\n/**\n *\n * @param {IDBTransactionFull|undefined} tx\n * @throws {DOMException}\n * @returns {void}\n */\nIDBTransaction.__assertActive = function (tx) {\n    if (!tx || !tx.__active) {\n        throw createDOMException('TransactionInactiveError', 'A request was placed against a transaction which is currently not active, or which is finished');\n    }\n};\n\n/**\n* Used by our `EventTarget.prototype` library to implement bubbling/capturing.\n * @this {IDBTransactionFull}\n* @returns {import('./IDBDatabase.js').IDBDatabaseFull}\n*/\nIDBTransaction.prototype.__getParent = function () {\n    return this.db;\n};\n\nutil.defineOuterInterface(IDBTransaction.prototype, listeners);\nutil.defineReadonlyOuterInterface(IDBTransaction.prototype, readonlyProperties);\n\nObject.defineProperty(IDBTransaction.prototype, 'constructor', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: IDBTransaction\n});\n\nObject.defineProperty(IDBTransaction, 'prototype', {\n    writable: false\n});\n\nexport default IDBTransaction;\n","function ownKeys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),r.push.apply(r,n)}return r}function _objectSpread2(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?ownKeys(Object(r),!0).forEach((function(t){_defineProperty(e,t,r[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ownKeys(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}function _typeof(e){return _typeof=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&\"function\"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?\"symbol\":typeof e},_typeof(e)}function _classCallCheck(e,t){if(!(e instanceof t))throw new TypeError(\"Cannot call a class as a function\")}function _defineProperties(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,\"value\"in n&&(n.writable=!0),Object.defineProperty(e,_toPropertyKey(n.key),n)}}function _createClass(e,t,r){return t&&_defineProperties(e.prototype,t),r&&_defineProperties(e,r),Object.defineProperty(e,\"prototype\",{writable:!1}),e}function _defineProperty(e,t,r){return(t=_toPropertyKey(t))in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function _slicedToArray(e,t){return function _arrayWithHoles(e){if(Array.isArray(e))return e}(e)||function _iterableToArrayLimit(e,t){var r=null==e?null:\"undefined\"!=typeof Symbol&&e[Symbol.iterator]||e[\"@@iterator\"];if(null!=r){var n,a,o,i,c=[],s=!0,u=!1;try{if(o=(r=r.call(e)).next,0===t){if(Object(r)!==r)return;s=!1}else for(;!(s=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);s=!0);}catch(e){u=!0,a=e}finally{try{if(!s&&null!=r.return&&(i=r.return(),Object(i)!==i))return}finally{if(u)throw a}}return c}}(e,t)||_unsupportedIterableToArray(e,t)||function _nonIterableRest(){throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}function _unsupportedIterableToArray(e,t){if(e){if(\"string\"==typeof e)return _arrayLikeToArray(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);return\"Object\"===r&&e.constructor&&(r=e.constructor.name),\"Map\"===r||\"Set\"===r?Array.from(e):\"Arguments\"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r)?_arrayLikeToArray(e,t):void 0}}function _arrayLikeToArray(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function _toPropertyKey(e){var t=function _toPrimitive(e,t){if(\"object\"!=typeof e||null===e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var n=r.call(e,t||\"default\");if(\"object\"!=typeof n)return n;throw new TypeError(\"@@toPrimitive must return a primitive value.\")}return(\"string\"===t?String:Number)(e)}(e,\"string\");return\"symbol\"==typeof t?t:String(t)}var e=_createClass((function TypesonPromise(e){_classCallCheck(this,TypesonPromise),this.p=new Promise(e)}));e.__typeson__type__=\"TypesonPromise\",\"undefined\"!=typeof Symbol&&Object.defineProperty(e.prototype,Symbol.toStringTag,{get:function get(){return\"TypesonPromise\"}}),e.prototype.then=function(t,r){var n=this;return new e((function(e,a){n.p.then((function(r){e(t?t(r):r)})).catch((function(e){return r?r(e):Promise.reject(e)})).then(e,a)}))},e.prototype.catch=function(e){return this.then((function(){}),e)},e.resolve=function(t){return new e((function(e){e(t)}))},e.reject=function(t){return new e((function(e,r){r(t)}))},e.all=function(t){return new e((function(e,r){Promise.all(t.map((function(e){return null!=e&&e.constructor&&\"__typeson__type__\"in e.constructor&&\"TypesonPromise\"===e.constructor.__typeson__type__?e.p:e}))).then(e,r)}))},e.race=function(t){return new e((function(e,r){Promise.race(t.map((function(e){return null!=e&&e.constructor&&\"__typeson__type__\"in e.constructor&&\"TypesonPromise\"===e.constructor.__typeson__type__?e.p:e}))).then(e,r)}))},e.allSettled=function(t){return new e((function(e,r){Promise.allSettled(t.map((function(e){return null!=e&&e.constructor&&\"__typeson__type__\"in e.constructor&&\"TypesonPromise\"===e.constructor.__typeson__type__?e.p:e}))).then(e,r)}))};var t=Object.hasOwn,r=Object.getPrototypeOf;function isThenable(e,t){return isObject(e)&&\"function\"==typeof e.then&&(!t||\"function\"==typeof e.catch)}function toStringTag(e){return Object.prototype.toString.call(e).slice(8,-1)}function hasConstructorOf(e,n){if(!e||\"object\"!==_typeof(e))return!1;var a=r(e);if(!a)return null===n;var o=t(a,\"constructor\")&&a.constructor;return\"function\"!=typeof o?null===n:n===o||null!==n&&Function.prototype.toString.call(o)===Function.prototype.toString.call(n)||\"function\"==typeof n&&\"string\"==typeof o.__typeson__type__&&o.__typeson__type__===n.__typeson__type__}function isPlainObject(e){return!(!e||\"Object\"!==toStringTag(e))&&(!r(e)||hasConstructorOf(e,Object))}function isUserObject(e){if(!e||\"Object\"!==toStringTag(e))return!1;var t=r(e);return!t||hasConstructorOf(e,Object)||isUserObject(t)}function isObject(e){return null!==e&&\"object\"===_typeof(e)}function escapeKeyPathComponent(e){return e.replaceAll(\"''\",\"''''\").replace(/^$/,\"''\").replaceAll(\"~\",\"~0\").replaceAll(\".\",\"~1\")}function unescapeKeyPathComponent(e){return e.replaceAll(\"~1\",\".\").replaceAll(\"~0\",\"~\").replace(/^''$/,\"\").replaceAll(\"''''\",\"''\")}function getByKeyPath(e,t){if(\"\"===t)return e;if(null===e||\"object\"!==_typeof(e))throw new TypeError(\"Unexpected non-object type\");var r=t.indexOf(\".\");if(r>-1){var n=e[unescapeKeyPathComponent(t.slice(0,r))];return void 0===n?void 0:getByKeyPath(n,t.slice(r+1))}return e[unescapeKeyPathComponent(t)]}function setAtKeyPath(e,t,r){if(\"\"===t)return r;if(!e||\"object\"!==_typeof(e))throw new TypeError(\"Unexpected non-object type\");var n=t.indexOf(\".\");return n>-1?setAtKeyPath(e[unescapeKeyPathComponent(t.slice(0,n))],t.slice(n+1),r):(e[unescapeKeyPathComponent(t)]=r,e)}function getJSONType(e){return null===e?\"null\":Array.isArray(e)?\"array\":_typeof(e)}function _await(e,t,r){return r?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}var n=Object.keys,a=Object.hasOwn,o=Array.isArray,i=[\"type\",\"replaced\",\"iterateIn\",\"iterateUnsetNumeric\",\"addLength\"];function _async(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];try{return Promise.resolve(e.apply(this,t))}catch(e){return Promise.reject(e)}}}function nestedPathsFirst(e,t){var r,n;if(\"\"===e.keypath)return-1;var a=null!==(r=e.keypath.match(/\\./g))&&void 0!==r?r:0,o=null!==(n=t.keypath.match(/\\./g))&&void 0!==n?n:0;return a&&(a=a.length),o&&(o=o.length),a>o?-1:a<o?1:e.keypath<t.keypath?-1:e.keypath>t.keypath?1:0}var c=function(){function Typeson(e){_classCallCheck(this,Typeson),this.options=e,this.plainObjectReplacers=[],this.nonplainObjectReplacers=[],this.revivers={},this.types={}}return _createClass(Typeson,[{key:\"stringify\",value:function stringify(e,t,r,n){n=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),n),{},{stringification:!0});var a=this.encapsulate(e,null,n);return o(a)?JSON.stringify(a[0],t,r):a.then((function(e){return JSON.stringify(e,t,r)}))}},{key:\"stringifySync\",value:function stringifySync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!0}))}},{key:\"stringifyAsync\",value:function stringifyAsync(e,t,r,n){return this.stringify(e,t,r,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},n),{},{sync:!1}))}},{key:\"parse\",value:function parse(e,t,r){return r=_objectSpread2(_objectSpread2(_objectSpread2({},this.options),r),{},{parse:!0}),this.revive(JSON.parse(e,t),r)}},{key:\"parseSync\",value:function parseSync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:\"parseAsync\",value:function parseAsync(e,t,r){return this.parse(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:\"specialTypeNames\",value:function specialTypeNames(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.returnTypeNames=!0,this.encapsulate(e,t,r)}},{key:\"rootTypeName\",value:function rootTypeName(e,t){var r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};return r.iterateNone=!0,this.encapsulate(e,t,r)}},{key:\"encapsulate\",value:function encapsulate(t,r,c){var s=this,u=_objectSpread2(_objectSpread2({sync:!0},this.options),c),l=u.sync,f={},y=[],p=[],d=[],v=!(\"cyclic\"in u)||u.cyclic,b=u.encapsulateObserver,m=function finish(e){var t=Object.values(f);if(u.iterateNone)return t.length?t[0]:getJSONType(e);if(t.length){if(u.returnTypeNames)return function _toConsumableArray(e){return function _arrayWithoutHoles(e){if(Array.isArray(e))return _arrayLikeToArray(e)}(e)||function _iterableToArray(e){if(\"undefined\"!=typeof Symbol&&null!=e[Symbol.iterator]||null!=e[\"@@iterator\"])return Array.from(e)}(e)||_unsupportedIterableToArray(e)||function _nonIterableSpread(){throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\")}()}(new Set(t));e&&isPlainObject(e)&&!a(e,\"$types\")?e.$types=f:e={$:e,$types:{$:f}}}else isObject(e)&&a(e,\"$types\")&&(e={$:e,$types:!0});return!u.returnTypeNames&&e},h=_async((function(t,r){return _await(Promise.all(r.map((function(e){return e[1].p}))),(function(n){return _await(Promise.all(n.map(_async((function(n){var a=!1,o=[],i=_slicedToArray(r.splice(0,1),1),c=_slicedToArray(i[0],7),s=c[0],u=c[2],l=c[3],f=c[4],y=c[5],p=c[6],d=O(s,n,u,l,o,!0,p),v=hasConstructorOf(d,e);return function _invoke(e,t){var r=e();return r&&r.then?r.then(t):t(r)}((function(){if(s&&v)return _await(d.p,(function(e){f[y]=e;var r=h(t,o);return a=!0,r}))}),(function(e){return a?e:(s?f[y]=d:t=v?d.p:d,h(t,o))}))})))),(function(){return t}))}))})),g=function _adaptBuiltinStateObjectProperties(e,t,r){Object.assign(e,t);var n=i.map((function(t){var r=e[t];return delete e[t],r}));r(),i.forEach((function(t,r){e[t]=n[r]}))},O=function _encapsulate(t,r,i,c,l,d,v){var m,h={},O=_typeof(r),w=b?function(n){var a,o=null!==(a=null!=v?v:c.type)&&void 0!==a?a:getJSONType(r);b(Object.assign(null!=n?n:h,{keypath:t,value:r,cyclic:i,stateObj:c,promisesData:l,resolvingTypesonPromise:d,awaitingTypesonPromise:hasConstructorOf(r,e)},{type:o}))}:null;if([\"string\",\"boolean\",\"number\",\"undefined\"].includes(O))return void 0===r||Number.isNaN(r)||r===Number.NEGATIVE_INFINITY||r===Number.POSITIVE_INFINITY||0===r?(m=c.replaced?r:_(t,r,c,l,!1,d,w))!==r&&(h={replaced:m}):m=r,w&&w(),m;if(null===r)return w&&w(),r;if(i&&!c.iterateIn&&!c.iterateUnsetNumeric&&r&&\"object\"===_typeof(r)){var A=y.indexOf(r);if(!(A<0))return f[t]=\"#\",w&&w({cyclicKeypath:p[A]}),\"#\"+p[A];!0===i&&(y.push(r),p.push(t))}var S,j,T=isPlainObject(r),N=o(r),I=(T||N)&&(!s.plainObjectReplacers.length||c.replaced)||c.iterateIn?r:_(t,r,c,l,T||N,null,w);if(I!==r?(m=I,h={replaced:I}):\"\"===t&&hasConstructorOf(r,e)?(l.push([t,r,i,c,void 0,void 0,c.type]),m=r):N&&\"object\"!==c.iterateIn||\"array\"===c.iterateIn?(S=new Array(r.length),h={clone:S}):([\"function\",\"symbol\"].includes(_typeof(r))||\"toJSON\"in r||hasConstructorOf(r,e)||hasConstructorOf(r,Promise)||hasConstructorOf(r,ArrayBuffer))&&!T&&\"object\"!==c.iterateIn?m=r:(S={},c.addLength&&(S.length=r.length),h={clone:S}),w&&w(),u.iterateNone)return null!==(j=S)&&void 0!==j?j:m;if(!S)return m;if(c.iterateIn){var P=function _loop(n){var o={ownKeys:a(r,n)};g(c,o,(function(){var a=t+(t?\".\":\"\")+escapeKeyPathComponent(n),o=_encapsulate(a,r[n],Boolean(i),c,l,d);hasConstructorOf(o,e)?l.push([a,o,Boolean(i),c,S,n,c.type]):void 0!==o&&(S[n]=o)}))};for(var E in r)P(E);w&&w({endIterateIn:!0,end:!0})}else n(r).forEach((function(n){var a=t+(t?\".\":\"\")+escapeKeyPathComponent(n);g(c,{ownKeys:!0},(function(){var t=_encapsulate(a,r[n],Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([a,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t)}))})),w&&w({endIterateOwn:!0,end:!0});if(c.iterateUnsetNumeric){for(var x=r.length,C=function _loop2(n){if(!(n in r)){var a=\"\".concat(t).concat(t?\".\":\"\").concat(n);g(c,{ownKeys:!1},(function(){var t=_encapsulate(a,void 0,Boolean(i),c,l,d);hasConstructorOf(t,e)?l.push([a,t,Boolean(i),c,S,n,c.type]):void 0!==t&&(S[n]=t)}))}},k=0;k<x;k++)C(k);w&&w({endIterateUnsetNumeric:!0,end:!0})}return S},_=function replace(e,t,r,n,a,o,i){for(var c=a?s.plainObjectReplacers:s.nonplainObjectReplacers,u=c.length;u--;){var y=c[u];if(y.test(t,r)){var p=y.type;if(s.revivers[p]){var d=f[e];f[e]=d?[p].concat(d):p}if(Object.assign(r,{type:p,replaced:!0}),(l||!y.replaceAsync)&&!y.replace)return i&&i({typeDetected:!0}),O(e,t,v&&\"readonly\",r,n,o,p);i&&i({replacing:!0});var b=void 0;if(l||!y.replaceAsync){if(void 0===y.replace)throw new TypeError(\"Missing replacer\");b=y.replace(t,r)}else b=y.replaceAsync(t,r);return O(e,b,v&&\"readonly\",r,n,o,p)}}return t},w=O(\"\",t,v,null!=r?r:{},d);if(d.length)return l&&u.throwOnBadSyncType?function(){throw new TypeError(\"Sync method requested but async result obtained\")}():Promise.resolve(h(w,d)).then(m);if(!l&&u.throwOnBadSyncType)throw new TypeError(\"Async method requested but sync result obtained\");return u.stringification&&l?[m(w)]:l?m(w):Promise.resolve(m(w))}},{key:\"encapsulateSync\",value:function encapsulateSync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!0}))}},{key:\"encapsulateAsync\",value:function encapsulateAsync(e,t,r){return this.encapsulate(e,t,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},r),{},{sync:!1}))}},{key:\"revive\",value:function revive(t,r){var a=this,i=_objectSpread2(_objectSpread2({sync:!0},this.options),r),c=i.sync;function finishRevival(e){if(c)return e;if(i.throwOnBadSyncType)throw new TypeError(\"Async method requested but sync result obtained\");return Promise.resolve(e)}if(!t||\"object\"!==_typeof(t)||Array.isArray(t))return finishRevival(t);var u=t.$types;if(!0===u)return finishRevival(t.$);if(!u||\"object\"!==_typeof(u)||Array.isArray(u))return finishRevival(t);var l=[],f={},y=!0;u.$&&isPlainObject(u.$)&&(t=t.$,u=u.$,y=!1);var p=function executeReviver(e,t){var r,n=_slicedToArray(null!==(r=a.revivers[e])&&void 0!==r?r:[],1)[0];if(!n)throw new Error(\"Unregistered type: \"+e);if(c&&!(\"revive\"in n))return t;if(!c&&n.reviveAsync)return n.reviveAsync(t,f);if(n.revive)return n.revive(t,f);throw new Error(\"Missing reviver\")},d=[];function checkUndefined(e){return hasConstructorOf(e,s)?void 0:e}var v,b=function revivePlainObjects(){var r=[];if(!u)throw new Error(\"Found bad `types`\");if(Object.entries(u).forEach((function(e){var t=_slicedToArray(e,2),n=t[0],o=t[1];\"#\"!==o&&[].concat(o).forEach((function(e){var t;_slicedToArray(null!==(t=a.revivers[e])&&void 0!==t?t:[null,{}],2)[1].plain&&(r.push({keypath:n,type:e}),delete u[n])}))})),r.length)return r.sort(nestedPathsFirst).reduce((function reducer(r,n){var a=n.keypath,o=n.type;if(isThenable(r))return r.then((function(e){return reducer(e,{keypath:a,type:o})}));var i=getByKeyPath(t,a);if(hasConstructorOf(i=p(o,i),e))return i.then((function(e){var r=setAtKeyPath(t,a,e);r===e&&(t=r)}));var c=setAtKeyPath(t,a,i);c===i&&(t=c)}),void 0)}();return hasConstructorOf(b,e)?v=b.then((function(){return t})):(v=function _revive(t,r,a,i,c){if(!y||\"$types\"!==t){var f=u[t],v=o(r);if(v||isPlainObject(r)){var b=v?new Array(r.length):{};for(n(r).forEach((function(n){var o=_revive(t+(t?\".\":\"\")+escapeKeyPathComponent(n),r[n],null!=a?a:b,b,n),i=function set(e){return hasConstructorOf(e,s)?b[n]=void 0:void 0!==e&&(b[n]=e),e};hasConstructorOf(o,e)?d.push(o.then((function(e){return i(e)}))):i(o)})),r=b;l.length;){var m=_slicedToArray(l[0],4),h=m[0],g=m[1],O=m[2],_=m[3],w=getByKeyPath(h,g);if(void 0===w)break;O[_]=w,l.splice(0,1)}}if(!f)return r;if(\"#\"===f){var A=getByKeyPath(a,r.slice(1));return void 0===A&&l.push([a,r.slice(1),i,c]),A}return[].concat(f).reduce((function reducer(t,r){if(hasConstructorOf(t,e))return t.then((function(e){return reducer(e,r)}));if(\"string\"!=typeof r)throw new TypeError(\"Bad type JSON\");return p(r,t)}),r)}}(\"\",t,null),d.length&&(v=e.resolve(v).then((function(t){return e.all([t].concat(d))})).then((function(e){return _slicedToArray(e,1)[0]})))),isThenable(v)?c&&i.throwOnBadSyncType?function(){throw new TypeError(\"Sync method requested but async result obtained\")}():hasConstructorOf(v,e)?v.p.then(checkUndefined):v:!c&&i.throwOnBadSyncType?function(){throw new TypeError(\"Async method requested but sync result obtained\")}():c?checkUndefined(v):Promise.resolve(checkUndefined(v))}},{key:\"reviveSync\",value:function reviveSync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!0}))}},{key:\"reviveAsync\",value:function reviveAsync(e,t){return this.revive(e,_objectSpread2(_objectSpread2({throwOnBadSyncType:!0},t),{},{sync:!1}))}},{key:\"register\",value:function register(e,t){var r=this,a=null!=t?t:{},i=function R(e){o(e)?e.forEach((function(e){return R(e)})):n(e).forEach((function(t){var n;if(\"#\"===t)throw new TypeError(\"# cannot be used as a type name as it is reserved for cyclic objects\");if(u.includes(t))throw new TypeError(\"Plain JSON object types are reserved as type names\");var i=e[t],c=i&&\"function\"!=typeof i&&!Array.isArray(i)&&i.testPlainObjects?r.plainObjectReplacers:r.nonplainObjectReplacers,s=c.filter((function(e){return e.type===t}));if(s.length&&(c.splice(c.indexOf(s[0]),1),delete r.revivers[t],delete r.types[t]),\"function\"==typeof i){var l=i;i={test:function test(e){return e&&e.constructor===l},replace:function replace(e){return _objectSpread2({},e)},revive:function revive(e){return Object.assign(Object.create(l.prototype),e)}}}else if(o(i)){var f=_slicedToArray(i,3);i={test:f[0],replace:f[1],revive:f[2]}}if(null!==(n=i)&&void 0!==n&&n.test){var y={type:t,test:i.test.bind(i)};i.replace&&(y.replace=i.replace.bind(i)),i.replaceAsync&&(y.replaceAsync=i.replaceAsync.bind(i));var p=\"number\"==typeof a.fallback?a.fallback:a.fallback?0:Number.POSITIVE_INFINITY;if(i.testPlainObjects?r.plainObjectReplacers.splice(p,0,y):r.nonplainObjectReplacers.splice(p,0,y),i.revive||i.reviveAsync){var d={};i.revive&&(d.revive=i.revive.bind(i)),i.reviveAsync&&(d.reviveAsync=i.reviveAsync.bind(i)),r.revivers[t]=[d,{plain:i.testPlainObjects}]}r.types[t]=i}}))};return[].concat(e).forEach((function(e){return i(e)})),this}}]),Typeson}(),s=_createClass((function Undefined(){_classCallCheck(this,Undefined)}));s.__typeson__type__=\"TypesonUndefined\";for(var u=[\"null\",\"boolean\",\"number\",\"string\",\"array\",\"object\"],l=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\",f=new Uint8Array(256),y=0;y<64;y++)f[l.codePointAt(y)]=y;var p=function encode(e,t,r){null==r&&(r=e.byteLength);for(var n=new Uint8Array(e,t||0,r),a=n.length,o=\"\",i=0;i<a;i+=3)o+=l[n[i]>>2],o+=l[(3&n[i])<<4|n[i+1]>>4],o+=l[(15&n[i+1])<<2|n[i+2]>>6],o+=l[63&n[i+2]];return a%3==2?o=o.slice(0,-1)+\"=\":a%3==1&&(o=o.slice(0,-2)+\"==\"),o},d=function decode(e){var t=e.length;if(t%4)throw new Error(\"Bad base64 length: not divisible by four\");var r,n,a,o,i=.75*e.length,c=0;\"=\"===e[e.length-1]&&(i--,\"=\"===e[e.length-2]&&i--);for(var s=new ArrayBuffer(i),u=new Uint8Array(s),l=0;l<t;l+=4)r=f[e.codePointAt(l)],n=f[e.codePointAt(l+1)],a=f[e.codePointAt(l+2)],o=f[e.codePointAt(l+3)],u[c++]=r<<2|n>>4,u[c++]=(15&n)<<4|a>>2,u[c++]=(3&a)<<6|63&o;return s};const v={arraybuffer:{test:e=>\"ArrayBuffer\"===toStringTag(e),replace(e,t){t.buffers||(t.buffers=[]);const r=t.buffers.indexOf(e);return r>-1?{index:r}:(t.buffers.push(e),p(e))},revive(e,t){if(t.buffers||(t.buffers=[]),\"object\"==typeof e)return t.buffers[e.index];const r=d(e);return t.buffers.push(r),r}}},b={bigintObject:{test:e=>\"object\"==typeof e&&hasConstructorOf(e,BigInt),replace:String,revive:e=>new Object(BigInt(e))}},m={bigint:{test:e=>\"bigint\"==typeof e,replace:String,revive:e=>BigInt(e)}};function string2arraybuffer(e){const t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t.buffer}const h={blob:{test:e=>\"Blob\"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType(\"text/plain; charset=x-user-defined\"),t.open(\"GET\",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error(\"Bad Blob access: \"+t.status);return{type:e.type,stringContents:t.responseText}},revive(e){const{type:t,stringContents:r}=e;return new Blob([string2arraybuffer(r)],{type:t})},replaceAsync:t=>new e(((e,r)=>{const n=new FileReader;n.addEventListener(\"load\",(()=>{e({type:t.type,stringContents:n.result})})),n.addEventListener(\"error\",(()=>{r(n.error)})),n.readAsBinaryString(t)}))}};function generateUUID(){let e=Date.now()+(\"undefined\"!=typeof performance&&\"function\"==typeof performance.now?performance.now():0);return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replaceAll(/[xy]/gu,(function(t){const r=Math.trunc((e+16*Math.random())%16);return e=Math.floor(e/16),(\"x\"===t?r:3&r|8).toString(16)}))}const g={},O={cloneable:{test:e=>e&&\"object\"==typeof e&&\"function\"==typeof e[Symbol.for(\"cloneEncapsulate\")],replace(e){const t=e[Symbol.for(\"cloneEncapsulate\")](),r=generateUUID();return g[r]=e,{uuid:r,encapsulated:t}},revive(e){const{uuid:t,encapsulated:r}=e;return g[t][Symbol.for(\"cloneRevive\")](r)}}},_={cryptokey:{test:e=>\"CryptoKey\"===toStringTag(e)&&e.extractable,replaceAsync:t=>new e((async(e,r)=>{let n;try{n=await crypto.subtle.exportKey(\"jwk\",t)}catch(e){return void r(e)}e({jwk:n,algorithm:t.algorithm,usages:t.usages})})),revive(e){const{jwk:t,algorithm:r,usages:n}=e;return crypto.subtle.importKey(\"jwk\",t,r,!0,n)}}},w={dataview:{test:e=>\"DataView\"===toStringTag(e),replace({buffer:e,byteOffset:t,byteLength:r},n){n.buffers||(n.buffers=[]);const a=n.buffers.indexOf(e);return a>-1?{index:a,byteOffset:t,byteLength:r}:(n.buffers.push(e),{encoded:p(e),byteOffset:t,byteLength:r})},revive(e,t){t.buffers||(t.buffers=[]);const{byteOffset:r,byteLength:n,encoded:a,index:o}=e;let i;return\"index\"in e?i=t.buffers[o]:(i=d(a),t.buffers.push(i)),new DataView(i,r,n)}}},A={date:{test:e=>\"Date\"===toStringTag(e),replace(e){const t=e.getTime();return Number.isNaN(t)?\"NaN\":t},revive:e=>\"NaN\"===e?new Date(Number.NaN):new Date(e)}},S={domexception:{test:e=>\"DOMException\"===toStringTag(e),replace:e=>({name:e.name,message:e.message}),revive:({message:e,name:t})=>new DOMException(e,t)}},j={};function create$5(e){j[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>e.is2D?{a:e.a,b:e.b,c:e.c,d:e.d,e:e.e,f:e.f}:{m11:e.m11,m12:e.m12,m13:e.m13,m14:e.m14,m21:e.m21,m22:e.m22,m23:e.m23,m24:e.m24,m31:e.m31,m32:e.m32,m33:e.m33,m34:e.m34,m41:e.m41,m42:e.m42,m43:e.m43,m44:e.m44},revive:t=>Object.hasOwn(t,\"a\")?new e([t.a,t.b,t.c,t.d,t.e,t.f]):new e([t.m11,t.m12,t.m13,t.m14,t.m21,t.m22,t.m23,t.m24,t.m31,t.m32,t.m33,t.m34,t.m41,t.m42,t.m43,t.m44])}}\"undefined\"!=typeof DOMMatrix&&create$5(DOMMatrix),\"undefined\"!=typeof DOMMatrixReadOnly&&create$5(DOMMatrixReadOnly);const T={};function create$4(e){T[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>({x:e.x,y:e.y,z:e.z,w:e.w}),revive:({x:t,y:r,z:n,w:a})=>new e(t,r,n,a)}}\"undefined\"!=typeof DOMPoint&&create$4(DOMPoint),\"undefined\"!=typeof DOMPointReadOnly&&create$4(DOMPointReadOnly);const N={domquad:{test:e=>\"DOMQuad\"===toStringTag(e),replace:e=>({p1:e.p1,p2:e.p2,p3:e.p3,p4:e.p4}),revive:({p1:e,p2:t,p3:r,p4:n})=>new DOMQuad(e,t,r,n)}},I={};function create$3(e){I[e.name.toLowerCase()]={test:t=>toStringTag(t)===e.name,replace:e=>({x:e.x,y:e.y,width:e.width,height:e.height}),revive:({x:t,y:r,width:n,height:a})=>new e(t,r,n,a)}}\"undefined\"!=typeof DOMRect&&create$3(DOMRect),\"undefined\"!=typeof DOMRectReadOnly&&create$3(DOMRectReadOnly);const P={error:{test:e=>\"Error\"===toStringTag(e),replace:({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i})=>({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i}),revive(e){const t=new Error(e.message);return t.name=e.name,t.cause=e.cause,t.stack=e.stack,t.fileName=e.fileName,t.lineNumber=e.lineNumber,t.columnNumber=e.columnNumber,t}}},E={};function create$2(e){E[e.name.toLowerCase()]={test:t=>hasConstructorOf(t,e),replace:({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i,errors:c})=>({name:e,message:t,cause:r,stack:n,fileName:a,lineNumber:o,columnNumber:i,errors:c}),revive(t){const r=\"undefined\"!=typeof AggregateError&&e===AggregateError?new e(t.errors,t.message):new e(t.message);return r.name=t.name,r.cause=t.cause,r.stack=t.stack,r.fileName=t.fileName,r.lineNumber=t.lineNumber,r.columnNumber=t.columnNumber,r}}}[TypeError,RangeError,SyntaxError,ReferenceError,EvalError,URIError].forEach((e=>create$2(e))),\"undefined\"!=typeof AggregateError&&create$2(AggregateError),\"function\"==typeof InternalError&&create$2(InternalError);const x={file:{test:e=>\"File\"===toStringTag(e),replace(e){const t=new XMLHttpRequest;if(t.overrideMimeType(\"text/plain; charset=x-user-defined\"),t.open(\"GET\",URL.createObjectURL(e),!1),t.send(),200!==t.status&&0!==t.status)throw new Error(\"Bad File access: \"+t.status);return{type:e.type,stringContents:t.responseText,name:e.name,lastModified:e.lastModified}},revive:({name:e,type:t,stringContents:r,lastModified:n})=>new File([string2arraybuffer(r)],e,{type:t,lastModified:n}),replaceAsync:t=>new e((function(e,r){const n=new FileReader;n.addEventListener(\"load\",(function(){e({type:t.type,stringContents:n.result,name:t.name,lastModified:t.lastModified})})),n.addEventListener(\"error\",(function(){r(n.error)})),n.readAsBinaryString(t)}))}},C={file:x.file,filelist:{test:e=>\"FileList\"===toStringTag(e),replace(e){const t=[];for(let r=0;r<e.length;r++)t[r]=e.item(r);return t},revive(e){class FileList{constructor(){this._files=arguments[0],this.length=this._files.length}item(e){return this._files[e]}get[Symbol.toStringTag](){return\"FileList\"}}return new FileList(e)}}},k={imagebitmap:{test:e=>\"ImageBitmap\"===toStringTag(e)||e&&e.dataset&&\"ImageBitmap\"===e.dataset.toStringTag,replace(e){const t=document.createElement(\"canvas\");return t.getContext(\"2d\").drawImage(e,0,0),t.toDataURL()},revive(e){const t=document.createElement(\"canvas\"),r=t.getContext(\"2d\"),n=document.createElement(\"img\");return n.addEventListener(\"load\",(function(){r.drawImage(n,0,0)})),n.src=e,t},reviveAsync(t){const r=document.createElement(\"canvas\"),n=r.getContext(\"2d\"),a=document.createElement(\"img\");return a.addEventListener(\"load\",(function(){n.drawImage(a,0,0)})),a.src=t,new e((async(e,t)=>{try{e(await createImageBitmap(r))}catch(e){t(e)}}))}}},B={imagedata:{test:e=>\"ImageData\"===toStringTag(e),replace:e=>({array:[...e.data],width:e.width,height:e.height}),revive:e=>new ImageData(new Uint8ClampedArray(e.array),e.width,e.height)}},U={infinity:{test:e=>e===Number.POSITIVE_INFINITY,replace:()=>\"Infinity\",revive:()=>Number.POSITIVE_INFINITY}},M={test:e=>hasConstructorOf(e,Intl.Collator),replace:e=>e.resolvedOptions(),revive:e=>new Intl.Collator(e.locale,e)},D={IntlCollator:M,IntlDateTimeFormat:{test:e=>hasConstructorOf(e,Intl.DateTimeFormat),replace:e=>e.resolvedOptions(),revive:e=>new Intl.DateTimeFormat(e.locale,e)},IntlNumberFormat:{test:e=>hasConstructorOf(e,Intl.NumberFormat),replace:e=>e.resolvedOptions(),revive:e=>new Intl.NumberFormat(e.locale,e)}},K={map:{test:e=>\"Map\"===toStringTag(e),replace:e=>[...e.entries()],revive:e=>new Map(e)}},L={nan:{test:e=>Number.isNaN(e),replace:()=>\"NaN\",revive:()=>Number.NaN}},F={negativeInfinity:{test:e=>e===Number.NEGATIVE_INFINITY,replace:()=>\"-Infinity\",revive:()=>Number.NEGATIVE_INFINITY}},$={negativeZero:{test:e=>Object.is(e,-0),replace:()=>0,revive:()=>-0}},J={nonbuiltinIgnore:{test:e=>e&&\"object\"==typeof e&&!Array.isArray(e)&&![\"Object\",\"Boolean\",\"Number\",\"String\",\"Error\",\"RegExp\",\"Math\",\"Date\",\"Map\",\"Set\",\"JSON\",\"ArrayBuffer\",\"SharedArrayBuffer\",\"DataView\",\"Int8Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Int16Array\",\"Uint16Array\",\"Int32Array\",\"Uint32Array\",\"Float32Array\",\"Float64Array\",\"Promise\",\"String Iterator\",\"Array Iterator\",\"Map Iterator\",\"Set Iterator\",\"WeakMap\",\"WeakSet\",\"Atomics\",\"Module\"].includes(toStringTag(e)),replace(){}}},V={StringObject:{test:e=>\"String\"===toStringTag(e)&&\"object\"==typeof e,replace:String,revive:e=>new String(e)},BooleanObject:{test:e=>\"Boolean\"===toStringTag(e)&&\"object\"==typeof e,replace:Boolean,revive:e=>new Boolean(e)},NumberObject:{test:e=>\"Number\"===toStringTag(e)&&\"object\"==typeof e,replace:Number,revive:e=>new Number(e)}},q={regexp:{test:e=>\"RegExp\"===toStringTag(e),replace:e=>({source:e.source,flags:(e.global?\"g\":\"\")+(e.ignoreCase?\"i\":\"\")+(e.multiline?\"m\":\"\")+(e.sticky?\"y\":\"\")+(e.unicode?\"u\":\"\")}),revive:({source:e,flags:t})=>new RegExp(e,t)}},Y={},W={resurrectable:{test:e=>e&&!Array.isArray(e)&&[\"object\",\"function\",\"symbol\"].includes(typeof e),replace(e){const t=generateUUID();return Y[t]=e,t},revive:e=>Y[e]}},G={set:{test:e=>\"Set\"===toStringTag(e),replace:e=>[...e.values()],revive:e=>new Set(e)}},H={};\"function\"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,...\"function\"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create$1(e){const t=e.name;H[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace:e=>(0===e.byteOffset&&e.byteLength===e.buffer.byteLength?e:e.slice(0)).buffer,revive:t=>\"ArrayBuffer\"===toStringTag(t)?new e(t):t}}(e)));const z={};\"function\"==typeof Int8Array&&[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array,...\"function\"==typeof BigInt64Array?[BigInt64Array,BigUint64Array]:[]].forEach((e=>function create(e){const t=e.name;z[t.toLowerCase()]={test:e=>toStringTag(e)===t,replace({buffer:e,byteOffset:t,length:r},n){n.buffers||(n.buffers=[]);const a=n.buffers.indexOf(e);return a>-1?{index:a,byteOffset:t,length:r}:(n.buffers.push(e),{encoded:p(e),byteOffset:t,length:r})},revive(t,r){r.buffers||(r.buffers=[]);const{byteOffset:n,length:a,encoded:o,index:i}=t;let c;return\"index\"in t?c=r.buffers[i]:(c=d(o),r.buffers.push(c)),new e(c,n,a)}}}(e)));const Q={undef:{test:(e,t)=>void 0===e&&(t.ownKeys||!(\"ownKeys\"in t)),replace:()=>0,revive:()=>new s}},X={userObject:{test:e=>isUserObject(e),replace:e=>({...e}),revive:e=>e}},Z=[{arrayNonindexKeys:{testPlainObjects:!0,test:(e,t)=>!!Array.isArray(e)&&(Object.keys(e).some((e=>String(Number.parseInt(e))!==e))&&(t.iterateIn=\"object\",t.addLength=!0),!0),replace:(e,t)=>(t.iterateUnsetNumeric=!0,e),revive(e){if(Array.isArray(e))return e;const t=[];return Object.entries(e).forEach((([e,r])=>{t[e]=r})),t}}},{sparseUndefined:{test:(e,t)=>void 0===e&&!1===t.ownKeys,replace:()=>0,revive(){}}}],ee=[L,U,F,$],te=[Q,Z,V,ee,A,P,E,q].concat(\"function\"==typeof Map?K:[],\"function\"==typeof Set?G:[],\"function\"==typeof ArrayBuffer?v:[],\"function\"==typeof Uint8Array?z:[],\"function\"==typeof DataView?w:[],\"undefined\"!=typeof Intl?D:[],\"undefined\"!=typeof BigInt?[m,b]:[]),re=[P,E],ne=[te,{arraybuffer:null},H],ae=[{sparseArrays:{testPlainObjects:!0,test:e=>Array.isArray(e),replace:(e,t)=>(t.iterateUnsetNumeric=!0,e)}},{sparseUndefined:{test:(e,t)=>void 0===e&&!1===t.ownKeys,replace:()=>0,revive(){}}}],oe=[X,Q,Z,V,ee,A,q,B,k,x,C,h,P,E].concat(\"function\"==typeof Map?K:[],\"function\"==typeof Set?G:[],\"function\"==typeof ArrayBuffer?v:[],\"function\"==typeof Uint8Array?z:[],\"function\"==typeof DataView?w:[],\"undefined\"!=typeof crypto?_:[],\"undefined\"!=typeof BigInt?[m,b]:[],\"undefined\"!=typeof DOMException?S:[],\"undefined\"!=typeof DOMRect?I:[],\"undefined\"!=typeof DOMPoint?T:[],\"undefined\"!=typeof DOMQuad?N:[],\"undefined\"!=typeof DOMMatrix?j:[]),ie=oe.concat({checkDataCloneException:{test(e){const t={}.toString.call(e).slice(8,-1);if([\"symbol\",\"function\"].includes(typeof e)||[\"Arguments\",\"Module\",\"Promise\",\"WeakMap\",\"WeakSet\",\"Event\",\"MessageChannel\"].includes(t)||e&&\"object\"==typeof e&&\"number\"==typeof e.nodeType&&\"function\"==typeof e.insertBefore)throw new DOMException(\"The object cannot be cloned.\",\"DataCloneError\");return!1}}}),ce=[ae,Q],se=[te];export{u as JSON_TYPES,c as Typeson,e as TypesonPromise,s as Undefined,Z as arrayNonindexKeys,v as arraybuffer,m as bigint,b as bigintObject,h as blob,te as builtin,O as cloneable,_ as cryptokey,w as dataview,A as date,S as domexception,j as dommatrix,T as dompoint,N as domquad,I as domrect,P as error,E as errors,escapeKeyPathComponent,x as file,C as filelist,getByKeyPath,getJSONType,hasConstructorOf,k as imagebitmap,B as imagedata,U as infinity,D as intlTypes,isObject,isPlainObject,isThenable,isUserObject,K as map,L as nan,F as negativeInfinity,$ as negativeZero,J as nonbuiltinIgnore,re as postmessage,V as primitiveObjects,q as regexp,W as resurrectable,G as set,setAtKeyPath,ne as socketio,ae as sparseUndefined,ee as specialNumbers,oe as structuredCloning,ie as structuredCloningThrowing,toStringTag,z as typedArrays,H as typedArraysSocketio,Q as undef,ce as undefPreset,unescapeKeyPathComponent,se as universal,X as userObject};\n//# sourceMappingURL=index.min.js.map\n","import {\n    Typeson, hasConstructorOf, structuredCloningThrowing\n} from 'typeson-registry';\n\nimport {createDOMException, ShimDOMException} from './DOMException.js';\n\n// See: http://stackoverflow.com/questions/42170826/categories-for-rejection-by-the-structured-cloning-algorithm\n\nlet typeson = new Typeson().register(structuredCloningThrowing);\n\n/**\n * @param {(preset: import('typeson-registry').Preset) =>\n *   import('typeson-registry').Preset} func\n * @returns {void}\n */\nfunction register (func) {\n    typeson = new Typeson().register(func(structuredCloningThrowing));\n}\n\n/**\n * We are keeping the callback approach for now in case we wish to reexpose\n * `Blob`, `File`, `FileList` asynchronously (though in such a case, we\n * should probably refactor as a Promise).\n * @param {AnyValue} obj\n * @param {(str: string) => void} [func]\n * @throws {Error}\n * @returns {string}\n */\nfunction encode (obj, func) {\n    let ret;\n    try {\n        // eslint-disable-next-line n/no-sync\n        ret = typeson.stringifySync(obj);\n    } catch (err) {\n        // SCA in typeson-registry using `DOMException` which is not defined (e.g., in Node)\n        if (hasConstructorOf(err, ReferenceError) ||\n            // SCA in typeson-registry threw a cloning error and we are in a\n            //   supporting environment (e.g., the browser) where `ShimDOMException` is\n            //   an alias for `DOMException`; if typeson-registry ever uses our shim\n            //   to throw, we can use this condition alone.\n            hasConstructorOf(err, ShimDOMException)) {\n            throw createDOMException('DataCloneError', 'The object cannot be cloned.');\n        }\n        // We should rethrow non-cloning exceptions like from\n        //  throwing getters (as in the W3C test, key-conversion-exceptions.htm)\n        throw err;\n    }\n    if (func) {\n        func(ret);\n    }\n    return ret;\n}\n\n/**\n * @typedef {any} AnyValue\n */\n\n/**\n * @param {string} obj\n * @returns {AnyValue}\n */\nfunction decode (obj) {\n    return typeson.parse(obj);\n}\n\n/**\n * @param {AnyValue} val\n * @returns {AnyValue}\n */\nfunction clone (val) {\n    // We don't return the intermediate `encode` as we'll need to reencode\n    //   the clone as it may differ\n    return decode(encode(val));\n}\n\nexport {encode, decode, clone, register};\n","import SyncPromise from 'sync-promise-expanded';\nimport {createDOMException} from './DOMException.js';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor.js';\nimport * as util from './util.js';\nimport * as Key from './Key.js';\nimport {setSQLForKeyRange, IDBKeyRange, convertValueToKeyRange} from './IDBKeyRange.js';\nimport IDBTransaction from './IDBTransaction.js';\nimport * as Sca from './Sca.js';\nimport CFG from './CFG.js';\nimport IDBObjectStore from './IDBObjectStore.js';\n\nconst readonlyProperties = ['objectStore', 'keyPath', 'multiEntry', 'unique'];\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {{\n *   columnName: string,\n *   keyPath: import('./Key.js').KeyPath,\n *   optionalParams: {\n *     unique: boolean,\n *     multiEntry: boolean\n *   }\n *   deleted?: boolean,\n *   __deleted?: boolean,\n *   cursors?: import('./IDBCursor.js').IDBCursorWithValueFull[],\n * }} IDBIndexProperties\n */\n\n/**\n * IDB Index.\n * @see http://www.w3.org/TR/IndexedDB/#idl-def-IDBIndex\n * @class\n */\nfunction IDBIndex () {\n    throw new TypeError('Illegal constructor');\n}\nconst IDBIndexAlias = IDBIndex;\n\n/**\n * @typedef {IDBIndex & {\n *   name: string,\n *   keyPath: import('./Key.js').KeyPath,\n *   multiEntry: boolean,\n *   unique: boolean,\n *   objectStore: import('./IDBObjectStore.js').IDBObjectStoreFull,\n *   __pendingCreate?: boolean,\n *   __deleted?: boolean,\n *   __originalName: string,\n *   __currentName: string,\n *   __pendingName?: string,\n *   __pendingDelete?: boolean,\n *   __name: string,\n *   __multiEntry: boolean,\n *   __unique: boolean,\n *   __objectStore: import('./IDBObjectStore.js').IDBObjectStoreFull,\n *   __keyPath: import('./Key.js').KeyPath,\n *   __recreated?: boolean\n * }} IDBIndexFull\n */\n\n/**\n *\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {IDBIndexProperties} indexProperties\n * @returns {IDBIndexFull}\n */\nIDBIndex.__createInstance = function (store, indexProperties) {\n    /**\n     * @class\n     * @this {IDBIndexFull}\n     */\n    function IDBIndex () {\n        const me = this;\n        // @ts-expect-error It's ok\n        me[Symbol.toStringTag] = 'IDBIndex';\n        util.defineReadonlyProperties(me, readonlyProperties);\n        me.__objectStore = store;\n        me.__name = me.__originalName = indexProperties.columnName;\n        me.__keyPath = Array.isArray(indexProperties.keyPath) ? indexProperties.keyPath.slice() : indexProperties.keyPath;\n        const {optionalParams} = indexProperties;\n        me.__multiEntry = Boolean(optionalParams && optionalParams.multiEntry);\n        me.__unique = Boolean(optionalParams && optionalParams.unique);\n        me.__deleted = Boolean(indexProperties.__deleted);\n        me.__objectStore.__cursors = indexProperties.cursors || [];\n        Object.defineProperty(me, '__currentName', {\n            /**\n             * @this {IDBIndexFull}\n             * @returns {string}\n             */\n            get () {\n                return '__pendingName' in me\n                    ? /** @type {string} */ (me.__pendingName)\n                    : me.name;\n            }\n        });\n        Object.defineProperty(me, 'name', {\n            enumerable: false,\n            configurable: false,\n            /**\n             * @this {IDBIndexFull}\n             * @returns {string}\n             */\n            get () {\n                return this.__name;\n            },\n            /**\n             * @param {string} newName\n             * @this {IDBIndexFull}\n             * @returns {void}\n             */\n            set (newName) {\n                const me = this;\n                newName = util.convertToDOMString(newName);\n                const oldName = me.name;\n                IDBTransaction.__assertVersionChange(me.objectStore.transaction);\n                IDBTransaction.__assertActive(me.objectStore.transaction);\n                IDBIndexAlias.__invalidStateIfDeleted(me);\n                IDBObjectStore.__invalidStateIfDeleted(me);\n                if (newName === oldName) {\n                    return;\n                }\n\n                if (me.objectStore.__indexes[newName] && !me.objectStore.__indexes[newName].__deleted &&\n                    !me.objectStore.__indexes[newName].__pendingDelete) {\n                    throw createDOMException('ConstraintError', 'Index \"' + newName + '\" already exists on ' + me.objectStore.__currentName);\n                }\n\n                me.__name = newName;\n\n                const {objectStore} = me;\n                delete objectStore.__indexes[oldName];\n                objectStore.__indexes[newName] = me;\n                objectStore.indexNames.splice(objectStore.indexNames.indexOf(oldName), 1, newName);\n\n                const storeHandle = /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n                    objectStore.transaction\n                ).__storeHandles[objectStore.name];\n                const oldIndexHandle = storeHandle.__indexHandles[oldName];\n                oldIndexHandle.__name = newName; // Fix old references\n                storeHandle.__indexHandles[newName] = oldIndexHandle; // Ensure new reference accessible\n                me.__pendingName = oldName;\n\n                const colInfoToPreserveArr = [\n                    ['key', 'BLOB ' + (objectStore.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY')],\n                    ['value', 'BLOB']\n                ].concat(\n                    // @ts-expect-error Has numeric indexes instead of iterator\n                    [...objectStore.indexNames]\n                        .filter((indexName) => indexName !== newName)\n                        .map((indexName) => [util.escapeIndexNameForSQL(indexName), 'BLOB'])\n                );\n\n                me.__renameIndex(\n                    objectStore, oldName, newName, colInfoToPreserveArr,\n                    function (tx, success) {\n                        IDBIndexAlias.__updateIndexList(store, tx, function (store) {\n                            delete storeHandle.__pendingName;\n                            success(store);\n                        });\n                    }\n                );\n            }\n        });\n    }\n    IDBIndex.prototype = IDBIndexAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBIndex();\n};\n\n/**\n *\n * @param {IDBIndexFull} index\n * @param {string} [msg]\n * @throws {DOMException}\n * @returns {void}\n */\nIDBIndex.__invalidStateIfDeleted = function (index, msg) {\n    if (index.__deleted || index.__pendingDelete || (\n        index.__pendingCreate && index.objectStore.transaction && index.objectStore.transaction.__errored\n    )) {\n        throw createDOMException('InvalidStateError', msg || 'This index has been deleted');\n    }\n};\n\n/**\n * Clones an IDBIndex instance for a different IDBObjectStore instance.\n * @param {IDBIndexFull} index\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @returns {IDBIndexFull}\n */\nIDBIndex.__clone = function (index, store) {\n    const idx = IDBIndex.__createInstance(store, {\n        columnName: index.name,\n        keyPath: index.keyPath,\n        optionalParams: {\n            multiEntry: index.multiEntry,\n            unique: index.unique\n        }\n    });\n    /** @type {const} */ ([\n        '__pendingCreate', '__pendingDelete', '__deleted',\n        '__originalName', '__recreated'\n    ]).forEach((p) => {\n        // @ts-expect-error Why is this type \"never\"?\n        idx[p] = index[p];\n    });\n    return idx;\n};\n\n/**\n * Creates a new index on an object store.\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {IDBIndexFull} index\n * @returns {void}\n */\nIDBIndex.__createIndex = function (store, index) {\n    const indexName = index.name;\n    const storeName = store.__currentName;\n    const idx = store.__indexes[indexName];\n\n    index.__pendingCreate = true;\n\n    // Add the index to the IDBObjectStore\n    store.indexNames.push(indexName);\n    store.__indexes[indexName] = index; // We add to indexes as needs to be available, e.g., if there is a subsequent deleteIndex call\n\n    let indexHandle = store.__indexHandles[indexName];\n    if (!indexHandle ||\n        index.__pendingDelete ||\n        index.__deleted ||\n        indexHandle.__pendingDelete ||\n        indexHandle.__deleted\n    ) {\n        indexHandle = store.__indexHandles[indexName] = IDBIndex.__clone(index, store);\n    }\n\n    // Create the index in WebSQL\n    const {transaction} = store;\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        transaction\n    ).__addNonRequestToTransactionQueue(function createIndex (tx, args, success, failure) {\n        const columnExists = idx && (idx.__deleted || idx.__recreated); // This check must occur here rather than earlier as properties may not have been set yet otherwise\n\n        /** @type {{[key: string]: boolean}} */\n        let indexValues = {};\n\n        /**\n         * @param {SQLTransaction} tx\n         * @param {SQLError} err\n         * @returns {void}\n         */\n        function error (tx, err) {\n            failure(createDOMException('UnknownError', 'Could not create index \"' + indexName + '\"' + err.code + '::' + err.message, err));\n        }\n\n        /**\n         * @param {SQLTransaction} tx\n         * @returns {void}\n         */\n        function applyIndex (tx) {\n            // Update the object store's index list\n            IDBIndex.__updateIndexList(store, tx, function () {\n                // Add index entries for all existing records\n                tx.executeSql('SELECT \"key\", \"value\" FROM ' + util.escapeStoreNameForSQL(storeName), [], function (tx, data) {\n                    if (CFG.DEBUG) { console.log('Adding existing ' + storeName + ' records to the ' + indexName + ' index'); }\n                    addIndexEntry(0);\n\n                    /**\n                     * @param {Integer} i\n                     * @returns {void}\n                     */\n                    function addIndexEntry (i) {\n                        if (i < data.rows.length) {\n                            try {\n                                const value = Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value));\n                                const indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Todo: Do we need this stricter error checking?\n                                if (\n                                    ('invalid' in indexKey && indexKey.invalid) ||\n                                    ('failure' in indexKey && indexKey.failure)\n                                ) { // Todo: Do we need invalid checks and should we instead treat these as being duplicates?\n                                    throw new Error('Go to catch; ignore bad indexKey');\n                                }\n                                const indexKeyStr = /** @type {string} */ (\n                                    Key.encode(indexKey.value, index.multiEntry)\n                                );\n                                if (index.unique) {\n                                    if (indexValues[indexKeyStr]) {\n                                        indexValues = {};\n                                        failure(createDOMException(\n                                            'ConstraintError',\n                                            'Duplicate values already exist within the store'\n                                        ));\n                                        return;\n                                    }\n                                    indexValues[indexKeyStr] = true;\n                                }\n\n                                tx.executeSql(\n                                    'UPDATE ' + util.escapeStoreNameForSQL(storeName) + ' SET ' +\n                                        util.escapeIndexNameForSQL(indexName) + ' = ? WHERE \"key\" = ?',\n                                    [util.escapeSQLiteStatement(indexKeyStr), data.rows.item(i).key],\n                                    function () {\n                                        addIndexEntry(i + 1);\n                                    },\n                                    /** @type {SQLStatementErrorCallback} */ (error)\n                                );\n                            } catch (e) {\n                                // Not a valid value to insert into index, so just continue\n                                addIndexEntry(i + 1);\n                            }\n                        } else {\n                            delete index.__pendingCreate;\n                            delete indexHandle.__pendingCreate;\n                            if (index.__deleted) {\n                                delete index.__deleted;\n                                delete indexHandle.__deleted;\n                                index.__recreated = true;\n                                indexHandle.__recreated = true;\n                            }\n                            indexValues = {};\n                            success(store);\n                        }\n                    }\n                }, /** @type {SQLStatementErrorCallback} */ (error));\n            }, /** @type {SQLStatementErrorCallback} */ (error));\n        }\n\n        const escapedStoreNameSQL = util.escapeStoreNameForSQL(storeName);\n        const escapedIndexNameSQL = util.escapeIndexNameForSQL(index.name);\n\n        /**\n         * @param {SQLTransaction} tx\n         * @returns {void}\n         */\n        function addIndexSQL (tx) {\n            if (!CFG.useSQLiteIndexes) {\n                applyIndex(tx);\n                return;\n            }\n            tx.executeSql(\n                'CREATE INDEX IF NOT EXISTS \"' +\n                    // The escaped index name must be unique among indexes in the whole database;\n                    //    so we prefix with store name; as prefixed, will also not conflict with\n                    //    index on `key`\n                    // Avoid quotes and separate with special escape sequence\n                    escapedStoreNameSQL.slice(1, -1) + '^5' + escapedIndexNameSQL.slice(1, -1) +\n                    '\" ON ' + escapedStoreNameSQL + '(' + escapedIndexNameSQL + ')',\n                [],\n                applyIndex,\n                /** @type {SQLStatementErrorCallback} */ (error)\n            );\n        }\n\n        if (columnExists) {\n            // For a previously existing index, just update the index entries in the existing column;\n            //   no need to add SQLite index to it either as should already exist\n            applyIndex(tx);\n        } else {\n            // For a new index, add a new column to the object store, then apply the index\n            const sql = ['ALTER TABLE', escapedStoreNameSQL, 'ADD', escapedIndexNameSQL, 'BLOB'].join(' ');\n            if (CFG.DEBUG) { console.log(sql); }\n            tx.executeSql(\n                sql, [], addIndexSQL, /** @type {SQLStatementErrorCallback} */ (error)\n            );\n        }\n    });\n};\n\n/**\n * Deletes an index from an object store.\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {IDBIndexFull} index\n * @returns {void}\n */\nIDBIndex.__deleteIndex = function (store, index) {\n    // Remove the index from the IDBObjectStore\n    index.__pendingDelete = true;\n    const indexHandle = store.__indexHandles[index.name];\n    if (indexHandle) {\n        indexHandle.__pendingDelete = true;\n    }\n\n    store.indexNames.splice(store.indexNames.indexOf(index.name), 1);\n\n    // Remove the index in WebSQL\n    const {transaction} = store;\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        transaction\n    ).__addNonRequestToTransactionQueue(function deleteIndex (tx, args, success, failure) {\n        /**\n         * @param {SQLTransaction} tx\n         * @param {SQLError} err\n         * @returns {void}\n         */\n        function error (tx, err) {\n            failure(createDOMException('UnknownError', 'Could not delete index \"' + index.name + '\"', err));\n        }\n\n        /**\n         * @returns {void}\n         */\n        function finishDeleteIndex () {\n            // Update the object store's index list\n            IDBIndex.__updateIndexList(store, tx, function (store) {\n                delete index.__pendingDelete;\n                delete index.__recreated;\n                index.__deleted = true;\n                if (indexHandle) {\n                    indexHandle.__deleted = true;\n                    delete indexHandle.__pendingDelete;\n                }\n                success(store);\n            }, /** @type {SQLStatementErrorCallback} */ (error));\n        }\n\n        if (!CFG.useSQLiteIndexes) {\n            finishDeleteIndex();\n            return;\n        }\n        tx.executeSql(\n            'DROP INDEX IF EXISTS ' +\n                util.sqlQuote(\n                    util.escapeStoreNameForSQL(store.name).slice(1, -1) + '^5' +\n                    util.escapeIndexNameForSQL(index.name).slice(1, -1)\n                ),\n            [],\n            finishDeleteIndex,\n            /** @type {SQLStatementErrorCallback} */ (error)\n        );\n    });\n};\n\n/**\n * @typedef {{[key: string]: IDBIndexProperties}} IndexList\n */\n\n/**\n * Updates index list for the given object store.\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {SQLTransaction} tx\n * @param {(store: IDBObjectStore) => void} success\n * @param {(\n *   tx: SQLTransaction,\n *   err: SQLError\n * ) => boolean} [failure]\n * @returns {void}\n */\nIDBIndex.__updateIndexList = function (store, tx, success, failure) {\n    /** @type {IndexList} **/\n    const indexList = {};\n    for (let i = 0; i < store.indexNames.length; i++) {\n        const idx = store.__indexes[store.indexNames[i]];\n        indexList[idx.name] = {\n            columnName: idx.name,\n            keyPath: idx.keyPath,\n            optionalParams: {\n                unique: idx.unique,\n                multiEntry: idx.multiEntry\n            },\n            deleted: Boolean(idx.__deleted)\n        };\n    }\n\n    if (CFG.DEBUG) { console.log('Updating the index list for ' + store.__currentName, indexList); }\n    tx.executeSql('UPDATE __sys__ SET \"indexList\" = ? WHERE \"name\" = ?', [JSON.stringify(indexList), util.escapeSQLiteStatement(store.__currentName)], function () {\n        success(store);\n    }, /** @type {SQLStatementErrorCallback} */ (failure));\n};\n\n/**\n * @typedef {any|IDBKeyRange} Query\n */\n\n/**\n * Retrieves index data for the given key.\n * @param {Query} range\n * @param {\"value\"|\"key\"|\"count\"} opType\n * @param {boolean} nullDisallowed\n * @param {number} [count]\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.__fetchIndexData = function (range, opType, nullDisallowed, count) {\n    const me = this;\n    if (count !== undefined) {\n        count = util.enforceRange(count, 'unsigned long');\n    }\n\n    IDBIndex.__invalidStateIfDeleted(me);\n    IDBObjectStore.__invalidStateIfDeleted(me.objectStore);\n    if (me.objectStore.__deleted) {\n        throw createDOMException('InvalidStateError', \"This index's object store has been deleted\");\n    }\n    IDBTransaction.__assertActive(me.objectStore.transaction);\n\n    if (nullDisallowed && util.isNullish(range)) {\n        throw createDOMException('DataError', 'No key or range was specified');\n    }\n\n    const fetchArgs = buildFetchIndexDataSQL(nullDisallowed, me, range, opType, false);\n    return /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.objectStore.transaction\n    ).__addToTransactionQueue(function (...args) {\n        executeFetchIndexData(\n            count,\n            ...fetchArgs,\n            // @ts-expect-error It's ok\n            ...args\n        );\n    }, undefined, me);\n};\n\n/**\n * Opens a cursor over the given key range.\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.openCursor = function (/* query, direction */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const [query, direction] = arguments;\n    const cursor = IDBCursorWithValue.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value');\n    me.__objectStore.__cursors.push(cursor);\n    return cursor.__request;\n};\n\n/**\n * Opens a cursor over the given key range.  The cursor only includes key values, not data.\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.openKeyCursor = function (/* query, direction */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const [query, direction] = arguments;\n    const cursor = IDBCursor.__createInstance(query, direction, me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'key');\n    me.__objectStore.__cursors.push(cursor);\n    return cursor.__request;\n};\n\n/**\n *\n * @param {Query} query\n * @throws {TypeError}\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.get = function (query) {\n    if (!arguments.length) { // Per https://heycam.github.io/webidl/\n        throw new TypeError('A parameter was missing for `IDBIndex.get`.');\n    }\n    return this.__fetchIndexData(query, 'value', true);\n};\n\n/**\n *\n * @param {Query} query\n * @throws {TypeError}\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.getKey = function (query) {\n    if (!arguments.length) { // Per https://heycam.github.io/webidl/\n        throw new TypeError('A parameter was missing for `IDBIndex.getKey`.');\n    }\n    return this.__fetchIndexData(query, 'key', true);\n};\n\n/**\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.getAll = function (/* query, count */) {\n    // eslint-disable-next-line prefer-rest-params\n    const [query, count] = arguments;\n    return this.__fetchIndexData(query, 'value', false, count);\n};\n\n/**\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.getAllKeys = function (/* query, count */) {\n    // eslint-disable-next-line prefer-rest-params\n    const [query, count] = arguments;\n    return this.__fetchIndexData(query, 'key', false, count);\n};\n\n/**\n * @this {IDBIndexFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBIndex.prototype.count = function (/* query */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const query = arguments[0];\n    // With the exception of needing to check whether the index has been\n    //  deleted, we could, for greater spec parity (if not accuracy),\n    //  just call:\n    //  `return me.__objectStore.count(query);`\n\n    if (util.instanceOf(query, IDBKeyRange)) { // Todo: Do we need this block?\n        // We don't need to add to cursors array since has the count parameter which won't cache\n        return IDBCursorWithValue.__createInstance(query, 'next', me.objectStore, me, util.escapeIndexNameForSQLKeyColumn(me.name), 'value', true).__request;\n    }\n    return me.__fetchIndexData(query, 'count', false);\n};\n\n/**\n *\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {string} oldName\n * @param {string} newName\n * @param {string[][]} colInfoToPreserveArr\n * @param {null|((\n *   tx: SQLTransaction,\n *   success: ((store: IDBObjectStore) => void)\n * ) => void)} cb\n * @this {IDBIndexFull}\n * @returns {void}\n */\nIDBIndex.prototype.__renameIndex = function (store, oldName, newName, colInfoToPreserveArr = [], cb = null) {\n    const newNameType = 'BLOB';\n    const storeName = store.__currentName;\n    const escapedStoreNameSQL = util.escapeStoreNameForSQL(storeName);\n    const escapedNewIndexNameSQL = util.escapeIndexNameForSQL(newName);\n    const escapedTmpStoreNameSQL = util.sqlQuote('tmp_' + util.escapeStoreNameForSQL(storeName).slice(1, -1));\n    const colNamesToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo[0]);\n    const colInfoToPreserve = colInfoToPreserveArr.map((colInfo) => colInfo.join(' '));\n    const listColInfoToPreserve = (colInfoToPreserve.length ? (colInfoToPreserve.join(', ') + ', ') : '');\n    const listColsToPreserve = (colNamesToPreserve.length ? (colNamesToPreserve.join(', ') + ', ') : '');\n\n    // We could adapt the approach at http://stackoverflow.com/a/8430746/271577\n    //    to make the approach reusable without passing column names, but it is a bit fragile\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        store.transaction\n    ).__addNonRequestToTransactionQueue(function renameIndex (tx, args, success, error) {\n        /**\n         * @param {SQLTransaction} tx\n         * @param {SQLError} err\n         * @returns {void}\n         */\n        function sqlError (tx, err) {\n            error(err);\n        }\n        /**\n         * @returns {void}\n         */\n        function finish () {\n            if (cb) {\n                cb(tx, success);\n                return;\n            }\n            success();\n        }\n        // See https://www.sqlite.org/lang_altertable.html#otheralter\n        // We don't query for indexes as we already have the info\n        // This approach has the advantage of auto-deleting indexes via the DROP TABLE\n        const sql = 'CREATE TABLE ' + escapedTmpStoreNameSQL +\n            '(' + listColInfoToPreserve + escapedNewIndexNameSQL + ' ' + newNameType + ')';\n        if (CFG.DEBUG) { console.log(sql); }\n        tx.executeSql(sql, [], function () {\n            const sql = 'INSERT INTO ' + escapedTmpStoreNameSQL + '(' +\n                listColsToPreserve + escapedNewIndexNameSQL +\n                ') SELECT ' + listColsToPreserve + util.escapeIndexNameForSQL(oldName) + ' FROM ' + escapedStoreNameSQL;\n            if (CFG.DEBUG) { console.log(sql); }\n            tx.executeSql(sql, [], function () {\n                const sql = 'DROP TABLE ' + escapedStoreNameSQL;\n                if (CFG.DEBUG) { console.log(sql); }\n                tx.executeSql(sql, [], function () {\n                    const sql = 'ALTER TABLE ' + escapedTmpStoreNameSQL + ' RENAME TO ' + escapedStoreNameSQL;\n                    if (CFG.DEBUG) { console.log(sql); }\n                    tx.executeSql(sql, [], function (tx) {\n                        if (!CFG.useSQLiteIndexes) {\n                            finish();\n                            return;\n                        }\n                        const indexCreations = colNamesToPreserve\n                            .slice(2) // Doing `key` separately and no need for index on `value`\n                            .map((escapedIndexNameSQL) => new SyncPromise(function (resolve, reject) {\n                                const escapedIndexToRecreate = util.sqlQuote(\n                                    escapedStoreNameSQL.slice(1, -1) + '^5' + escapedIndexNameSQL.slice(1, -1)\n                                );\n                                // const sql = 'DROP INDEX IF EXISTS ' + escapedIndexToRecreate;\n                                // if (CFG.DEBUG) { console.log(sql); }\n                                // tx.executeSql(sql, [], function () {\n                                const sql = 'CREATE INDEX ' +\n                                    escapedIndexToRecreate + ' ON ' + escapedStoreNameSQL + '(' + escapedIndexNameSQL + ')';\n                                if (CFG.DEBUG) { console.log(sql); }\n                                tx.executeSql(\n                                    sql,\n                                    [],\n                                    resolve,\n                                    /** @type {SQLStatementErrorCallback} */\n                                    (function (tx, err) {\n                                        reject(err);\n                                    })\n                                );\n                                // }, function (tx, err) {\n                                //    reject(err);\n                                // });\n                            }));\n                        indexCreations.push(\n                            new SyncPromise(function (resolve, reject) {\n                                const escapedIndexToRecreate = util.sqlQuote('sk_' + escapedStoreNameSQL.slice(1, -1));\n                                // Chrome erring here if not dropped first; Node does not\n                                const sql = 'DROP INDEX IF EXISTS ' + escapedIndexToRecreate;\n                                if (CFG.DEBUG) { console.log(sql); }\n                                tx.executeSql(\n                                    sql, [], function () {\n                                        const sql = 'CREATE INDEX ' + escapedIndexToRecreate +\n                                            ' ON ' + escapedStoreNameSQL + '(\"key\")';\n                                        if (CFG.DEBUG) { console.log(sql); }\n                                        tx.executeSql(\n                                            sql, [], resolve,\n                                            /** @type {SQLStatementErrorCallback} */\n                                            (function (tx, err) {\n                                                reject(err);\n                                            })\n                                        );\n                                    },\n                                    /** @type {SQLStatementErrorCallback} */\n                                    (function (tx, err) {\n                                        reject(err);\n                                    })\n                                );\n                            })\n                        );\n                        SyncPromise.all(indexCreations).then(\n                            finish,\n                            /** @type {(reason: any) => PromiseLike<never>} */\n                            (error)\n                        ).catch((err) => {\n                            console.log('Index rename error');\n                            throw err;\n                        });\n                    }, /** @type {SQLStatementErrorCallback} */ (sqlError));\n                }, /** @type {SQLStatementErrorCallback} */ (sqlError));\n            }, /** @type {SQLStatementErrorCallback} */ (sqlError));\n        }, /** @type {SQLStatementErrorCallback} */ (sqlError));\n    });\n};\n\n/**\n * @typedef {any} AnyValue\n */\n\nObject.defineProperty(IDBIndex, Symbol.hasInstance, {\n    /**\n     * @param {AnyValue} obj\n     * @returns {boolean}\n     */\n    value: (obj) => util.isObj(obj) &&\n        'openCursor' in obj &&\n        typeof obj.openCursor === 'function' &&\n        'multiEntry' in obj &&\n        typeof obj.multiEntry === 'boolean'\n});\n\nutil.defineReadonlyOuterInterface(IDBIndex.prototype, readonlyProperties);\nutil.defineOuterInterface(IDBIndex.prototype, ['name']);\n\nIDBIndex.prototype[Symbol.toStringTag] = 'IDBIndexPrototype';\n\nObject.defineProperty(IDBIndex, 'prototype', {\n    writable: false\n});\n\n/**\n * @param {number|null} count\n * @param {boolean} unboundedDisallowed\n * @param {IDBIndexFull} index\n * @param {boolean} hasKey\n * @param {import('./Key.js').Value|import('./Key.js').Key} range\n * @param {\"value\"|\"key\"|\"count\"} opType\n * @param {boolean} multiChecks\n * @param {string[]} sql\n * @param {string[]} sqlValues\n * @param {SQLTransaction} tx\n * @param {null|undefined} args\n * @param {(result: number|undefined|[]|AnyValue|AnyValue[]) => void} success\n * @param {(tx: SQLTransaction, err: SQLError) => void} error\n * @returns {void}\n */\nfunction executeFetchIndexData (\n    count, unboundedDisallowed, index, hasKey, range, opType,\n    multiChecks, sql, sqlValues, tx, args, success, error\n) {\n    if (unboundedDisallowed) {\n        count = 1;\n    }\n    if (count) {\n        sql.push('LIMIT', String(count));\n    }\n    const isCount = opType === 'count';\n    if (CFG.DEBUG) { console.log('Trying to fetch data for Index', sql.join(' '), sqlValues); }\n    tx.executeSql(sql.join(' '), sqlValues, function (tx, data) {\n        const records = [];\n        let recordCount = 0;\n        const decode = isCount\n            ? () => { /* */ }\n            : (opType === 'key'\n                // eslint-disable-next-line @stylistic/operator-linebreak -- JSDoc\n                ?\n                /**\n                 * @param {{\n                 *   key: string\n                 * }} record\n                 * @returns {import('./Key.js').ValueType|undefined}\n                 */\n                (record) => {\n                    // Key.convertValueToKey(record.key); // Already validated before storage\n                    return Key.decode(util.unescapeSQLiteResponse(record.key));\n                }\n                // eslint-disable-next-line @stylistic/operator-linebreak -- JSDoc\n                :\n                /**\n                 * @param {{\n                 *   value: string\n                 * }} record\n                 * @returns {AnyValue}\n                 */\n                (record) => { // when opType is value\n                    return Sca.decode(util.unescapeSQLiteResponse(record.value));\n                });\n        if (index.multiEntry) {\n            const escapedIndexNameForKeyCol = util.escapeIndexNameForSQLKeyColumn(index.name);\n            const encodedKey = Key.encode(range, index.multiEntry);\n            for (let i = 0; i < data.rows.length; i++) {\n                const row = data.rows.item(i);\n                const rowKey = /** @type {import('./Key.js').ValueTypeArray} */ (\n                    Key.decode(row[escapedIndexNameForKeyCol])\n                );\n                let record;\n                if (hasKey && (\n                    (multiChecks && range.some(\n                        /**\n                         * @param {string} check\n                         * @returns {boolean}\n                         */\n                        (check) => rowKey.includes(check)\n                    )) || // More precise than our SQL\n                    Key.isMultiEntryMatch(\n                        /** @type {string} */\n                        (encodedKey),\n                        row[escapedIndexNameForKeyCol]\n                    )\n                )) {\n                    recordCount++;\n                    record = row;\n                } else if (!hasKey && !multiChecks) {\n                    if (rowKey !== undefined) {\n                        recordCount += (Array.isArray(rowKey) ? rowKey.length : 1);\n                        record = row;\n                    }\n                }\n                if (record) {\n                    records.push(decode(record));\n                    if (unboundedDisallowed) {\n                        break;\n                    }\n                }\n            }\n        } else {\n            for (let i = 0; i < data.rows.length; i++) {\n                const record = data.rows.item(i);\n                if (record) {\n                    records.push(decode(record));\n                }\n            }\n            recordCount = records.length;\n        }\n        if (isCount) {\n            success(recordCount);\n        } else if (recordCount === 0) {\n            success(unboundedDisallowed ? undefined : []);\n        } else {\n            success(unboundedDisallowed ? records[0] : records);\n        }\n    }, /** @type {SQLStatementErrorCallback} */ (error));\n}\n\n/**\n * @param {boolean} nullDisallowed\n * @param {IDBIndexFull} index\n * @param {import('./Key.js').Value|import('./Key.js').Key} range\n * @param {\"value\"|\"key\"|\"count\"} opType\n * @param {boolean} multiChecks\n * @returns {[\n *   nullDisallowed: boolean,\n *   index: IDBIndexFull,\n *   hasRange: boolean,\n *   range: import('./Key.js').Value|import('./Key.js').Key,\n *   opType: \"value\"|\"key\"|\"count\",\n *   multiChecks: boolean,\n *   sql: string[],\n *   sqlValues: string[]\n * ]}\n */\nfunction buildFetchIndexDataSQL (\n    nullDisallowed, index, range, opType, multiChecks\n) {\n    const hasRange = nullDisallowed || !util.isNullish(range);\n    const col = opType === 'count' ? 'key' : opType; // It doesn't matter which column we use for 'count' as long as it is valid\n    const sql = [\n        'SELECT', util.sqlQuote(col) + (\n            index.multiEntry ? ', ' + util.escapeIndexNameForSQL(index.name) : ''\n        ),\n        'FROM', util.escapeStoreNameForSQL(index.objectStore.__currentName),\n        'WHERE', util.escapeIndexNameForSQL(index.name), 'NOT NULL'\n    ];\n\n    /** @type {string[]} */\n    const sqlValues = [];\n    if (hasRange) {\n        if (multiChecks) {\n            sql.push('AND (');\n            /** @type {import('./Key.js').KeyPathArray} */ (\n                range\n            ).forEach((innerKey, i) => {\n                if (i > 0) { sql.push('OR'); }\n                sql.push(util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^' \");\n                sqlValues.push('%' + util.sqlLIKEEscape(\n                    /** @type {string} */ (Key.encode(innerKey, index.multiEntry))\n                ) + '%');\n            });\n            sql.push(')');\n        } else if (index.multiEntry) {\n            sql.push('AND', util.escapeIndexNameForSQL(index.name), \"LIKE ? ESCAPE '^'\");\n            sqlValues.push('%' + util.sqlLIKEEscape(\n                /** @type {string} */ (Key.encode(range, index.multiEntry))\n            ) + '%');\n        } else {\n            const convertedRange = convertValueToKeyRange(range, nullDisallowed);\n            setSQLForKeyRange(convertedRange, util.escapeIndexNameForSQL(index.name), sql, sqlValues, true, false);\n        }\n    }\n    return [nullDisallowed, index, hasRange, range, opType, multiChecks, sql, sqlValues];\n}\n\nexport {buildFetchIndexDataSQL, executeFetchIndexData, IDBIndex, IDBIndex as default};\n","import SyncPromise from 'sync-promise-expanded';\nimport {createDOMException} from './DOMException.js';\nimport {IDBCursor, IDBCursorWithValue} from './IDBCursor.js';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange.js';\nimport DOMStringList from './DOMStringList.js';\nimport * as util from './util.js';\nimport * as Key from './Key.js';\nimport {executeFetchIndexData, buildFetchIndexDataSQL, IDBIndex} from './IDBIndex.js';\nimport IDBTransaction from './IDBTransaction.js';\nimport * as Sca from './Sca.js';\nimport CFG from './CFG.js';\n\nconst readonlyProperties = ['keyPath', 'indexNames', 'transaction', 'autoIncrement'];\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * IndexedDB Object Store.\n * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBObjectStore\n * @class\n */\nfunction IDBObjectStore () {\n    throw new TypeError('Illegal constructor');\n}\nconst IDBObjectStoreAlias = IDBObjectStore;\n\n/**\n * @typedef {IDBObjectStore & {\n *   name: string,\n *   keyPath: import('./Key.js').KeyPath,\n *   transaction?: import('./IDBTransaction.js').IDBTransactionFull,\n *   indexNames: import('./DOMStringList.js').DOMStringListFull,\n *   autoIncrement: boolean,\n *   __autoIncrement: boolean,\n *   __indexes: {[key: string]: import('./IDBIndex.js').IDBIndexFull},\n *   __indexHandles: {[key: string]: import('./IDBIndex.js').IDBIndexFull},\n *   __indexNames: import('./DOMStringList.js').DOMStringListFull,\n *   __oldIndexNames: import('./DOMStringList.js').DOMStringListFull,\n *   __transaction?: import('./IDBTransaction.js').IDBTransactionFull,\n *   __name: string,\n *   __keyPath: import('./Key.js').KeyPath,\n *   __originalName: string,\n *   __currentName: string,\n *   __pendingName?: string,\n *   __pendingDelete?: boolean,\n *   __pendingCreate?: boolean,\n *   __deleted?: boolean,\n *   __cursors: (\n *     import('./IDBCursor.js').IDBCursorFull|\n *     import('./IDBCursor.js').IDBCursorWithValueFull\n *   )[],\n *   __idbdb: import('./IDBDatabase.js').IDBDatabaseFull,\n * }} IDBObjectStoreFull\n */\n\n/**\n *\n * @param {import('./IDBDatabase.js').IDBObjectStoreProperties} storeProperties\n * @param {import('./IDBTransaction.js').IDBTransactionFull} [transaction]\n * @returns {IDBObjectStoreFull}\n */\nIDBObjectStore.__createInstance = function (storeProperties, transaction) {\n    /**\n     * @class\n     * @this {IDBObjectStoreFull}\n     */\n    function IDBObjectStore () {\n        const me = this;\n        // @ts-expect-error It's ok\n        me[Symbol.toStringTag] = 'IDBObjectStore';\n        util.defineReadonlyProperties(this, readonlyProperties);\n        me.__name = me.__originalName = storeProperties.name;\n        me.__keyPath = Array.isArray(storeProperties.keyPath) ? storeProperties.keyPath.slice() : storeProperties.keyPath;\n        me.__transaction = transaction;\n        me.__idbdb = storeProperties.idbdb;\n        me.__cursors = storeProperties.cursors || [];\n\n        // autoInc is numeric (0/1) on WinPhone\n        me.__autoIncrement = Boolean(storeProperties.autoInc);\n\n        me.__indexes = {};\n        me.__indexHandles = {};\n        me.__indexNames = DOMStringList.__createInstance();\n        const {indexList} = storeProperties;\n        for (const indexName in indexList) {\n            if (Object.hasOwn(indexList, indexName)) {\n                const index = IDBIndex.__createInstance(me, indexList[indexName]);\n                me.__indexes[index.name] = index;\n                if (!index.__deleted) {\n                    me.indexNames.push(index.name);\n                }\n            }\n        }\n        me.__oldIndexNames = me.indexNames.clone();\n        Object.defineProperty(this, '__currentName', {\n            get () {\n                return '__pendingName' in this ? this.__pendingName : this.name;\n            }\n        });\n        Object.defineProperty(this, 'name', {\n            enumerable: false,\n            configurable: false,\n            /**\n             * @this {IDBObjectStoreFull}\n             * @returns {string}\n             */\n            get () {\n                return this.__name;\n            },\n            /**\n             * @param {string} name\n             * @this {IDBObjectStoreFull}\n             * @returns {void}\n             */\n            set (name) {\n                const me = this;\n                name = util.convertToDOMString(name);\n                const oldName = me.name;\n                IDBObjectStoreAlias.__invalidStateIfDeleted(me);\n                IDBTransaction.__assertVersionChange(me.transaction);\n                IDBTransaction.__assertActive(me.transaction);\n                if (oldName === name) {\n                    return;\n                }\n                if (me.__idbdb.__objectStores[name] && !me.__idbdb.__objectStores[name].__pendingDelete) {\n                    throw createDOMException('ConstraintError', 'Object store \"' + name + '\" already exists in ' + me.__idbdb.name);\n                }\n\n                me.__name = name;\n\n                const oldStore = me.__idbdb.__objectStores[oldName];\n                oldStore.__name = name; // Fix old references\n                me.__idbdb.__objectStores[name] = oldStore; // Ensure new reference accessible\n                delete me.__idbdb.__objectStores[oldName]; // Ensure won't be found\n\n                me.__idbdb.objectStoreNames.splice(me.__idbdb.objectStoreNames.indexOf(oldName), 1, name);\n\n                const oldHandle = /** @type {IDBObjectStoreFull} */ (\n                    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n                        me.transaction\n                    ).__storeHandles[oldName]\n                );\n                oldHandle.__name = name; // Fix old references\n                /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n                    me.transaction\n                ).__storeHandles[name] = oldHandle; // Ensure new reference accessible\n\n                me.__pendingName = oldName;\n\n                const sql = 'UPDATE __sys__ SET \"name\" = ? WHERE \"name\" = ?';\n                const sqlValues = [util.escapeSQLiteStatement(name), util.escapeSQLiteStatement(oldName)];\n                if (CFG.DEBUG) { console.log(sql, sqlValues); }\n                /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n                    me.transaction\n                ).__addNonRequestToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n                    tx.executeSql(sql, sqlValues, function (tx) {\n                        // This SQL preserves indexes per https://www.sqlite.org/lang_altertable.html\n                        const sql = 'ALTER TABLE ' + util.escapeStoreNameForSQL(oldName) + ' RENAME TO ' + util.escapeStoreNameForSQL(name);\n                        if (CFG.DEBUG) { console.log(sql); }\n                        tx.executeSql(sql, [], function () {\n                            delete me.__pendingName;\n                            success();\n                        });\n                    }, function (tx, err) {\n                        error(err);\n                        return false;\n                    });\n                });\n            }\n        });\n    }\n    IDBObjectStore.prototype = IDBObjectStoreAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBObjectStore();\n};\n\n/**\n * Clones an IDBObjectStore instance for a different IDBTransaction instance.\n * @param {IDBObjectStoreFull} store\n * @param {import('./IDBTransaction.js').IDBTransactionFull} transaction\n * @returns {IDBObjectStoreFull}\n */\nIDBObjectStore.__clone = function (store, transaction) {\n    const newStore = IDBObjectStore.__createInstance({\n        name: store.__currentName,\n        keyPath: Array.isArray(store.keyPath) ? store.keyPath.slice() : store.keyPath,\n        autoInc: store.autoIncrement,\n        indexList: {},\n        idbdb: store.__idbdb,\n        cursors: store.__cursors\n    }, transaction);\n\n    /** @type {const} */ ([\n        '__indexes', '__indexNames', '__oldIndexNames',\n        '__deleted', '__pendingDelete', '__pendingCreate', '__originalName'\n    ]).forEach((p) => {\n        // @ts-expect-error It's ok\n        newStore[p] = store[p];\n    });\n    return newStore;\n};\n\n/**\n *\n * @param {IDBObjectStoreFull|import('./IDBIndex.js').IDBIndexFull} store\n * @param {string} [msg]\n * @throws {DOMException}\n * @returns {void}\n */\nIDBObjectStore.__invalidStateIfDeleted = function (store, msg) {\n    if (\n        store.__deleted || store.__pendingDelete || (store.__pendingCreate && (\n            'transaction' in store && store.transaction && store.transaction.__errored\n        ))\n    ) {\n        throw createDOMException('InvalidStateError', msg || 'This store has been deleted');\n    }\n};\n\n/**\n * Creates a new object store in the database.\n * @param {import('./IDBDatabase.js').IDBDatabaseFull} db\n * @param {IDBObjectStoreFull} store\n * @returns {IDBObjectStore}\n */\nIDBObjectStore.__createObjectStore = function (db, store) {\n    // Add the object store to the IDBDatabase\n    const storeName = store.__currentName;\n    store.__pendingCreate = true;\n    db.__objectStores[storeName] = store;\n    db.objectStoreNames.push(storeName);\n\n    // Add the object store to WebSQL\n    const transaction =/** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        db.__versionTransaction\n    );\n\n    const storeHandles = transaction.__storeHandles;\n    if (!storeHandles[storeName] ||\n        // These latter conditions are to allow store\n        //   recreation to create new clone object\n        storeHandles[storeName].__pendingDelete ||\n        storeHandles[storeName].__deleted) {\n        storeHandles[storeName] = IDBObjectStore.__clone(store, transaction);\n    }\n\n    transaction.__addNonRequestToTransactionQueue(function createObjectStore (tx, args, success, failure) {\n        /**\n         * @param {SQLTransaction} tx\n         * @param {SQLError} [err]\n         * @returns {boolean}\n         */\n        function error (tx, err) {\n            if (CFG.DEBUG) { console.log(err); }\n            failure(createDOMException('UnknownError', 'Could not create object store \"' + storeName + '\"', err));\n            return false;\n        }\n\n        const escapedStoreNameSQL = util.escapeStoreNameForSQL(storeName);\n        // key INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL UNIQUE\n        const sql = ['CREATE TABLE', escapedStoreNameSQL, '(key BLOB', store.autoIncrement ? 'UNIQUE, inc INTEGER PRIMARY KEY AUTOINCREMENT' : 'PRIMARY KEY', ', value BLOB)'].join(' ');\n        if (CFG.DEBUG) { console.log(sql); }\n        tx.executeSql(sql, [], function (tx) {\n            /**\n             * @returns {void}\n             */\n            function insertStoreInfo () {\n                const encodedKeyPath = JSON.stringify(store.keyPath);\n                tx.executeSql('INSERT INTO __sys__ VALUES (?,?,?,?,?)', [\n                    util.escapeSQLiteStatement(storeName),\n                    encodedKeyPath,\n                    // For why converting here, see comment and following\n                    //  discussion at:\n                    //  https://github.com/axemclion/IndexedDBShim/issues/313#issuecomment-590086778\n                    Number(store.autoIncrement),\n                    '{}',\n                    1\n                ], function () {\n                    delete store.__pendingCreate;\n                    delete store.__deleted;\n                    success(store);\n                }, error);\n            }\n            if (!CFG.useSQLiteIndexes) {\n                insertStoreInfo();\n                return;\n            }\n            tx.executeSql('CREATE INDEX IF NOT EXISTS ' + (\n                util.sqlQuote('sk_' + escapedStoreNameSQL.slice(1, -1))\n            ) + ' ON ' + escapedStoreNameSQL + '(\"key\")', [], insertStoreInfo, error);\n        }, error);\n    });\n    return storeHandles[storeName];\n};\n\n/**\n * Deletes an object store from the database.\n * @param {import('./IDBDatabase.js').IDBDatabaseFull} db\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @returns {void}\n */\nIDBObjectStore.__deleteObjectStore = function (db, store) {\n    // Remove the object store from the IDBDatabase\n    store.__pendingDelete = true;\n    // We don't delete the other index holders in case need reversion\n    store.__indexNames = DOMStringList.__createInstance();\n\n    db.objectStoreNames.splice(db.objectStoreNames.indexOf(store.__currentName), 1);\n\n    const storeHandle = db.__versionTransaction.__storeHandles[store.__currentName];\n    if (storeHandle) {\n        storeHandle.__indexNames = DOMStringList.__createInstance();\n        storeHandle.__pendingDelete = true;\n    }\n\n    // Remove the object store from WebSQL\n    const transaction = /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        db.__versionTransaction\n    );\n    transaction.__addNonRequestToTransactionQueue(function deleteObjectStore (tx, args, success, failure) {\n        /**\n         * @param {SQLTransaction} tx\n         * @param {SQLError} [err]\n         * @returns {boolean}\n         */\n        function error (tx, err) {\n            if (CFG.DEBUG) { console.log(err); }\n            failure(createDOMException('UnknownError', 'Could not delete ObjectStore', err));\n            return false;\n        }\n\n        tx.executeSql('SELECT \"name\" FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function (tx, data) {\n            if (data.rows.length > 0) {\n                tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(store.__currentName), [], function () {\n                    tx.executeSql('DELETE FROM __sys__ WHERE \"name\" = ?', [util.escapeSQLiteStatement(store.__currentName)], function () {\n                        delete store.__pendingDelete;\n                        store.__deleted = true;\n                        if (storeHandle) {\n                            delete storeHandle.__pendingDelete;\n                            storeHandle.__deleted = true;\n                        }\n                        success();\n                    }, error);\n                }, error);\n            }\n        });\n    });\n};\n\n/**\n * @typedef {[import('./Key.js').Key, import('./Key.js').Value]} KeyValueArray\n */\n\n// Todo: Although we may end up needing to do cloning genuinely asynchronously (for Blobs and FileLists),\n//   and we'll want to ensure the queue starts up synchronously, we nevertheless do the cloning\n//   before entering the queue and its callback since the encoding we do is preceded by validation\n//   which we must do synchronously anyways. If we reimplement Blobs and FileLists asynchronously,\n//   we can detect these types (though validating synchronously as possible) and once entering the\n//   queue callback, ensure they load before triggering success or failure (perhaps by returning and\n//   a `SyncPromise` from the `Sca.clone` operation and later detecting and ensuring it is resolved\n//   before continuing).\n/**\n * Determines whether the given inline or out-of-line key is valid,\n *   according to the object store's schema.\n * @param {import('./Key.js').Value} value Used for inline keys\n * @param {import('./Key.js').Key} key Used for out-of-line keys\n * @param {boolean} cursorUpdate\n * @throws {DOMException}\n * @this {IDBObjectStoreFull}\n * @returns {KeyValueArray}\n */\nIDBObjectStore.prototype.__validateKeyAndValueAndCloneValue = function (value, key, cursorUpdate) {\n    const me = this;\n    if (me.keyPath !== null) {\n        if (key !== undefined) {\n            throw createDOMException('DataError', 'The object store uses in-line keys and the key parameter was provided');\n        }\n        // Todo Binary: Avoid blobs loading async to ensure cloning (and errors therein)\n        //   occurs sync; then can make cloning and this method without callbacks (except where ok\n        //   to be async)\n        const clonedValue = Sca.clone(value);\n        key = Key.extractKeyValueDecodedFromValueUsingKeyPath(clonedValue, me.keyPath); // May throw so \"rethrow\"\n        if (key.invalid) {\n            throw createDOMException('DataError', 'KeyPath was specified, but key was invalid.');\n        }\n        if (key.failure) {\n            if (!cursorUpdate) {\n                if (!me.autoIncrement) {\n                    throw createDOMException('DataError', 'Could not evaluate a key from keyPath and there is no key generator');\n                }\n                // Todo: Could the keyPath not be an array?\n                if (!Key.checkKeyCouldBeInjectedIntoValue(clonedValue, /** @type {string} */ (me.keyPath))) {\n                    throw createDOMException('DataError', 'A key could not be injected into a value');\n                }\n                // A key will be generated\n                return [undefined, clonedValue];\n            }\n            throw createDOMException('DataError', 'Could not evaluate a key from keyPath');\n        }\n        // An `IDBCursor.update` call will also throw if not equal to the cursor’s effective key\n        return [key.value, clonedValue];\n    }\n    if (key === undefined) {\n        if (!me.autoIncrement) {\n            throw createDOMException('DataError', 'The object store uses out-of-line keys and has no key generator and the key parameter was not provided.');\n        }\n        // A key will be generated\n        key = undefined;\n    } else {\n        Key.convertValueToKeyRethrowingAndIfInvalid(key);\n    }\n    const clonedValue = Sca.clone(value);\n    return [key, clonedValue];\n};\n\n/**\n * From the store properties and object, extracts the value for the key in\n *   the object store\n * If the table has auto increment, get the current number (unless it has\n *   a keyPath leading to a valid but non-numeric or < 1 key).\n * @param {SQLTransaction} tx\n * @param {import('./Key.js').Value} value\n * @param {import('./Key.js').Key} key\n * @param {(key: import('./Key.js').Key, cn?: Integer) => void} success\n * @param {import('./Key.js').SQLFailureCallback} failCb\n * @this {IDBObjectStoreFull}\n * @returns {void}\n */\nIDBObjectStore.prototype.__deriveKey = function (tx, value, key, success, failCb) {\n    const me = this;\n\n    // Only run if cloning is needed\n    /**\n     * @param {Integer} [oldCn]\n     * @returns {void}\n     */\n    function keyCloneThenSuccess (oldCn) { // We want to return the original key, so we don't need to accept an argument here\n        Sca.encode(key, function (key) {\n            key = Sca.decode(key);\n            success(key, oldCn);\n        });\n    }\n\n    if (me.autoIncrement) {\n        // If auto-increment and no valid primaryKey found on the keyPath, get and set the new value, and use\n        if (key === undefined) {\n            // @ts-expect-error Due to re-exporting `Key.d.ts` file (needed for `node_modules` imports)\n            Key.generateKeyForStore(tx, me, function (failure, key, oldCn) {\n                if (failure) {\n                    failCb(createDOMException('ConstraintError', 'The key generator\\'s current number has reached the maximum safe integer limit'));\n                    return;\n                }\n                if (me.keyPath !== null) {\n                    // Should not throw now as checked earlier\n                    // Todo: Could this not be an array here?\n                    Key.injectKeyIntoValueUsingKeyPath(\n                        value, key, /** @type {string} */ (me.keyPath)\n                    );\n                }\n                success(key, oldCn);\n            }, failCb);\n        } else {\n            // @ts-expect-error Due to re-exporting `Key.d.ts` file (needed for `node_modules` imports)\n            Key.possiblyUpdateKeyGenerator(tx, me, key, keyCloneThenSuccess, failCb);\n        }\n    // Not auto-increment\n    } else {\n        keyCloneThenSuccess();\n    }\n};\n\n/**\n *\n * @param {SQLTransaction} tx\n * @param {string} encoded\n * @param {import('./Key.js').Value} value\n * @param {import('./Key.js').Key|Integer} clonedKeyOrCurrentNumber\n * @param {Integer|undefined} oldCn\n * @param {(\n *   clonedKeyOrCurrentNumber: import('./Key.js').Key|Integer\n * ) => void} success\n * @param {(err: Error|DOMException) => void} error\n * @this {IDBObjectStoreFull}\n * @returns {SyncPromise}\n */\nIDBObjectStore.prototype.__insertData = function (tx, encoded, value, clonedKeyOrCurrentNumber, oldCn, success, error) {\n    const me = this;\n    // The `ConstraintError` to occur for `add` upon a duplicate will occur naturally in attempting an insert\n    // We process the index information first as it will stored in the same table as the store\n    /** @type {{[key: string]: string}} */\n    const paramMap = {};\n    const indexPromises = Object.keys(\n        // We do not iterate `indexNames` as those can be modified synchronously (e.g.,\n        //   `deleteIndex` could, by its synchronous removal from `indexNames`, prevent\n        //   iteration here of an index though per IndexedDB test\n        //   `idbobjectstore_createIndex4-deleteIndex-event_order.js`, `createIndex`\n        //   should be allowed to first fail even in such a case).\n        me.__indexes\n    ).map((indexName) => {\n        // While this may sometimes resolve sync and sometimes async, the\n        //   idea is to avoid, where possible, unnecessary delays (and\n        //   consuming code ought to only see a difference in the browser\n        //   where we can't control the transaction timeout anyways).\n        return new SyncPromise((resolve, reject) => {\n            const index = me.__indexes[indexName];\n            if (\n                // `createIndex` was called synchronously after the current insertion was added to\n                //  the transaction queue so although it was added to `__indexes`, it is not yet\n                //  ready to be checked here for the insertion as it will be when running the\n                //  `createIndex` operation (e.g., if two items with the same key were added and\n                //  *then* a unique index was created, it should not continue to err and abort\n                //  yet, as we're still handling the insertions which must be processed (e.g., to\n                //  add duplicates which then cause a unique index to fail))\n                index.__pendingCreate ||\n                // If already deleted (and not just slated for deletion (by `__pendingDelete`\n                //  after this add), we avoid checks\n                index.__deleted\n            ) {\n                resolve(undefined);\n                return;\n            }\n            /**\n             * @type {import('./Key.js').KeyValueObject|\n             *   import('./Key.js').KeyPathEvaluateValue}\n             */\n            let indexKey;\n            try {\n                indexKey = Key.extractKeyValueDecodedFromValueUsingKeyPath(value, index.keyPath, index.multiEntry); // Add as necessary to this and skip past this index if exceptions here)\n                if (\n                    ('invalid' in indexKey && indexKey.invalid) ||\n                    ('failure' in indexKey && indexKey.failure)\n                ) {\n                    throw new Error('Go to catch');\n                }\n            } catch (err) {\n                resolve(undefined);\n                return;\n            }\n            indexKey = indexKey.value;\n            /**\n             * @param {import('./IDBIndex.js').IDBIndexFull} index\n             * @returns {void}\n             */\n            function setIndexInfo (index) {\n                if (indexKey === undefined) {\n                    return;\n                }\n                paramMap[index.__currentName] = /** @type {string} */ (\n                    Key.encode(indexKey, index.multiEntry)\n                );\n            }\n            if (index.unique) {\n                const multiCheck = index.multiEntry && Array.isArray(indexKey);\n                const fetchArgs = buildFetchIndexDataSQL(true, index, indexKey, 'key', multiCheck);\n                executeFetchIndexData(null, ...fetchArgs, tx, null, function success (key) {\n                    if (key === undefined) {\n                        setIndexInfo(index);\n                        resolve(undefined);\n                        return;\n                    }\n                    reject(createDOMException(\n                        'ConstraintError',\n                        'Index already contains a record equal to ' +\n                            (multiCheck ? 'one of the subkeys of' : '') +\n                            '`indexKey`'\n                    ));\n                }, reject);\n            } else {\n                setIndexInfo(index);\n                resolve(undefined);\n            }\n        });\n    });\n    return SyncPromise.all(indexPromises).then(() => {\n        const sqlStart = ['INSERT INTO', util.escapeStoreNameForSQL(me.__currentName), '('];\n        const sqlEnd = [' VALUES ('];\n        const insertSqlValues = [];\n        if (clonedKeyOrCurrentNumber !== undefined) {\n            // Key.convertValueToKey(primaryKey); // Already run\n            sqlStart.push(util.sqlQuote('key'), ',');\n            sqlEnd.push('?,');\n            insertSqlValues.push(\n                util.escapeSQLiteStatement(\n                    /** @type {string} */ (Key.encode(clonedKeyOrCurrentNumber))\n                )\n            );\n        }\n        Object.entries(paramMap).forEach(([key, stmt]) => {\n            sqlStart.push(util.escapeIndexNameForSQL(key) + ',');\n            sqlEnd.push('?,');\n            insertSqlValues.push(util.escapeSQLiteStatement(stmt));\n        });\n        // removing the trailing comma\n        sqlStart.push(util.sqlQuote('value') + ' )');\n        sqlEnd.push('?)');\n        insertSqlValues.push(util.escapeSQLiteStatement(encoded));\n\n        const insertSql = sqlStart.join(' ') + sqlEnd.join(' ');\n        if (CFG.DEBUG) { console.log('SQL for adding', insertSql, insertSqlValues); }\n\n        tx.executeSql(insertSql, insertSqlValues, function () {\n            success(clonedKeyOrCurrentNumber);\n        }, function (tx, err) {\n            // Should occur for `add` operation\n            error(createDOMException(\n                'ConstraintError', /** @type {string} */ (err.message), err\n            ));\n            return false;\n        });\n        return undefined;\n    }).catch(function (err) {\n        /**\n         * @returns {void}\n         */\n        function fail () {\n            // Todo: Add a different error object here if `assignCurrentNumber`\n            //  fails in reverting?\n            error(err);\n        }\n        if (typeof oldCn === 'number') {\n            // @ts-expect-error Due to re-exporting `Key.d.ts` file (needed for `node_modules` imports)\n            Key.assignCurrentNumber(tx, me, oldCn, fail, fail);\n            return null;\n        }\n        fail();\n        return null;\n    });\n};\n\n/**\n *\n * @param {import('./Key.js').Value} value\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.add = function (value /* , key */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const key = arguments[1];\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No value was specified');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__assertWritable();\n\n    const request = /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__createRequest(me);\n    const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n    IDBObjectStore.__storingRecordObjectStore(request, me, true, clonedValue, true, ky);\n    return request;\n};\n\n/**\n *\n * @param {import('./Key.js').Value} value\n * @throws {TypeError}\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.put = function (value /* , key */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const key = arguments[1];\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No value was specified');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__assertWritable();\n\n    const request = /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__createRequest(me);\n    const [ky, clonedValue] = me.__validateKeyAndValueAndCloneValue(value, key, false);\n    IDBObjectStore.__storingRecordObjectStore(request, me, true, clonedValue, false, ky);\n    return request;\n};\n\n/**\n *\n * @param {SQLTransaction} tx\n * @param {import('./Key.js').Key} key\n * @param {(tx: SQLTransaction) => void} cb\n * @param {(err: SQLError) => void} error\n * @this {IDBObjectStoreFull}\n * @returns {void}\n */\nIDBObjectStore.prototype.__overwrite = function (tx, key, cb, error) {\n    const me = this;\n    // First try to delete if the record exists\n    // Key.convertValueToKey(key); // Already run\n    const sql = 'DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName) + ' WHERE \"key\" = ?';\n    const encodedKey = /** @type {string} */ (Key.encode(key));\n    tx.executeSql(sql, [util.escapeSQLiteStatement(encodedKey)], function (tx, data) {\n        if (CFG.DEBUG) { console.log('Did the row with the', key, 'exist?', data.rowsAffected); }\n        cb(tx);\n    }, function (tx, err) {\n        error(err);\n        return false;\n    });\n};\n\n/**\n *\n * @param {import('./IDBRequest.js').IDBRequestFull} request\n * @param {IDBObjectStoreFull} store\n * @param {boolean} invalidateCache\n * @param {import('./Key.js').Value} value\n * @param {boolean} noOverwrite\n * @returns {void}\n */\nIDBObjectStore.__storingRecordObjectStore = function (request, store, invalidateCache, value, noOverwrite /* , key */) {\n    // eslint-disable-next-line prefer-rest-params\n    const key = arguments[5];\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        store.transaction\n    ).__pushToQueue(request, function (tx, args, success, error) {\n        store.__deriveKey(tx, value, key, function (clonedKeyOrCurrentNumber, oldCn) {\n            Sca.encode(value, function (encoded) {\n                /**\n                 * @param {SQLTransaction} tx\n                 * @returns {void}\n                 */\n                function insert (tx) {\n                    store.__insertData(tx, encoded, value, clonedKeyOrCurrentNumber, oldCn, function (...args) {\n                        if (invalidateCache) {\n                            store.__cursors.forEach((cursor) => {\n                                cursor.__invalidateCache();\n                            });\n                        }\n                        success(...args);\n                    }, error);\n                }\n                if (!noOverwrite) {\n                    store.__overwrite(tx, clonedKeyOrCurrentNumber, insert, error);\n                    return;\n                }\n                insert(tx);\n            });\n        }, error);\n    });\n};\n\n/**\n *\n * @param {import('./Key.js').Value} query\n * @param {boolean} [getKey]\n * @param {boolean} [getAll]\n * @param {Integer} [count]\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.__get = function (query, getKey, getAll, count) {\n    const me = this;\n    if (count !== undefined) {\n        count = util.enforceRange(count, 'unsigned long');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n\n    const range = convertValueToKeyRange(query, !getAll);\n\n    const col = getKey ? 'key' : 'value';\n    const sql = ['SELECT', util.sqlQuote(col), 'FROM', util.escapeStoreNameForSQL(me.__currentName)];\n    /** @type {string[]} */\n    const sqlValues = [];\n    if (range !== undefined) {\n        sql.push('WHERE');\n        setSQLForKeyRange(range, util.sqlQuote('key'), sql, sqlValues);\n    }\n    if (!getAll) {\n        count = 1;\n    }\n    if (count) {\n        if (!Number.isFinite(count)) {\n            throw new TypeError('The count parameter must be a finite number');\n        }\n        sql.push('LIMIT', String(count));\n    }\n    const sqlStr = sql.join(' ');\n    return /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__addToTransactionQueue(function objectStoreGet (tx, args, success, error) {\n        if (CFG.DEBUG) { console.log('Fetching', me.__currentName, sqlValues); }\n        tx.executeSql(sqlStr, sqlValues, function (tx, data) {\n            if (CFG.DEBUG) { console.log('Fetched data', data); }\n            let ret;\n            try {\n                // Opera can't deal with the try-catch here.\n                if (data.rows.length === 0) {\n                    if (getAll) {\n                        success([]);\n                    } else {\n                        success();\n                    }\n                    return;\n                }\n                ret = [];\n                if (getKey) {\n                    for (let i = 0; i < data.rows.length; i++) {\n                        // Key.convertValueToKey(data.rows.item(i).key); // Already validated before storage\n                        ret.push(\n                            Key.decode(util.unescapeSQLiteResponse(data.rows.item(i).key), false)\n                        );\n                    }\n                } else {\n                    for (let i = 0; i < data.rows.length; i++) {\n                        ret.push(\n                            Sca.decode(util.unescapeSQLiteResponse(data.rows.item(i).value))\n                        );\n                    }\n                }\n                if (!getAll) {\n                    ret = ret[0];\n                }\n            } catch (e) {\n                // If no result is returned, or error occurs when parsing JSON\n                if (CFG.DEBUG) { console.log(e); }\n            }\n            success(ret);\n        }, function (tx, err) {\n            error(err);\n            return false;\n        });\n    }, undefined, me);\n};\n\n/**\n *\n * @param {import('./Key.js').Value} query\n * @throws {TypeError}\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.get = function (query) {\n    if (!arguments.length) {\n        throw new TypeError('A parameter was missing for `IDBObjectStore.get`.');\n    }\n    return this.__get(query);\n};\n\n/**\n *\n * @param {import('./Key.js').Value} query\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.getKey = function (query) {\n    if (!arguments.length) {\n        throw new TypeError('A parameter was missing for `IDBObjectStore.getKey`.');\n    }\n    return this.__get(query, true);\n};\n\n/**\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.getAll = function (/* query, count */) {\n    // eslint-disable-next-line prefer-rest-params\n    const [query, count] = arguments;\n    return this.__get(query, false, true, count);\n};\n\n/**\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.getAllKeys = function (/* query, count */) {\n    // eslint-disable-next-line prefer-rest-params\n    const [query, count] = arguments;\n    return this.__get(query, true, true, count);\n};\n\n/**\n *\n * @param {import('./Key.js').Value} query\n * @throws {TypeError}\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.delete = function (query) {\n    const me = this;\n    if (!(this instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (!arguments.length) {\n        throw new TypeError('A parameter was missing for `IDBObjectStore.delete`.');\n    }\n\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__assertWritable();\n\n    const range = convertValueToKeyRange(query, true);\n\n    const sqlArr = ['DELETE FROM', util.escapeStoreNameForSQL(me.__currentName), 'WHERE'];\n    /** @type {string[]} */\n    const sqlValues = [];\n    setSQLForKeyRange(range, util.sqlQuote('key'), sqlArr, sqlValues);\n    const sql = sqlArr.join(' ');\n\n    return /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__addToTransactionQueue(function objectStoreDelete (tx, args, success, error) {\n        if (CFG.DEBUG) { console.log('Deleting', me.__currentName, sqlValues); }\n        tx.executeSql(sql, sqlValues, function (tx, data) {\n            if (CFG.DEBUG) { console.log('Deleted from database', data.rowsAffected); }\n            me.__cursors.forEach((cursor) => {\n                cursor.__invalidateCache(); // Delete\n            });\n            success();\n        }, function (tx, err) {\n            error(err);\n            return false;\n        });\n    }, undefined, me);\n};\n\n/**\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.clear = function () {\n    const me = this;\n    if (!(this instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__assertWritable();\n\n    return /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.transaction\n    ).__addToTransactionQueue(function objectStoreClear (tx, args, success, error) {\n        tx.executeSql('DELETE FROM ' + util.escapeStoreNameForSQL(me.__currentName), [], function (tx, data) {\n            if (CFG.DEBUG) { console.log('Cleared all records from database', data.rowsAffected); }\n            me.__cursors.forEach((cursor) => {\n                cursor.__invalidateCache(); // Clear\n            });\n            success();\n        }, function (tx, err) {\n            error(err);\n            return false;\n        });\n    }, undefined, me);\n};\n\n/**\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.count = function (/* query */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const query = arguments[0];\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n\n    // We don't need to add to cursors array since has the count parameter which won't cache\n    return IDBCursorWithValue.__createInstance(query, 'next', me, me, 'key', 'value', true).__request;\n};\n\n/**\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.openCursor = function (/* query, direction */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    const [query, direction] = arguments;\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    const cursor = IDBCursorWithValue.__createInstance(query, direction, me, me, 'key', 'value');\n    me.__cursors.push(cursor);\n    return cursor.__request;\n};\n\n/**\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBRequest.js').IDBRequestFull}\n */\nIDBObjectStore.prototype.openKeyCursor = function (/* query, direction */) {\n    const me = this;\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    // eslint-disable-next-line prefer-rest-params\n    const [query, direction] = arguments;\n    const cursor = IDBCursor.__createInstance(query, direction, me, me, 'key', 'key');\n    me.__cursors.push(cursor);\n    return cursor.__request;\n};\n\n/**\n *\n * @param {string} indexName\n * @this {IDBObjectStoreFull}\n * @returns {import('./IDBIndex.js').IDBIndexFull}\n */\nIDBObjectStore.prototype.index = function (indexName) {\n    const me = this;\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No index name was specified');\n    }\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertNotFinished(me.transaction);\n    const index = me.__indexes[indexName];\n    if (!index || index.__deleted) {\n        throw createDOMException('NotFoundError', 'Index \"' + indexName + '\" does not exist on ' + me.__currentName);\n    }\n\n    if (!me.__indexHandles[indexName] ||\n        me.__indexes[indexName].__pendingDelete ||\n        me.__indexes[indexName].__deleted\n    ) {\n        me.__indexHandles[indexName] = IDBIndex.__clone(index, me);\n    }\n    return me.__indexHandles[indexName];\n};\n\n/**\n * Creates a new index on the object store.\n * @param {string} indexName\n * @param {string|string[]} keyPath\n * @this {IDBObjectStoreFull}\n * @returns {IDBIndex}\n */\nIDBObjectStore.prototype.createIndex = function (indexName, keyPath /* , optionalParameters */) {\n    const me = this;\n    // eslint-disable-next-line prefer-rest-params\n    let optionalParameters = arguments[2];\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    indexName = String(indexName); // W3C test within IDBObjectStore.js seems to accept string conversion\n    if (arguments.length === 0) {\n        throw new TypeError('No index name was specified');\n    }\n    if (arguments.length === 1) {\n        throw new TypeError('No key path was specified');\n    }\n    IDBTransaction.__assertVersionChange(me.transaction);\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n    if (me.__indexes[indexName] && !me.__indexes[indexName].__deleted && !me.__indexes[indexName].__pendingDelete) {\n        throw createDOMException('ConstraintError', 'Index \"' + indexName + '\" already exists on ' + me.__currentName);\n    }\n\n    keyPath = util.convertToSequenceDOMString(keyPath);\n    if (!util.isValidKeyPath(keyPath)) {\n        throw createDOMException('SyntaxError', 'A valid keyPath must be supplied');\n    }\n    if (Array.isArray(keyPath) && optionalParameters && optionalParameters.multiEntry) {\n        throw createDOMException('InvalidAccessError', 'The keyPath argument was an array and the multiEntry option is true.');\n    }\n\n    optionalParameters = optionalParameters || {};\n    /** @type {import('./IDBIndex.js').IDBIndexProperties} */\n    const indexProperties = {\n        columnName: indexName,\n        keyPath,\n        optionalParams: {\n            unique: Boolean(optionalParameters.unique),\n            multiEntry: Boolean(optionalParameters.multiEntry)\n        }\n    };\n    const index = IDBIndex.__createInstance(me, indexProperties);\n    IDBIndex.__createIndex(me, index);\n    return index;\n};\n\n/**\n *\n * @param {string} name\n * @this {IDBObjectStoreFull}\n * @returns {void}\n */\nIDBObjectStore.prototype.deleteIndex = function (name) {\n    const me = this;\n    if (!(me instanceof IDBObjectStore)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No index name was specified');\n    }\n    IDBTransaction.__assertVersionChange(me.transaction);\n    IDBObjectStore.__invalidStateIfDeleted(me);\n    IDBTransaction.__assertActive(me.transaction);\n    const index = me.__indexes[name];\n    if (!index) {\n        throw createDOMException('NotFoundError', 'Index \"' + name + '\" does not exist on ' + me.__currentName);\n    }\n\n    IDBIndex.__deleteIndex(me, index);\n};\n\nutil.defineReadonlyOuterInterface(IDBObjectStore.prototype, readonlyProperties);\nutil.defineOuterInterface(IDBObjectStore.prototype, ['name']);\n\nIDBObjectStore.prototype[Symbol.toStringTag] = 'IDBObjectStorePrototype';\n\nObject.defineProperty(IDBObjectStore, 'prototype', {\n    writable: false\n});\n\nexport default IDBObjectStore;\n","import {EventTargetFactory} from 'eventtargeter';\nimport {createDOMException} from './DOMException.js';\nimport {createEvent} from './Event.js';\nimport * as util from './util.js';\nimport DOMStringList from './DOMStringList.js';\nimport IDBObjectStore from './IDBObjectStore.js';\nimport IDBTransaction from './IDBTransaction.js';\n\nconst listeners = ['onabort', 'onclose', 'onerror', 'onversionchange'];\nconst readonlyProperties = ['name', 'version', 'objectStoreNames'];\n\n/**\n * @typedef {{\n *   name: string,\n *   keyPath: import('./Key.js').KeyPath,\n *   autoInc: boolean,\n *   indexList: {[key: string]: import('./IDBIndex.js').IDBIndexProperties},\n *   idbdb: IDBDatabaseFull,\n *   cursors?: (import('./IDBCursor.js').IDBCursorFull|\n *     import('./IDBCursor.js').IDBCursorWithValueFull)[],\n * }} IDBObjectStoreProperties\n */\n\n/**\n * IDB Database Object.\n * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#database-interface\n * @class\n */\nfunction IDBDatabase () {\n    this.__versionTransaction = null;\n    this.__objectStores = null;\n    throw new TypeError('Illegal constructor');\n}\nconst IDBDatabaseAlias = IDBDatabase;\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {IDBDatabase & EventTarget & {\n *   createObjectStore: (storeName: string) => IDBObjectStore,\n *   deleteObjectStore: (storeName: string) => void,\n *   close: () => void,\n *   transaction: (storeNames: string|string[], mode: string) => IDBTransaction,\n *   throwIfUpgradeTransactionNull: () => void,\n *   objectStoreNames: import('./DOMStringList.js').DOMStringListFull,\n *   name: string,\n *   __forceClose: (msg: string) => void,\n *   __db: import('websql-configurable/lib/websql/WebSQLDatabase.js').default,\n *   __oldVersion: Integer,\n *   __version: Integer,\n *   __name: string,\n *   __upgradeTransaction: null|import('./IDBTransaction.js').IDBTransactionFull,\n *   __versionTransaction: import('./IDBTransaction.js').IDBTransactionFull,\n *   __transactions: import('./IDBTransaction.js').IDBTransactionFull[],\n *   __objectStores: {[key: string]: IDBObjectStore},\n *   __objectStoreNames: import('./DOMStringList.js').DOMStringListFull,\n *   __oldObjectStoreNames: import('./DOMStringList.js').DOMStringListFull,\n *   __unblocking: {\n *     check: () => void\n *   }\n * }} IDBDatabaseFull\n */\n\n/**\n * @param {import('websql-configurable').default} db\n * @param {string} name\n * @param {Integer} oldVersion\n * @param {Integer} version\n * @param {SQLResultSet} storeProperties\n * @returns {IDBDatabaseFull}\n */\nIDBDatabase.__createInstance = function (db, name, oldVersion, version, storeProperties) {\n    /**\n     * @class\n     * @this {IDBDatabaseFull}\n     */\n    function IDBDatabase () {\n        // @ts-expect-error It's ok\n        this[Symbol.toStringTag] = 'IDBDatabase';\n        util.defineReadonlyProperties(this, readonlyProperties);\n        this.__db = db;\n        this.__closePending = false;\n        this.__oldVersion = oldVersion;\n        this.__version = version;\n        this.__name = name;\n        this.__upgradeTransaction = null;\n        util.defineListenerProperties(this, listeners);\n        // @ts-expect-error Part of `ShimEventTarget`\n        this.__setOptions({\n            legacyOutputDidListenersThrowFlag: true // Event hook for IndexedB\n        });\n\n        this.__transactions = [];\n\n        /** @type {{[key: string]: IDBObjectStore}} */\n        this.__objectStores = {};\n        this.__objectStoreNames = DOMStringList.__createInstance();\n\n        /**\n         * @type {IDBObjectStoreProperties}\n         */\n        const itemCopy = {};\n        for (let i = 0; i < storeProperties.rows.length; i++) {\n            const item = storeProperties.rows.item(i);\n            // Safari implements `item` getter return object's properties\n            //  as readonly, so we copy all its properties (except our\n            //  custom `currNum` which we don't need) onto a new object\n            itemCopy.name = item.name;\n            itemCopy.keyPath = JSON.parse(item.keyPath);\n            // Though `autoInc` is coming from the database as a NUMERIC\n            // type (how SQLite stores BOOLEAN set in CREATE TABLE),\n            // and should thus be parsed into a number here (0 or 1),\n            // `IDBObjectStore.__createInstance` will convert to a boolean\n            // when setting the store's `autoIncrement`.\n            /** @type {const} */ (['autoInc', 'indexList']).forEach((prop) => {\n                itemCopy[prop] = JSON.parse(item[prop]);\n            });\n\n            itemCopy.idbdb = this;\n            const store = IDBObjectStore.__createInstance(itemCopy);\n            this.__objectStores[store.name] = store;\n            this.objectStoreNames.push(store.name);\n        }\n        this.__oldObjectStoreNames = this.objectStoreNames.clone();\n    }\n    IDBDatabase.prototype = IDBDatabaseAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBDatabase();\n};\n\n// @ts-expect-error It's ok\nIDBDatabase.prototype = EventTargetFactory.createInstance();\nIDBDatabase.prototype[Symbol.toStringTag] = 'IDBDatabasePrototype';\n\n/**\n * Creates a new object store.\n * @param {string} storeName\n * @this {IDBDatabaseFull}\n * @returns {IDBObjectStore}\n */\nIDBDatabase.prototype.createObjectStore = function (storeName /* , createOptions */) {\n    // eslint-disable-next-line prefer-rest-params\n    let createOptions = arguments[1];\n    storeName = String(storeName); // W3C test within IDBObjectStore.js seems to accept string conversion\n    if (!(this instanceof IDBDatabase)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No object store name was specified');\n    }\n    IDBTransaction.__assertVersionChange(this.__versionTransaction); // this.__versionTransaction may not exist if called mistakenly by user in onsuccess\n    this.throwIfUpgradeTransactionNull();\n    IDBTransaction.__assertActive(this.__versionTransaction);\n\n    createOptions = {...createOptions};\n    let {keyPath} = createOptions;\n    keyPath = keyPath === undefined ? null : util.convertToSequenceDOMString(keyPath);\n    if (keyPath !== null && !util.isValidKeyPath(keyPath)) {\n        throw createDOMException('SyntaxError', 'The keyPath argument contains an invalid key path.');\n    }\n\n    if (this.__objectStores[storeName] && !this.__objectStores[storeName].__pendingDelete) {\n        throw createDOMException('ConstraintError', 'Object store \"' + storeName + '\" already exists in ' + this.name);\n    }\n\n    const autoInc = createOptions.autoIncrement;\n    if (autoInc && (keyPath === '' || Array.isArray(keyPath))) {\n        throw createDOMException('InvalidAccessError', 'With autoIncrement set, the keyPath argument must not be an array or empty string.');\n    }\n\n    /** @type {IDBObjectStoreProperties} */\n    const storeProperties = {\n        name: storeName,\n        keyPath,\n        autoInc,\n        indexList: {},\n        idbdb: this\n    };\n    const store = IDBObjectStore.__createInstance(storeProperties, this.__versionTransaction);\n    return IDBObjectStore.__createObjectStore(this, store);\n};\n\n/**\n * Deletes an object store.\n * @param {string} storeName\n * @throws {TypeError|DOMException}\n * @this {IDBDatabaseFull}\n * @returns {void}\n */\nIDBDatabase.prototype.deleteObjectStore = function (storeName) {\n    if (!(this instanceof IDBDatabase)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('No object store name was specified');\n    }\n    IDBTransaction.__assertVersionChange(this.__versionTransaction);\n    this.throwIfUpgradeTransactionNull();\n    IDBTransaction.__assertActive(this.__versionTransaction);\n\n    const store = this.__objectStores[storeName];\n    if (!store) {\n        throw createDOMException('NotFoundError', 'Object store \"' + storeName + '\" does not exist in ' + this.name);\n    }\n\n    IDBObjectStore.__deleteObjectStore(this, store);\n};\n\n/**\n * @throws {TypeError}\n * @this {IDBDatabaseFull}\n * @returns {void}\n */\nIDBDatabase.prototype.close = function () {\n    if (!(this instanceof IDBDatabase)) {\n        throw new TypeError('Illegal invocation');\n    }\n    this.__closePending = true;\n    if (this.__unblocking) {\n        this.__unblocking.check();\n    }\n};\n\n/**\n * Starts a new transaction.\n * @param {string|string[]} storeNames\n * @this {IDBDatabaseFull}\n * @returns {import('./IDBTransaction.js').IDBTransactionFull}\n */\nIDBDatabase.prototype.transaction = function (storeNames /* , mode */) {\n    if (arguments.length === 0) {\n        throw new TypeError('You must supply a valid `storeNames` to `IDBDatabase.transaction`');\n    }\n    // eslint-disable-next-line prefer-rest-params\n    let mode = arguments[1];\n    storeNames = util.isIterable(storeNames)\n        // Creating new array also ensures sequence is passed by value: https://heycam.github.io/webidl/#idl-sequence\n        ? [...new Set( // to be unique\n            util.convertToSequenceDOMString(storeNames) // iterables have `ToString` applied (and we convert to array for convenience)\n        )].sort() // must be sorted\n        : [util.convertToDOMString(storeNames)];\n\n    /* (function () {\n        throw new TypeError('You must supply a valid `storeNames` to `IDBDatabase.transaction`');\n    }())); */\n\n    // Since SQLite (at least node-websql and definitely WebSQL) requires\n    //   locking of the whole database, to allow simultaneous readwrite\n    //   operations on transactions without overlapping stores, we'd probably\n    //   need to save the stores in separate databases (we could also consider\n    //   prioritizing readonly but not starving readwrite).\n    // Even for readonly transactions, due to [issue 17](https://github.com/nolanlawson/node-websql/issues/17),\n    //   we're not currently actually running the SQL requests in parallel.\n    mode = mode || 'readonly';\n\n    IDBTransaction.__assertNotVersionChange(this.__versionTransaction);\n    if (this.__closePending) {\n        throw createDOMException('InvalidStateError', 'An attempt was made to start a new transaction on a database connection that is not open');\n    }\n\n    const objectStoreNames = DOMStringList.__createInstance();\n    storeNames.forEach((storeName) => {\n        if (!this.objectStoreNames.contains(storeName)) {\n            throw createDOMException('NotFoundError', 'The \"' + storeName + '\" object store does not exist');\n        }\n        objectStoreNames.push(storeName);\n    });\n\n    if (storeNames.length === 0) {\n        throw createDOMException('InvalidAccessError', 'No valid object store names were specified');\n    }\n\n    if (mode !== 'readonly' && mode !== 'readwrite') {\n        throw new TypeError('Invalid transaction mode: ' + mode);\n    }\n\n    // Do not set transaction state to \"inactive\" yet (will be set after\n    //   timeout on creating transaction instance):\n    //   https://github.com/w3c/IndexedDB/issues/87\n    const trans = IDBTransaction.__createInstance(this, objectStoreNames, mode);\n    this.__transactions.push(trans);\n    return trans;\n};\n\n/**\n * @see https://github.com/w3c/IndexedDB/issues/192\n * @throws {DOMException}\n * @this {IDBDatabaseFull}\n * @returns {void}\n */\nIDBDatabase.prototype.throwIfUpgradeTransactionNull = function () {\n    if (this.__upgradeTransaction === null) {\n        throw createDOMException('InvalidStateError', 'No upgrade transaction associated with database.');\n    }\n};\n\n// Todo __forceClose: Add tests for `__forceClose`\n/**\n *\n * @param {string} msg\n * @this {IDBDatabaseFull}\n * @returns {void}\n */\nIDBDatabase.prototype.__forceClose = function (msg) {\n    const me = this;\n    me.close();\n    let ct = 0;\n    me.__transactions.forEach(function (trans) {\n        // eslint-disable-next-line camelcase -- Clear API\n        trans.on__abort = function () {\n            ct++;\n            if (ct === me.__transactions.length) {\n                // Todo __forceClose: unblock any pending `upgradeneeded` or `deleteDatabase` calls\n                const evt = createEvent('close');\n                setTimeout(() => {\n                    me.dispatchEvent(evt);\n                });\n            }\n        };\n        trans.__abortTransaction(createDOMException(\n            'AbortError',\n            'The connection was force-closed: ' + (msg || '')\n        ));\n    });\n};\n\nutil.defineOuterInterface(IDBDatabase.prototype, listeners);\nutil.defineReadonlyOuterInterface(IDBDatabase.prototype, readonlyProperties);\n\nObject.defineProperty(IDBDatabase.prototype, 'constructor', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: IDBDatabase\n});\n\nObject.defineProperty(IDBDatabase, 'prototype', {\n    writable: false\n});\n\nexport default IDBDatabase;\n","import path from 'path';\nimport SyncPromise from 'sync-promise-expanded';\n\nimport {createEvent} from './Event.js';\nimport IDBVersionChangeEvent from './IDBVersionChangeEvent.js';\nimport {logError, webSQLErrback, createDOMException} from './DOMException.js';\nimport {IDBOpenDBRequest} from './IDBRequest.js';\nimport cmp from './cmp.js';\nimport * as util from './util.js';\nimport * as Key from './Key.js';\nimport IDBTransaction from './IDBTransaction.js';\nimport IDBDatabase from './IDBDatabase.js';\nimport CFG from './CFG.js';\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @callback DatabaseDeleted\n * @returns {void}\n */\n\n/** @type {import('./CFG.js').FSApi} */\nlet fs;\n\n/**\n * @param {import('./CFG.js').FSApi} _fs\n * @returns {void}\n */\nconst setFS = (_fs) => {\n    fs = _fs;\n};\n\n/**\n * @returns {string}\n */\nconst getOrigin = () => {\n    return (typeof location !== 'object' || !location) ? 'null' : location.origin;\n};\nconst hasNullOrigin = () => CFG.checkOrigin !== false && (getOrigin() === 'null');\n\n// Todo: This really should be process and tab-independent so the\n//  origin could vary; in the browser, this might be through a\n//  `SharedWorker`\n\n/**\n * @type {{\n *   [key: string]: {\n *     [key: string]: {\n *       req: import('./IDBRequest.js').IDBOpenDBRequestFull,\n *       cb: (req: import('./IDBRequest.js').IDBRequestFull) => void,\n *     }[]\n *   }\n * }}\n */\nconst connectionQueue = {};\n\n/**\n * @param {string} name\n * @param {string} origin\n * @returns {void}\n */\nfunction processNextInConnectionQueue (name, origin = getOrigin()) {\n    const queueItems = connectionQueue[origin][name];\n    if (!queueItems[0]) { // Nothing left to process\n        return;\n    }\n    const {req, cb} = queueItems[0]; // Keep in queue to prevent continuation\n\n    /**\n     * @returns {void}\n     */\n    function removeFromQueue () {\n        queueItems.shift();\n        processNextInConnectionQueue(name, origin);\n    }\n    req.addEventListener('success', removeFromQueue);\n    req.addEventListener('error', removeFromQueue);\n    cb(req);\n}\n\n/* eslint-disable default-param-last */\n/**\n * @param {import('./IDBRequest.js').IDBOpenDBRequestFull} req\n * @param {string} name\n * @param {string} origin\n * @param {(req: import('./IDBRequest.js').IDBOpenDBRequestFull) => void} cb\n * @returns {void}\n */\nfunction addRequestToConnectionQueue (req, name, origin = getOrigin(), cb) {\n    /* eslint-enable default-param-last */\n    if (!connectionQueue[origin][name]) {\n        connectionQueue[origin][name] = [];\n    }\n    connectionQueue[origin][name].push({req, cb});\n\n    if (connectionQueue[origin][name].length === 1) { // If there are no items in the queue, we have to start it\n        processNextInConnectionQueue(name, origin);\n    }\n}\n\n/**\n * @param {import('./IDBDatabase.js').IDBDatabaseFull[]} openConnections\n * @param {import('./IDBRequest.js').IDBRequestFull} req\n * @param {Integer} oldVersion\n * @param {Integer|null} newVersion\n * @returns {SyncPromise}\n */\nfunction triggerAnyVersionChangeAndBlockedEvents (openConnections, req, oldVersion, newVersion) {\n    // Todo: For Node (and in browser using service workers if available?) the\n    //    connections ought to involve those in any process; should also\n    //    auto-close if unloading\n\n    /**\n     * @param {IDBDatabase} connection\n     * @returns {boolean|undefined}\n     */\n    const connectionIsClosed = (connection) => connection.__closePending;\n    const connectionsClosed = () => openConnections.every((conn) => {\n        return connectionIsClosed(conn);\n    });\n    return openConnections.reduce(function (promises, entry) {\n        if (connectionIsClosed(entry)) {\n            return promises;\n        }\n        return promises.then(function () {\n            if (connectionIsClosed(entry)) {\n                // Prior onversionchange must have caused this connection to be closed\n                return undefined;\n            }\n            const e = /** @type {Event & IDBVersionChangeEvent} */ (\n                new IDBVersionChangeEvent('versionchange', {oldVersion, newVersion})\n            );\n            return new SyncPromise(function (resolve) {\n                setTimeout(() => {\n                    entry.dispatchEvent(e); // No need to catch errors\n                    resolve(undefined);\n                });\n            });\n        });\n    }, SyncPromise.resolve(undefined)).then(function () {\n        if (connectionsClosed()) {\n            return undefined;\n        }\n        return new SyncPromise(function (resolve) {\n            const unblocking = {\n                check () {\n                    if (connectionsClosed()) {\n                        resolve(undefined);\n                    }\n                }\n            };\n            const e = /** @type {Event & IDBVersionChangeEvent} */ (\n                new IDBVersionChangeEvent('blocked', {oldVersion, newVersion})\n            );\n            setTimeout(() => {\n                req.dispatchEvent(e); // No need to catch errors\n                if (!connectionsClosed()) {\n                    openConnections.forEach((connection) => {\n                        if (!connectionIsClosed(connection)) {\n                            connection.__unblocking = unblocking;\n                        }\n                    });\n                } else {\n                    resolve(undefined);\n                }\n            });\n        });\n    });\n}\n\n/**\n * @typedef {import('websql-configurable/lib/websql/WebSQLDatabase.js').default & {\n *   _db: {\n *     _db: {\n *       close: (errBack: (err: Error) => void) => void\n *     }\n *   }\n * }} DatabaseFull\n */\n\n/**\n * @type {{\n *   [key: string]: {\n *     [key: string]: DatabaseFull\n *   }\n * }}\n */\nconst websqlDBCache = {};\n\n/** @type {import('websql-configurable/lib/websql/WebSQLDatabase.js').default} */\nlet sysdb;\nlet nameCounter = 0;\n\n/**\n * @param {string} name\n * @returns {Integer}\n */\nfunction getLatestCachedWebSQLVersion (name) {\n    return Object.keys(websqlDBCache[name]).map(Number).reduce(\n        (prev, curr) => {\n            return curr > prev ? curr : prev;\n        }, 0\n    );\n}\n\n/**\n * @param {string} name\n * @returns {DatabaseFull}\n */\nfunction getLatestCachedWebSQLDB (name) {\n    return websqlDBCache[name] && websqlDBCache[name][\n        getLatestCachedWebSQLVersion(name)\n    ];\n}\n\n/**\n * @param {OpenDatabase} __openDatabase\n * @param {string} name\n * @param {string} escapedDatabaseName\n * @param {DatabaseDeleted} databaseDeleted\n * @param {(tx: SQLTransaction|Error|SQLError, err?: SQLError) => boolean} dbError\n * @returns {void}\n */\nfunction cleanupDatabaseResources (__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError) {\n    const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n    if (useMemoryDatabase) {\n        const latestSQLiteDBCached = websqlDBCache[name] ? getLatestCachedWebSQLDB(name) : null;\n        if (!latestSQLiteDBCached) {\n            console.warn('Could not find a memory database instance to delete.');\n            databaseDeleted();\n            return;\n        }\n        const sqliteDB = latestSQLiteDBCached._db && latestSQLiteDBCached._db._db;\n        if (!sqliteDB || !sqliteDB.close) {\n            console.error('The `openDatabase` implementation does not have the expected `._db._db.close` method for closing the database');\n            return;\n        }\n        sqliteDB.close(\n            /**\n             * @param {Error} err\n             * @returns {void}\n             */\n            (err) => {\n                if (err) {\n                    console.warn('Error closing (destroying) memory database');\n                    return;\n                }\n                databaseDeleted();\n            }\n        );\n        return;\n    }\n    if (fs && CFG.deleteDatabaseFiles !== false) {\n        fs.unlink(path.join(CFG.databaseBasePath || '', escapedDatabaseName), (err) => {\n            if (err && err.code !== 'ENOENT') { // Ignore if file is already deleted\n                dbError({\n                    code: 0,\n                    message: 'Error removing database file: ' + escapedDatabaseName + ' ' + err\n                });\n                return;\n            }\n            databaseDeleted();\n        });\n        return;\n    }\n\n    const sqliteDB = __openDatabase(\n        path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n        '1',\n        name,\n        CFG.DEFAULT_DB_SIZE\n    );\n    sqliteDB.transaction(function (tx) {\n        tx.executeSql('SELECT \"name\" FROM __sys__', [], function (tx, data) {\n            const tables = data.rows;\n            (function deleteTables (i) {\n                if (i >= tables.length) {\n                    // If all tables are deleted, delete the housekeeping tables\n                    tx.executeSql('DROP TABLE IF EXISTS __sys__', [], function () {\n                        databaseDeleted();\n                    }, dbError);\n                } else {\n                    // Delete all tables in this database, maintained in the sys table\n                    tx.executeSql('DROP TABLE ' + util.escapeStoreNameForSQL(\n                        util.unescapeSQLiteResponse( // Avoid double-escaping\n                            tables.item(i).name\n                        )\n                    ), [], function () {\n                        deleteTables(i + 1);\n                    }, function () {\n                        deleteTables(i + 1);\n                        return false;\n                    });\n                }\n            }(0));\n        }, function () {\n            // __sys__ table does not exist, but that does not mean delete did not happen\n            databaseDeleted();\n            return false;\n        });\n    });\n}\n\n/**\n * @callback CreateSysDBSuccessCallback\n * @returns {void}\n */\n\n/**\n * Creates the sysDB to keep track of version numbers for databases.\n * @param {OpenDatabase} __openDatabase\n * @param {CreateSysDBSuccessCallback} success\n * @param {(tx: SQLTransaction|SQLError|Error, err?: SQLError) => void} failure\n * @returns {void}\n */\nfunction createSysDB (__openDatabase, success, failure) {\n    /**\n     *\n     * @param {boolean|SQLTransaction|SQLError} tx\n     * @param {SQLError} [err]\n     * @returns {void}\n     */\n    function sysDbCreateError (tx, err) {\n        const er = webSQLErrback(/** @type {SQLError} */ (err) || tx);\n        if (CFG.DEBUG) { console.log('Error in sysdb transaction - when creating dbVersions', err); }\n        failure(er);\n    }\n\n    if (sysdb) {\n        success();\n    } else {\n        sysdb = __openDatabase(\n            typeof CFG.memoryDatabase === 'string'\n                ? CFG.memoryDatabase\n                : path.join(\n                    (typeof CFG.sysDatabaseBasePath === 'string'\n                        ? CFG.sysDatabaseBasePath\n                        : (CFG.databaseBasePath || '')),\n                    '__sysdb__' + (CFG.addSQLiteExtension !== false ? '.sqlite' : '')\n                ),\n            '1',\n            'System Database',\n            CFG.DEFAULT_DB_SIZE\n        );\n        sysdb.transaction(function (systx) {\n            systx.executeSql('CREATE TABLE IF NOT EXISTS dbVersions (name BLOB, version INT);', [], function (systx) {\n                if (!CFG.useSQLiteIndexes) {\n                    success();\n                    return;\n                }\n                systx.executeSql(\n                    'CREATE INDEX IF NOT EXISTS dbvname ON dbVersions(name)',\n                    [],\n                    success,\n                    /** @type {SQLStatementErrorCallback} */ (sysDbCreateError)\n                );\n            }, /** @type {SQLStatementErrorCallback} */ (sysDbCreateError));\n        }, sysDbCreateError);\n    }\n}\n\n/**\n * IDBFactory Class.\n * @see https://w3c.github.io/IndexedDB/#idl-def-IDBFactory\n * @class\n */\nfunction IDBFactory () {\n    throw new TypeError('Illegal constructor');\n}\n\n/**\n * @typedef {(\n *   name: string, version: string, displayName: string, estimatedSize: number\n * ) => import('websql-configurable/lib/websql/WebSQLDatabase.js').default} OpenDatabase\n */\n\n/**\n * @typedef {globalThis.IDBFactory & {\n *   __openDatabase: OpenDatabase,\n *   __connections: {\n *     [key: string]: import('./IDBDatabase.js').IDBDatabaseFull[]\n *   }\n* }} IDBFactoryFull\n */\n\nconst IDBFactoryAlias = IDBFactory;\n/**\n * @returns {IDBFactoryFull}\n */\nIDBFactory.__createInstance = function () {\n    /**\n     * @class\n     */\n    function IDBFactory () {\n        this[Symbol.toStringTag] = 'IDBFactory';\n        this.__connections = {};\n    }\n    IDBFactory.prototype = IDBFactoryAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBFactory();\n};\n\n/**\n * The IndexedDB Method to create a new database and return the DB.\n * @param {string} name\n * @this {IDBFactoryFull}\n * @throws {TypeError} Illegal invocation or no arguments (for database name)\n * @returns {IDBOpenDBRequest}\n */\nIDBFactory.prototype.open = function (name /* , version */) {\n    const me = this;\n    if (!(me instanceof IDBFactory)) {\n        throw new TypeError('Illegal invocation');\n    }\n    // eslint-disable-next-line prefer-rest-params\n    let version = arguments[1];\n\n    if (arguments.length === 0) {\n        throw new TypeError('Database name is required');\n    }\n    if (version !== undefined) {\n        version = util.enforceRange(version, 'unsigned long long');\n        if (version === 0) {\n            throw new TypeError('Version cannot be 0');\n        }\n    }\n    if (hasNullOrigin()) {\n        throw createDOMException('SecurityError', 'Cannot open an IndexedDB database from an opaque origin.');\n    }\n\n    const req = IDBOpenDBRequest.__createInstance();\n    let calledDbCreateError = false;\n\n    if (CFG.autoName && name === '') {\n        name = 'autoNamedDatabase_' + nameCounter++;\n    }\n    name = String(name); // cast to a string\n    const sqlSafeName = util.escapeSQLiteStatement(name);\n\n    const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n    const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n    /** @type {string} */\n    let escapedDatabaseName;\n    // eslint-disable-next-line no-useless-catch\n    try {\n        escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n    // eslint-disable-next-line sonarjs/no-useless-catch\n    } catch (err) {\n        throw err; // new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n    }\n\n    /**\n     *\n     * @param {SQLTransaction|Error|SQLError} tx\n     * @param {SQLError} [err]\n     * @returns {boolean}\n     */\n    function dbCreateError (tx, err) {\n        if (calledDbCreateError) {\n            return false;\n        }\n        const er = err ? webSQLErrback(err) : /** @type {Error} */ (tx);\n        calledDbCreateError = true;\n        // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n        const evt = createEvent('error', er, {bubbles: true, cancelable: true});\n        req.__done = true;\n        req.__error = er;\n        req.__result = undefined; // Must be undefined if an error per `result` getter\n        req.dispatchEvent(evt);\n        return false;\n    }\n\n    /**\n     *\n     * @param {SQLTransaction} tx\n     * @param {DatabaseFull} db\n     * @param {Integer} oldVersion\n     * @returns {void}\n     */\n    function setupDatabase (tx, db, oldVersion) {\n        tx.executeSql('SELECT \"name\", \"keyPath\", \"autoInc\", \"indexList\" FROM __sys__', [], function (tx, data) {\n            /**\n             * @returns {void}\n             */\n            function finishRequest () {\n                req.__result = connection;\n                req.__done = true;\n            }\n            const connection = IDBDatabase.__createInstance(db, name, oldVersion, version, data);\n            if (!me.__connections[name]) {\n                me.__connections[name] = [];\n            }\n            me.__connections[name].push(connection);\n\n            if (oldVersion < version) {\n                const openConnections = me.__connections[name].slice(0, -1);\n                triggerAnyVersionChangeAndBlockedEvents(openConnections, req, oldVersion, version).then(function () {\n                    // DB Upgrade in progress\n                    /**\n                     *\n                     * @param {SQLTransaction} systx\n                     * @param {boolean|SQLError|DOMException|Error} err\n                     * @param {(tx?: SQLTransaction|SQLError, err?: SQLError|SQLResultSet) => boolean} cb\n                     * @returns {void}\n                     */\n                    let sysdbFinishedCb = function (systx, err, cb) {\n                        if (err) {\n                            try {\n                                systx.executeSql('ROLLBACK', [], cb, cb);\n                            } catch (er) {\n                                // Browser may fail with expired transaction above so\n                                //     no choice but to manually revert\n                                sysdb.transaction(function (systx) {\n                                    /**\n                                     *\n                                     * @param {string} msg\n                                     * @throws {Error}\n                                     * @returns {never}\n                                     */\n                                    function reportError (msg) {\n                                        throw new Error('Unable to roll back upgrade transaction!' + (msg || ''));\n                                    }\n\n                                    // Attempt to revert\n                                    if (oldVersion === 0) {\n                                        systx.executeSql(\n                                            'DELETE FROM dbVersions WHERE \"name\" = ?',\n                                            [sqlSafeName],\n                                            function () {\n                                                // @ts-expect-error Force to work\n                                                cb(reportError); // eslint-disable-line promise/no-callback-in-promise\n                                            },\n                                            // @ts-expect-error Force to work\n                                            reportError\n                                        );\n                                    } else {\n                                        systx.executeSql(\n                                            'UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?',\n                                            [\n                                                oldVersion, sqlSafeName\n                                            ],\n                                            cb,\n                                            // @ts-expect-error Force to work\n                                            reportError\n                                        );\n                                    }\n                                });\n                            }\n                            return;\n                        }\n                        // In browser, should auto-commit\n                        cb(); // eslint-disable-line promise/no-callback-in-promise\n                    };\n\n                    sysdb.transaction(function (systx) {\n                        /**\n                         * @returns {void}\n                         */\n                        function versionSet () {\n                            const e = /** @type {import('eventtargeter').EventWithProps & Event & IDBVersionChangeEvent} */ (\n                                new IDBVersionChangeEvent('upgradeneeded', {oldVersion, newVersion: version})\n                            );\n                            req.__result = connection;\n                            connection.__upgradeTransaction = req.__transaction = req.__result.__versionTransaction = IDBTransaction.__createInstance(req.__result, req.__result.objectStoreNames, 'versionchange');\n                            req.__done = true;\n\n                            req.transaction.__addNonRequestToTransactionQueue(function onupgradeneeded (tx, args, finished /* , error */) {\n                                req.dispatchEvent(e);\n\n                                if (e.__legacyOutputDidListenersThrowError) {\n                                    logError('Error', 'An error occurred in an upgradeneeded handler attached to request chain', /** @type {Error} */ (e.__legacyOutputDidListenersThrowError)); // We do nothing else with this error as per spec\n                                    req.transaction.__abortTransaction(createDOMException('AbortError', 'A request was aborted.'));\n                                    return;\n                                }\n                                finished();\n                            });\n\n                            // eslint-disable-next-line camelcase -- Clear API\n                            req.transaction.on__beforecomplete = function (ev) {\n                                connection.__upgradeTransaction = null;\n                                /** @type {import('./IDBDatabase.js').IDBDatabaseFull} */ (\n                                    req.__result\n                                ).__versionTransaction = null;\n                                sysdbFinishedCb(systx, false, function () {\n                                    req.transaction.__transFinishedCb(false, function () {\n                                        ev.complete();\n                                        req.__transaction = null;\n                                    });\n                                    return false;\n                                });\n                            };\n\n                            // eslint-disable-next-line camelcase -- Clear API\n                            req.transaction.on__preabort = function () {\n                                connection.__upgradeTransaction = null;\n                                // We ensure any cache is deleted before any request error events fire and try to reopen\n                                if (useDatabaseCache) {\n                                    if (name in websqlDBCache) {\n                                        delete websqlDBCache[name][version];\n                                    }\n                                }\n                            };\n\n                            // eslint-disable-next-line camelcase -- Clear API\n                            req.transaction.on__abort = function () {\n                                req.__transaction = null;\n                                // `readyState` and `result` will be reset anyways by `dbCreateError` but we follow spec.\n                                req.__result = undefined;\n                                req.__done = false;\n\n                                connection.close();\n                                setTimeout(() => {\n                                    const err = createDOMException('AbortError', 'The upgrade transaction was aborted.');\n                                    sysdbFinishedCb(systx, err, function (reportError) {\n                                        if (oldVersion === 0) {\n                                            cleanupDatabaseResources(\n                                                me.__openDatabase,\n                                                name,\n                                                escapedDatabaseName,\n                                                dbCreateError.bind(null, err),\n                                                // @ts-expect-error It's ok\n                                                reportError || dbCreateError\n                                            );\n                                            return false;\n                                        }\n                                        dbCreateError(err);\n                                        return false;\n                                    });\n                                });\n                            };\n\n                            // eslint-disable-next-line camelcase -- Clear API\n                            req.transaction.on__complete = function () {\n                                if (/** @type {import('./IDBDatabase.js').IDBDatabaseFull} */ (\n                                    req.__result\n                                ).__closePending) {\n                                    req.__transaction = null;\n                                    const err = createDOMException('AbortError', 'The connection has been closed.');\n                                    dbCreateError(err);\n                                    return;\n                                }\n                                // Since this is running directly after `IDBTransaction.complete`,\n                                //   there should be a new task. However, while increasing the\n                                //   timeout 1ms in `IDBTransaction.__executeRequests` can allow\n                                //   `IDBOpenDBRequest.onsuccess` to trigger faster than a new\n                                //   transaction as required by \"transaction-create_in_versionchange\" in\n                                //   w3c/Transaction.js (though still on a timeout separate from this\n                                //   preceding `IDBTransaction.oncomplete`), this causes a race condition\n                                //   somehow with old transactions (e.g., for the Mocha test,\n                                //   in `IDBObjectStore.deleteIndex`, \"should delete an index that was\n                                //   created in a previous transaction\").\n                                // setTimeout(() => {\n\n                                finishRequest();\n\n                                req.__transaction = null;\n                                const e = createEvent('success');\n                                req.dispatchEvent(e);\n                                // });\n                            };\n                        }\n\n                        if (oldVersion === 0) {\n                            systx.executeSql('INSERT INTO dbVersions VALUES (?,?)', [sqlSafeName, version], versionSet, dbCreateError);\n                        } else {\n                            systx.executeSql('UPDATE dbVersions SET \"version\" = ? WHERE \"name\" = ?', [version, sqlSafeName], versionSet, dbCreateError);\n                        }\n                    }, dbCreateError, undefined, function (currentTask, err, done, rollback, commit) {\n                        if (currentTask.readOnly || err) {\n                            return true;\n                        }\n                        sysdbFinishedCb = function (systx, err, cb) {\n                            if (err) {\n                                rollback(err, cb);\n                            } else {\n                                commit(cb);\n                            }\n                        };\n                        return false;\n                    });\n                    return undefined;\n                }).catch((err) => {\n                    console.log('Error within `triggerAnyVersionChangeAndBlockedEvents`');\n                    throw err;\n                });\n            } else {\n                finishRequest();\n\n                const e = createEvent('success');\n                req.dispatchEvent(e);\n            }\n        }, dbCreateError);\n    }\n\n    /**\n     *\n     * @param {Integer} oldVersion\n     * @returns {void}\n     */\n    function openDB (oldVersion) {\n        /** @type {DatabaseFull} */\n        let db;\n        if ((useMemoryDatabase || useDatabaseCache) && name in websqlDBCache && websqlDBCache[name][version]) {\n            db = websqlDBCache[name][version];\n        } else {\n            db = me.__openDatabase(\n                useMemoryDatabase ? CFG.memoryDatabase : path.join(CFG.databaseBasePath || '', escapedDatabaseName),\n                '1',\n                name,\n                CFG.DEFAULT_DB_SIZE\n            );\n            if (useDatabaseCache) {\n                if (!(name in websqlDBCache)) {\n                    websqlDBCache[name] = {};\n                }\n                websqlDBCache[name][version] = db;\n            }\n        }\n\n        if (version === undefined) {\n            version = oldVersion || 1;\n        }\n        if (oldVersion > version) {\n            const err = createDOMException('VersionError', 'An attempt was made to open a database using a lower version than the existing version.', version);\n            if (useDatabaseCache) {\n                setTimeout(() => {\n                    dbCreateError(err);\n                });\n            } else {\n                dbCreateError(err);\n            }\n            return;\n        }\n\n        db.transaction(function (tx) {\n            tx.executeSql('CREATE TABLE IF NOT EXISTS __sys__ (name BLOB, keyPath BLOB, autoInc BOOLEAN, indexList BLOB, currNum INTEGER)', [], function () {\n                /**\n                 * @returns {void}\n                 */\n                function setup () {\n                    setupDatabase(tx, db, oldVersion);\n                }\n                if (!CFG.createIndexes) {\n                    setup();\n                    return;\n                }\n                tx.executeSql('CREATE INDEX IF NOT EXISTS sysname ON __sys__(name)', [], setup, dbCreateError);\n            }, /** @type {SQLStatementErrorCallback} */ (dbCreateError));\n        }, dbCreateError);\n    }\n\n    addRequestToConnectionQueue(req, name, /* origin */ undefined, function () {\n        let latestCachedVersion;\n        if (useDatabaseCache) {\n            if (!(name in websqlDBCache)) {\n                websqlDBCache[name] = {};\n            }\n            latestCachedVersion = getLatestCachedWebSQLVersion(name);\n        }\n        if (latestCachedVersion) {\n            openDB(latestCachedVersion);\n        } else {\n            createSysDB(me.__openDatabase, function () {\n                sysdb.readTransaction(function (sysReadTx) {\n                    sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n                        if (data.rows.length === 0) {\n                            // Database with this name does not exist\n                            openDB(0);\n                        } else {\n                            openDB(data.rows.item(0).version);\n                        }\n                    }, dbCreateError);\n                }, dbCreateError);\n            }, dbCreateError);\n        }\n    });\n\n    return req;\n};\n\n/**\n * Deletes a database.\n * @param {string} name\n * @this {IDBFactoryFull}\n * @returns {IDBOpenDBRequest}\n */\nIDBFactory.prototype.deleteDatabase = function (name) {\n    const me = this;\n    if (!(me instanceof IDBFactory)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length === 0) {\n        throw new TypeError('Database name is required');\n    }\n    if (hasNullOrigin()) {\n        throw createDOMException('SecurityError', 'Cannot delete an IndexedDB database from an opaque origin.');\n    }\n\n    name = String(name); // cast to a string\n    const sqlSafeName = util.escapeSQLiteStatement(name);\n\n    /** @type {string} */\n    let escapedDatabaseName;\n    // eslint-disable-next-line no-useless-catch\n    try {\n        escapedDatabaseName = util.escapeDatabaseNameForSQLAndFiles(name);\n    // eslint-disable-next-line sonarjs/no-useless-catch\n    } catch (err) {\n        throw err; // throw new TypeError('You have supplied a database name which does not match the currently supported configuration, possibly due to a length limit enforced for Node compatibility.');\n    }\n\n    const useMemoryDatabase = typeof CFG.memoryDatabase === 'string';\n    const useDatabaseCache = CFG.cacheDatabaseInstances !== false || useMemoryDatabase;\n\n    const req = IDBOpenDBRequest.__createInstance();\n    let calledDBError = false;\n    let version = 0;\n\n    /**\n     *\n     * @param {boolean} err\n     * @param {(erred?: boolean) => void} cb\n     * @returns {void}\n     */\n    let sysdbFinishedCbDelete = function (err, cb) {\n        cb(err);\n    };\n\n    // Although the spec has no specific conditions where an error\n    //  may occur in `deleteDatabase`, it does provide for\n    //  `UnknownError` as we may require upon a SQL deletion error\n    /**\n     *\n     * @param {SQLTransaction|SQLError|Error} tx\n     * @param {SQLError|boolean} [err]\n     * @returns {boolean}\n     */\n    function dbError (tx, err) {\n        if (calledDBError || err === true) {\n            return false;\n        }\n        const er = webSQLErrback(/** @type {SQLError} */ (err || tx));\n        sysdbFinishedCbDelete(true, function () {\n            req.__done = true;\n            req.__error = er;\n            req.__result = undefined; // Must be undefined if an error per `result` getter\n            // Re: why bubbling here (and how cancelable is only really relevant for `window.onerror`) see: https://github.com/w3c/IndexedDB/issues/86\n            const e = createEvent('error', er, {bubbles: true, cancelable: true});\n            req.dispatchEvent(e);\n            calledDBError = true;\n        });\n        return false;\n    }\n\n    addRequestToConnectionQueue(req, name, /* origin */ undefined, function (req) {\n        createSysDB(me.__openDatabase, function () {\n            // function callback (cb) { cb(); }\n            // callback(function () {\n\n            /**\n             * @returns {void}\n             */\n            function completeDatabaseDelete () {\n                req.__result = undefined;\n                req.__done = true;\n                const e = /** @type {Event & IDBVersionChangeEvent} */ (\n                    new IDBVersionChangeEvent('success', {oldVersion: version, newVersion: null})\n                );\n                req.dispatchEvent(e);\n            }\n\n            /** @type {DatabaseDeleted} */\n            function databaseDeleted () {\n                sysdbFinishedCbDelete(false, function () {\n                    if (useDatabaseCache && name in websqlDBCache) {\n                        delete websqlDBCache[name]; // New calls will treat as though never existed\n                    }\n                    delete me.__connections[name];\n\n                    completeDatabaseDelete();\n                });\n            }\n            sysdb.readTransaction(function (sysReadTx) {\n                sysReadTx.executeSql('SELECT \"version\" FROM dbVersions WHERE \"name\" = ?', [sqlSafeName], function (sysReadTx, data) {\n                    if (data.rows.length === 0) {\n                        completeDatabaseDelete();\n                        return undefined;\n                    }\n                    ({version} = data.rows.item(0));\n\n                    const openConnections = me.__connections[name] || [];\n                    triggerAnyVersionChangeAndBlockedEvents(openConnections, req, version, null).then(function () { // eslint-disable-line promise/catch-or-return\n                        // Since we need two databases which can't be in a single transaction, we\n                        //  do this deleting from `dbVersions` first since the `__sys__` deleting\n                        //  only impacts file memory whereas this one is critical for avoiding it\n                        //  being found via `open` or `databases`; however, we will\n                        //  avoid committing anyways until all deletions are made and rollback the\n                        //  `dbVersions` change if they fail\n                        sysdb.transaction(function (systx) {\n                            systx.executeSql('DELETE FROM dbVersions WHERE \"name\" = ? ', [sqlSafeName], function () {\n                                // Todo: We should also check whether `dbVersions` is empty and if so, delete upon\n                                //    `deleteDatabaseFiles` config. We also ought to do this when aborting (see\n                                //    above code with `DELETE FROM dbVersions`)\n                                cleanupDatabaseResources(me.__openDatabase, name, escapedDatabaseName, databaseDeleted, dbError);\n                            }, dbError);\n                        }, dbError, undefined, function (currentTask, err, done, rollback, commit) {\n                            if (currentTask.readOnly || err) {\n                                return true;\n                            }\n                            sysdbFinishedCbDelete = function (err, cb) {\n                                if (err) {\n                                    rollback(err, cb);\n                                } else {\n                                    commit(cb);\n                                }\n                            };\n                            return false;\n                        });\n                        return undefined;\n                    // @ts-expect-error It's ok\n                    }, dbError);\n                    return undefined;\n                }, dbError);\n            });\n        }, dbError);\n    });\n\n    return req;\n};\n\n/**\n *\n * @param {import('./Key.js').Key} key1\n * @param {import('./Key.js').Key} key2\n * @throws {TypeError}\n * @returns {0|1|-1}\n */\nIDBFactory.prototype.cmp = function (key1, key2) {\n    if (!(this instanceof IDBFactory)) {\n        throw new TypeError('Illegal invocation');\n    }\n    if (arguments.length < 2) {\n        throw new TypeError('You must provide two keys to be compared');\n    }\n    // We use encoding facilities already built for proper sorting;\n    //   the following \"conversions\" are for validation only\n    Key.convertValueToKeyRethrowingAndIfInvalid(key1);\n    Key.convertValueToKeyRethrowingAndIfInvalid(key2);\n    return cmp(key1, key2);\n};\n\n/**\n* May return outdated information if a database has since been deleted.\n* @see https://github.com/w3c/IndexedDB/pull/240/files\n* @this {IDBFactoryFull}\n* @returns {Promise<{\n*   name: string,\n*   version: Integer\n* }[]>}\n*/\nIDBFactory.prototype.databases = function () {\n    const me = this;\n    let calledDbCreateError = false;\n    return new Promise(function (resolve, reject) { // eslint-disable-line promise/avoid-new\n        if (!(me instanceof IDBFactory)) {\n            throw new TypeError('Illegal invocation');\n        }\n        if (hasNullOrigin()) {\n            throw createDOMException('SecurityError', 'Cannot get IndexedDB database names from an opaque origin.');\n        }\n        /**\n         *\n         * @param {true|SQLTransaction|SQLError|DOMException|Error} tx\n         * @param {SQLError|DOMException|Error} [err]\n         * @returns {boolean}\n         */\n        function dbGetDatabaseNamesError (tx, err) {\n            if (calledDbCreateError) {\n                return false;\n            }\n            const er = err ? webSQLErrback(/** @type {SQLError} */ (err)) : tx;\n            calledDbCreateError = true;\n            reject(er);\n            return false;\n        }\n        createSysDB(me.__openDatabase, function () {\n            sysdb.readTransaction(function (sysReadTx) {\n                sysReadTx.executeSql('SELECT \"name\", \"version\" FROM dbVersions', [], function (sysReadTx, data) {\n                    const dbNames = [];\n                    for (let i = 0; i < data.rows.length; i++) {\n                        const {name, version} = data.rows.item(i);\n                        dbNames.push({\n                            name: util.unescapeSQLiteResponse(name),\n                            version\n                        });\n                    }\n                    resolve(dbNames);\n                }, dbGetDatabaseNamesError);\n            }, dbGetDatabaseNamesError);\n        }, dbGetDatabaseNamesError);\n    });\n};\n\n/**\n* @todo forceClose: Test\n* This is provided to facilitate unit-testing of the\n*  closing of a database connection with a forced flag:\n* <http://w3c.github.io/IndexedDB/#steps-for-closing-a-database-connection>\n* @param {string} dbName\n* @param {Integer} connIdx\n* @param {string} msg\n* @throws {TypeError}\n* @this {IDBFactoryFull}\n* @returns {void}\n*/\nIDBFactory.prototype.__forceClose = function (dbName, connIdx, msg) {\n    const me = this;\n    /**\n     *\n     * @param {import('./IDBDatabase.js').IDBDatabaseFull} conn\n     * @returns {void}\n     */\n    function forceClose (conn) {\n        conn.__forceClose(msg);\n    }\n    if (util.isNullish(dbName)) {\n        (Object.values(me.__connections)).forEach((conn) => {\n            // @ts-expect-error It's ok\n            forceClose(conn);\n        });\n    } else if (!me.__connections[dbName]) {\n        console.log('No database connections with that name to force close');\n    } else if (util.isNullish(connIdx)) {\n        me.__connections[dbName].forEach((conn) => {\n            forceClose(conn);\n        });\n    } else if (!Number.isInteger(connIdx) || connIdx < 0 || connIdx > me.__connections[dbName].length - 1) {\n        throw new TypeError(\n            'If providing an argument, __forceClose must be called with a ' +\n            'numeric index to indicate a specific connection to lose'\n        );\n    } else {\n        forceClose(me.__connections[dbName][connIdx]);\n    }\n};\n\n/**\n *\n * @param {string} [origin]\n * @returns {void}\n */\nIDBFactory.prototype.__setConnectionQueueOrigin = function (origin = getOrigin()) {\n    connectionQueue[origin] = {};\n};\n\nIDBFactory.prototype[Symbol.toStringTag] = 'IDBFactoryPrototype';\n\nObject.defineProperty(IDBFactory, 'prototype', {\n    writable: false\n});\n\nconst shimIndexedDB = IDBFactory.__createInstance();\nexport {IDBFactory, cmp, shimIndexedDB, setFS};\n","import {IDBRequest} from './IDBRequest.js';\nimport IDBObjectStore from './IDBObjectStore.js';\nimport {createDOMException} from './DOMException.js';\nimport {setSQLForKeyRange, convertValueToKeyRange} from './IDBKeyRange.js';\nimport {cmp} from './IDBFactory.js';\nimport * as util from './util.js';\nimport IDBTransaction from './IDBTransaction.js';\nimport * as Key from './Key.js';\nimport * as Sca from './Sca.js';\nimport IDBIndex from './IDBIndex.js'; // eslint-disable-line import/no-named-as-default\nimport CFG from './CFG.js';\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {IDBCursor & {\n *   primaryKey: import('./Key.js').Key,\n *   key:  import('./Key.js').Key,\n *   direction: string,\n *   source: import('./IDBObjectStore.js').IDBObjectStoreFull|\n *     import('./IDBIndex.js').IDBIndexFull,\n *   __request: import('./IDBRequest.js').IDBRequestFull,\n *   __advanceCount: Integer|undefined,\n *   __indexSource: boolean,\n *   __key: import('./Key.js').Key,\n *   __primaryKey: import('./Key.js').Key,\n *   __value: import('./Key.js').Value,\n *   __store: import('./IDBObjectStore.js').IDBObjectStoreFull,\n *   __range: import('./IDBKeyRange.js').IDBKeyRangeFull|undefined,\n *   __keyColumnName: string,\n *   __valueColumnName: string,\n *   __keyOnly: boolean,\n *   __valueDecoder: {\n *     decode: (str: string) => any,\n *   },\n *   __count: boolean,\n *   __prefetchedIndex: Integer,\n *   __prefetchedData: null|SQLResultSetRowList|{\n *     data: RowItemNonNull[],\n *     length: Integer,\n *     item: (index: Integer) => RowItemNonNull\n *   },\n *   __multiEntryIndex: boolean,\n *   __unique: boolean,\n *   __sqlDirection: \"DESC\"|\"ASC\",\n *   __matchedKeys: {[key: string]: true},\n *   __invalidateCache: () => void\n * }} IDBCursorFull\n */\n\n/**\n * @typedef {IDBCursorFull & {\n *   __request: import('./IDBRequest.js').IDBRequestFull,\n * }} IDBCursorWithValueFull\n */\n\n/**\n * @class\n */\nfunction IDBCursor () {\n    throw new TypeError('Illegal constructor');\n}\nconst IDBCursorAlias = IDBCursor;\n\n/* eslint-disable func-name-matching */\n/**\n * The IndexedDB Cursor Object.\n * @see http://dvcs.w3.org/hg/IndexedDB/raw-file/tip/Overview.html#idl-def-IDBCursor\n * @param {IDBKeyRange} query\n * @param {string} direction\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull} store\n * @param {import('./IDBObjectStore.js').IDBObjectStoreFull|\n *   import('./IDBIndex.js').IDBIndexFull} source\n * @param {string} keyColumnName\n * @param {string} valueColumnName\n * @param {boolean} count\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.__super = function IDBCursor (query, direction, store, source, keyColumnName, valueColumnName, count) {\n    /* eslint-enable func-name-matching */\n    // @ts-expect-error Should be ok\n    this[Symbol.toStringTag] = 'IDBCursor';\n    util.defineReadonlyProperties(this, ['key', 'primaryKey', 'request']);\n    IDBObjectStore.__invalidStateIfDeleted(store);\n    this.__indexSource = util.instanceOf(source, IDBIndex);\n    if (this.__indexSource) {\n        IDBIndex.__invalidStateIfDeleted(\n            /** @type {import('./IDBIndex.js').IDBIndexFull} */ (source)\n        );\n    }\n    IDBTransaction.__assertActive(store.transaction);\n    const range = convertValueToKeyRange(query);\n    if (direction !== undefined && !(['next', 'prev', 'nextunique', 'prevunique'].includes(direction))) {\n        throw new TypeError(direction + 'is not a valid cursor direction');\n    }\n\n    Object.defineProperties(this, {\n        // Babel is not respecting default writable false here, so make explicit\n        source: {writable: false, value: source},\n        direction: {writable: false, value: direction || 'next'}\n    });\n    this.__key = undefined;\n    this.__primaryKey = undefined;\n\n    this.__store = store;\n    this.__range = range;\n    this.__request = IDBRequest.__createInstance();\n    this.__request.__source = source;\n    this.__request.__transaction = this.__store.transaction;\n    this.__keyColumnName = keyColumnName;\n    this.__valueColumnName = valueColumnName;\n    this.__keyOnly = valueColumnName === 'key';\n    this.__valueDecoder = this.__keyOnly ? Key : Sca;\n    this.__count = count;\n    this.__prefetchedIndex = -1;\n    this.__multiEntryIndex = this.__indexSource\n        ? 'multiEntry' in source && source.multiEntry\n        : false;\n    this.__unique = this.direction.includes('unique');\n    this.__sqlDirection = ['prev', 'prevunique'].includes(this.direction) ? 'DESC' : 'ASC';\n\n    if (range !== undefined) {\n        // Encode the key range and cache the encoded values, so we don't have to re-encode them over and over\n        range.__lowerCached = range.lower !== undefined && Key.encode(range.lower, this.__multiEntryIndex);\n        range.__upperCached = range.upper !== undefined && Key.encode(range.upper, this.__multiEntryIndex);\n    }\n    this.__gotValue = true;\n    this.continue();\n};\n\n/**\n *\n * @param {...any} args\n * @returns {IDBCursorFull}\n */\nIDBCursor.__createInstance = function (...args) {\n    const IDBCursor = IDBCursorAlias.__super;\n    IDBCursor.prototype = IDBCursorAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBCursor(...args);\n};\n\n/**\n *\n * @param {...any} args\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__find = function (...args /* key, tx, success, error, recordsToLoad */) {\n    if (this.__multiEntryIndex) {\n        const [key, primaryKey, tx, success, error] = args;\n        this.__findMultiEntry(key, primaryKey, tx, success, error);\n    } else {\n        const [key, primaryKey, tx, success, error, recordsToLoad] = args;\n        this.__findBasic(key, primaryKey, tx, success, error, recordsToLoad);\n    }\n};\n\n/**\n * @typedef {(\n *   k: import('./Key.js').Key,\n *   val: import('./Key.js').Value,\n *   primKey: import('./Key.js').Key\n * ) => void} KeySuccess\n */\n\n/**\n * @typedef {(tx: SQLTransaction|Error|DOMException|SQLError, err?: SQLError) => void} FindError\n */\n\n/**\n *\n * @param {undefined|import('./Key.js').Key} key\n * @param {undefined|import('./Key.js').Key} primaryKey\n * @param {SQLTransaction} tx\n * @param {KeySuccess} success\n * @param {FindError} error\n * @param {Integer|undefined} recordsToLoad\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__findBasic = function (key, primaryKey, tx, success, error, recordsToLoad) {\n    const continueCall = recordsToLoad !== undefined;\n    recordsToLoad = recordsToLoad || 1;\n\n    const me = this;\n    const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n    const quotedKey = util.sqlQuote('key');\n    const sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n\n    /** @type {string[]} */\n    const sqlValues = [];\n    sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n    setSQLForKeyRange(me.__range, quotedKeyColumnName, sql, sqlValues, true, true);\n\n    // Determine the ORDER BY direction based on the cursor.\n    const direction = me.__sqlDirection;\n    const op = direction === 'ASC' ? '>' : '<';\n\n    if (primaryKey !== undefined) {\n        sql.push('AND', quotedKey, op + '= ?');\n        // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n        sqlValues.push(/** @type {string} */ (Key.encode(primaryKey)));\n    }\n    if (key !== undefined) {\n        sql.push('AND', quotedKeyColumnName, op + '= ?');\n        // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n        sqlValues.push(/** @type {string} */ (Key.encode(key)));\n    } else if (continueCall && me.__key !== undefined) {\n        sql.push('AND', quotedKeyColumnName, op + ' ?');\n        // Key.convertValueToKey(me.__key); // Already checked when stored\n        sqlValues.push(/** @type {string} */ (Key.encode(me.__key)));\n    }\n\n    if (!me.__count) {\n        // 1. Sort by key\n        sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n        if (me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n            if (!me.__unique) {\n                // 2. Sort by primaryKey (if defined and not unique)\n                // 3. Sort by position (if defined)\n                sql.push(',', quotedKey, direction);\n            } else if (me.direction === 'prevunique') {\n                // Sort by first record with key matching\n                sql.push(',', quotedKey, 'ASC');\n            }\n        }\n\n        if (!me.__unique && me.__indexSource) {\n            // 4. Sort by object store position (if defined and not unique)\n            sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n        }\n        sql.push('LIMIT', String(recordsToLoad));\n    }\n    const sqlStr = sql.join(' ');\n    if (CFG.DEBUG) { console.log(sqlStr, sqlValues); }\n\n    tx.executeSql(sqlStr, sqlValues, function (tx, data) {\n        if (me.__count) {\n            success(undefined, data.rows.length, undefined);\n        } else if (data.rows.length > 1) {\n            me.__prefetchedIndex = 0;\n            me.__prefetchedData = data.rows;\n            if (CFG.DEBUG) { console.log('Preloaded ' + me.__prefetchedData.length + ' records for cursor'); }\n            me.__decode(data.rows.item(0), success);\n        } else if (data.rows.length === 1) {\n            me.__decode(data.rows.item(0), success);\n        } else {\n            if (CFG.DEBUG) { console.log('Reached end of cursors'); }\n            success(undefined, undefined, undefined);\n        }\n    }, function (tx, err) {\n        if (CFG.DEBUG) { console.log('Could not execute Cursor.continue', sqlStr, sqlValues); }\n        error(err);\n        return false;\n    });\n};\n\nconst leftBracketRegex = /\\[/gu;\n\n/**\n *\n * @param {undefined|import('./Key.js').Key} key\n * @param {undefined|import('./Key.js').Key} primaryKey\n * @param {SQLTransaction} tx\n * @param {KeySuccess} success\n * @param {FindError} error\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__findMultiEntry = function (key, primaryKey, tx, success, error) {\n    const me = this;\n\n    if (me.__prefetchedData && me.__prefetchedData.length === me.__prefetchedIndex) {\n        if (CFG.DEBUG) { console.log('Reached end of multiEntry cursor'); }\n        success(undefined, undefined, undefined);\n        return;\n    }\n\n    const quotedKeyColumnName = util.sqlQuote(me.__keyColumnName);\n    const sql = ['SELECT * FROM', util.escapeStoreNameForSQL(me.__store.__currentName)];\n    /** @type {string[]} */\n    const sqlValues = [];\n    sql.push('WHERE', quotedKeyColumnName, 'NOT NULL');\n    if (me.__range && (me.__range.lower !== undefined && Array.isArray(me.__range.upper))) {\n        if (me.__range.upper.indexOf(me.__range.lower) === 0) {\n            sql.push('AND', quotedKeyColumnName, \"LIKE ? ESCAPE '^'\");\n            sqlValues.push(\n                '%' + util.sqlLIKEEscape(\n                    /** @type {string} */ (me.__range.__lowerCached).slice(0, -1)\n                ) + '%'\n            );\n        }\n    }\n\n    // Determine the ORDER BY direction based on the cursor.\n    const direction = me.__sqlDirection;\n    const op = direction === 'ASC' ? '>' : '<';\n    const quotedKey = util.sqlQuote('key');\n\n    if (primaryKey !== undefined) {\n        sql.push('AND', quotedKey, op + '= ?');\n        // Key.convertValueToKey(primaryKey); // Already checked by `continuePrimaryKey`\n        sqlValues.push(/** @type {string} */ (Key.encode(primaryKey)));\n    }\n    if (key !== undefined) {\n        sql.push('AND', quotedKeyColumnName, op + '= ?');\n        // Key.convertValueToKey(key); // Already checked by `continue` or `continuePrimaryKey`\n        sqlValues.push(/** @type {string} */ (Key.encode(key)));\n    } else if (me.__key !== undefined) {\n        sql.push('AND', quotedKeyColumnName, op + ' ?');\n        // Key.convertValueToKey(me.__key); // Already checked when entered\n        sqlValues.push(/** @type {string} */ (Key.encode(me.__key)));\n    }\n\n    if (!me.__count) {\n        // 1. Sort by key\n        sql.push('ORDER BY', quotedKeyColumnName, direction);\n\n        // 2. Sort by primaryKey (if defined and not unique)\n        if (!me.__unique && me.__keyColumnName !== 'key') { // Avoid adding 'key' twice\n            sql.push(',', util.sqlQuote('key'), direction);\n        }\n\n        // 3. Sort by position (if defined)\n\n        if (!me.__unique && me.__indexSource) {\n            // 4. Sort by object store position (if defined and not unique)\n            sql.push(',', util.sqlQuote(me.__valueColumnName), direction);\n        }\n    }\n    const sqlStr = sql.join(' ');\n    if (CFG.DEBUG) { console.log(sqlStr, sqlValues); }\n\n    tx.executeSql(sqlStr, sqlValues, function (tx, data) {\n        if (data.rows.length > 0) {\n            if (me.__count) { // Avoid caching and other processing below\n                let ct = 0;\n                for (let i = 0; i < data.rows.length; i++) {\n                    const rowItem = data.rows.item(i);\n                    const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n                    const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n                    ct += matches.length;\n                }\n                success(undefined, ct, undefined);\n                return;\n            }\n            const rows = [];\n            for (let i = 0; i < data.rows.length; i++) {\n                const rowItem = data.rows.item(i);\n                const rowKey = Key.decode(rowItem[me.__keyColumnName], true);\n                const matches = Key.findMultiEntryMatches(rowKey, me.__range);\n\n                for (const matchingKey of matches) {\n                    /**\n                     * @type {RowItemNonNull}\n                     */\n                    const clone = {\n                        matchingKey: /** @type {string} */ (\n                            Key.encode(matchingKey, true)\n                        ),\n                        key: rowItem.key\n                    };\n                    clone[me.__keyColumnName] = rowItem[me.__keyColumnName];\n                    clone[me.__valueColumnName] = rowItem[me.__valueColumnName];\n                    rows.push(clone);\n                }\n            }\n            const reverse = me.direction.indexOf('prev') === 0;\n            rows.sort(function (a, b) {\n                if (a.matchingKey.replaceAll(leftBracketRegex, 'z') < b.matchingKey.replaceAll(leftBracketRegex, 'z')) {\n                    return reverse ? 1 : -1;\n                }\n                if (a.matchingKey.replaceAll(leftBracketRegex, 'z') > b.matchingKey.replaceAll(leftBracketRegex, 'z')) {\n                    return reverse ? -1 : 1;\n                }\n                if (a.key < b.key) {\n                    return me.direction === 'prev' ? 1 : -1;\n                }\n                if (a.key > b.key) {\n                    return me.direction === 'prev' ? -1 : 1;\n                }\n                return 0;\n            });\n\n            if (rows.length > 1) {\n                me.__prefetchedIndex = 0;\n                me.__prefetchedData = {\n                    data: rows,\n                    length: rows.length,\n                    /**\n                     * @param {Integer} index\n                     * @returns {RowItemNonNull}\n                     */\n                    item (index) {\n                        return this.data[index];\n                    }\n                };\n                if (CFG.DEBUG) { console.log('Preloaded ' + me.__prefetchedData.length + ' records for multiEntry cursor'); }\n                me.__decode(rows[0], success);\n            } else if (rows.length === 1) {\n                if (CFG.DEBUG) { console.log('Reached end of multiEntry cursor'); }\n                me.__decode(rows[0], success);\n            } else {\n                if (CFG.DEBUG) { console.log('Reached end of multiEntry cursor'); }\n                success(undefined, undefined, undefined);\n            }\n        } else {\n            if (CFG.DEBUG) { console.log('Reached end of multiEntry cursor'); }\n            success(undefined, undefined, undefined);\n        }\n    }, function (tx, err) {\n        if (CFG.DEBUG) { console.log('Could not execute Cursor.continue', sqlStr, sqlValues); }\n        error(err);\n        return false;\n    });\n};\n\n/**\n * @typedef {any} StructuredCloneValue\n */\n\n/**\n * @typedef {any} IndexedDBKey\n */\n\n/**\n* @callback SuccessArg\n* @param {StructuredCloneValue} value\n* @param {import('./IDBRequest.js').IDBRequestFull} req\n* @returns {void}\n*/\n\n/**\n* @callback SuccessCallback\n* @param {IndexedDBKey} key\n* @param {StructuredCloneValue} value\n* @param {IndexedDBKey} primaryKey\n* @returns {void}\n*/\n\n/**\n * Creates an \"onsuccess\" callback.\n * @param {SuccessArg} success\n * @this {IDBCursorFull}\n * @returns {SuccessCallback}\n */\nIDBCursor.prototype.__onsuccess = function (success) {\n    const me = this;\n    return function (key, value, primaryKey) {\n        if (me.__count) {\n            success(value, me.__request);\n        } else {\n            if (key !== undefined) {\n                me.__gotValue = true;\n            }\n            me.__key = key === undefined ? null : key;\n            me.__primaryKey = primaryKey === undefined ? null : primaryKey;\n            me.__value = value === undefined ? null : value;\n            const result = key === undefined ? null : me;\n            success(result, me.__request);\n        }\n    };\n};\n\n/**\n * @typedef {{\n*   matchingKey: string,\n*   key: string,\n*   [k: string]: string\n* }} RowItemNonNull\n*/\n\n/**\n *\n * @param {RowItemNonNull} rowItem\n * @param {(\n *   key: import('./Key.js').Key,\n *   val: import('./Key.js').Value,\n *   primaryKey: import('./Key.js').Key,\n *   encKey?: string\n * ) => void} callback\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__decode = function (rowItem, callback) {\n    const me = this;\n    if (me.__multiEntryIndex && me.__unique) {\n        if (!me.__matchedKeys) {\n            me.__matchedKeys = {};\n        }\n        if (me.__matchedKeys[rowItem.matchingKey]) {\n            callback(undefined, undefined, undefined);\n            return;\n        }\n        me.__matchedKeys[rowItem.matchingKey] = true;\n    }\n    const encKey = util.unescapeSQLiteResponse(\n        me.__multiEntryIndex\n            ? rowItem.matchingKey\n            : rowItem[me.__keyColumnName]\n    );\n    const encVal = util.unescapeSQLiteResponse(rowItem[me.__valueColumnName]);\n    const encPrimaryKey = util.unescapeSQLiteResponse(rowItem.key);\n\n    const key = Key.decode(\n        encKey,\n        me.__multiEntryIndex\n    );\n    const val = me.__valueDecoder.decode(encVal);\n    const primaryKey = Key.decode(encPrimaryKey);\n    callback(key, val, primaryKey, encKey /* , encVal, encPrimaryKey */);\n};\n\n/**\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__sourceOrEffectiveObjStoreDeleted = function () {\n    IDBObjectStore.__invalidStateIfDeleted(this.__store, \"The cursor's effective object store has been deleted\");\n    if (this.__indexSource) {\n        IDBIndex.__invalidStateIfDeleted(\n            /** @type {import('./IDBIndex.js').IDBIndexFull} */ (this.source),\n            \"The cursor's index source has been deleted\"\n        );\n    }\n};\n\n/**\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__invalidateCache = function () {\n    // @ts-expect-error Why is this not being found?\n    this.__prefetchedData = null;\n};\n\n/**\n *\n * @param {import('./Key.js').Key} [key]\n * @param {boolean} [advanceContinue]\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__continue = function (key, advanceContinue) {\n    const me = this;\n    const advanceState = me.__advanceCount !== undefined;\n    IDBTransaction.__assertActive(me.__store.transaction);\n    me.__sourceOrEffectiveObjStoreDeleted();\n    if (!me.__gotValue && !advanceContinue) {\n        throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n    }\n    if (key !== undefined) {\n        Key.convertValueToKeyRethrowingAndIfInvalid(key);\n        const cmpResult = cmp(key, me.key);\n        if (cmpResult === 0 ||\n            (me.direction.includes('next') && cmpResult === -1) ||\n            (me.direction.includes('prev') && cmpResult === 1)\n        ) {\n            throw createDOMException('DataError', 'Cannot ' + (advanceState ? 'advance' : 'continue') + ' the cursor in an unexpected direction');\n        }\n    }\n    this.__continueFinish(key, undefined, advanceState);\n};\n\n/**\n *\n * @param {import('./Key.js').Key} key\n * @param {import('./Key.js').Key} primaryKey\n * @param {boolean} advanceState\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.__continueFinish = function (key, primaryKey, advanceState) {\n    const me = this;\n    const recordsToPreloadOnContinue = me.__advanceCount || CFG.cursorPreloadPackSize || 100;\n    me.__gotValue = false;\n    me.__request.__done = false;\n\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.__store.transaction\n    ).__pushToQueue(me.__request, function cursorContinue (tx, args, success, error, executeNextRequest) {\n        /**\n         * @param {import('./Key.js').Key} k\n         * @param {import('./Key.js').Value} val\n         * @param {import('./Key.js').Key} primKey\n         * @returns {void}\n         */\n        function triggerSuccess (k, val, primKey) {\n            if (advanceState) {\n                if (me.__advanceCount && me.__advanceCount >= 2 && k !== undefined) {\n                    me.__advanceCount--;\n                    me.__key = k;\n                    me.__continue(undefined, true);\n                    /** @type {() => void} */ (\n                        executeNextRequest\n                    )(); // We don't call success yet but do need to advance the transaction queue\n                    return;\n                }\n                me.__advanceCount = undefined;\n            }\n            me.__onsuccess(success)(k, val, primKey);\n        }\n        if (me.__prefetchedData) {\n            // We have pre-loaded data for the cursor\n            me.__prefetchedIndex++;\n            if (me.__prefetchedIndex < me.__prefetchedData.length) {\n                me.__decode(me.__prefetchedData.item(me.__prefetchedIndex), function (k, val, primKey, encKey) {\n                    /**\n                     * @returns {void}\n                     */\n                    function checkKey () {\n                        const cmpResult = Number(key === undefined) || cmp(k, key);\n                        if (cmpResult > 0 || (\n                            cmpResult === 0 && (\n                                me.__unique || primaryKey === undefined || cmp(primKey, primaryKey) >= 0\n                            )\n                        )) {\n                            triggerSuccess(k, val, primKey);\n                            return;\n                        }\n                        cursorContinue(tx, args, success, error);\n                    }\n                    if (me.__unique && !me.__multiEntryIndex &&\n                        encKey === Key.encode(me.key, me.__multiEntryIndex)) {\n                        cursorContinue(tx, args, success, error);\n                        return;\n                    }\n                    checkKey();\n                });\n                return;\n            }\n        }\n\n        // No (or not enough) pre-fetched data, do query\n        me.__find(\n            key, primaryKey, tx, triggerSuccess,\n            /** @type {FindError} */\n            function (...args) {\n                me.__advanceCount = undefined;\n                const [t, err] = args;\n                error(t, err);\n            }, recordsToPreloadOnContinue\n        );\n    });\n};\n\n/**\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.continue = function (/* key */) {\n    // eslint-disable-next-line prefer-rest-params\n    this.__continue(arguments[0]);\n};\n\n/**\n *\n * @param {import('./Key.js').Key} key\n * @param {import('./Key.js').Key} primaryKey\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.continuePrimaryKey = function (key, primaryKey) {\n    const me = this;\n    IDBTransaction.__assertActive(me.__store.transaction);\n    me.__sourceOrEffectiveObjStoreDeleted();\n    if (!me.__indexSource) {\n        throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may only be called on an index source.');\n    }\n    if (!['next', 'prev'].includes(me.direction)) {\n        throw createDOMException('InvalidAccessError', '`continuePrimaryKey` may not be called with unique cursors.');\n    }\n    if (!me.__gotValue) {\n        throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n    }\n    Key.convertValueToKeyRethrowingAndIfInvalid(key);\n    Key.convertValueToKeyRethrowingAndIfInvalid(primaryKey);\n\n    const cmpResult = cmp(key, me.key);\n    if (\n        (me.direction === 'next' && cmpResult === -1) ||\n        (me.direction === 'prev' && cmpResult === 1)\n    ) {\n        throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n    }\n\n    /**\n     * @returns {void}\n     */\n    function noErrors () {\n        me.__continueFinish(key, primaryKey, false);\n    }\n    if (cmpResult === 0) {\n        Sca.encode(primaryKey, function (encPrimaryKey) {\n            Sca.encode(me.primaryKey, function (encObjectStorePos) {\n                if (encPrimaryKey === encObjectStorePos ||\n                    (me.direction === 'next' && encPrimaryKey < encObjectStorePos) ||\n                    (me.direction === 'prev' && encPrimaryKey > encObjectStorePos)\n                ) {\n                    throw createDOMException('DataError', 'Cannot continue the cursor in an unexpected direction');\n                }\n                noErrors();\n            });\n        });\n    } else {\n        noErrors();\n    }\n};\n\n/**\n *\n * @param {Integer} count\n * @this {IDBCursorFull}\n * @returns {void}\n */\nIDBCursor.prototype.advance = function (count) {\n    const me = this;\n    count = util.enforceRange(count, 'unsigned long');\n    if (count === 0) {\n        throw new TypeError('Calling advance() with count argument 0');\n    }\n    if (me.__gotValue) { // Only set the count if not running in error (otherwise will override earlier good advance calls)\n        me.__advanceCount = count;\n    }\n    me.__continue();\n};\n\n/**\n * @typedef {any} AnyValue\n */\n\n/**\n *\n * @param {AnyValue} valueToUpdate\n * @this {IDBCursorFull}\n * @returns {IDBRequest}\n */\nIDBCursor.prototype.update = function (valueToUpdate) {\n    const me = this;\n    if (!arguments.length) {\n        throw new TypeError('A value must be passed to update()');\n    }\n    IDBTransaction.__assertActive(me.__store.transaction);\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.__store.transaction\n    ).__assertWritable();\n    me.__sourceOrEffectiveObjStoreDeleted();\n    if (!me.__gotValue) {\n        throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n    }\n    if (me.__keyOnly) {\n        throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n    }\n    const request = /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.__store.transaction\n    ).__createRequest(me);\n    const key = me.primaryKey;\n\n    /**\n     * @param {import('./Key.js').Value} clonedValue\n     * @returns {void}\n     */\n    function addToQueue (clonedValue) {\n        // We set the `invalidateCache` argument to `false` since the old value shouldn't be accessed\n        IDBObjectStore.__storingRecordObjectStore(request, me.__store, false, clonedValue, false, key);\n    }\n    if (me.__store.keyPath !== null) {\n        const [evaluatedKey, clonedValue] = me.__store.__validateKeyAndValueAndCloneValue(valueToUpdate, undefined, true);\n        if (cmp(me.primaryKey, evaluatedKey) !== 0) {\n            throw createDOMException('DataError', 'The key of the supplied value to `update` is not equal to the cursor\\'s effective key');\n        }\n        addToQueue(clonedValue);\n    } else {\n        const clonedValue = Sca.clone(valueToUpdate);\n        addToQueue(clonedValue);\n    }\n    return request;\n};\n\n/**\n * @this {IDBCursorFull}\n * @returns {IDBRequest}\n */\nIDBCursor.prototype.delete = function () {\n    const me = this;\n    IDBTransaction.__assertActive(me.__store.transaction);\n    /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        me.__store.transaction\n    ).__assertWritable();\n    me.__sourceOrEffectiveObjStoreDeleted();\n    if (!me.__gotValue) {\n        throw createDOMException('InvalidStateError', 'The cursor is being iterated or has iterated past its end.');\n    }\n    if (me.__keyOnly) {\n        throw createDOMException('InvalidStateError', 'This cursor method cannot be called when the key only flag has been set.');\n    }\n    return /** @type {import('./IDBTransaction.js').IDBTransactionFull} */ (\n        this.__store.transaction\n    ).__addToTransactionQueue(function cursorDelete (tx, args, success, error) {\n        me.__find(\n            undefined, undefined, tx,\n            /** @type {KeySuccess} */\n            function (key, value, primaryKey) {\n                const sql = 'DELETE FROM  ' + util.escapeStoreNameForSQL(me.__store.__currentName) + ' WHERE \"key\" = ?';\n                if (CFG.DEBUG) { console.log(sql, key, primaryKey); }\n                // Key.convertValueToKey(primaryKey); // Already checked when entered\n                tx.executeSql(sql, [util.escapeSQLiteStatement(\n                    /** @type {string} */ (Key.encode(primaryKey))\n                )], function (tx, data) {\n                    if (data.rowsAffected === 1) {\n                        // We don't invalidate the cache (as we don't access it anymore\n                        //    and it will set the index off)\n                        success(undefined);\n                    } else {\n                        // @ts-expect-error Apparently ok\n                        error('No rows with key found' + key);\n                    }\n                }, function (tx, data) {\n                    error(data);\n                    return false;\n                });\n            }, error\n        );\n    }, undefined, me);\n};\n\nIDBCursor.prototype[Symbol.toStringTag] = 'IDBCursorPrototype';\n\nutil.defineReadonlyOuterInterface(\n    IDBCursor.prototype,\n    ['source', 'direction', 'key', 'primaryKey', 'request']\n);\nObject.defineProperty(IDBCursor, 'prototype', {\n    writable: false\n});\n\n/**\n * @class\n */\nfunction IDBCursorWithValue () {\n    throw new TypeError('Illegal constructor');\n}\n\n// @ts-expect-error It's ok\nIDBCursorWithValue.prototype = Object.create(IDBCursor.prototype);\nObject.defineProperty(IDBCursorWithValue.prototype, 'constructor', {\n    enumerable: false,\n    writable: true,\n    configurable: true,\n    value: IDBCursorWithValue\n});\n\nconst IDBCursorWithValueAlias = IDBCursorWithValue;\n/**\n *\n * @param {...any} args\n * @returns {IDBCursorWithValueFull}\n */\nIDBCursorWithValue.__createInstance = function (...args) {\n    /**\n     * @class\n     * @this {IDBCursorWithValueFull}\n     */\n    function IDBCursorWithValue () {\n        const [query, direction, store, source, keyColumnName, valueColumnName, count] = args;\n        IDBCursor.__super.call(this, query, direction, store, source, keyColumnName, valueColumnName, count);\n        // @ts-expect-error It's ok\n        this[Symbol.toStringTag] = 'IDBCursorWithValue';\n        util.defineReadonlyProperties(this, 'value');\n    }\n    IDBCursorWithValue.prototype = IDBCursorWithValueAlias.prototype;\n\n    // @ts-expect-error It's ok\n    return new IDBCursorWithValue();\n};\n\nutil.defineReadonlyOuterInterface(IDBCursorWithValue.prototype, ['value']);\n\nIDBCursorWithValue.prototype[Symbol.toStringTag] = 'IDBCursorWithValuePrototype';\n\nObject.defineProperty(IDBCursorWithValue, 'prototype', {\n    writable: false\n});\n\nexport {IDBCursor, IDBCursorWithValue};\n","import {setPrototypeOfCustomEvent} from 'eventtargeter';\nimport shimIDBVersionChangeEvent from './IDBVersionChangeEvent.js';\nimport {IDBCursor as shimIDBCursor, IDBCursorWithValue as shimIDBCursorWithValue} from './IDBCursor.js';\nimport {IDBRequest as shimIDBRequest, IDBOpenDBRequest as shimIDBOpenDBRequest} from './IDBRequest.js';\nimport {createDOMException, ShimDOMException} from './DOMException.js';\nimport {shimIndexedDB, IDBFactory, setFS} from './IDBFactory.js';\nimport DOMStringList from './DOMStringList.js';\nimport {ShimEvent, ShimCustomEvent, ShimEventTarget} from './Event.js';\nimport {register} from './Sca.js';\nimport shimIDBKeyRange from './IDBKeyRange.js';\nimport shimIDBObjectStore from './IDBObjectStore.js';\nimport shimIDBIndex from './IDBIndex.js';\nimport shimIDBTransaction from './IDBTransaction.js';\nimport shimIDBDatabase from './IDBDatabase.js';\nimport CFG from './CFG.js';\nimport {isNullish} from './util.js';\n\n/**\n * @typedef {any} AnyValue\n */\n\n/**\n * @callback SetConfig\n * @param {import('./CFG.js').KeyofConfigValues|\n *   Partial<import('./CFG.js').ConfigValues>} prop\n * @param {AnyValue} [val]\n * @throws {Error}\n * @returns {void}\n */\n\n/** @type {SetConfig} */\nfunction setConfig (prop, val) {\n    if (prop && typeof prop === 'object') {\n        Object.entries(prop).forEach(([p, val]) => {\n            setConfig(\n                /** @type {import('./CFG.js').KeyofConfigValues} */\n                (p),\n                val\n            );\n        });\n        return;\n    }\n    if (!(prop in CFG)) {\n        throw new Error(prop + ' is not a valid configuration property');\n    }\n    // @ts-expect-error Should not be `never` here!\n    CFG[prop] = val;\n    if (prop === 'registerSCA' && typeof val === 'function') {\n        register(\n            /**\n             * @type {(\n             *   preset: import('typeson').Preset\n             * ) => import('typeson').Preset}\n             */ (\n                val\n            )\n        );\n    }\n}\n\n/**\n * @typedef {(\n *   prop: import('./CFG.js').KeyofConfigValues\n * ) => import('../src/CFG.js').ConfigValue} GetConfig\n */\n\n/**\n * @typedef {(cfg: {\n *   UnicodeIDStart: string,\n *   UnicodeIDContinue: string\n * }) => void} SetUnicodeIdentifiers\n */\n\n/**\n * @typedef {(IDBFactory|object) & {\n *     __useShim: () => void,\n *     __debug: (val: boolean) => void,\n *     __setConfig: SetConfig,\n *     __getConfig: GetConfig,\n *     __setUnicodeIdentifiers: SetUnicodeIdentifiers,\n *     __setConnectionQueueOrigin: (origin?: string) => void\n *   }} ShimIndexedDB\n */\n\n/**\n * @typedef {number} Integer\n */\n\n/**\n * @typedef {(typeof globalThis|object) & {\n *   indexedDB?: Partial<IDBFactory>,\n *   IDBFactory: typeof IDBFactory,\n *   IDBOpenDBRequest: typeof IDBOpenDBRequest,\n *   IDBRequest: typeof IDBRequest,\n *   IDBCursorWithValue: typeof IDBCursorWithValue,\n *   IDBCursor: typeof IDBCursor,\n *   IDBDatabase: typeof IDBDatabase,\n *   IDBTransaction: typeof IDBTransaction,\n *   IDBKeyRange: typeof IDBKeyRange,\n *   shimIndexedDB?: ShimIndexedDB\n * }} ShimmedObject\n */\n\n/**\n *\n * @param {ShimmedObject} [idb]\n * @param {import('./CFG.js').ConfigValues} [initialConfig]\n * @returns {ShimmedObject}\n */\nfunction setGlobalVars (idb, initialConfig) {\n    if (initialConfig) {\n        setConfig(initialConfig);\n    }\n    const IDB = idb || globalThis || {};\n    /**\n     * @typedef {any} AnyClass\n     */\n    /**\n     * @typedef {any} AnyValue\n     */\n    /**\n     * @typedef {Function} AnyFunction\n     */\n    /**\n     * @param {string} name\n     * @param {AnyClass} value\n     * @param {PropertyDescriptor & {\n     *   shimNS?: object\n     * }|undefined} [propDesc]\n     * @returns {void}\n     */\n    function shim (name, value, propDesc) {\n        if (!propDesc || !Object.defineProperty) {\n            try {\n                // Try setting the property. This will fail if the property is read-only.\n                // @ts-expect-error It's ok\n                IDB[name] = value;\n            } catch (e) {\n                console.log(e);\n            }\n        }\n        if (\n            // @ts-expect-error It's ok\n            IDB[name] !== value &&\n            Object.defineProperty\n        ) {\n            // Setting a read-only property failed, so try re-defining the property\n            try {\n                let desc = propDesc || {};\n                if (!('get' in desc)) {\n                    if (!('value' in desc)) {\n                        desc.value = value;\n                    }\n                    if (!('writable' in desc)) {\n                        desc.writable = true;\n                    }\n                } else {\n                    const o = {\n                        /**\n                         * @returns {AnyValue}\n                         */\n                        get [name] () {\n                            return /** @type {AnyFunction} */ (\n                                /** @type {PropertyDescriptor} */ (\n                                    propDesc\n                                ).get\n                            ).call(this);\n                        }\n                    };\n                    desc = /** @type {PropertyDescriptor} */ (\n                        Object.getOwnPropertyDescriptor(o, name)\n                    );\n                }\n                Object.defineProperty(IDB, name, desc);\n            } catch (e) {\n                // With `indexedDB`, PhantomJS fails here and below but\n                //  not above, while Chrome is reverse (and Firefox doesn't\n                //  get here since no WebSQL to use for shimming)\n            }\n        }\n\n        // @ts-expect-error It's ok\n        if (IDB[name] !== value) {\n            if (typeof console !== 'undefined' && console.warn) {\n                console.warn('Unable to shim ' + name);\n            }\n        }\n    }\n    if (CFG.win.openDatabase !== undefined) {\n        shim('shimIndexedDB', shimIndexedDB, {\n            enumerable: false,\n            configurable: true\n        });\n    }\n    if ('shimIndexedDB' in IDB && IDB.shimIndexedDB) {\n        IDB.shimIndexedDB.__useShim = function () {\n            /**\n             *\n             * @param {\"Shim\"|\"\"} [prefix]\n             * @returns {void}\n             */\n            function setNonIDBGlobals (prefix = '') {\n                shim(prefix + 'DOMException', ShimDOMException);\n                shim(prefix + 'DOMStringList', DOMStringList, {\n                    enumerable: false,\n                    configurable: true,\n                    writable: true,\n                    value: DOMStringList\n                });\n                shim(prefix + 'Event', ShimEvent, {\n                    configurable: true,\n                    writable: true,\n                    value: ShimEvent,\n                    enumerable: false\n                });\n                shim(prefix + 'CustomEvent', ShimCustomEvent, {\n                    configurable: true,\n                    writable: true,\n                    value: ShimCustomEvent,\n                    enumerable: false\n                });\n                shim(prefix + 'EventTarget', ShimEventTarget, {\n                    configurable: true,\n                    writable: true,\n                    value: ShimEventTarget,\n                    enumerable: false\n                });\n            }\n            const shimIDBFactory = IDBFactory;\n            if (CFG.win.openDatabase !== undefined) {\n                shimIndexedDB.__openDatabase = CFG.win.openDatabase.bind(CFG.win); // We cache here in case the function is overwritten later as by the IndexedDB support promises tests\n                // Polyfill ALL of IndexedDB, using WebSQL\n                shim('indexedDB', shimIndexedDB, {\n                    enumerable: true,\n                    configurable: true,\n                    get () {\n                        if (this !== IDB && !isNullish(this) && !this.shimNS) { // Latter is hack for test environment\n                            throw new TypeError('Illegal invocation');\n                        }\n                        return shimIndexedDB;\n                    }\n                });\n                /** @type {[string, any][]} */\n                ([\n                    ['IDBFactory', shimIDBFactory],\n                    ['IDBDatabase', shimIDBDatabase],\n                    ['IDBObjectStore', shimIDBObjectStore],\n                    ['IDBIndex', shimIDBIndex],\n                    ['IDBTransaction', shimIDBTransaction],\n                    ['IDBCursor', shimIDBCursor],\n                    ['IDBCursorWithValue', shimIDBCursorWithValue],\n                    ['IDBKeyRange', shimIDBKeyRange],\n                    ['IDBRequest', shimIDBRequest],\n                    ['IDBOpenDBRequest', shimIDBOpenDBRequest],\n                    ['IDBVersionChangeEvent', shimIDBVersionChangeEvent]\n                ]).forEach(([prop, obj]) => {\n                    shim(prop, obj, {\n                        enumerable: false,\n                        configurable: true\n                    });\n                });\n                // For Node environments\n                if (CFG.fs) {\n                    setFS(CFG.fs);\n                }\n                if (CFG.fullIDLSupport) {\n                    // Slow per MDN so off by default! Though apparently needed for WebIDL: http://stackoverflow.com/questions/41927589/rationales-consequences-of-webidl-class-inheritance-requirements\n\n                    Object.setPrototypeOf(IDB.IDBOpenDBRequest, IDB.IDBRequest);\n                    Object.setPrototypeOf(IDB.IDBCursorWithValue, IDB.IDBCursor);\n\n                    Object.setPrototypeOf(shimIDBDatabase, ShimEventTarget);\n                    Object.setPrototypeOf(shimIDBRequest, ShimEventTarget);\n                    Object.setPrototypeOf(shimIDBTransaction, ShimEventTarget);\n                    Object.setPrototypeOf(shimIDBVersionChangeEvent, ShimEvent);\n                    Object.setPrototypeOf(ShimDOMException, Error);\n                    Object.setPrototypeOf(ShimDOMException.prototype, Error.prototype);\n                    setPrototypeOfCustomEvent();\n                }\n                if (IDB.indexedDB && !IDB.indexedDB.toString().includes('[native code]')) {\n                    if (CFG.addNonIDBGlobals) {\n                        // As `DOMStringList` exists per IDL (and Chrome) in the global\n                        //   thread (but not in workers), we prefix the name to avoid\n                        //   shadowing or conflicts\n                        setNonIDBGlobals('Shim');\n                    }\n                    if (CFG.replaceNonIDBGlobals) {\n                        setNonIDBGlobals();\n                    }\n                }\n                /* istanbul ignore next -- TS guard */\n                if (!IDB.shimIndexedDB) {\n                    return;\n                }\n                IDB.shimIndexedDB.__setConnectionQueueOrigin();\n            }\n        };\n\n        IDB.shimIndexedDB.__debug = function (val) {\n            CFG.DEBUG = val;\n        };\n        IDB.shimIndexedDB.__setConfig = setConfig;\n\n        /** @type {GetConfig} */\n        IDB.shimIndexedDB.__getConfig = function (prop) {\n            if (!(prop in CFG)) {\n                throw new Error(prop + ' is not a valid configuration property');\n            }\n            return CFG[prop];\n        };\n\n        /** @type {SetUnicodeIdentifiers} */\n        IDB.shimIndexedDB.__setUnicodeIdentifiers = function ({\n            UnicodeIDStart, UnicodeIDContinue\n        }) {\n            setConfig({UnicodeIDStart, UnicodeIDContinue});\n        };\n    } else {\n        // We no-op the harmless set-up properties and methods with a warning; the `IDBFactory` methods,\n        //    however (including our non-standard methods), are not stubbed as they ought\n        //    to fail earlier rather than potentially having side effects.\n        IDB.shimIndexedDB = /** @type {ShimIndexedDB} */ ({});\n        /** @type {const} */ ([\n            '__useShim', '__debug', '__setConfig',\n            '__getConfig', '__setUnicodeIdentifiers'\n        ]).forEach((prop) => {\n            /** @type {ShimIndexedDB} */ (IDB.shimIndexedDB)[prop] = /** @type {() => any} */ function () {\n                console.warn('This browser does not have WebSQL to shim.');\n            };\n        });\n    }\n\n    // Workaround to prevent an error in Firefox\n    if (!('indexedDB' in IDB) && typeof window !== 'undefined') { // 2nd condition avoids problems in Node\n        IDB.indexedDB = /** @type {IDBFactory} */ (IDB.indexedDB ||\n            ('webkitIndexedDB' in IDB && IDB.webkitIndexedDB) ||\n            ('mozIndexedDB' in IDB && IDB.mozIndexedDB) ||\n            ('oIndexedDB' in IDB && IDB.oIndexedDB) ||\n            ('msIndexedDB' in IDB && IDB.msIndexedDB));\n    }\n\n    // Detect browsers with known IndexedDB issues (e.g. Android pre-4.4)\n    let poorIndexedDbSupport = false;\n    if (\n        typeof navigator !== 'undefined' &&\n        // Not apparently defined in React Native\n        navigator.userAgent &&\n        ( // Ignore Node or other environments\n            (\n                // Bad non-Chrome Android support\n                (/Android (?:2|3|4\\.[0-3])/u).test(navigator.userAgent) &&\n                !navigator.userAgent.includes('Chrome')\n            ) ||\n            (\n                // Bad non-Safari iOS9 support (see <https://github.com/axemclion/IndexedDBShim/issues/252>)\n                (!navigator.userAgent.includes('Safari') || navigator.userAgent.includes('Chrome')) && // Exclude genuine Safari: http://stackoverflow.com/a/7768006/271577\n                // Detect iOS: http://stackoverflow.com/questions/9038625/detect-if-device-is-ios/9039885#9039885\n                // and detect version 9: http://stackoverflow.com/a/26363560/271577\n                (/(iPad|iPhone|iPod).* os 9_/ui).test(navigator.userAgent) &&\n                !('MSStream' in window) // But avoid IE11\n            )\n        )\n    ) {\n        poorIndexedDbSupport = true;\n    }\n    if (!CFG.DEFAULT_DB_SIZE) {\n        CFG.DEFAULT_DB_SIZE = (\n            ( // Safari currently requires larger size: (We don't need a larger size for Node as node-websql doesn't use this info)\n                // https://github.com/axemclion/IndexedDBShim/issues/41\n                // https://github.com/axemclion/IndexedDBShim/issues/115\n                typeof navigator !== 'undefined' &&\n                // React Native\n                navigator.userAgent &&\n                navigator.userAgent.includes('Safari') &&\n                !navigator.userAgent.includes('Chrome')\n            )\n                ? 25\n                : 4\n        ) * 1024 * 1024;\n    }\n    if (!CFG.avoidAutoShim &&\n        (!IDB.indexedDB || poorIndexedDbSupport) &&\n        CFG.win.openDatabase !== undefined\n    ) {\n        IDB.shimIndexedDB.__useShim();\n    } else {\n        IDB.IDBDatabase = IDB.IDBDatabase ||\n            ('webkitIDBDatabase' in IDB && IDB.webkitIDBDatabase);\n        IDB.IDBTransaction = IDB.IDBTransaction ||\n            ('webkitIDBTransaction' in IDB && IDB.webkitIDBTransaction) || {};\n        IDB.IDBCursor = IDB.IDBCursor ||\n            ('webkitIDBCursor' in IDB && IDB.webkitIDBCursor);\n        IDB.IDBKeyRange = IDB.IDBKeyRange ||\n            ('webkitIDBKeyRange' in IDB && IDB.webkitIDBKeyRange);\n    }\n    return /** @type {ShimmedObject} */ (IDB);\n}\n\n// Expose for ease in simulating such exceptions during testing\nexport {createDOMException};\n\nexport default setGlobalVars;\n","'use strict';\nexports.test = function () {\n  // Don't get fooled by e.g. browserify environments.\n  return (typeof process !== 'undefined') && !process.browser;\n};\n\nexports.install = function (func) {\n  return function () {\n    process.nextTick(func);\n  };\n};\n","'use strict';\nexports.test = function () {\n  return typeof global.queueMicrotask === 'function';\n};\n\nexports.install = function (func) {\n  return function () {\n    global.queueMicrotask(func);\n  };\n};\n","'use strict';\n//based off rsvp https://github.com/tildeio/rsvp.js\n//license https://github.com/tildeio/rsvp.js/blob/master/LICENSE\n//https://github.com/tildeio/rsvp.js/blob/master/lib/rsvp/asap.js\n\nvar Mutation = global.MutationObserver || global.WebKitMutationObserver;\n\nexports.test = function () {\n  return Mutation;\n};\n\nexports.install = function (handle) {\n  var called = 0;\n  var observer = new Mutation(handle);\n  var element = global.document.createTextNode('');\n  observer.observe(element, {\n    characterData: true\n  });\n  return function () {\n    element.data = (called = ++called % 2);\n  };\n};","'use strict';\n\nexports.test = function () {\n  if (global.setImmediate) {\n    // we can only get here in IE10\n    // which doesn't handel postMessage well\n    return false;\n  }\n  return typeof global.MessageChannel !== 'undefined';\n};\n\nexports.install = function (func) {\n  var channel = new global.MessageChannel();\n  channel.port1.onmessage = func;\n  return function () {\n    channel.port2.postMessage(0);\n  };\n};","'use strict';\n\nexports.test = function () {\n  return 'document' in global && 'onreadystatechange' in global.document.createElement('script');\n};\n\nexports.install = function (handle) {\n  return function () {\n\n    // Create a <script> element; its readystatechange event will be fired asynchronously once it is inserted\n    // into the document. Do so, thus queuing up the task. Remember to clean up once it's been called.\n    var scriptEl = global.document.createElement('script');\n    scriptEl.onreadystatechange = function () {\n      handle();\n\n      scriptEl.onreadystatechange = null;\n      scriptEl.parentNode.removeChild(scriptEl);\n      scriptEl = null;\n    };\n    global.document.documentElement.appendChild(scriptEl);\n\n    return handle;\n  };\n};","'use strict';\nexports.test = function () {\n  return true;\n};\n\nexports.install = function (t) {\n  return function () {\n    setTimeout(t, 0);\n  };\n};","'use strict';\nvar types = [\n  require('./nextTick'),\n  require('./queueMicrotask'),\n  require('./mutation.js'),\n  require('./messageChannel'),\n  require('./stateChange'),\n  require('./timeout')\n];\nvar draining;\nvar currentQueue;\nvar queueIndex = -1;\nvar queue = [];\nvar scheduled = false;\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    nextTick();\n  }\n}\n\n//named nextTick for less confusing stack traces\nfunction nextTick() {\n  if (draining) {\n    return;\n  }\n  scheduled = false;\n  draining = true;\n  var len = queue.length;\n  var timeout = setTimeout(cleanUpNextTick);\n  while (len) {\n    currentQueue = queue;\n    queue = [];\n    while (currentQueue && ++queueIndex < len) {\n      currentQueue[queueIndex].run();\n    }\n    queueIndex = -1;\n    len = queue.length;\n  }\n  currentQueue = null;\n  queueIndex = -1;\n  draining = false;\n  clearTimeout(timeout);\n}\nvar scheduleDrain;\nvar i = -1;\nvar len = types.length;\nwhile (++i < len) {\n  if (types[i] && types[i].test && types[i].test()) {\n    scheduleDrain = types[i].install(nextTick);\n    break;\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  var fun = this.fun;\n  var array = this.array;\n  switch (array.length) {\n  case 0:\n    return fun();\n  case 1:\n    return fun(array[0]);\n  case 2:\n    return fun(array[0], array[1]);\n  case 3:\n    return fun(array[0], array[1], array[2]);\n  default:\n    return fun.apply(null, array);\n  }\n\n};\nmodule.exports = immediate;\nfunction immediate(task) {\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(task, args));\n  if (!scheduled && !draining) {\n    scheduled = true;\n    scheduleDrain();\n  }\n}\n","'use strict';\n\n// Simple FIFO queue implementation to avoid having to do shift()\n// on an array, which is slow.\n\nfunction Queue() {\n  this.length = 0;\n}\n\nQueue.prototype.push = function (item) {\n  var node = {item: item};\n  if (this.last) {\n    this.last = this.last.next = node;\n  } else {\n    this.last = this.first = node;\n  }\n  this.length++;\n};\n\nQueue.prototype.shift = function () {\n  var node = this.first;\n  if (node) {\n    this.first = node.next;\n    if (!(--this.length)) {\n      this.last = undefined;\n    }\n    return node.item;\n  }\n};\n\nQueue.prototype.slice = function (start, end) {\n  start = typeof start === 'undefined' ? 0 : start;\n  end = typeof end === 'undefined' ? Infinity : end;\n\n  var output = [];\n\n  var i = 0;\n  for (var node = this.first; node; node = node.next) {\n    if (--end < 0) {\n      break;\n    } else if (++i > start) {\n      output.push(node.item);\n    }\n  }\n  return output;\n}\n\nmodule.exports = Queue;\n","module.exports = function() {};\n","function WebSQLRows(array) {\n  this._array = array;\n  this.length = array.length;\n}\n\nWebSQLRows.prototype.item = function (i) {\n  return this._array[i];\n};\n\nfunction WebSQLResultSet(insertId, rowsAffected, rows) {\n  this.insertId = insertId;\n  this.rowsAffected = rowsAffected;\n  this.rows = new WebSQLRows(rows);\n}\n\nexport default WebSQLResultSet;\n","import noop from 'noop-fn';\nimport Queue from 'tiny-queue';\nimport immediate from 'immediate';\nimport WebSQLResultSet from './WebSQLResultSet.js';\n\nfunction errorUnhandled() {\n  return true; // a non-truthy return indicates error was handled\n}\n\n// WebSQL has some bizarre behavior regarding insertId/rowsAffected. To try\n// to match the observed behavior of Chrome/Safari as much as possible, we\n// sniff the SQL message to try to massage the returned insertId/rowsAffected.\n// This helps us pass the tests, although it's error-prone and should\n// probably be revised.\nfunction massageSQLResult(sql, insertId, rowsAffected, rows) {\n  if (/^\\s*UPDATE\\b/i.test(sql)) {\n    // insertId is always undefined for \"UPDATE\" statements\n    insertId = void 0;\n  } else if (/^\\s*CREATE\\s+TABLE\\b/i.test(sql)) {\n    // WebSQL always returns an insertId of 0 for \"CREATE TABLE\" statements\n    insertId = 0;\n    rowsAffected = 0;\n  } else if (/^\\s*DROP\\s+TABLE\\b/i.test(sql)) {\n    // WebSQL always returns insertId=undefined and rowsAffected=0\n    // for \"DROP TABLE\" statements. Go figure.\n    insertId = void 0;\n    rowsAffected = 0;\n  } else if (!/^\\s*INSERT\\b/i.test(sql)) {\n    // for all non-inserts (deletes, etc.) insertId is always undefined\n    // ¯\\_(ツ)_/¯\n    insertId = void 0;\n  }\n  return new WebSQLResultSet(insertId, rowsAffected, rows);\n}\n\nfunction SQLTask(sql, args, sqlCallback, sqlErrorCallback) {\n  this.sql = sql;\n  this.args = args;\n  this.sqlCallback = sqlCallback;\n  this.sqlErrorCallback = sqlErrorCallback;\n}\n\nfunction runBatch(self, batch) {\n\n  function onDone() {\n    self._running = false;\n    runAllSql(self);\n  }\n\n  var readOnly = self._websqlDatabase._currentTask.readOnly;\n\n  self._websqlDatabase._db.exec(batch, readOnly, function (err, results) {\n    /* istanbul ignore next */\n    if (err) {\n      self._error = err;\n      return onDone();\n    }\n    for (var i = 0; i < results.length; i++) {\n      var res = results[i];\n      var batchTask = batch[i];\n      if (res.error) {\n        if (batchTask.sqlErrorCallback(self, res.error)) {\n          // user didn't handle the error\n          self._error = res.error;\n          return onDone();\n        }\n      } else {\n        try {\n          batchTask.sqlCallback(self, massageSQLResult(\n            batch[i].sql, res.insertId, res.rowsAffected, res.rows));\n        } catch (err) {\n          self._error = err;\n          runAllSql(self);\n        }\n      }\n    }\n    onDone();\n  });\n}\n\nfunction runAllSql(self) {\n  if (self._running || self._complete) {\n    return;\n  }\n  if (self._error || !self._sqlQueue.length) {\n    self._complete = true;\n    return self._websqlDatabase._onTransactionComplete(self._error);\n  }\n  self._running = true;\n  var batch = [];\n  var task;\n  while ((task = self._sqlQueue.shift())) {\n    batch.push(task);\n  }\n  runBatch(self, batch);\n}\n\nfunction executeSql(self, sql, args, sqlCallback, sqlErrorCallback, executeDelay) {\n  self._sqlQueue.push(new SQLTask(sql, args, sqlCallback, sqlErrorCallback));\n  if (self._runningTimeout) {\n    return;\n  }\n  self._runningTimeout = true;\n  executeDelay(function () {\n    self._runningTimeout = false;\n    runAllSql(self);\n  });\n}\n\nfunction WebSQLTransaction(websqlDatabase, executeDelay) {\n  this._websqlDatabase = websqlDatabase;\n  this._error = null;\n  this._complete = false;\n  this._runningTimeout = false;\n  this._executeDelay = executeDelay || immediate;\n  this._sqlQueue = new Queue();\n  if (!websqlDatabase._currentTask.readOnly) {\n    // Since we serialize all access to the database, there is no need to\n    // run read-only tasks in a transaction. This is a perf boost.\n    this._sqlQueue.push(new SQLTask('BEGIN;', [], noop, noop));\n  }\n}\n\n/**\n * @param {string} sql\n * @param {ObjectArray} args\n * @param {SQLStatementCallback} sqlCallback\n * @param {SQLStatementErrorCallback} sqlErrorCallback\n */\nWebSQLTransaction.prototype.executeSql = function (sql, args, sqlCallback, sqlErrorCallback) {\n  args = Array.isArray(args) ? args : [];\n  sqlCallback = typeof sqlCallback === 'function' ? sqlCallback : noop;\n  sqlErrorCallback = typeof sqlErrorCallback === 'function' ? sqlErrorCallback : errorUnhandled;\n\n  executeSql(this, sql, args, sqlCallback, sqlErrorCallback, this._executeDelay);\n};\n\nWebSQLTransaction.prototype._checkDone = function () {\n  runAllSql(this);\n};\n\nexport default WebSQLTransaction;\n","import Queue from 'tiny-queue';\nimport immediate from 'immediate';\nimport noop from 'noop-fn';\n\nimport WebSQLTransaction from './WebSQLTransaction.js';\n\nvar ROLLBACK = [\n  {sql: 'ROLLBACK;', args: []}\n];\n\nvar COMMIT = [\n  {sql: 'END;', args: []}\n];\n\n// v8 likes predictable objects\nfunction TransactionTask(readOnly, txnCallback, errorCallback, successCallback, nonstandardTransCb) {\n  this.readOnly = readOnly;\n  this.txnCallback = txnCallback;\n  this.errorCallback = errorCallback;\n  this.successCallback = successCallback;\n  this.nonstandardTransCb = nonstandardTransCb;\n}\n\nfunction WebSQLDatabase(dbVersion, db, webSQLOverrides) {\n  this.version = dbVersion;\n  this._db = db;\n  this._txnQueue = new Queue();\n  this._running = false;\n  this._currentTask = null;\n  this._transactionDelay = webSQLOverrides.transactionDelay || immediate;\n  this._executeDelay = webSQLOverrides.executeDelay;\n}\n\nWebSQLDatabase.prototype._onTransactionComplete = function(err) {\n  var self = this;\n\n  function done(er) {\n    if (er) {\n      self._currentTask && self._currentTask.errorCallback(er);\n    } else {\n      self._currentTask && self._currentTask.successCallback();\n    }\n    self._running = false;\n    self._currentTask = null;\n    self._runNextTransaction();\n  }\n  function rollback (er, cb) {\n    self._db.exec(ROLLBACK, false, function () {\n      done(er);\n      if (cb) {\n        cb();\n      }\n    });\n  }\n  function commit (cb) {\n    self._db.exec(COMMIT, false, function () {\n      done();\n      if (cb) {\n        cb();\n      }\n    });\n  }\n\n  if (self._currentTask && self._currentTask.nonstandardTransCb) {\n    var cont = self._currentTask.nonstandardTransCb.call(this, self._currentTask, err, done, rollback, commit);\n    if (!cont) {\n        return;\n    }\n  }\n  if (self._currentTask && self._currentTask.readOnly) {\n    done(err); // read-only doesn't require a transaction\n  } else if (err) {\n    rollback(err);\n  } else {\n    commit();\n  }\n};\n\nWebSQLDatabase.prototype._runTransaction = function () {\n  var self = this;\n  var txn = new WebSQLTransaction(self, this._executeDelay);\n\n  this._transactionDelay(function () {\n    self._currentTask.txnCallback(txn);\n    txn._checkDone();\n  });\n};\n\nWebSQLDatabase.prototype._runNextTransaction = function() {\n  if (this._running) {\n    return;\n  }\n  var task = this._txnQueue.shift();\n\n  if (!task) {\n    return;\n  }\n\n  this._currentTask = task;\n  this._running = true;\n  this._runTransaction();\n};\n\nWebSQLDatabase.prototype._createTransaction = function(\n    readOnly, txnCallback, errorCallback, successCallback, nonstandardTransCb) {\n  errorCallback = errorCallback || noop;\n  successCallback = successCallback || noop;\n\n  if (typeof txnCallback !== 'function') {\n    throw new Error('The callback provided as parameter 1 is not a function.');\n  }\n\n  this._txnQueue.push(new TransactionTask(readOnly, txnCallback, errorCallback, successCallback, nonstandardTransCb));\n  this._runNextTransaction();\n};\n\n/**\n * @param {(trans: import('./WebSQLTransaction.js').default) => void} txnCallback\n * @param {(err: SQLError) => void} [errorCallback]\n * @param {() => void} [successCallback]\n * @param {(\n *   currentTask: TransactionTask,\n *   err: Error,\n *   done: () => void,\n *   rollback: (err: boolean|Error|SQLError, cb: () => void) => void,\n *   commit: (cb: () => void) => void\n * ) => boolean} [nonstandardTransCb]\n */\nWebSQLDatabase.prototype.transaction = function (txnCallback, errorCallback, successCallback, nonstandardTransCb) {\n  this._createTransaction(false, txnCallback, errorCallback, successCallback, nonstandardTransCb);\n};\n\n/**\n * @param {(trans: import('./WebSQLTransaction.js').default) => void} txnCallback\n * @param {(err: Error) => void} [errorCallback]\n * @param {() => void} [successCallback]\n */\nWebSQLDatabase.prototype.readTransaction = function (txnCallback, errorCallback, successCallback) {\n  this._createTransaction(true, txnCallback, errorCallback, successCallback);\n};\n\nexport default WebSQLDatabase;\n","import immediate from 'immediate';\n\nimport WebSQLDatabase from './websql/WebSQLDatabase.js';\n\nfunction customOpenDatabase(SQLiteDatabase, opts) {\n  opts = opts || {};\n  var sqliteOpts = opts.sqlite;\n  var webSQLOverrides = opts.websql || {};\n  var openDelay = webSQLOverrides.openDelay || immediate;\n\n  function createDb(dbName, dbVersion) {\n    var sqliteDatabase = new SQLiteDatabase(dbName, sqliteOpts);\n    return new WebSQLDatabase(dbVersion, sqliteDatabase, webSQLOverrides);\n  }\n\n  function openDatabase(args) {\n\n    if (args.length < 4) {\n      throw new Error('Failed to execute \\'openDatabase\\': ' +\n        '4 arguments required, but only ' + args.length + ' present');\n    }\n\n    var dbName = args[0];\n    var dbVersion = args[1];\n    // db description and size are ignored\n    var callback = args[4];\n\n    var db = createDb(dbName, dbVersion);\n\n    if (typeof callback === 'function') {\n      openDelay(function () {\n        callback(db);\n      });\n    }\n\n    return db;\n  }\n\n  return (...args) => openDatabase(args);\n}\n\nexport default customOpenDatabase;\n","'use strict';\n\nmodule.exports = exports;\n\nconst url = require('url');\nconst fs = require('fs');\nconst path = require('path');\n\nmodule.exports.detect = function(opts, config) {\n  const to = opts.hosted_path;\n  const uri = url.parse(to);\n  config.prefix = (!uri.pathname || uri.pathname === '/') ? '' : uri.pathname.replace('/', '');\n  if (opts.bucket && opts.region) {\n    config.bucket = opts.bucket;\n    config.region = opts.region;\n    config.endpoint = opts.host;\n    config.s3ForcePathStyle = opts.s3ForcePathStyle;\n  } else {\n    const parts = uri.hostname.split('.s3');\n    const bucket = parts[0];\n    if (!bucket) {\n      return;\n    }\n    if (!config.bucket) {\n      config.bucket = bucket;\n    }\n    if (!config.region) {\n      const region = parts[1].slice(1).split('.')[0];\n      if (region === 'amazonaws') {\n        config.region = 'us-east-1';\n      } else {\n        config.region = region;\n      }\n    }\n  }\n};\n\nmodule.exports.get_s3 = function(config) {\n\n  if (process.env.node_pre_gyp_mock_s3) {\n    // here we're mocking. node_pre_gyp_mock_s3 is the scratch directory\n    // for the mock code.\n    const AWSMock = require('mock-aws-s3');\n    const os = require('os');\n\n    AWSMock.config.basePath = `${os.tmpdir()}/mock`;\n\n    const s3 = AWSMock.S3();\n\n    // wrapped callback maker. fs calls return code of ENOENT but AWS.S3 returns\n    // NotFound.\n    const wcb = (fn) => (err, ...args) => {\n      if (err && err.code === 'ENOENT') {\n        err.code = 'NotFound';\n      }\n      return fn(err, ...args);\n    };\n\n    return {\n      listObjects(params, callback) {\n        return s3.listObjects(params, wcb(callback));\n      },\n      headObject(params, callback) {\n        return s3.headObject(params, wcb(callback));\n      },\n      deleteObject(params, callback) {\n        return s3.deleteObject(params, wcb(callback));\n      },\n      putObject(params, callback) {\n        return s3.putObject(params, wcb(callback));\n      }\n    };\n  }\n\n  // if not mocking then setup real s3.\n  const AWS = require('aws-sdk');\n\n  AWS.config.update(config);\n  const s3 = new AWS.S3();\n\n  // need to change if additional options need to be specified.\n  return {\n    listObjects(params, callback) {\n      return s3.listObjects(params, callback);\n    },\n    headObject(params, callback) {\n      return s3.headObject(params, callback);\n    },\n    deleteObject(params, callback) {\n      return s3.deleteObject(params, callback);\n    },\n    putObject(params, callback) {\n      return s3.putObject(params, callback);\n    }\n  };\n\n\n\n};\n\n//\n// function to get the mocking control function. if not mocking it returns a no-op.\n//\n// if mocking it sets up the mock http interceptors that use the mocked s3 file system\n// to fulfill reponses.\nmodule.exports.get_mockS3Http = function() {\n  let mock_s3 = false;\n  if (!process.env.node_pre_gyp_mock_s3) {\n    return () => mock_s3;\n  }\n\n  const nock = require('nock');\n  // the bucket used for testing, as addressed by https.\n  const host = 'https://mapbox-node-pre-gyp-public-testing-bucket.s3.us-east-1.amazonaws.com';\n  const mockDir = process.env.node_pre_gyp_mock_s3 + '/mapbox-node-pre-gyp-public-testing-bucket';\n\n  // function to setup interceptors. they are \"turned off\" by setting mock_s3 to false.\n  const mock_http = () => {\n    // eslint-disable-next-line no-unused-vars\n    function get(uri, requestBody) {\n      const filepath = path.join(mockDir, uri.replace('%2B', '+'));\n\n      try {\n        fs.accessSync(filepath, fs.constants.R_OK);\n      } catch (e) {\n        return [404, 'not found\\n'];\n      }\n\n      // the mock s3 functions just write to disk, so just read from it.\n      return [200, fs.createReadStream(filepath)];\n    }\n\n    // eslint-disable-next-line no-unused-vars\n    return nock(host)\n      .persist()\n      .get(() => mock_s3) // mock any uri for s3 when true\n      .reply(get);\n  };\n\n  // setup interceptors. they check the mock_s3 flag to determine whether to intercept.\n  mock_http(nock, host, mockDir);\n  // function to turn matching all requests to s3 on/off.\n  const mockS3Http = (action) => {\n    const previous = mock_s3;\n    if (action === 'off') {\n      mock_s3 = false;\n    } else if (action === 'on') {\n      mock_s3 = true;\n    } else if (action !== 'get') {\n      throw new Error(`illegal action for setMockHttp ${action}`);\n    }\n    return previous;\n  };\n\n  // call mockS3Http with the argument\n  // - 'on' - turn it on\n  // - 'off' - turn it off (used by fetch.test.js so it doesn't interfere with redirects)\n  // - 'get' - return true or false for 'on' or 'off'\n  return mockS3Http;\n};\n\n\n\n","module.exports = exports = abbrev.abbrev = abbrev\n\nabbrev.monkeyPatch = monkeyPatch\n\nfunction monkeyPatch () {\n  Object.defineProperty(Array.prototype, 'abbrev', {\n    value: function () { return abbrev(this) },\n    enumerable: false, configurable: true, writable: true\n  })\n\n  Object.defineProperty(Object.prototype, 'abbrev', {\n    value: function () { return abbrev(Object.keys(this)) },\n    enumerable: false, configurable: true, writable: true\n  })\n}\n\nfunction abbrev (list) {\n  if (arguments.length !== 1 || !Array.isArray(list)) {\n    list = Array.prototype.slice.call(arguments, 0)\n  }\n  for (var i = 0, l = list.length, args = [] ; i < l ; i ++) {\n    args[i] = typeof list[i] === \"string\" ? list[i] : String(list[i])\n  }\n\n  // sort them lexicographically, so that they're next to their nearest kin\n  args = args.sort(lexSort)\n\n  // walk through each, seeing how much it has in common with the next and previous\n  var abbrevs = {}\n    , prev = \"\"\n  for (var i = 0, l = args.length ; i < l ; i ++) {\n    var current = args[i]\n      , next = args[i + 1] || \"\"\n      , nextMatches = true\n      , prevMatches = true\n    if (current === next) continue\n    for (var j = 0, cl = current.length ; j < cl ; j ++) {\n      var curChar = current.charAt(j)\n      nextMatches = nextMatches && curChar === next.charAt(j)\n      prevMatches = prevMatches && curChar === prev.charAt(j)\n      if (!nextMatches && !prevMatches) {\n        j ++\n        break\n      }\n    }\n    prev = current\n    if (j === cl) {\n      abbrevs[current] = current\n      continue\n    }\n    for (var a = current.substr(0, j) ; j <= cl ; j ++) {\n      abbrevs[a] = current\n      a += current.charAt(j)\n    }\n  }\n  return abbrevs\n}\n\nfunction lexSort (a, b) {\n  return a === b ? 0 : a > b ? 1 : -1\n}\n","// info about each config option.\n\nvar debug = process.env.DEBUG_NOPT || process.env.NOPT_DEBUG\n  ? function () { console.error.apply(console, arguments) }\n  : function () {}\n\nvar url = require(\"url\")\n  , path = require(\"path\")\n  , Stream = require(\"stream\").Stream\n  , abbrev = require(\"abbrev\")\n  , os = require(\"os\")\n\nmodule.exports = exports = nopt\nexports.clean = clean\n\nexports.typeDefs =\n  { String  : { type: String,  validate: validateString  }\n  , Boolean : { type: Boolean, validate: validateBoolean }\n  , url     : { type: url,     validate: validateUrl     }\n  , Number  : { type: Number,  validate: validateNumber  }\n  , path    : { type: path,    validate: validatePath    }\n  , Stream  : { type: Stream,  validate: validateStream  }\n  , Date    : { type: Date,    validate: validateDate    }\n  }\n\nfunction nopt (types, shorthands, args, slice) {\n  args = args || process.argv\n  types = types || {}\n  shorthands = shorthands || {}\n  if (typeof slice !== \"number\") slice = 2\n\n  debug(types, shorthands, args, slice)\n\n  args = args.slice(slice)\n  var data = {}\n    , key\n    , argv = {\n        remain: [],\n        cooked: args,\n        original: args.slice(0)\n      }\n\n  parse(args, data, argv.remain, types, shorthands)\n  // now data is full\n  clean(data, types, exports.typeDefs)\n  data.argv = argv\n  Object.defineProperty(data.argv, 'toString', { value: function () {\n    return this.original.map(JSON.stringify).join(\" \")\n  }, enumerable: false })\n  return data\n}\n\nfunction clean (data, types, typeDefs) {\n  typeDefs = typeDefs || exports.typeDefs\n  var remove = {}\n    , typeDefault = [false, true, null, String, Array]\n\n  Object.keys(data).forEach(function (k) {\n    if (k === \"argv\") return\n    var val = data[k]\n      , isArray = Array.isArray(val)\n      , type = types[k]\n    if (!isArray) val = [val]\n    if (!type) type = typeDefault\n    if (type === Array) type = typeDefault.concat(Array)\n    if (!Array.isArray(type)) type = [type]\n\n    debug(\"val=%j\", val)\n    debug(\"types=\", type)\n    val = val.map(function (val) {\n      // if it's an unknown value, then parse false/true/null/numbers/dates\n      if (typeof val === \"string\") {\n        debug(\"string %j\", val)\n        val = val.trim()\n        if ((val === \"null\" && ~type.indexOf(null))\n            || (val === \"true\" &&\n               (~type.indexOf(true) || ~type.indexOf(Boolean)))\n            || (val === \"false\" &&\n               (~type.indexOf(false) || ~type.indexOf(Boolean)))) {\n          val = JSON.parse(val)\n          debug(\"jsonable %j\", val)\n        } else if (~type.indexOf(Number) && !isNaN(val)) {\n          debug(\"convert to number\", val)\n          val = +val\n        } else if (~type.indexOf(Date) && !isNaN(Date.parse(val))) {\n          debug(\"convert to date\", val)\n          val = new Date(val)\n        }\n      }\n\n      if (!types.hasOwnProperty(k)) {\n        return val\n      }\n\n      // allow `--no-blah` to set 'blah' to null if null is allowed\n      if (val === false && ~type.indexOf(null) &&\n          !(~type.indexOf(false) || ~type.indexOf(Boolean))) {\n        val = null\n      }\n\n      var d = {}\n      d[k] = val\n      debug(\"prevalidated val\", d, val, types[k])\n      if (!validate(d, k, val, types[k], typeDefs)) {\n        if (exports.invalidHandler) {\n          exports.invalidHandler(k, val, types[k], data)\n        } else if (exports.invalidHandler !== false) {\n          debug(\"invalid: \"+k+\"=\"+val, types[k])\n        }\n        return remove\n      }\n      debug(\"validated val\", d, val, types[k])\n      return d[k]\n    }).filter(function (val) { return val !== remove })\n\n    // if we allow Array specifically, then an empty array is how we\n    // express 'no value here', not null.  Allow it.\n    if (!val.length && type.indexOf(Array) === -1) {\n      debug('VAL HAS NO LENGTH, DELETE IT', val, k, type.indexOf(Array))\n      delete data[k]\n    }\n    else if (isArray) {\n      debug(isArray, data[k], val)\n      data[k] = val\n    } else data[k] = val[0]\n\n    debug(\"k=%s val=%j\", k, val, data[k])\n  })\n}\n\nfunction validateString (data, k, val) {\n  data[k] = String(val)\n}\n\nfunction validatePath (data, k, val) {\n  if (val === true) return false\n  if (val === null) return true\n\n  val = String(val)\n\n  var isWin       = process.platform === 'win32'\n    , homePattern = isWin ? /^~(\\/|\\\\)/ : /^~\\//\n    , home        = os.homedir()\n\n  if (home && val.match(homePattern)) {\n    data[k] = path.resolve(home, val.substr(2))\n  } else {\n    data[k] = path.resolve(val)\n  }\n  return true\n}\n\nfunction validateNumber (data, k, val) {\n  debug(\"validate Number %j %j %j\", k, val, isNaN(val))\n  if (isNaN(val)) return false\n  data[k] = +val\n}\n\nfunction validateDate (data, k, val) {\n  var s = Date.parse(val)\n  debug(\"validate Date %j %j %j\", k, val, s)\n  if (isNaN(s)) return false\n  data[k] = new Date(val)\n}\n\nfunction validateBoolean (data, k, val) {\n  if (val instanceof Boolean) val = val.valueOf()\n  else if (typeof val === \"string\") {\n    if (!isNaN(val)) val = !!(+val)\n    else if (val === \"null\" || val === \"false\") val = false\n    else val = true\n  } else val = !!val\n  data[k] = val\n}\n\nfunction validateUrl (data, k, val) {\n  val = url.parse(String(val))\n  if (!val.host) return false\n  data[k] = val.href\n}\n\nfunction validateStream (data, k, val) {\n  if (!(val instanceof Stream)) return false\n  data[k] = val\n}\n\nfunction validate (data, k, val, type, typeDefs) {\n  // arrays are lists of types.\n  if (Array.isArray(type)) {\n    for (var i = 0, l = type.length; i < l; i ++) {\n      if (type[i] === Array) continue\n      if (validate(data, k, val, type[i], typeDefs)) return true\n    }\n    delete data[k]\n    return false\n  }\n\n  // an array of anything?\n  if (type === Array) return true\n\n  // NaN is poisonous.  Means that something is not allowed.\n  if (type !== type) {\n    debug(\"Poison NaN\", k, val, type)\n    delete data[k]\n    return false\n  }\n\n  // explicit list of values\n  if (val === type) {\n    debug(\"Explicitly allowed %j\", val)\n    // if (isArray) (data[k] = data[k] || []).push(val)\n    // else data[k] = val\n    data[k] = val\n    return true\n  }\n\n  // now go through the list of typeDefs, validate against each one.\n  var ok = false\n    , types = Object.keys(typeDefs)\n  for (var i = 0, l = types.length; i < l; i ++) {\n    debug(\"test type %j %j %j\", k, val, types[i])\n    var t = typeDefs[types[i]]\n    if (t &&\n      ((type && type.name && t.type && t.type.name) ? (type.name === t.type.name) : (type === t.type))) {\n      var d = {}\n      ok = false !== t.validate(d, k, val)\n      val = d[k]\n      if (ok) {\n        // if (isArray) (data[k] = data[k] || []).push(val)\n        // else data[k] = val\n        data[k] = val\n        break\n      }\n    }\n  }\n  debug(\"OK? %j (%j %j %j)\", ok, k, val, types[i])\n\n  if (!ok) delete data[k]\n  return ok\n}\n\nfunction parse (args, data, remain, types, shorthands) {\n  debug(\"parse\", args, data, remain)\n\n  var key = null\n    , abbrevs = abbrev(Object.keys(types))\n    , shortAbbr = abbrev(Object.keys(shorthands))\n\n  for (var i = 0; i < args.length; i ++) {\n    var arg = args[i]\n    debug(\"arg\", arg)\n\n    if (arg.match(/^-{2,}$/)) {\n      // done with keys.\n      // the rest are args.\n      remain.push.apply(remain, args.slice(i + 1))\n      args[i] = \"--\"\n      break\n    }\n    var hadEq = false\n    if (arg.charAt(0) === \"-\" && arg.length > 1) {\n      var at = arg.indexOf('=')\n      if (at > -1) {\n        hadEq = true\n        var v = arg.substr(at + 1)\n        arg = arg.substr(0, at)\n        args.splice(i, 1, arg, v)\n      }\n\n      // see if it's a shorthand\n      // if so, splice and back up to re-parse it.\n      var shRes = resolveShort(arg, shorthands, shortAbbr, abbrevs)\n      debug(\"arg=%j shRes=%j\", arg, shRes)\n      if (shRes) {\n        debug(arg, shRes)\n        args.splice.apply(args, [i, 1].concat(shRes))\n        if (arg !== shRes[0]) {\n          i --\n          continue\n        }\n      }\n      arg = arg.replace(/^-+/, \"\")\n      var no = null\n      while (arg.toLowerCase().indexOf(\"no-\") === 0) {\n        no = !no\n        arg = arg.substr(3)\n      }\n\n      if (abbrevs[arg]) arg = abbrevs[arg]\n\n      var argType = types[arg]\n      var isTypeArray = Array.isArray(argType)\n      if (isTypeArray && argType.length === 1) {\n        isTypeArray = false\n        argType = argType[0]\n      }\n\n      var isArray = argType === Array ||\n        isTypeArray && argType.indexOf(Array) !== -1\n\n      // allow unknown things to be arrays if specified multiple times.\n      if (!types.hasOwnProperty(arg) && data.hasOwnProperty(arg)) {\n        if (!Array.isArray(data[arg]))\n          data[arg] = [data[arg]]\n        isArray = true\n      }\n\n      var val\n        , la = args[i + 1]\n\n      var isBool = typeof no === 'boolean' ||\n        argType === Boolean ||\n        isTypeArray && argType.indexOf(Boolean) !== -1 ||\n        (typeof argType === 'undefined' && !hadEq) ||\n        (la === \"false\" &&\n         (argType === null ||\n          isTypeArray && ~argType.indexOf(null)))\n\n      if (isBool) {\n        // just set and move along\n        val = !no\n        // however, also support --bool true or --bool false\n        if (la === \"true\" || la === \"false\") {\n          val = JSON.parse(la)\n          la = null\n          if (no) val = !val\n          i ++\n        }\n\n        // also support \"foo\":[Boolean, \"bar\"] and \"--foo bar\"\n        if (isTypeArray && la) {\n          if (~argType.indexOf(la)) {\n            // an explicit type\n            val = la\n            i ++\n          } else if ( la === \"null\" && ~argType.indexOf(null) ) {\n            // null allowed\n            val = null\n            i ++\n          } else if ( !la.match(/^-{2,}[^-]/) &&\n                      !isNaN(la) &&\n                      ~argType.indexOf(Number) ) {\n            // number\n            val = +la\n            i ++\n          } else if ( !la.match(/^-[^-]/) && ~argType.indexOf(String) ) {\n            // string\n            val = la\n            i ++\n          }\n        }\n\n        if (isArray) (data[arg] = data[arg] || []).push(val)\n        else data[arg] = val\n\n        continue\n      }\n\n      if (argType === String) {\n        if (la === undefined) {\n          la = \"\"\n        } else if (la.match(/^-{1,2}[^-]+/)) {\n          la = \"\"\n          i --\n        }\n      }\n\n      if (la && la.match(/^-{2,}$/)) {\n        la = undefined\n        i --\n      }\n\n      val = la === undefined ? true : la\n      if (isArray) (data[arg] = data[arg] || []).push(val)\n      else data[arg] = val\n\n      i ++\n      continue\n    }\n    remain.push(arg)\n  }\n}\n\nfunction resolveShort (arg, shorthands, shortAbbr, abbrevs) {\n  // handle single-char shorthands glommed together, like\n  // npm ls -glp, but only if there is one dash, and only if\n  // all of the chars are single-char shorthands, and it's\n  // not a match to some other abbrev.\n  arg = arg.replace(/^-+/, '')\n\n  // if it's an exact known option, then don't go any further\n  if (abbrevs[arg] === arg)\n    return null\n\n  // if it's an exact known shortopt, same deal\n  if (shorthands[arg]) {\n    // make it an array, if it's a list of words\n    if (shorthands[arg] && !Array.isArray(shorthands[arg]))\n      shorthands[arg] = shorthands[arg].split(/\\s+/)\n\n    return shorthands[arg]\n  }\n\n  // first check to see if this arg is a set of single-char shorthands\n  var singles = shorthands.___singles\n  if (!singles) {\n    singles = Object.keys(shorthands).filter(function (s) {\n      return s.length === 1\n    }).reduce(function (l,r) {\n      l[r] = true\n      return l\n    }, {})\n    shorthands.___singles = singles\n    debug('shorthand singles', singles)\n  }\n\n  var chrs = arg.split(\"\").filter(function (c) {\n    return singles[c]\n  })\n\n  if (chrs.join(\"\") === arg) return chrs.map(function (c) {\n    return shorthands[c]\n  }).reduce(function (l, r) {\n    return l.concat(r)\n  }, [])\n\n\n  // if it's an arg abbrev, and not a literal shorthand, then prefer the arg\n  if (abbrevs[arg] && !shorthands[arg])\n    return null\n\n  // if it's an abbr for a shorthand, then use that\n  if (shortAbbr[arg])\n    arg = shortAbbr[arg]\n\n  // make it an array, if it's a list of words\n  if (shorthands[arg] && !Array.isArray(shorthands[arg]))\n    shorthands[arg] = shorthands[arg].split(/\\s+/)\n\n  return shorthands[arg]\n}\n","'use strict'\nvar EventEmitter = require('events').EventEmitter\nvar util = require('util')\n\nvar trackerId = 0\nvar TrackerBase = module.exports = function (name) {\n  EventEmitter.call(this)\n  this.id = ++trackerId\n  this.name = name\n}\nutil.inherits(TrackerBase, EventEmitter)\n","'use strict'\nvar util = require('util')\nvar TrackerBase = require('./tracker-base.js')\n\nvar Tracker = module.exports = function (name, todo) {\n  TrackerBase.call(this, name)\n  this.workDone = 0\n  this.workTodo = todo || 0\n}\nutil.inherits(Tracker, TrackerBase)\n\nTracker.prototype.completed = function () {\n  return this.workTodo === 0 ? 0 : this.workDone / this.workTodo\n}\n\nTracker.prototype.addWork = function (work) {\n  this.workTodo += work\n  this.emit('change', this.name, this.completed(), this)\n}\n\nTracker.prototype.completeWork = function (work) {\n  this.workDone += work\n  if (this.workDone > this.workTodo) {\n    this.workDone = this.workTodo\n  }\n  this.emit('change', this.name, this.completed(), this)\n}\n\nTracker.prototype.finish = function () {\n  this.workTodo = this.workDone = 1\n  this.emit('change', this.name, 1, this)\n}\n","\n/**\n * Expose `Delegator`.\n */\n\nmodule.exports = Delegator;\n\n/**\n * Initialize a delegator.\n *\n * @param {Object} proto\n * @param {String} target\n * @api public\n */\n\nfunction Delegator(proto, target) {\n  if (!(this instanceof Delegator)) return new Delegator(proto, target);\n  this.proto = proto;\n  this.target = target;\n  this.methods = [];\n  this.getters = [];\n  this.setters = [];\n  this.fluents = [];\n}\n\n/**\n * Delegate method `name`.\n *\n * @param {String} name\n * @return {Delegator} self\n * @api public\n */\n\nDelegator.prototype.method = function(name){\n  var proto = this.proto;\n  var target = this.target;\n  this.methods.push(name);\n\n  proto[name] = function(){\n    return this[target][name].apply(this[target], arguments);\n  };\n\n  return this;\n};\n\n/**\n * Delegator accessor `name`.\n *\n * @param {String} name\n * @return {Delegator} self\n * @api public\n */\n\nDelegator.prototype.access = function(name){\n  return this.getter(name).setter(name);\n};\n\n/**\n * Delegator getter `name`.\n *\n * @param {String} name\n * @return {Delegator} self\n * @api public\n */\n\nDelegator.prototype.getter = function(name){\n  var proto = this.proto;\n  var target = this.target;\n  this.getters.push(name);\n\n  proto.__defineGetter__(name, function(){\n    return this[target][name];\n  });\n\n  return this;\n};\n\n/**\n * Delegator setter `name`.\n *\n * @param {String} name\n * @return {Delegator} self\n * @api public\n */\n\nDelegator.prototype.setter = function(name){\n  var proto = this.proto;\n  var target = this.target;\n  this.setters.push(name);\n\n  proto.__defineSetter__(name, function(val){\n    return this[target][name] = val;\n  });\n\n  return this;\n};\n\n/**\n * Delegator fluent accessor\n *\n * @param {String} name\n * @return {Delegator} self\n * @api public\n */\n\nDelegator.prototype.fluent = function (name) {\n  var proto = this.proto;\n  var target = this.target;\n  this.fluents.push(name);\n\n  proto[name] = function(val){\n    if ('undefined' != typeof val) {\n      this[target][name] = val;\n      return this;\n    } else {\n      return this[target][name];\n    }\n  };\n\n  return this;\n};\n","'use strict'\nvar util = require('util')\nvar stream = require('readable-stream')\nvar delegate = require('delegates')\nvar Tracker = require('./tracker.js')\n\nvar TrackerStream = module.exports = function (name, size, options) {\n  stream.Transform.call(this, options)\n  this.tracker = new Tracker(name, size)\n  this.name = name\n  this.id = this.tracker.id\n  this.tracker.on('change', delegateChange(this))\n}\nutil.inherits(TrackerStream, stream.Transform)\n\nfunction delegateChange (trackerStream) {\n  return function (name, completion, tracker) {\n    trackerStream.emit('change', name, completion, trackerStream)\n  }\n}\n\nTrackerStream.prototype._transform = function (data, encoding, cb) {\n  this.tracker.completeWork(data.length ? data.length : 1)\n  this.push(data)\n  cb()\n}\n\nTrackerStream.prototype._flush = function (cb) {\n  this.tracker.finish()\n  cb()\n}\n\ndelegate(TrackerStream.prototype, 'tracker')\n  .method('completed')\n  .method('addWork')\n  .method('finish')\n","'use strict'\nvar util = require('util')\nvar TrackerBase = require('./tracker-base.js')\nvar Tracker = require('./tracker.js')\nvar TrackerStream = require('./tracker-stream.js')\n\nvar TrackerGroup = module.exports = function (name) {\n  TrackerBase.call(this, name)\n  this.parentGroup = null\n  this.trackers = []\n  this.completion = {}\n  this.weight = {}\n  this.totalWeight = 0\n  this.finished = false\n  this.bubbleChange = bubbleChange(this)\n}\nutil.inherits(TrackerGroup, TrackerBase)\n\nfunction bubbleChange (trackerGroup) {\n  return function (name, completed, tracker) {\n    trackerGroup.completion[tracker.id] = completed\n    if (trackerGroup.finished) {\n      return\n    }\n    trackerGroup.emit('change', name || trackerGroup.name, trackerGroup.completed(), trackerGroup)\n  }\n}\n\nTrackerGroup.prototype.nameInTree = function () {\n  var names = []\n  var from = this\n  while (from) {\n    names.unshift(from.name)\n    from = from.parentGroup\n  }\n  return names.join('/')\n}\n\nTrackerGroup.prototype.addUnit = function (unit, weight) {\n  if (unit.addUnit) {\n    var toTest = this\n    while (toTest) {\n      if (unit === toTest) {\n        throw new Error(\n          'Attempted to add tracker group ' +\n          unit.name + ' to tree that already includes it ' +\n          this.nameInTree(this))\n      }\n      toTest = toTest.parentGroup\n    }\n    unit.parentGroup = this\n  }\n  this.weight[unit.id] = weight || 1\n  this.totalWeight += this.weight[unit.id]\n  this.trackers.push(unit)\n  this.completion[unit.id] = unit.completed()\n  unit.on('change', this.bubbleChange)\n  if (!this.finished) {\n    this.emit('change', unit.name, this.completion[unit.id], unit)\n  }\n  return unit\n}\n\nTrackerGroup.prototype.completed = function () {\n  if (this.trackers.length === 0) {\n    return 0\n  }\n  var valPerWeight = 1 / this.totalWeight\n  var completed = 0\n  for (var ii = 0; ii < this.trackers.length; ii++) {\n    var trackerId = this.trackers[ii].id\n    completed +=\n      valPerWeight * this.weight[trackerId] * this.completion[trackerId]\n  }\n  return completed\n}\n\nTrackerGroup.prototype.newGroup = function (name, weight) {\n  return this.addUnit(new TrackerGroup(name), weight)\n}\n\nTrackerGroup.prototype.newItem = function (name, todo, weight) {\n  return this.addUnit(new Tracker(name, todo), weight)\n}\n\nTrackerGroup.prototype.newStream = function (name, todo, weight) {\n  return this.addUnit(new TrackerStream(name, todo), weight)\n}\n\nTrackerGroup.prototype.finish = function () {\n  this.finished = true\n  if (!this.trackers.length) {\n    this.addUnit(new Tracker(), 1, true)\n  }\n  for (var ii = 0; ii < this.trackers.length; ii++) {\n    var tracker = this.trackers[ii]\n    tracker.finish()\n    tracker.removeListener('change', this.bubbleChange)\n  }\n  this.emit('change', this.name, 1, this)\n}\n\nvar buffer = '                                  '\nTrackerGroup.prototype.debug = function (depth) {\n  depth = depth || 0\n  var indent = depth ? buffer.substr(0, depth) : ''\n  var output = indent + (this.name || 'top') + ': ' + this.completed() + '\\n'\n  this.trackers.forEach(function (tracker) {\n    if (tracker instanceof TrackerGroup) {\n      output += tracker.debug(depth + 1)\n    } else {\n      output += indent + ' ' + tracker.name + ': ' + tracker.completed() + '\\n'\n    }\n  })\n  return output\n}\n","'use strict'\nexports.TrackerGroup = require('./tracker-group.js')\nexports.Tracker = require('./tracker.js')\nexports.TrackerStream = require('./tracker-stream.js')\n","'use strict'\n\n// These tables borrowed from `ansi`\n\nvar prefix = '\\x1b['\n\nexports.up = function up (num) {\n  return prefix + (num || '') + 'A'\n}\n\nexports.down = function down (num) {\n  return prefix + (num || '') + 'B'\n}\n\nexports.forward = function forward (num) {\n  return prefix + (num || '') + 'C'\n}\n\nexports.back = function back (num) {\n  return prefix + (num || '') + 'D'\n}\n\nexports.nextLine = function nextLine (num) {\n  return prefix + (num || '') + 'E'\n}\n\nexports.previousLine = function previousLine (num) {\n  return prefix + (num || '') + 'F'\n}\n\nexports.horizontalAbsolute = function horizontalAbsolute (num) {\n  if (num == null) throw new Error('horizontalAboslute requires a column to position to')\n  return prefix + num + 'G'\n}\n\nexports.eraseData = function eraseData () {\n  return prefix + 'J'\n}\n\nexports.eraseLine = function eraseLine () {\n  return prefix + 'K'\n}\n\nexports.goto = function (x, y) {\n  return prefix + y + ';' + x + 'H'\n}\n\nexports.gotoSOL = function () {\n  return '\\r'\n}\n\nexports.beep = function () {\n  return '\\x07'\n}\n\nexports.hideCursor = function hideCursor () {\n  return prefix + '?25l'\n}\n\nexports.showCursor = function showCursor () {\n  return prefix + '?25h'\n}\n\nvar colors = {\n  reset: 0,\n// styles\n  bold: 1,\n  italic: 3,\n  underline: 4,\n  inverse: 7,\n// resets\n  stopBold: 22,\n  stopItalic: 23,\n  stopUnderline: 24,\n  stopInverse: 27,\n// colors\n  white: 37,\n  black: 30,\n  blue: 34,\n  cyan: 36,\n  green: 32,\n  magenta: 35,\n  red: 31,\n  yellow: 33,\n  bgWhite: 47,\n  bgBlack: 40,\n  bgBlue: 44,\n  bgCyan: 46,\n  bgGreen: 42,\n  bgMagenta: 45,\n  bgRed: 41,\n  bgYellow: 43,\n\n  grey: 90,\n  brightBlack: 90,\n  brightRed: 91,\n  brightGreen: 92,\n  brightYellow: 93,\n  brightBlue: 94,\n  brightMagenta: 95,\n  brightCyan: 96,\n  brightWhite: 97,\n\n  bgGrey: 100,\n  bgBrightBlack: 100,\n  bgBrightRed: 101,\n  bgBrightGreen: 102,\n  bgBrightYellow: 103,\n  bgBrightBlue: 104,\n  bgBrightMagenta: 105,\n  bgBrightCyan: 106,\n  bgBrightWhite: 107\n}\n\nexports.color = function color (colorWith) {\n  if (arguments.length !== 1 || !Array.isArray(colorWith)) {\n    colorWith = Array.prototype.slice.call(arguments)\n  }\n  return prefix + colorWith.map(colorNameToCode).join(';') + 'm'\n}\n\nfunction colorNameToCode (color) {\n  if (colors[color] != null) return colors[color]\n  throw new Error('Unknown color or style name: ' + color)\n}\n","'use strict';\n\nmodule.exports = ({onlyFirst = false} = {}) => {\n\tconst pattern = [\n\t\t'[\\\\u001B\\\\u009B][[\\\\]()#;?]*(?:(?:(?:(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]+)*|[a-zA-Z\\\\d]+(?:;[-a-zA-Z\\\\d\\\\/#&.:=?%@~_]*)*)?\\\\u0007)',\n\t\t'(?:(?:\\\\d{1,4}(?:;\\\\d{0,4})*)?[\\\\dA-PR-TZcf-ntqry=><~]))'\n\t].join('|');\n\n\treturn new RegExp(pattern, onlyFirst ? undefined : 'g');\n};\n","'use strict';\nconst ansiRegex = require('ansi-regex');\n\nmodule.exports = string => typeof string === 'string' ? string.replace(ansiRegex(), '') : string;\n","/* eslint-disable yoda */\n'use strict';\n\nconst isFullwidthCodePoint = codePoint => {\n\tif (Number.isNaN(codePoint)) {\n\t\treturn false;\n\t}\n\n\t// Code points are derived from:\n\t// http://www.unix.org/Public/UNIDATA/EastAsianWidth.txt\n\tif (\n\t\tcodePoint >= 0x1100 && (\n\t\t\tcodePoint <= 0x115F || // Hangul Jamo\n\t\t\tcodePoint === 0x2329 || // LEFT-POINTING ANGLE BRACKET\n\t\t\tcodePoint === 0x232A || // RIGHT-POINTING ANGLE BRACKET\n\t\t\t// CJK Radicals Supplement .. Enclosed CJK Letters and Months\n\t\t\t(0x2E80 <= codePoint && codePoint <= 0x3247 && codePoint !== 0x303F) ||\n\t\t\t// Enclosed CJK Letters and Months .. CJK Unified Ideographs Extension A\n\t\t\t(0x3250 <= codePoint && codePoint <= 0x4DBF) ||\n\t\t\t// CJK Unified Ideographs .. Yi Radicals\n\t\t\t(0x4E00 <= codePoint && codePoint <= 0xA4C6) ||\n\t\t\t// Hangul Jamo Extended-A\n\t\t\t(0xA960 <= codePoint && codePoint <= 0xA97C) ||\n\t\t\t// Hangul Syllables\n\t\t\t(0xAC00 <= codePoint && codePoint <= 0xD7A3) ||\n\t\t\t// CJK Compatibility Ideographs\n\t\t\t(0xF900 <= codePoint && codePoint <= 0xFAFF) ||\n\t\t\t// Vertical Forms\n\t\t\t(0xFE10 <= codePoint && codePoint <= 0xFE19) ||\n\t\t\t// CJK Compatibility Forms .. Small Form Variants\n\t\t\t(0xFE30 <= codePoint && codePoint <= 0xFE6B) ||\n\t\t\t// Halfwidth and Fullwidth Forms\n\t\t\t(0xFF01 <= codePoint && codePoint <= 0xFF60) ||\n\t\t\t(0xFFE0 <= codePoint && codePoint <= 0xFFE6) ||\n\t\t\t// Kana Supplement\n\t\t\t(0x1B000 <= codePoint && codePoint <= 0x1B001) ||\n\t\t\t// Enclosed Ideographic Supplement\n\t\t\t(0x1F200 <= codePoint && codePoint <= 0x1F251) ||\n\t\t\t// CJK Unified Ideographs Extension B .. Tertiary Ideographic Plane\n\t\t\t(0x20000 <= codePoint && codePoint <= 0x3FFFD)\n\t\t)\n\t) {\n\t\treturn true;\n\t}\n\n\treturn false;\n};\n\nmodule.exports = isFullwidthCodePoint;\nmodule.exports.default = isFullwidthCodePoint;\n","\"use strict\";\n\nmodule.exports = function () {\n  // https://mths.be/emoji\n  return /\\uD83C\\uDFF4\\uDB40\\uDC67\\uDB40\\uDC62(?:\\uDB40\\uDC65\\uDB40\\uDC6E\\uDB40\\uDC67|\\uDB40\\uDC73\\uDB40\\uDC63\\uDB40\\uDC74|\\uDB40\\uDC77\\uDB40\\uDC6C\\uDB40\\uDC73)\\uDB40\\uDC7F|\\uD83D\\uDC68(?:\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68\\uD83C\\uDFFB|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFE])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D)?\\uD83D\\uDC68|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D[\\uDC68\\uDC69])\\u200D(?:\\uD83D[\\uDC66\\uDC67])|[\\u2695\\u2696\\u2708]\\uFE0F|\\uD83D[\\uDC66\\uDC67]|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|(?:\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708])\\uFE0F|\\uD83C\\uDFFB\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C[\\uDFFB-\\uDFFF])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFB\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)\\uD83C\\uDFFB|\\uD83E\\uDDD1(?:\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1)|(?:\\uD83E\\uDDD1\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFF\\u200D\\uD83E\\uDD1D\\u200D(?:\\uD83D[\\uDC68\\uDC69]))(?:\\uD83C[\\uDFFB-\\uDFFE])|(?:\\uD83E\\uDDD1\\uD83C\\uDFFC\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB\\uDFFC])|\\uD83D\\uDC69(?:\\uD83C\\uDFFE\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB-\\uDFFD\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFC\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFD-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFB\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFC-\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFD\\u200D(?:\\uD83E\\uDD1D\\u200D\\uD83D\\uDC68(?:\\uD83C[\\uDFFB\\uDFFC\\uDFFE\\uDFFF])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\u200D(?:\\u2764\\uFE0F\\u200D(?:\\uD83D\\uDC8B\\u200D(?:\\uD83D[\\uDC68\\uDC69])|\\uD83D[\\uDC68\\uDC69])|\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD])|\\uD83C\\uDFFF\\u200D(?:\\uD83C[\\uDF3E\\uDF73\\uDF93\\uDFA4\\uDFA8\\uDFEB\\uDFED]|\\uD83D[\\uDCBB\\uDCBC\\uDD27\\uDD2C\\uDE80\\uDE92]|\\uD83E[\\uDDAF-\\uDDB3\\uDDBC\\uDDBD]))|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67]))|(?:\\uD83E\\uDDD1\\uD83C\\uDFFD\\u200D\\uD83E\\uDD1D\\u200D\\uD83E\\uDDD1|\\uD83D\\uDC69\\uD83C\\uDFFE\\u200D\\uD83E\\uDD1D\\u200D\\uD83D\\uDC69)(?:\\uD83C[\\uDFFB-\\uDFFD])|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC69\\u200D(?:\\uD83D[\\uDC66\\uDC67])|(?:\\uD83D\\uDC41\\uFE0F\\u200D\\uD83D\\uDDE8|\\uD83D\\uDC69(?:\\uD83C\\uDFFF\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFE\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFC\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFB\\u200D[\\u2695\\u2696\\u2708]|\\uD83C\\uDFFD\\u200D[\\u2695\\u2696\\u2708]|\\u200D[\\u2695\\u2696\\u2708])|(?:(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)\\uFE0F|\\uD83D\\uDC6F|\\uD83E[\\uDD3C\\uDDDE\\uDDDF])\\u200D[\\u2640\\u2642]|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:(?:\\uD83C[\\uDFFB-\\uDFFF])\\u200D[\\u2640\\u2642]|\\u200D[\\u2640\\u2642])|\\uD83C\\uDFF4\\u200D\\u2620)\\uFE0F|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67\\u200D(?:\\uD83D[\\uDC66\\uDC67])|\\uD83C\\uDFF3\\uFE0F\\u200D\\uD83C\\uDF08|\\uD83D\\uDC15\\u200D\\uD83E\\uDDBA|\\uD83D\\uDC69\\u200D\\uD83D\\uDC66|\\uD83D\\uDC69\\u200D\\uD83D\\uDC67|\\uD83C\\uDDFD\\uD83C\\uDDF0|\\uD83C\\uDDF4\\uD83C\\uDDF2|\\uD83C\\uDDF6\\uD83C\\uDDE6|[#\\*0-9]\\uFE0F\\u20E3|\\uD83C\\uDDE7(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEF\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9\\uDDFB\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDF9(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDED\\uDDEF-\\uDDF4\\uDDF7\\uDDF9\\uDDFB\\uDDFC\\uDDFF])|\\uD83C\\uDDEA(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDED\\uDDF7-\\uDDFA])|\\uD83E\\uDDD1(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF7(?:\\uD83C[\\uDDEA\\uDDF4\\uDDF8\\uDDFA\\uDDFC])|\\uD83D\\uDC69(?:\\uD83C[\\uDFFB-\\uDFFF])|\\uD83C\\uDDF2(?:\\uD83C[\\uDDE6\\uDDE8-\\uDDED\\uDDF0-\\uDDFF])|\\uD83C\\uDDE6(?:\\uD83C[\\uDDE8-\\uDDEC\\uDDEE\\uDDF1\\uDDF2\\uDDF4\\uDDF6-\\uDDFA\\uDDFC\\uDDFD\\uDDFF])|\\uD83C\\uDDF0(?:\\uD83C[\\uDDEA\\uDDEC-\\uDDEE\\uDDF2\\uDDF3\\uDDF5\\uDDF7\\uDDFC\\uDDFE\\uDDFF])|\\uD83C\\uDDED(?:\\uD83C[\\uDDF0\\uDDF2\\uDDF3\\uDDF7\\uDDF9\\uDDFA])|\\uD83C\\uDDE9(?:\\uD83C[\\uDDEA\\uDDEC\\uDDEF\\uDDF0\\uDDF2\\uDDF4\\uDDFF])|\\uD83C\\uDDFE(?:\\uD83C[\\uDDEA\\uDDF9])|\\uD83C\\uDDEC(?:\\uD83C[\\uDDE6\\uDDE7\\uDDE9-\\uDDEE\\uDDF1-\\uDDF3\\uDDF5-\\uDDFA\\uDDFC\\uDDFE])|\\uD83C\\uDDF8(?:\\uD83C[\\uDDE6-\\uDDEA\\uDDEC-\\uDDF4\\uDDF7-\\uDDF9\\uDDFB\\uDDFD-\\uDDFF])|\\uD83C\\uDDEB(?:\\uD83C[\\uDDEE-\\uDDF0\\uDDF2\\uDDF4\\uDDF7])|\\uD83C\\uDDF5(?:\\uD83C[\\uDDE6\\uDDEA-\\uDDED\\uDDF0-\\uDDF3\\uDDF7-\\uDDF9\\uDDFC\\uDDFE])|\\uD83C\\uDDFB(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA\\uDDEC\\uDDEE\\uDDF3\\uDDFA])|\\uD83C\\uDDF3(?:\\uD83C[\\uDDE6\\uDDE8\\uDDEA-\\uDDEC\\uDDEE\\uDDF1\\uDDF4\\uDDF5\\uDDF7\\uDDFA\\uDDFF])|\\uD83C\\uDDE8(?:\\uD83C[\\uDDE6\\uDDE8\\uDDE9\\uDDEB-\\uDDEE\\uDDF0-\\uDDF5\\uDDF7\\uDDFA-\\uDDFF])|\\uD83C\\uDDF1(?:\\uD83C[\\uDDE6-\\uDDE8\\uDDEE\\uDDF0\\uDDF7-\\uDDFB\\uDDFE])|\\uD83C\\uDDFF(?:\\uD83C[\\uDDE6\\uDDF2\\uDDFC])|\\uD83C\\uDDFC(?:\\uD83C[\\uDDEB\\uDDF8])|\\uD83C\\uDDFA(?:\\uD83C[\\uDDE6\\uDDEC\\uDDF2\\uDDF3\\uDDF8\\uDDFE\\uDDFF])|\\uD83C\\uDDEE(?:\\uD83C[\\uDDE8-\\uDDEA\\uDDF1-\\uDDF4\\uDDF6-\\uDDF9])|\\uD83C\\uDDEF(?:\\uD83C[\\uDDEA\\uDDF2\\uDDF4\\uDDF5])|(?:\\uD83C[\\uDFC3\\uDFC4\\uDFCA]|\\uD83D[\\uDC6E\\uDC71\\uDC73\\uDC77\\uDC81\\uDC82\\uDC86\\uDC87\\uDE45-\\uDE47\\uDE4B\\uDE4D\\uDE4E\\uDEA3\\uDEB4-\\uDEB6]|\\uD83E[\\uDD26\\uDD37-\\uDD39\\uDD3D\\uDD3E\\uDDB8\\uDDB9\\uDDCD-\\uDDCF\\uDDD6-\\uDDDD])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:\\u26F9|\\uD83C[\\uDFCB\\uDFCC]|\\uD83D\\uDD75)(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u261D\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2\\uDFC7]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66\\uDC67\\uDC6B-\\uDC6D\\uDC70\\uDC72\\uDC74-\\uDC76\\uDC78\\uDC7C\\uDC83\\uDC85\\uDCAA\\uDD74\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE4C\\uDE4F\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1C\\uDD1E\\uDD1F\\uDD30-\\uDD36\\uDDB5\\uDDB6\\uDDBB\\uDDD2-\\uDDD5])(?:\\uD83C[\\uDFFB-\\uDFFF])|(?:[\\u231A\\u231B\\u23E9-\\u23EC\\u23F0\\u23F3\\u25FD\\u25FE\\u2614\\u2615\\u2648-\\u2653\\u267F\\u2693\\u26A1\\u26AA\\u26AB\\u26BD\\u26BE\\u26C4\\u26C5\\u26CE\\u26D4\\u26EA\\u26F2\\u26F3\\u26F5\\u26FA\\u26FD\\u2705\\u270A\\u270B\\u2728\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2795-\\u2797\\u27B0\\u27BF\\u2B1B\\u2B1C\\u2B50\\u2B55]|\\uD83C[\\uDC04\\uDCCF\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE1A\\uDE2F\\uDE32-\\uDE36\\uDE38-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF20\\uDF2D-\\uDF35\\uDF37-\\uDF7C\\uDF7E-\\uDF93\\uDFA0-\\uDFCA\\uDFCF-\\uDFD3\\uDFE0-\\uDFF0\\uDFF4\\uDFF8-\\uDFFF]|\\uD83D[\\uDC00-\\uDC3E\\uDC40\\uDC42-\\uDCFC\\uDCFF-\\uDD3D\\uDD4B-\\uDD4E\\uDD50-\\uDD67\\uDD7A\\uDD95\\uDD96\\uDDA4\\uDDFB-\\uDE4F\\uDE80-\\uDEC5\\uDECC\\uDED0-\\uDED2\\uDED5\\uDEEB\\uDEEC\\uDEF4-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])|(?:[#\\*0-9\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2604\\u260E\\u2611\\u2614\\u2615\\u2618\\u261D\\u2620\\u2622\\u2623\\u2626\\u262A\\u262E\\u262F\\u2638-\\u263A\\u2640\\u2642\\u2648-\\u2653\\u265F\\u2660\\u2663\\u2665\\u2666\\u2668\\u267B\\u267E\\u267F\\u2692-\\u2697\\u2699\\u269B\\u269C\\u26A0\\u26A1\\u26AA\\u26AB\\u26B0\\u26B1\\u26BD\\u26BE\\u26C4\\u26C5\\u26C8\\u26CE\\u26CF\\u26D1\\u26D3\\u26D4\\u26E9\\u26EA\\u26F0-\\u26F5\\u26F7-\\u26FA\\u26FD\\u2702\\u2705\\u2708-\\u270D\\u270F\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763\\u2764\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC04\\uDCCF\\uDD70\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDE6-\\uDDFF\\uDE01\\uDE02\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE50\\uDE51\\uDF00-\\uDF21\\uDF24-\\uDF93\\uDF96\\uDF97\\uDF99-\\uDF9B\\uDF9E-\\uDFF0\\uDFF3-\\uDFF5\\uDFF7-\\uDFFF]|\\uD83D[\\uDC00-\\uDCFD\\uDCFF-\\uDD3D\\uDD49-\\uDD4E\\uDD50-\\uDD67\\uDD6F\\uDD70\\uDD73-\\uDD7A\\uDD87\\uDD8A-\\uDD8D\\uDD90\\uDD95\\uDD96\\uDDA4\\uDDA5\\uDDA8\\uDDB1\\uDDB2\\uDDBC\\uDDC2-\\uDDC4\\uDDD1-\\uDDD3\\uDDDC-\\uDDDE\\uDDE1\\uDDE3\\uDDE8\\uDDEF\\uDDF3\\uDDFA-\\uDE4F\\uDE80-\\uDEC5\\uDECB-\\uDED2\\uDED5\\uDEE0-\\uDEE5\\uDEE9\\uDEEB\\uDEEC\\uDEF0\\uDEF3-\\uDEFA\\uDFE0-\\uDFEB]|\\uD83E[\\uDD0D-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDD71\\uDD73-\\uDD76\\uDD7A-\\uDDA2\\uDDA5-\\uDDAA\\uDDAE-\\uDDCA\\uDDCD-\\uDDFF\\uDE70-\\uDE73\\uDE78-\\uDE7A\\uDE80-\\uDE82\\uDE90-\\uDE95])\\uFE0F|(?:[\\u261D\\u26F9\\u270A-\\u270D]|\\uD83C[\\uDF85\\uDFC2-\\uDFC4\\uDFC7\\uDFCA-\\uDFCC]|\\uD83D[\\uDC42\\uDC43\\uDC46-\\uDC50\\uDC66-\\uDC78\\uDC7C\\uDC81-\\uDC83\\uDC85-\\uDC87\\uDC8F\\uDC91\\uDCAA\\uDD74\\uDD75\\uDD7A\\uDD90\\uDD95\\uDD96\\uDE45-\\uDE47\\uDE4B-\\uDE4F\\uDEA3\\uDEB4-\\uDEB6\\uDEC0\\uDECC]|\\uD83E[\\uDD0F\\uDD18-\\uDD1F\\uDD26\\uDD30-\\uDD39\\uDD3C-\\uDD3E\\uDDB5\\uDDB6\\uDDB8\\uDDB9\\uDDBB\\uDDCD-\\uDDCF\\uDDD1-\\uDDDD])/g;\n};\n","'use strict';\nconst stripAnsi = require('strip-ansi');\nconst isFullwidthCodePoint = require('is-fullwidth-code-point');\nconst emojiRegex = require('emoji-regex');\n\nconst stringWidth = string => {\n\tif (typeof string !== 'string' || string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = stripAnsi(string);\n\n\tif (string.length === 0) {\n\t\treturn 0;\n\t}\n\n\tstring = string.replace(emojiRegex(), '  ');\n\n\tlet width = 0;\n\n\tfor (let i = 0; i < string.length; i++) {\n\t\tconst code = string.codePointAt(i);\n\n\t\t// Ignore control characters\n\t\tif (code <= 0x1F || (code >= 0x7F && code <= 0x9F)) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Ignore combining characters\n\t\tif (code >= 0x300 && code <= 0x36F) {\n\t\t\tcontinue;\n\t\t}\n\n\t\t// Surrogates\n\t\tif (code > 0xFFFF) {\n\t\t\ti++;\n\t\t}\n\n\t\twidth += isFullwidthCodePoint(code) ? 2 : 1;\n\t}\n\n\treturn width;\n};\n\nmodule.exports = stringWidth;\n// TODO: remove this in the next major version\nmodule.exports.default = stringWidth;\n","'use strict'\nvar stringWidth = require('string-width')\n\nexports.center = alignCenter\nexports.left = alignLeft\nexports.right = alignRight\n\n// lodash's way of generating pad characters.\n\nfunction createPadding (width) {\n  var result = ''\n  var string = ' '\n  var n = width\n  do {\n    if (n % 2) {\n      result += string;\n    }\n    n = Math.floor(n / 2);\n    string += string;\n  } while (n);\n\n  return result;\n}\n\nfunction alignLeft (str, width) {\n  var trimmed = str.trimRight()\n  if (trimmed.length === 0 && str.length >= width) return str\n  var padding = ''\n  var strWidth = stringWidth(trimmed)\n\n  if (strWidth < width) {\n    padding = createPadding(width - strWidth)\n  }\n\n  return trimmed + padding\n}\n\nfunction alignRight (str, width) {\n  var trimmed = str.trimLeft()\n  if (trimmed.length === 0 && str.length >= width) return str\n  var padding = ''\n  var strWidth = stringWidth(trimmed)\n\n  if (strWidth < width) {\n    padding = createPadding(width - strWidth)\n  }\n\n  return padding + trimmed\n}\n\nfunction alignCenter (str, width) {\n  var trimmed = str.trim()\n  if (trimmed.length === 0 && str.length >= width) return str\n  var padLeft = ''\n  var padRight = ''\n  var strWidth = stringWidth(trimmed)\n\n  if (strWidth < width) {\n    var padLeftBy = parseInt((width - strWidth) / 2, 10) \n    padLeft = createPadding(padLeftBy)\n    padRight = createPadding(width - (strWidth + padLeftBy))\n  }\n\n  return padLeft + trimmed + padRight\n}\n","'use strict'\nmodule.exports = validate\n\nfunction isArguments (thingy) {\n  return thingy != null && typeof thingy === 'object' && thingy.hasOwnProperty('callee')\n}\n\nconst types = {\n  '*': {label: 'any', check: () => true},\n  A: {label: 'array', check: _ => Array.isArray(_) || isArguments(_)},\n  S: {label: 'string', check: _ => typeof _ === 'string'},\n  N: {label: 'number', check: _ => typeof _ === 'number'},\n  F: {label: 'function', check: _ => typeof _ === 'function'},\n  O: {label: 'object', check: _ => typeof _ === 'object' && _ != null && !types.A.check(_) && !types.E.check(_)},\n  B: {label: 'boolean', check: _ => typeof _ === 'boolean'},\n  E: {label: 'error', check: _ => _ instanceof Error},\n  Z: {label: 'null', check: _ => _ == null}\n}\n\nfunction addSchema (schema, arity) {\n  const group = arity[schema.length] = arity[schema.length] || []\n  if (group.indexOf(schema) === -1) group.push(schema)\n}\n\nfunction validate (rawSchemas, args) {\n  if (arguments.length !== 2) throw wrongNumberOfArgs(['SA'], arguments.length)\n  if (!rawSchemas) throw missingRequiredArg(0, 'rawSchemas')\n  if (!args) throw missingRequiredArg(1, 'args')\n  if (!types.S.check(rawSchemas)) throw invalidType(0, ['string'], rawSchemas)\n  if (!types.A.check(args)) throw invalidType(1, ['array'], args)\n  const schemas = rawSchemas.split('|')\n  const arity = {}\n\n  schemas.forEach(schema => {\n    for (let ii = 0; ii < schema.length; ++ii) {\n      const type = schema[ii]\n      if (!types[type]) throw unknownType(ii, type)\n    }\n    if (/E.*E/.test(schema)) throw moreThanOneError(schema)\n    addSchema(schema, arity)\n    if (/E/.test(schema)) {\n      addSchema(schema.replace(/E.*$/, 'E'), arity)\n      addSchema(schema.replace(/E/, 'Z'), arity)\n      if (schema.length === 1) addSchema('', arity)\n    }\n  })\n  let matching = arity[args.length]\n  if (!matching) {\n    throw wrongNumberOfArgs(Object.keys(arity), args.length)\n  }\n  for (let ii = 0; ii < args.length; ++ii) {\n    let newMatching = matching.filter(schema => {\n      const type = schema[ii]\n      const typeCheck = types[type].check\n      return typeCheck(args[ii])\n    })\n    if (!newMatching.length) {\n      const labels = matching.map(_ => types[_[ii]].label).filter(_ => _ != null)\n      throw invalidType(ii, labels, args[ii])\n    }\n    matching = newMatching\n  }\n}\n\nfunction missingRequiredArg (num) {\n  return newException('EMISSINGARG', 'Missing required argument #' + (num + 1))\n}\n\nfunction unknownType (num, type) {\n  return newException('EUNKNOWNTYPE', 'Unknown type ' + type + ' in argument #' + (num + 1))\n}\n\nfunction invalidType (num, expectedTypes, value) {\n  let valueType\n  Object.keys(types).forEach(typeCode => {\n    if (types[typeCode].check(value)) valueType = types[typeCode].label\n  })\n  return newException('EINVALIDTYPE', 'Argument #' + (num + 1) + ': Expected ' +\n    englishList(expectedTypes) + ' but got ' + valueType)\n}\n\nfunction englishList (list) {\n  return list.join(', ').replace(/, ([^,]+)$/, ' or $1')\n}\n\nfunction wrongNumberOfArgs (expected, got) {\n  const english = englishList(expected)\n  const args = expected.every(ex => ex.length === 1)\n    ? 'argument'\n    : 'arguments'\n  return newException('EWRONGARGCOUNT', 'Expected ' + english + ' ' + args + ' but got ' + got)\n}\n\nfunction moreThanOneError (schema) {\n  return newException('ETOOMANYERRORTYPES',\n    'Only one error type per argument signature is allowed, more than one found in \"' + schema + '\"')\n}\n\nfunction newException (code, msg) {\n  const err = new Error(msg)\n  err.code = code\n  /* istanbul ignore else */\n  if (Error.captureStackTrace) Error.captureStackTrace(err, validate)\n  return err\n}\n","'use strict'\nvar stringWidth = require('string-width')\nvar stripAnsi = require('strip-ansi')\n\nmodule.exports = wideTruncate\n\nfunction wideTruncate (str, target) {\n  if (stringWidth(str) === 0) return str\n  if (target <= 0) return ''\n  if (stringWidth(str) <= target) return str\n\n  // We compute the number of bytes of ansi sequences here and add\n  // that to our initial truncation to ensure that we don't slice one\n  // that we want to keep in half.\n  var noAnsi = stripAnsi(str)\n  var ansiSize = str.length + noAnsi.length\n  var truncated = str.slice(0, target + ansiSize)\n\n  // we have to shrink the result to account for our ansi sequence buffer\n  // (if an ansi sequence was truncated) and double width characters.\n  while (stringWidth(truncated) > target) {\n    truncated = truncated.slice(0, -1)\n  }\n  return truncated\n}\n","'use strict'\nvar util = require('util')\n\nvar User = exports.User = function User (msg) {\n  var err = new Error(msg)\n  Error.captureStackTrace(err, User)\n  err.code = 'EGAUGE'\n  return err\n}\n\nexports.MissingTemplateValue = function MissingTemplateValue (item, values) {\n  var err = new User(util.format('Missing template value \"%s\"', item.type))\n  Error.captureStackTrace(err, MissingTemplateValue)\n  err.template = item\n  err.values = values\n  return err\n}\n\nexports.Internal = function Internal (msg) {\n  var err = new Error(msg)\n  Error.captureStackTrace(err, Internal)\n  err.code = 'EGAUGEINTERNAL'\n  return err\n}\n","'use strict'\nvar stringWidth = require('string-width')\n\nmodule.exports = TemplateItem\n\nfunction isPercent (num) {\n  if (typeof num !== 'string') return false\n  return num.slice(-1) === '%'\n}\n\nfunction percent (num) {\n  return Number(num.slice(0, -1)) / 100\n}\n\nfunction TemplateItem (values, outputLength) {\n  this.overallOutputLength = outputLength\n  this.finished = false\n  this.type = null\n  this.value = null\n  this.length = null\n  this.maxLength = null\n  this.minLength = null\n  this.kerning = null\n  this.align = 'left'\n  this.padLeft = 0\n  this.padRight = 0\n  this.index = null\n  this.first = null\n  this.last = null\n  if (typeof values === 'string') {\n    this.value = values\n  } else {\n    for (var prop in values) this[prop] = values[prop]\n  }\n  // Realize percents\n  if (isPercent(this.length)) {\n    this.length = Math.round(this.overallOutputLength * percent(this.length))\n  }\n  if (isPercent(this.minLength)) {\n    this.minLength = Math.round(this.overallOutputLength * percent(this.minLength))\n  }\n  if (isPercent(this.maxLength)) {\n    this.maxLength = Math.round(this.overallOutputLength * percent(this.maxLength))\n  }\n  return this\n}\n\nTemplateItem.prototype = {}\n\nTemplateItem.prototype.getBaseLength = function () {\n  var length = this.length\n  if (length == null && typeof this.value === 'string' && this.maxLength == null && this.minLength == null) {\n    length = stringWidth(this.value)\n  }\n  return length\n}\n\nTemplateItem.prototype.getLength = function () {\n  var length = this.getBaseLength()\n  if (length == null) return null\n  return length + this.padLeft + this.padRight\n}\n\nTemplateItem.prototype.getMaxLength = function () {\n  if (this.maxLength == null) return null\n  return this.maxLength + this.padLeft + this.padRight\n}\n\nTemplateItem.prototype.getMinLength = function () {\n  if (this.minLength == null) return null\n  return this.minLength + this.padLeft + this.padRight\n}\n","'use strict'\nvar align = require('wide-align')\nvar validate = require('aproba')\nvar wideTruncate = require('./wide-truncate')\nvar error = require('./error')\nvar TemplateItem = require('./template-item')\n\nfunction renderValueWithValues (values) {\n  return function (item) {\n    return renderValue(item, values)\n  }\n}\n\nvar renderTemplate = module.exports = function (width, template, values) {\n  var items = prepareItems(width, template, values)\n  var rendered = items.map(renderValueWithValues(values)).join('')\n  return align.left(wideTruncate(rendered, width), width)\n}\n\nfunction preType (item) {\n  var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1)\n  return 'pre' + cappedTypeName\n}\n\nfunction postType (item) {\n  var cappedTypeName = item.type[0].toUpperCase() + item.type.slice(1)\n  return 'post' + cappedTypeName\n}\n\nfunction hasPreOrPost (item, values) {\n  if (!item.type) return\n  return values[preType(item)] || values[postType(item)]\n}\n\nfunction generatePreAndPost (baseItem, parentValues) {\n  var item = Object.assign({}, baseItem)\n  var values = Object.create(parentValues)\n  var template = []\n  var pre = preType(item)\n  var post = postType(item)\n  if (values[pre]) {\n    template.push({value: values[pre]})\n    values[pre] = null\n  }\n  item.minLength = null\n  item.length = null\n  item.maxLength = null\n  template.push(item)\n  values[item.type] = values[item.type]\n  if (values[post]) {\n    template.push({value: values[post]})\n    values[post] = null\n  }\n  return function ($1, $2, length) {\n    return renderTemplate(length, template, values)\n  }\n}\n\nfunction prepareItems (width, template, values) {\n  function cloneAndObjectify (item, index, arr) {\n    var cloned = new TemplateItem(item, width)\n    var type = cloned.type\n    if (cloned.value == null) {\n      if (!(type in values)) {\n        if (cloned.default == null) {\n          throw new error.MissingTemplateValue(cloned, values)\n        } else {\n          cloned.value = cloned.default\n        }\n      } else {\n        cloned.value = values[type]\n      }\n    }\n    if (cloned.value == null || cloned.value === '') return null\n    cloned.index = index\n    cloned.first = index === 0\n    cloned.last = index === arr.length - 1\n    if (hasPreOrPost(cloned, values)) cloned.value = generatePreAndPost(cloned, values)\n    return cloned\n  }\n\n  var output = template.map(cloneAndObjectify).filter(function (item) { return item != null })\n\n  var remainingSpace = width\n  var variableCount = output.length\n\n  function consumeSpace (length) {\n    if (length > remainingSpace) length = remainingSpace\n    remainingSpace -= length\n  }\n\n  function finishSizing (item, length) {\n    if (item.finished) throw new error.Internal('Tried to finish template item that was already finished')\n    if (length === Infinity) throw new error.Internal('Length of template item cannot be infinity')\n    if (length != null) item.length = length\n    item.minLength = null\n    item.maxLength = null\n    --variableCount\n    item.finished = true\n    if (item.length == null) item.length = item.getBaseLength()\n    if (item.length == null) throw new error.Internal('Finished template items must have a length')\n    consumeSpace(item.getLength())\n  }\n\n  output.forEach(function (item) {\n    if (!item.kerning) return\n    var prevPadRight = item.first ? 0 : output[item.index - 1].padRight\n    if (!item.first && prevPadRight < item.kerning) item.padLeft = item.kerning - prevPadRight\n    if (!item.last) item.padRight = item.kerning\n  })\n\n  // Finish any that have a fixed (literal or intuited) length\n  output.forEach(function (item) {\n    if (item.getBaseLength() == null) return\n    finishSizing(item)\n  })\n\n  var resized = 0\n  var resizing\n  var hunkSize\n  do {\n    resizing = false\n    hunkSize = Math.round(remainingSpace / variableCount)\n    output.forEach(function (item) {\n      if (item.finished) return\n      if (!item.maxLength) return\n      if (item.getMaxLength() < hunkSize) {\n        finishSizing(item, item.maxLength)\n        resizing = true\n      }\n    })\n  } while (resizing && resized++ < output.length)\n  if (resizing) throw new error.Internal('Resize loop iterated too many times while determining maxLength')\n\n  resized = 0\n  do {\n    resizing = false\n    hunkSize = Math.round(remainingSpace / variableCount)\n    output.forEach(function (item) {\n      if (item.finished) return\n      if (!item.minLength) return\n      if (item.getMinLength() >= hunkSize) {\n        finishSizing(item, item.minLength)\n        resizing = true\n      }\n    })\n  } while (resizing && resized++ < output.length)\n  if (resizing) throw new error.Internal('Resize loop iterated too many times while determining minLength')\n\n  hunkSize = Math.round(remainingSpace / variableCount)\n  output.forEach(function (item) {\n    if (item.finished) return\n    finishSizing(item, hunkSize)\n  })\n\n  return output\n}\n\nfunction renderFunction (item, values, length) {\n  validate('OON', arguments)\n  if (item.type) {\n    return item.value(values, values[item.type + 'Theme'] || {}, length)\n  } else {\n    return item.value(values, {}, length)\n  }\n}\n\nfunction renderValue (item, values) {\n  var length = item.getBaseLength()\n  var value = typeof item.value === 'function' ? renderFunction(item, values, length) : item.value\n  if (value == null || value === '') return ''\n  var alignWith = align[item.align] || align.left\n  var leftPadding = item.padLeft ? align.left('', item.padLeft) : ''\n  var rightPadding = item.padRight ? align.right('', item.padRight) : ''\n  var truncated = wideTruncate(String(value), length)\n  var aligned = alignWith(truncated, length)\n  return leftPadding + aligned + rightPadding\n}\n","'use strict'\nvar consoleControl = require('console-control-strings')\nvar renderTemplate = require('./render-template.js')\nvar validate = require('aproba')\n\nvar Plumbing = module.exports = function (theme, template, width) {\n  if (!width) width = 80\n  validate('OAN', [theme, template, width])\n  this.showing = false\n  this.theme = theme\n  this.width = width\n  this.template = template\n}\nPlumbing.prototype = {}\n\nPlumbing.prototype.setTheme = function (theme) {\n  validate('O', [theme])\n  this.theme = theme\n}\n\nPlumbing.prototype.setTemplate = function (template) {\n  validate('A', [template])\n  this.template = template\n}\n\nPlumbing.prototype.setWidth = function (width) {\n  validate('N', [width])\n  this.width = width\n}\n\nPlumbing.prototype.hide = function () {\n  return consoleControl.gotoSOL() + consoleControl.eraseLine()\n}\n\nPlumbing.prototype.hideCursor = consoleControl.hideCursor\n\nPlumbing.prototype.showCursor = consoleControl.showCursor\n\nPlumbing.prototype.show = function (status) {\n  var values = Object.create(this.theme)\n  for (var key in status) {\n    values[key] = status[key]\n  }\n\n  return renderTemplate(this.width, this.template, values).trim() +\n         consoleControl.color('reset') +\n         consoleControl.eraseLine() + consoleControl.gotoSOL()\n}\n","\"use strict\"\nvar os = require(\"os\")\n\nvar hasUnicode = module.exports = function () {\n  // Recent Win32 platforms (>XP) CAN support unicode in the console but\n  // don't have to, and in non-english locales often use traditional local\n  // code pages. There's no way, short of windows system calls or execing\n  // the chcp command line program to figure this out. As such, we default\n  // this to false and encourage your users to override it via config if\n  // appropriate.\n  if (os.type() == \"Windows_NT\") { return false }\n\n  var isUTF8 = /UTF-?8$/i\n  var ctype = process.env.LC_ALL || process.env.LC_CTYPE || process.env.LANG\n  return isUTF8.test(ctype)\n}\n","// call it on itself so we can test the export val for basic stuff\nmodule.exports = colorSupport({ alwaysReturn: true }, colorSupport)\n\nfunction hasNone (obj, options) {\n  obj.level = 0\n  obj.hasBasic = false\n  obj.has256 = false\n  obj.has16m = false\n  if (!options.alwaysReturn) {\n    return false\n  }\n  return obj\n}\n\nfunction hasBasic (obj) {\n  obj.hasBasic = true\n  obj.has256 = false\n  obj.has16m = false\n  obj.level = 1\n  return obj\n}\n\nfunction has256 (obj) {\n  obj.hasBasic = true\n  obj.has256 = true\n  obj.has16m = false\n  obj.level = 2\n  return obj\n}\n\nfunction has16m (obj) {\n  obj.hasBasic = true\n  obj.has256 = true\n  obj.has16m = true\n  obj.level = 3\n  return obj\n}\n\nfunction colorSupport (options, obj) {\n  options = options || {}\n\n  obj = obj || {}\n\n  // if just requesting a specific level, then return that.\n  if (typeof options.level === 'number') {\n    switch (options.level) {\n      case 0:\n        return hasNone(obj, options)\n      case 1:\n        return hasBasic(obj)\n      case 2:\n        return has256(obj)\n      case 3:\n        return has16m(obj)\n    }\n  }\n\n  obj.level = 0\n  obj.hasBasic = false\n  obj.has256 = false\n  obj.has16m = false\n\n  if (typeof process === 'undefined' ||\n      !process ||\n      !process.stdout ||\n      !process.env ||\n      !process.platform) {\n    return hasNone(obj, options)\n  }\n\n  var env = options.env || process.env\n  var stream = options.stream || process.stdout\n  var term = options.term || env.TERM || ''\n  var platform = options.platform || process.platform\n\n  if (!options.ignoreTTY && !stream.isTTY) {\n    return hasNone(obj, options)\n  }\n\n  if (!options.ignoreDumb && term === 'dumb' && !env.COLORTERM) {\n    return hasNone(obj, options)\n  }\n\n  if (platform === 'win32') {\n    return hasBasic(obj)\n  }\n\n  if (env.TMUX) {\n    return has256(obj)\n  }\n\n  if (!options.ignoreCI && (env.CI || env.TEAMCITY_VERSION)) {\n    if (env.TRAVIS) {\n      return has256(obj)\n    } else {\n      return hasNone(obj, options)\n    }\n  }\n\n  // TODO: add more term programs\n  switch (env.TERM_PROGRAM) {\n    case 'iTerm.app':\n      var ver = env.TERM_PROGRAM_VERSION || '0.'\n      if (/^[0-2]\\./.test(ver)) {\n        return has256(obj)\n      } else {\n        return has16m(obj)\n      }\n\n    case 'HyperTerm':\n    case 'Hyper':\n      return has16m(obj)\n\n    case 'MacTerm':\n      return has16m(obj)\n\n    case 'Apple_Terminal':\n      return has256(obj)\n  }\n\n  if (/^xterm-256/.test(term)) {\n    return has256(obj)\n  }\n\n  if (/^screen|^xterm|^vt100|color|ansi|cygwin|linux/i.test(term)) {\n    return hasBasic(obj)\n  }\n\n  if (env.COLORTERM) {\n    return hasBasic(obj)\n  }\n\n  return hasNone(obj, options)\n}\n","'use strict'\nvar colorSupport = require('color-support')\n\nmodule.exports = colorSupport().hasBasic\n","// This is not the set of all possible signals.\n//\n// It IS, however, the set of all signals that trigger\n// an exit on either Linux or BSD systems.  Linux is a\n// superset of the signal names supported on BSD, and\n// the unknown signals just fail to register, so we can\n// catch that easily enough.\n//\n// Don't bother with SIGKILL.  It's uncatchable, which\n// means that we can't fire any callbacks anyway.\n//\n// If a user does happen to register a handler on a non-\n// fatal signal like SIGWINCH or something, and then\n// exit, it'll end up firing `process.emit('exit')`, so\n// the handler will be fired anyway.\n//\n// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised\n// artificially, inherently leave the process in a\n// state from which it is not safe to try and enter JS\n// listeners.\nmodule.exports = [\n  'SIGABRT',\n  'SIGALRM',\n  'SIGHUP',\n  'SIGINT',\n  'SIGTERM'\n]\n\nif (process.platform !== 'win32') {\n  module.exports.push(\n    'SIGVTALRM',\n    'SIGXCPU',\n    'SIGXFSZ',\n    'SIGUSR2',\n    'SIGTRAP',\n    'SIGSYS',\n    'SIGQUIT',\n    'SIGIOT'\n    // should detect profiler and enable/disable accordingly.\n    // see #21\n    // 'SIGPROF'\n  )\n}\n\nif (process.platform === 'linux') {\n  module.exports.push(\n    'SIGIO',\n    'SIGPOLL',\n    'SIGPWR',\n    'SIGSTKFLT',\n    'SIGUNUSED'\n  )\n}\n","// Note: since nyc uses this module to output coverage, any lines\n// that are in the direct sync flow of nyc's outputCoverage are\n// ignored, since we can never get coverage for them.\n// grab a reference to node's real process object right away\nvar process = global.process\n\nconst processOk = function (process) {\n  return process &&\n    typeof process === 'object' &&\n    typeof process.removeListener === 'function' &&\n    typeof process.emit === 'function' &&\n    typeof process.reallyExit === 'function' &&\n    typeof process.listeners === 'function' &&\n    typeof process.kill === 'function' &&\n    typeof process.pid === 'number' &&\n    typeof process.on === 'function'\n}\n\n// some kind of non-node environment, just no-op\n/* istanbul ignore if */\nif (!processOk(process)) {\n  module.exports = function () {\n    return function () {}\n  }\n} else {\n  var assert = require('assert')\n  var signals = require('./signals.js')\n  var isWin = /^win/i.test(process.platform)\n\n  var EE = require('events')\n  /* istanbul ignore if */\n  if (typeof EE !== 'function') {\n    EE = EE.EventEmitter\n  }\n\n  var emitter\n  if (process.__signal_exit_emitter__) {\n    emitter = process.__signal_exit_emitter__\n  } else {\n    emitter = process.__signal_exit_emitter__ = new EE()\n    emitter.count = 0\n    emitter.emitted = {}\n  }\n\n  // Because this emitter is a global, we have to check to see if a\n  // previous version of this library failed to enable infinite listeners.\n  // I know what you're about to say.  But literally everything about\n  // signal-exit is a compromise with evil.  Get used to it.\n  if (!emitter.infinite) {\n    emitter.setMaxListeners(Infinity)\n    emitter.infinite = true\n  }\n\n  module.exports = function (cb, opts) {\n    /* istanbul ignore if */\n    if (!processOk(global.process)) {\n      return function () {}\n    }\n    assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler')\n\n    if (loaded === false) {\n      load()\n    }\n\n    var ev = 'exit'\n    if (opts && opts.alwaysLast) {\n      ev = 'afterexit'\n    }\n\n    var remove = function () {\n      emitter.removeListener(ev, cb)\n      if (emitter.listeners('exit').length === 0 &&\n          emitter.listeners('afterexit').length === 0) {\n        unload()\n      }\n    }\n    emitter.on(ev, cb)\n\n    return remove\n  }\n\n  var unload = function unload () {\n    if (!loaded || !processOk(global.process)) {\n      return\n    }\n    loaded = false\n\n    signals.forEach(function (sig) {\n      try {\n        process.removeListener(sig, sigListeners[sig])\n      } catch (er) {}\n    })\n    process.emit = originalProcessEmit\n    process.reallyExit = originalProcessReallyExit\n    emitter.count -= 1\n  }\n  module.exports.unload = unload\n\n  var emit = function emit (event, code, signal) {\n    /* istanbul ignore if */\n    if (emitter.emitted[event]) {\n      return\n    }\n    emitter.emitted[event] = true\n    emitter.emit(event, code, signal)\n  }\n\n  // { <signal>: <listener fn>, ... }\n  var sigListeners = {}\n  signals.forEach(function (sig) {\n    sigListeners[sig] = function listener () {\n      /* istanbul ignore if */\n      if (!processOk(global.process)) {\n        return\n      }\n      // If there are no other listeners, an exit is coming!\n      // Simplest way: remove us and then re-send the signal.\n      // We know that this will kill the process, so we can\n      // safely emit now.\n      var listeners = process.listeners(sig)\n      if (listeners.length === emitter.count) {\n        unload()\n        emit('exit', null, sig)\n        /* istanbul ignore next */\n        emit('afterexit', null, sig)\n        /* istanbul ignore next */\n        if (isWin && sig === 'SIGHUP') {\n          // \"SIGHUP\" throws an `ENOSYS` error on Windows,\n          // so use a supported signal instead\n          sig = 'SIGINT'\n        }\n        /* istanbul ignore next */\n        process.kill(process.pid, sig)\n      }\n    }\n  })\n\n  module.exports.signals = function () {\n    return signals\n  }\n\n  var loaded = false\n\n  var load = function load () {\n    if (loaded || !processOk(global.process)) {\n      return\n    }\n    loaded = true\n\n    // This is the number of onSignalExit's that are in play.\n    // It's important so that we can count the correct number of\n    // listeners on signals, and don't wait for the other one to\n    // handle it instead of us.\n    emitter.count += 1\n\n    signals = signals.filter(function (sig) {\n      try {\n        process.on(sig, sigListeners[sig])\n        return true\n      } catch (er) {\n        return false\n      }\n    })\n\n    process.emit = processEmit\n    process.reallyExit = processReallyExit\n  }\n  module.exports.load = load\n\n  var originalProcessReallyExit = process.reallyExit\n  var processReallyExit = function processReallyExit (code) {\n    /* istanbul ignore if */\n    if (!processOk(global.process)) {\n      return\n    }\n    process.exitCode = code || /* istanbul ignore next */ 0\n    emit('exit', process.exitCode, null)\n    /* istanbul ignore next */\n    emit('afterexit', process.exitCode, null)\n    /* istanbul ignore next */\n    originalProcessReallyExit.call(process, process.exitCode)\n  }\n\n  var originalProcessEmit = process.emit\n  var processEmit = function processEmit (ev, arg) {\n    if (ev === 'exit' && processOk(global.process)) {\n      /* istanbul ignore else */\n      if (arg !== undefined) {\n        process.exitCode = arg\n      }\n      var ret = originalProcessEmit.apply(this, arguments)\n      /* istanbul ignore next */\n      emit('exit', process.exitCode, null)\n      /* istanbul ignore next */\n      emit('afterexit', process.exitCode, null)\n      /* istanbul ignore next */\n      return ret\n    } else {\n      return originalProcessEmit.apply(this, arguments)\n    }\n  }\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc');  // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","'use strict'\n\nmodule.exports = function spin (spinstr, spun) {\n  return spinstr[spun % spinstr.length]\n}\n","'use strict'\nvar validate = require('aproba')\nvar renderTemplate = require('./render-template.js')\nvar wideTruncate = require('./wide-truncate')\nvar stringWidth = require('string-width')\n\nmodule.exports = function (theme, width, completed) {\n  validate('ONN', [theme, width, completed])\n  if (completed < 0) completed = 0\n  if (completed > 1) completed = 1\n  if (width <= 0) return ''\n  var sofar = Math.round(width * completed)\n  var rest = width - sofar\n  var template = [\n    {type: 'complete', value: repeat(theme.complete, sofar), length: sofar},\n    {type: 'remaining', value: repeat(theme.remaining, rest), length: rest}\n  ]\n  return renderTemplate(width, template, theme)\n}\n\n// lodash's way of repeating\nfunction repeat (string, width) {\n  var result = ''\n  var n = width\n  do {\n    if (n % 2) {\n      result += string\n    }\n    n = Math.floor(n / 2)\n    /* eslint no-self-assign: 0 */\n    string += string\n  } while (n && stringWidth(result) < width)\n\n  return wideTruncate(result, width)\n}\n","'use strict'\nvar spin = require('./spin.js')\nvar progressBar = require('./progress-bar.js')\n\nmodule.exports = {\n  activityIndicator: function (values, theme, width) {\n    if (values.spun == null) return\n    return spin(theme, values.spun)\n  },\n  progressbar: function (values, theme, width) {\n    if (values.completed == null) return\n    return progressBar(theme, width, values.completed)\n  }\n}\n","'use strict'\nvar objectAssign = require('object-assign')\n\nmodule.exports = function () {\n  return ThemeSetProto.newThemeSet()\n}\n\nvar ThemeSetProto = {}\n\nThemeSetProto.baseTheme = require('./base-theme.js')\n\nThemeSetProto.newTheme = function (parent, theme) {\n  if (!theme) {\n    theme = parent\n    parent = this.baseTheme\n  }\n  return objectAssign({}, parent, theme)\n}\n\nThemeSetProto.getThemeNames = function () {\n  return Object.keys(this.themes)\n}\n\nThemeSetProto.addTheme = function (name, parent, theme) {\n  this.themes[name] = this.newTheme(parent, theme)\n}\n\nThemeSetProto.addToAllThemes = function (theme) {\n  var themes = this.themes\n  Object.keys(themes).forEach(function (name) {\n    objectAssign(themes[name], theme)\n  })\n  objectAssign(this.baseTheme, theme)\n}\n\nThemeSetProto.getTheme = function (name) {\n  if (!this.themes[name]) throw this.newMissingThemeError(name)\n  return this.themes[name]\n}\n\nThemeSetProto.setDefault = function (opts, name) {\n  if (name == null) {\n    name = opts\n    opts = {}\n  }\n  var platform = opts.platform == null ? 'fallback' : opts.platform\n  var hasUnicode = !!opts.hasUnicode\n  var hasColor = !!opts.hasColor\n  if (!this.defaults[platform]) this.defaults[platform] = {true: {}, false: {}}\n  this.defaults[platform][hasUnicode][hasColor] = name\n}\n\nThemeSetProto.getDefault = function (opts) {\n  if (!opts) opts = {}\n  var platformName = opts.platform || process.platform\n  var platform = this.defaults[platformName] || this.defaults.fallback\n  var hasUnicode = !!opts.hasUnicode\n  var hasColor = !!opts.hasColor\n  if (!platform) throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor)\n  if (!platform[hasUnicode][hasColor]) {\n    if (hasUnicode && hasColor && platform[!hasUnicode][hasColor]) {\n      hasUnicode = false\n    } else if (hasUnicode && hasColor && platform[hasUnicode][!hasColor]) {\n      hasColor = false\n    } else if (hasUnicode && hasColor && platform[!hasUnicode][!hasColor]) {\n      hasUnicode = false\n      hasColor = false\n    } else if (hasUnicode && !hasColor && platform[!hasUnicode][hasColor]) {\n      hasUnicode = false\n    } else if (!hasUnicode && hasColor && platform[hasUnicode][!hasColor]) {\n      hasColor = false\n    } else if (platform === this.defaults.fallback) {\n      throw this.newMissingDefaultThemeError(platformName, hasUnicode, hasColor)\n    }\n  }\n  if (platform[hasUnicode][hasColor]) {\n    return this.getTheme(platform[hasUnicode][hasColor])\n  } else {\n    return this.getDefault(objectAssign({}, opts, {platform: 'fallback'}))\n  }\n}\n\nThemeSetProto.newMissingThemeError = function newMissingThemeError (name) {\n  var err = new Error('Could not find a gauge theme named \"' + name + '\"')\n  Error.captureStackTrace.call(err, newMissingThemeError)\n  err.theme = name\n  err.code = 'EMISSINGTHEME'\n  return err\n}\n\nThemeSetProto.newMissingDefaultThemeError = function newMissingDefaultThemeError (platformName, hasUnicode, hasColor) {\n  var err = new Error(\n    'Could not find a gauge theme for your platform/unicode/color use combo:\\n' +\n    '    platform = ' + platformName + '\\n' +\n    '    hasUnicode = ' + hasUnicode + '\\n' +\n    '    hasColor = ' + hasColor)\n  Error.captureStackTrace.call(err, newMissingDefaultThemeError)\n  err.platform = platformName\n  err.hasUnicode = hasUnicode\n  err.hasColor = hasColor\n  err.code = 'EMISSINGTHEME'\n  return err\n}\n\nThemeSetProto.newThemeSet = function () {\n  var themeset = function (opts) {\n    return themeset.getDefault(opts)\n  }\n  return objectAssign(themeset, ThemeSetProto, {\n    themes: objectAssign({}, this.themes),\n    baseTheme: objectAssign({}, this.baseTheme),\n    defaults: JSON.parse(JSON.stringify(this.defaults || {}))\n  })\n}\n","'use strict'\nvar color = require('console-control-strings').color\nvar ThemeSet = require('./theme-set.js')\n\nvar themes = module.exports = new ThemeSet()\n\nthemes.addTheme('ASCII', {\n  preProgressbar: '[',\n  postProgressbar: ']',\n  progressbarTheme: {\n    complete: '#',\n    remaining: '.'\n  },\n  activityIndicatorTheme: '-\\\\|/',\n  preSubsection: '>'\n})\n\nthemes.addTheme('colorASCII', themes.getTheme('ASCII'), {\n  progressbarTheme: {\n    preComplete: color('bgBrightWhite', 'brightWhite'),\n    complete: '#',\n    postComplete: color('reset'),\n    preRemaining: color('bgBrightBlack', 'brightBlack'),\n    remaining: '.',\n    postRemaining: color('reset')\n  }\n})\n\nthemes.addTheme('brailleSpinner', {\n  preProgressbar: '⸨',\n  postProgressbar: '⸩',\n  progressbarTheme: {\n    complete: '#',\n    remaining: '⠂'\n  },\n  activityIndicatorTheme: '⠋⠙⠹⠸⠼⠴⠦⠧⠇⠏',\n  preSubsection: '>'\n})\n\nthemes.addTheme('colorBrailleSpinner', themes.getTheme('brailleSpinner'), {\n  progressbarTheme: {\n    preComplete: color('bgBrightWhite', 'brightWhite'),\n    complete: '#',\n    postComplete: color('reset'),\n    preRemaining: color('bgBrightBlack', 'brightBlack'),\n    remaining: '⠂',\n    postRemaining: color('reset')\n  }\n})\n\nthemes.setDefault({}, 'ASCII')\nthemes.setDefault({hasColor: true}, 'colorASCII')\nthemes.setDefault({platform: 'darwin', hasUnicode: true}, 'brailleSpinner')\nthemes.setDefault({platform: 'darwin', hasUnicode: true, hasColor: true}, 'colorBrailleSpinner')\nthemes.setDefault({platform: 'linux', hasUnicode: true}, 'brailleSpinner')\nthemes.setDefault({platform: 'linux', hasUnicode: true, hasColor: true}, 'colorBrailleSpinner')\n","'use strict'\n// this exists so we can replace it during testing\nmodule.exports = setInterval\n","'use strict'\n// this exists so we can replace it during testing\nmodule.exports = process\n","'use strict'\nvar process = require('./process')\ntry {\n  module.exports = setImmediate\n} catch (ex) {\n  module.exports = process.nextTick\n}\n","'use strict'\nvar Plumbing = require('./plumbing.js')\nvar hasUnicode = require('has-unicode')\nvar hasColor = require('./has-color.js')\nvar onExit = require('signal-exit')\nvar defaultThemes = require('./themes')\nvar setInterval = require('./set-interval.js')\nvar process = require('./process.js')\nvar setImmediate = require('./set-immediate')\n\nmodule.exports = Gauge\n\nfunction callWith (obj, method) {\n  return function () {\n    return method.call(obj)\n  }\n}\n\nfunction Gauge (arg1, arg2) {\n  var options, writeTo\n  if (arg1 && arg1.write) {\n    writeTo = arg1\n    options = arg2 || {}\n  } else if (arg2 && arg2.write) {\n    writeTo = arg2\n    options = arg1 || {}\n  } else {\n    writeTo = process.stderr\n    options = arg1 || arg2 || {}\n  }\n\n  this._status = {\n    spun: 0,\n    section: '',\n    subsection: ''\n  }\n  this._paused = false // are we paused for back pressure?\n  this._disabled = true // are all progress bar updates disabled?\n  this._showing = false // do we WANT the progress bar on screen\n  this._onScreen = false // IS the progress bar on screen\n  this._needsRedraw = false // should we print something at next tick?\n  this._hideCursor = options.hideCursor == null ? true : options.hideCursor\n  this._fixedFramerate = options.fixedFramerate == null\n    ? !(/^v0\\.8\\./.test(process.version))\n    : options.fixedFramerate\n  this._lastUpdateAt = null\n  this._updateInterval = options.updateInterval == null ? 50 : options.updateInterval\n\n  this._themes = options.themes || defaultThemes\n  this._theme = options.theme\n  var theme = this._computeTheme(options.theme)\n  var template = options.template || [\n    {type: 'progressbar', length: 20},\n    {type: 'activityIndicator', kerning: 1, length: 1},\n    {type: 'section', kerning: 1, default: ''},\n    {type: 'subsection', kerning: 1, default: ''}\n  ]\n  this.setWriteTo(writeTo, options.tty)\n  var PlumbingClass = options.Plumbing || Plumbing\n  this._gauge = new PlumbingClass(theme, template, this.getWidth())\n\n  this._$$doRedraw = callWith(this, this._doRedraw)\n  this._$$handleSizeChange = callWith(this, this._handleSizeChange)\n\n  this._cleanupOnExit = options.cleanupOnExit == null || options.cleanupOnExit\n  this._removeOnExit = null\n\n  if (options.enabled || (options.enabled == null && this._tty && this._tty.isTTY)) {\n    this.enable()\n  } else {\n    this.disable()\n  }\n}\nGauge.prototype = {}\n\nGauge.prototype.isEnabled = function () {\n  return !this._disabled\n}\n\nGauge.prototype.setTemplate = function (template) {\n  this._gauge.setTemplate(template)\n  if (this._showing) this._requestRedraw()\n}\n\nGauge.prototype._computeTheme = function (theme) {\n  if (!theme) theme = {}\n  if (typeof theme === 'string') {\n    theme = this._themes.getTheme(theme)\n  } else if (theme && (Object.keys(theme).length === 0 || theme.hasUnicode != null || theme.hasColor != null)) {\n    var useUnicode = theme.hasUnicode == null ? hasUnicode() : theme.hasUnicode\n    var useColor = theme.hasColor == null ? hasColor : theme.hasColor\n    theme = this._themes.getDefault({hasUnicode: useUnicode, hasColor: useColor, platform: theme.platform})\n  }\n  return theme\n}\n\nGauge.prototype.setThemeset = function (themes) {\n  this._themes = themes\n  this.setTheme(this._theme)\n}\n\nGauge.prototype.setTheme = function (theme) {\n  this._gauge.setTheme(this._computeTheme(theme))\n  if (this._showing) this._requestRedraw()\n  this._theme = theme\n}\n\nGauge.prototype._requestRedraw = function () {\n  this._needsRedraw = true\n  if (!this._fixedFramerate) this._doRedraw()\n}\n\nGauge.prototype.getWidth = function () {\n  return ((this._tty && this._tty.columns) || 80) - 1\n}\n\nGauge.prototype.setWriteTo = function (writeTo, tty) {\n  var enabled = !this._disabled\n  if (enabled) this.disable()\n  this._writeTo = writeTo\n  this._tty = tty ||\n    (writeTo === process.stderr && process.stdout.isTTY && process.stdout) ||\n    (writeTo.isTTY && writeTo) ||\n    this._tty\n  if (this._gauge) this._gauge.setWidth(this.getWidth())\n  if (enabled) this.enable()\n}\n\nGauge.prototype.enable = function () {\n  if (!this._disabled) return\n  this._disabled = false\n  if (this._tty) this._enableEvents()\n  if (this._showing) this.show()\n}\n\nGauge.prototype.disable = function () {\n  if (this._disabled) return\n  if (this._showing) {\n    this._lastUpdateAt = null\n    this._showing = false\n    this._doRedraw()\n    this._showing = true\n  }\n  this._disabled = true\n  if (this._tty) this._disableEvents()\n}\n\nGauge.prototype._enableEvents = function () {\n  if (this._cleanupOnExit) {\n    this._removeOnExit = onExit(callWith(this, this.disable))\n  }\n  this._tty.on('resize', this._$$handleSizeChange)\n  if (this._fixedFramerate) {\n    this.redrawTracker = setInterval(this._$$doRedraw, this._updateInterval)\n    if (this.redrawTracker.unref) this.redrawTracker.unref()\n  }\n}\n\nGauge.prototype._disableEvents = function () {\n  this._tty.removeListener('resize', this._$$handleSizeChange)\n  if (this._fixedFramerate) clearInterval(this.redrawTracker)\n  if (this._removeOnExit) this._removeOnExit()\n}\n\nGauge.prototype.hide = function (cb) {\n  if (this._disabled) return cb && process.nextTick(cb)\n  if (!this._showing) return cb && process.nextTick(cb)\n  this._showing = false\n  this._doRedraw()\n  cb && setImmediate(cb)\n}\n\nGauge.prototype.show = function (section, completed) {\n  this._showing = true\n  if (typeof section === 'string') {\n    this._status.section = section\n  } else if (typeof section === 'object') {\n    var sectionKeys = Object.keys(section)\n    for (var ii = 0; ii < sectionKeys.length; ++ii) {\n      var key = sectionKeys[ii]\n      this._status[key] = section[key]\n    }\n  }\n  if (completed != null) this._status.completed = completed\n  if (this._disabled) return\n  this._requestRedraw()\n}\n\nGauge.prototype.pulse = function (subsection) {\n  this._status.subsection = subsection || ''\n  this._status.spun++\n  if (this._disabled) return\n  if (!this._showing) return\n  this._requestRedraw()\n}\n\nGauge.prototype._handleSizeChange = function () {\n  this._gauge.setWidth(this._tty.columns - 1)\n  this._requestRedraw()\n}\n\nGauge.prototype._doRedraw = function () {\n  if (this._disabled || this._paused) return\n  if (!this._fixedFramerate) {\n    var now = Date.now()\n    if (this._lastUpdateAt && now - this._lastUpdateAt < this._updateInterval) return\n    this._lastUpdateAt = now\n  }\n  if (!this._showing && this._onScreen) {\n    this._onScreen = false\n    var result = this._gauge.hide()\n    if (this._hideCursor) {\n      result += this._gauge.showCursor()\n    }\n    return this._writeTo.write(result)\n  }\n  if (!this._showing && !this._onScreen) return\n  if (this._showing && !this._onScreen) {\n    this._onScreen = true\n    this._needsRedraw = true\n    if (this._hideCursor) {\n      this._writeTo.write(this._gauge.hideCursor())\n    }\n  }\n  if (!this._needsRedraw) return\n  if (!this._writeTo.write(this._gauge.show(this._status))) {\n    this._paused = true\n    this._writeTo.on('drain', callWith(this, function () {\n      this._paused = false\n      this._doRedraw()\n    }))\n  }\n}\n","module.exports = function (blocking) {\n  [process.stdout, process.stderr].forEach(function (stream) {\n    if (stream._handle && stream.isTTY && typeof stream._handle.setBlocking === 'function') {\n      stream._handle.setBlocking(blocking)\n    }\n  })\n}\n","'use strict'\nvar Progress = require('are-we-there-yet')\nvar Gauge = require('gauge')\nvar EE = require('events').EventEmitter\nvar log = exports = module.exports = new EE()\nvar util = require('util')\n\nvar setBlocking = require('set-blocking')\nvar consoleControl = require('console-control-strings')\n\nsetBlocking(true)\nvar stream = process.stderr\nObject.defineProperty(log, 'stream', {\n  set: function (newStream) {\n    stream = newStream\n    if (this.gauge) {\n      this.gauge.setWriteTo(stream, stream)\n    }\n  },\n  get: function () {\n    return stream\n  },\n})\n\n// by default, decide based on tty-ness.\nvar colorEnabled\nlog.useColor = function () {\n  return colorEnabled != null ? colorEnabled : stream.isTTY\n}\n\nlog.enableColor = function () {\n  colorEnabled = true\n  this.gauge.setTheme({hasColor: colorEnabled, hasUnicode: unicodeEnabled})\n}\nlog.disableColor = function () {\n  colorEnabled = false\n  this.gauge.setTheme({hasColor: colorEnabled, hasUnicode: unicodeEnabled})\n}\n\n// default level\nlog.level = 'info'\n\nlog.gauge = new Gauge(stream, {\n  enabled: false, // no progress bars unless asked\n  theme: {hasColor: log.useColor()},\n  template: [\n    {type: 'progressbar', length: 20},\n    {type: 'activityIndicator', kerning: 1, length: 1},\n    {type: 'section', default: ''},\n    ':',\n    {type: 'logline', kerning: 1, default: ''},\n  ],\n})\n\nlog.tracker = new Progress.TrackerGroup()\n\n// we track this separately as we may need to temporarily disable the\n// display of the status bar for our own loggy purposes.\nlog.progressEnabled = log.gauge.isEnabled()\n\nvar unicodeEnabled\n\nlog.enableUnicode = function () {\n  unicodeEnabled = true\n  this.gauge.setTheme({hasColor: this.useColor(), hasUnicode: unicodeEnabled})\n}\n\nlog.disableUnicode = function () {\n  unicodeEnabled = false\n  this.gauge.setTheme({hasColor: this.useColor(), hasUnicode: unicodeEnabled})\n}\n\nlog.setGaugeThemeset = function (themes) {\n  this.gauge.setThemeset(themes)\n}\n\nlog.setGaugeTemplate = function (template) {\n  this.gauge.setTemplate(template)\n}\n\nlog.enableProgress = function () {\n  if (this.progressEnabled) {\n    return\n  }\n\n  this.progressEnabled = true\n  this.tracker.on('change', this.showProgress)\n  if (this._paused) {\n    return\n  }\n\n  this.gauge.enable()\n}\n\nlog.disableProgress = function () {\n  if (!this.progressEnabled) {\n    return\n  }\n  this.progressEnabled = false\n  this.tracker.removeListener('change', this.showProgress)\n  this.gauge.disable()\n}\n\nvar trackerConstructors = ['newGroup', 'newItem', 'newStream']\n\nvar mixinLog = function (tracker) {\n  // mixin the public methods from log into the tracker\n  // (except: conflicts and one's we handle specially)\n  Object.keys(log).forEach(function (P) {\n    if (P[0] === '_') {\n      return\n    }\n\n    if (trackerConstructors.filter(function (C) {\n      return C === P\n    }).length) {\n      return\n    }\n\n    if (tracker[P]) {\n      return\n    }\n\n    if (typeof log[P] !== 'function') {\n      return\n    }\n\n    var func = log[P]\n    tracker[P] = function () {\n      return func.apply(log, arguments)\n    }\n  })\n  // if the new tracker is a group, make sure any subtrackers get\n  // mixed in too\n  if (tracker instanceof Progress.TrackerGroup) {\n    trackerConstructors.forEach(function (C) {\n      var func = tracker[C]\n      tracker[C] = function () {\n        return mixinLog(func.apply(tracker, arguments))\n      }\n    })\n  }\n  return tracker\n}\n\n// Add tracker constructors to the top level log object\ntrackerConstructors.forEach(function (C) {\n  log[C] = function () {\n    return mixinLog(this.tracker[C].apply(this.tracker, arguments))\n  }\n})\n\nlog.clearProgress = function (cb) {\n  if (!this.progressEnabled) {\n    return cb && process.nextTick(cb)\n  }\n\n  this.gauge.hide(cb)\n}\n\nlog.showProgress = function (name, completed) {\n  if (!this.progressEnabled) {\n    return\n  }\n\n  var values = {}\n  if (name) {\n    values.section = name\n  }\n\n  var last = log.record[log.record.length - 1]\n  if (last) {\n    values.subsection = last.prefix\n    var disp = log.disp[last.level] || last.level\n    var logline = this._format(disp, log.style[last.level])\n    if (last.prefix) {\n      logline += ' ' + this._format(last.prefix, this.prefixStyle)\n    }\n\n    logline += ' ' + last.message.split(/\\r?\\n/)[0]\n    values.logline = logline\n  }\n  values.completed = completed || this.tracker.completed()\n  this.gauge.show(values)\n}.bind(log) // bind for use in tracker's on-change listener\n\n// temporarily stop emitting, but don't drop\nlog.pause = function () {\n  this._paused = true\n  if (this.progressEnabled) {\n    this.gauge.disable()\n  }\n}\n\nlog.resume = function () {\n  if (!this._paused) {\n    return\n  }\n\n  this._paused = false\n\n  var b = this._buffer\n  this._buffer = []\n  b.forEach(function (m) {\n    this.emitLog(m)\n  }, this)\n  if (this.progressEnabled) {\n    this.gauge.enable()\n  }\n}\n\nlog._buffer = []\n\nvar id = 0\nlog.record = []\nlog.maxRecordSize = 10000\nlog.log = function (lvl, prefix, message) {\n  var l = this.levels[lvl]\n  if (l === undefined) {\n    return this.emit('error', new Error(util.format(\n      'Undefined log level: %j', lvl)))\n  }\n\n  var a = new Array(arguments.length - 2)\n  var stack = null\n  for (var i = 2; i < arguments.length; i++) {\n    var arg = a[i - 2] = arguments[i]\n\n    // resolve stack traces to a plain string.\n    if (typeof arg === 'object' && arg instanceof Error && arg.stack) {\n      Object.defineProperty(arg, 'stack', {\n        value: stack = arg.stack + '',\n        enumerable: true,\n        writable: true,\n      })\n    }\n  }\n  if (stack) {\n    a.unshift(stack + '\\n')\n  }\n  message = util.format.apply(util, a)\n\n  var m = {\n    id: id++,\n    level: lvl,\n    prefix: String(prefix || ''),\n    message: message,\n    messageRaw: a,\n  }\n\n  this.emit('log', m)\n  this.emit('log.' + lvl, m)\n  if (m.prefix) {\n    this.emit(m.prefix, m)\n  }\n\n  this.record.push(m)\n  var mrs = this.maxRecordSize\n  var n = this.record.length - mrs\n  if (n > mrs / 10) {\n    var newSize = Math.floor(mrs * 0.9)\n    this.record = this.record.slice(-1 * newSize)\n  }\n\n  this.emitLog(m)\n}.bind(log)\n\nlog.emitLog = function (m) {\n  if (this._paused) {\n    this._buffer.push(m)\n    return\n  }\n  if (this.progressEnabled) {\n    this.gauge.pulse(m.prefix)\n  }\n\n  var l = this.levels[m.level]\n  if (l === undefined) {\n    return\n  }\n\n  if (l < this.levels[this.level]) {\n    return\n  }\n\n  if (l > 0 && !isFinite(l)) {\n    return\n  }\n\n  // If 'disp' is null or undefined, use the lvl as a default\n  // Allows: '', 0 as valid disp\n  var disp = log.disp[m.level] != null ? log.disp[m.level] : m.level\n  this.clearProgress()\n  m.message.split(/\\r?\\n/).forEach(function (line) {\n    if (this.heading) {\n      this.write(this.heading, this.headingStyle)\n      this.write(' ')\n    }\n    this.write(disp, log.style[m.level])\n    var p = m.prefix || ''\n    if (p) {\n      this.write(' ')\n    }\n\n    this.write(p, this.prefixStyle)\n    this.write(' ' + line + '\\n')\n  }, this)\n  this.showProgress()\n}\n\nlog._format = function (msg, style) {\n  if (!stream) {\n    return\n  }\n\n  var output = ''\n  if (this.useColor()) {\n    style = style || {}\n    var settings = []\n    if (style.fg) {\n      settings.push(style.fg)\n    }\n\n    if (style.bg) {\n      settings.push('bg' + style.bg[0].toUpperCase() + style.bg.slice(1))\n    }\n\n    if (style.bold) {\n      settings.push('bold')\n    }\n\n    if (style.underline) {\n      settings.push('underline')\n    }\n\n    if (style.inverse) {\n      settings.push('inverse')\n    }\n\n    if (settings.length) {\n      output += consoleControl.color(settings)\n    }\n\n    if (style.beep) {\n      output += consoleControl.beep()\n    }\n  }\n  output += msg\n  if (this.useColor()) {\n    output += consoleControl.color('reset')\n  }\n\n  return output\n}\n\nlog.write = function (msg, style) {\n  if (!stream) {\n    return\n  }\n\n  stream.write(this._format(msg, style))\n}\n\nlog.addLevel = function (lvl, n, style, disp) {\n  // If 'disp' is null or undefined, use the lvl as a default\n  if (disp == null) {\n    disp = lvl\n  }\n\n  this.levels[lvl] = n\n  this.style[lvl] = style\n  if (!this[lvl]) {\n    this[lvl] = function () {\n      var a = new Array(arguments.length + 1)\n      a[0] = lvl\n      for (var i = 0; i < arguments.length; i++) {\n        a[i + 1] = arguments[i]\n      }\n\n      return this.log.apply(this, a)\n    }.bind(this)\n  }\n  this.disp[lvl] = disp\n}\n\nlog.prefixStyle = { fg: 'magenta' }\nlog.headingStyle = { fg: 'white', bg: 'black' }\n\nlog.style = {}\nlog.levels = {}\nlog.disp = {}\nlog.addLevel('silly', -Infinity, { inverse: true }, 'sill')\nlog.addLevel('verbose', 1000, { fg: 'blue', bg: 'black' }, 'verb')\nlog.addLevel('info', 2000, { fg: 'green' })\nlog.addLevel('timing', 2500, { fg: 'green', bg: 'black' })\nlog.addLevel('http', 3000, { fg: 'green', bg: 'black' })\nlog.addLevel('notice', 3500, { fg: 'blue', bg: 'black' })\nlog.addLevel('warn', 4000, { fg: 'black', bg: 'yellow' }, 'WARN')\nlog.addLevel('error', 5000, { fg: 'red', bg: 'black' }, 'ERR!')\nlog.addLevel('silent', Infinity)\n\n// allow 'error' prefix\nlog.on('error', function () {})\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar pathModule = require('path');\nvar isWindows = process.platform === 'win32';\nvar fs = require('fs');\n\n// JavaScript implementation of realpath, ported from node pre-v6\n\nvar DEBUG = process.env.NODE_DEBUG && /fs/.test(process.env.NODE_DEBUG);\n\nfunction rethrow() {\n  // Only enable in debug mode. A backtrace uses ~1000 bytes of heap space and\n  // is fairly slow to generate.\n  var callback;\n  if (DEBUG) {\n    var backtrace = new Error;\n    callback = debugCallback;\n  } else\n    callback = missingCallback;\n\n  return callback;\n\n  function debugCallback(err) {\n    if (err) {\n      backtrace.message = err.message;\n      err = backtrace;\n      missingCallback(err);\n    }\n  }\n\n  function missingCallback(err) {\n    if (err) {\n      if (process.throwDeprecation)\n        throw err;  // Forgot a callback but don't know where? Use NODE_DEBUG=fs\n      else if (!process.noDeprecation) {\n        var msg = 'fs: missing callback ' + (err.stack || err.message);\n        if (process.traceDeprecation)\n          console.trace(msg);\n        else\n          console.error(msg);\n      }\n    }\n  }\n}\n\nfunction maybeCallback(cb) {\n  return typeof cb === 'function' ? cb : rethrow();\n}\n\nvar normalize = pathModule.normalize;\n\n// Regexp that finds the next partion of a (partial) path\n// result is [base_with_slash, base], e.g. ['somedir/', 'somedir']\nif (isWindows) {\n  var nextPartRe = /(.*?)(?:[\\/\\\\]+|$)/g;\n} else {\n  var nextPartRe = /(.*?)(?:[\\/]+|$)/g;\n}\n\n// Regex to find the device root, including trailing slash. E.g. 'c:\\\\'.\nif (isWindows) {\n  var splitRootRe = /^(?:[a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/][^\\\\\\/]+)?[\\\\\\/]*/;\n} else {\n  var splitRootRe = /^[\\/]*/;\n}\n\nexports.realpathSync = function realpathSync(p, cache) {\n  // make p is absolute\n  p = pathModule.resolve(p);\n\n  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n    return cache[p];\n  }\n\n  var original = p,\n      seenLinks = {},\n      knownHard = {};\n\n  // current character position in p\n  var pos;\n  // the partial path so far, including a trailing slash if any\n  var current;\n  // the partial path without a trailing slash (except when pointing at a root)\n  var base;\n  // the partial path scanned in the previous round, with slash\n  var previous;\n\n  start();\n\n  function start() {\n    // Skip over roots\n    var m = splitRootRe.exec(p);\n    pos = m[0].length;\n    current = m[0];\n    base = m[0];\n    previous = '';\n\n    // On windows, check that the root exists. On unix there is no need.\n    if (isWindows && !knownHard[base]) {\n      fs.lstatSync(base);\n      knownHard[base] = true;\n    }\n  }\n\n  // walk down the path, swapping out linked pathparts for their real\n  // values\n  // NB: p.length changes.\n  while (pos < p.length) {\n    // find the next part\n    nextPartRe.lastIndex = pos;\n    var result = nextPartRe.exec(p);\n    previous = current;\n    current += result[0];\n    base = previous + result[1];\n    pos = nextPartRe.lastIndex;\n\n    // continue if not a symlink\n    if (knownHard[base] || (cache && cache[base] === base)) {\n      continue;\n    }\n\n    var resolvedLink;\n    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n      // some known symbolic link.  no need to stat again.\n      resolvedLink = cache[base];\n    } else {\n      var stat = fs.lstatSync(base);\n      if (!stat.isSymbolicLink()) {\n        knownHard[base] = true;\n        if (cache) cache[base] = base;\n        continue;\n      }\n\n      // read the link if it wasn't read before\n      // dev/ino always return 0 on windows, so skip the check.\n      var linkTarget = null;\n      if (!isWindows) {\n        var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n        if (seenLinks.hasOwnProperty(id)) {\n          linkTarget = seenLinks[id];\n        }\n      }\n      if (linkTarget === null) {\n        fs.statSync(base);\n        linkTarget = fs.readlinkSync(base);\n      }\n      resolvedLink = pathModule.resolve(previous, linkTarget);\n      // track this, if given a cache.\n      if (cache) cache[base] = resolvedLink;\n      if (!isWindows) seenLinks[id] = linkTarget;\n    }\n\n    // resolve the link, then start over\n    p = pathModule.resolve(resolvedLink, p.slice(pos));\n    start();\n  }\n\n  if (cache) cache[original] = p;\n\n  return p;\n};\n\n\nexports.realpath = function realpath(p, cache, cb) {\n  if (typeof cb !== 'function') {\n    cb = maybeCallback(cache);\n    cache = null;\n  }\n\n  // make p is absolute\n  p = pathModule.resolve(p);\n\n  if (cache && Object.prototype.hasOwnProperty.call(cache, p)) {\n    return process.nextTick(cb.bind(null, null, cache[p]));\n  }\n\n  var original = p,\n      seenLinks = {},\n      knownHard = {};\n\n  // current character position in p\n  var pos;\n  // the partial path so far, including a trailing slash if any\n  var current;\n  // the partial path without a trailing slash (except when pointing at a root)\n  var base;\n  // the partial path scanned in the previous round, with slash\n  var previous;\n\n  start();\n\n  function start() {\n    // Skip over roots\n    var m = splitRootRe.exec(p);\n    pos = m[0].length;\n    current = m[0];\n    base = m[0];\n    previous = '';\n\n    // On windows, check that the root exists. On unix there is no need.\n    if (isWindows && !knownHard[base]) {\n      fs.lstat(base, function(err) {\n        if (err) return cb(err);\n        knownHard[base] = true;\n        LOOP();\n      });\n    } else {\n      process.nextTick(LOOP);\n    }\n  }\n\n  // walk down the path, swapping out linked pathparts for their real\n  // values\n  function LOOP() {\n    // stop if scanned past end of path\n    if (pos >= p.length) {\n      if (cache) cache[original] = p;\n      return cb(null, p);\n    }\n\n    // find the next part\n    nextPartRe.lastIndex = pos;\n    var result = nextPartRe.exec(p);\n    previous = current;\n    current += result[0];\n    base = previous + result[1];\n    pos = nextPartRe.lastIndex;\n\n    // continue if not a symlink\n    if (knownHard[base] || (cache && cache[base] === base)) {\n      return process.nextTick(LOOP);\n    }\n\n    if (cache && Object.prototype.hasOwnProperty.call(cache, base)) {\n      // known symbolic link.  no need to stat again.\n      return gotResolvedLink(cache[base]);\n    }\n\n    return fs.lstat(base, gotStat);\n  }\n\n  function gotStat(err, stat) {\n    if (err) return cb(err);\n\n    // if not a symlink, skip to the next path part\n    if (!stat.isSymbolicLink()) {\n      knownHard[base] = true;\n      if (cache) cache[base] = base;\n      return process.nextTick(LOOP);\n    }\n\n    // stat & read the link if not read before\n    // call gotTarget as soon as the link target is known\n    // dev/ino always return 0 on windows, so skip the check.\n    if (!isWindows) {\n      var id = stat.dev.toString(32) + ':' + stat.ino.toString(32);\n      if (seenLinks.hasOwnProperty(id)) {\n        return gotTarget(null, seenLinks[id], base);\n      }\n    }\n    fs.stat(base, function(err) {\n      if (err) return cb(err);\n\n      fs.readlink(base, function(err, target) {\n        if (!isWindows) seenLinks[id] = target;\n        gotTarget(err, target);\n      });\n    });\n  }\n\n  function gotTarget(err, target, base) {\n    if (err) return cb(err);\n\n    var resolvedLink = pathModule.resolve(previous, target);\n    if (cache) cache[base] = resolvedLink;\n    gotResolvedLink(resolvedLink);\n  }\n\n  function gotResolvedLink(resolvedLink) {\n    // resolve the link, then start over\n    p = pathModule.resolve(resolvedLink, p.slice(pos));\n    start();\n  }\n};\n","module.exports = realpath\nrealpath.realpath = realpath\nrealpath.sync = realpathSync\nrealpath.realpathSync = realpathSync\nrealpath.monkeypatch = monkeypatch\nrealpath.unmonkeypatch = unmonkeypatch\n\nvar fs = require('fs')\nvar origRealpath = fs.realpath\nvar origRealpathSync = fs.realpathSync\n\nvar version = process.version\nvar ok = /^v[0-5]\\./.test(version)\nvar old = require('./old.js')\n\nfunction newError (er) {\n  return er && er.syscall === 'realpath' && (\n    er.code === 'ELOOP' ||\n    er.code === 'ENOMEM' ||\n    er.code === 'ENAMETOOLONG'\n  )\n}\n\nfunction realpath (p, cache, cb) {\n  if (ok) {\n    return origRealpath(p, cache, cb)\n  }\n\n  if (typeof cache === 'function') {\n    cb = cache\n    cache = null\n  }\n  origRealpath(p, cache, function (er, result) {\n    if (newError(er)) {\n      old.realpath(p, cache, cb)\n    } else {\n      cb(er, result)\n    }\n  })\n}\n\nfunction realpathSync (p, cache) {\n  if (ok) {\n    return origRealpathSync(p, cache)\n  }\n\n  try {\n    return origRealpathSync(p, cache)\n  } catch (er) {\n    if (newError(er)) {\n      return old.realpathSync(p, cache)\n    } else {\n      throw er\n    }\n  }\n}\n\nfunction monkeypatch () {\n  fs.realpath = realpath\n  fs.realpathSync = realpathSync\n}\n\nfunction unmonkeypatch () {\n  fs.realpath = origRealpath\n  fs.realpathSync = origRealpathSync\n}\n","module.exports = function (xs, fn) {\n    var res = [];\n    for (var i = 0; i < xs.length; i++) {\n        var x = fn(xs[i], i);\n        if (isArray(x)) res.push.apply(res, x);\n        else res.push(x);\n    }\n    return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n    return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    if(a===b) {\n      return [ai, bi];\n    }\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n  return parseInt(str, 10) == str\n    ? parseInt(str, 10)\n    : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n  return str.split('\\\\\\\\').join(escSlash)\n            .split('\\\\{').join(escOpen)\n            .split('\\\\}').join(escClose)\n            .split('\\\\,').join(escComma)\n            .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n  return str.split(escSlash).join('\\\\')\n            .split(escOpen).join('{')\n            .split(escClose).join('}')\n            .split(escComma).join(',')\n            .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n  if (!str)\n    return [''];\n\n  var parts = [];\n  var m = balanced('{', '}', str);\n\n  if (!m)\n    return str.split(',');\n\n  var pre = m.pre;\n  var body = m.body;\n  var post = m.post;\n  var p = pre.split(',');\n\n  p[p.length-1] += '{' + body + '}';\n  var postParts = parseCommaParts(post);\n  if (post.length) {\n    p[p.length-1] += postParts.shift();\n    p.push.apply(p, postParts);\n  }\n\n  parts.push.apply(parts, p);\n\n  return parts;\n}\n\nfunction expandTop(str) {\n  if (!str)\n    return [];\n\n  // I don't know why Bash 4.3 does this, but it does.\n  // Anything starting with {} will have the first two bytes preserved\n  // but *only* at the top level, so {},a}b will not expand to anything,\n  // but a{},b}c will be expanded to [a}c,abc].\n  // One could argue that this is a bug in Bash, but since the goal of\n  // this module is to match Bash's rules, we escape a leading {}\n  if (str.substr(0, 2) === '{}') {\n    str = '\\\\{\\\\}' + str.substr(2);\n  }\n\n  return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n  return e;\n}\n\nfunction embrace(str) {\n  return '{' + str + '}';\n}\nfunction isPadded(el) {\n  return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n  return i <= y;\n}\nfunction gte(i, y) {\n  return i >= y;\n}\n\nfunction expand(str, isTop) {\n  var expansions = [];\n\n  var m = balanced('{', '}', str);\n  if (!m || /\\$$/.test(m.pre)) return [str];\n\n  var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n  var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n  var isSequence = isNumericSequence || isAlphaSequence;\n  var isOptions = m.body.indexOf(',') >= 0;\n  if (!isSequence && !isOptions) {\n    // {a},b}\n    if (m.post.match(/,.*\\}/)) {\n      str = m.pre + '{' + m.body + escClose + m.post;\n      return expand(str);\n    }\n    return [str];\n  }\n\n  var n;\n  if (isSequence) {\n    n = m.body.split(/\\.\\./);\n  } else {\n    n = parseCommaParts(m.body);\n    if (n.length === 1) {\n      // x{{a,b}}y ==> x{a}y x{b}y\n      n = expand(n[0], false).map(embrace);\n      if (n.length === 1) {\n        var post = m.post.length\n          ? expand(m.post, false)\n          : [''];\n        return post.map(function(p) {\n          return m.pre + n[0] + p;\n        });\n      }\n    }\n  }\n\n  // at this point, n is the parts, and we know it's not a comma set\n  // with a single entry.\n\n  // no need to expand pre, since it is guaranteed to be free of brace-sets\n  var pre = m.pre;\n  var post = m.post.length\n    ? expand(m.post, false)\n    : [''];\n\n  var N;\n\n  if (isSequence) {\n    var x = numeric(n[0]);\n    var y = numeric(n[1]);\n    var width = Math.max(n[0].length, n[1].length)\n    var incr = n.length == 3\n      ? Math.abs(numeric(n[2]))\n      : 1;\n    var test = lte;\n    var reverse = y < x;\n    if (reverse) {\n      incr *= -1;\n      test = gte;\n    }\n    var pad = n.some(isPadded);\n\n    N = [];\n\n    for (var i = x; test(i, y); i += incr) {\n      var c;\n      if (isAlphaSequence) {\n        c = String.fromCharCode(i);\n        if (c === '\\\\')\n          c = '';\n      } else {\n        c = String(i);\n        if (pad) {\n          var need = width - c.length;\n          if (need > 0) {\n            var z = new Array(need + 1).join('0');\n            if (i < 0)\n              c = '-' + z + c.slice(1);\n            else\n              c = z + c;\n          }\n        }\n      }\n      N.push(c);\n    }\n  } else {\n    N = concatMap(n, function(el) { return expand(el, false) });\n  }\n\n  for (var j = 0; j < N.length; j++) {\n    for (var k = 0; k < post.length; k++) {\n      var expansion = pre + N[j] + post[k];\n      if (!isTop || isSequence || expansion)\n        expansions.push(expansion);\n    }\n  }\n\n  return expansions;\n}\n\n","module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = (function () { try { return require('path') } catch (e) {}}()) || {\n  sep: '/'\n}\nminimatch.sep = path.sep\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n  '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n  '?': { open: '(?:', close: ')?' },\n  '+': { open: '(?:', close: ')+' },\n  '*': { open: '(?:', close: ')*' },\n  '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n  return s.split('').reduce(function (set, c) {\n    set[c] = true\n    return set\n  }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n  options = options || {}\n  return function (p, i, list) {\n    return minimatch(p, pattern, options)\n  }\n}\n\nfunction ext (a, b) {\n  b = b || {}\n  var t = {}\n  Object.keys(a).forEach(function (k) {\n    t[k] = a[k]\n  })\n  Object.keys(b).forEach(function (k) {\n    t[k] = b[k]\n  })\n  return t\n}\n\nminimatch.defaults = function (def) {\n  if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n    return minimatch\n  }\n\n  var orig = minimatch\n\n  var m = function minimatch (p, pattern, options) {\n    return orig(p, pattern, ext(def, options))\n  }\n\n  m.Minimatch = function Minimatch (pattern, options) {\n    return new orig.Minimatch(pattern, ext(def, options))\n  }\n  m.Minimatch.defaults = function defaults (options) {\n    return orig.defaults(ext(def, options)).Minimatch\n  }\n\n  m.filter = function filter (pattern, options) {\n    return orig.filter(pattern, ext(def, options))\n  }\n\n  m.defaults = function defaults (options) {\n    return orig.defaults(ext(def, options))\n  }\n\n  m.makeRe = function makeRe (pattern, options) {\n    return orig.makeRe(pattern, ext(def, options))\n  }\n\n  m.braceExpand = function braceExpand (pattern, options) {\n    return orig.braceExpand(pattern, ext(def, options))\n  }\n\n  m.match = function (list, pattern, options) {\n    return orig.match(list, pattern, ext(def, options))\n  }\n\n  return m\n}\n\nMinimatch.defaults = function (def) {\n  return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n  assertValidPattern(pattern)\n\n  if (!options) options = {}\n\n  // shortcut: comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    return false\n  }\n\n  return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n  if (!(this instanceof Minimatch)) {\n    return new Minimatch(pattern, options)\n  }\n\n  assertValidPattern(pattern)\n\n  if (!options) options = {}\n\n  pattern = pattern.trim()\n\n  // windows support: need to use /, not \\\n  if (!options.allowWindowsEscape && path.sep !== '/') {\n    pattern = pattern.split(path.sep).join('/')\n  }\n\n  this.options = options\n  this.set = []\n  this.pattern = pattern\n  this.regexp = null\n  this.negate = false\n  this.comment = false\n  this.empty = false\n  this.partial = !!options.partial\n\n  // make the set of regexps etc.\n  this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n  var pattern = this.pattern\n  var options = this.options\n\n  // empty patterns and comments match nothing.\n  if (!options.nocomment && pattern.charAt(0) === '#') {\n    this.comment = true\n    return\n  }\n  if (!pattern) {\n    this.empty = true\n    return\n  }\n\n  // step 1: figure out negation, etc.\n  this.parseNegate()\n\n  // step 2: expand braces\n  var set = this.globSet = this.braceExpand()\n\n  if (options.debug) this.debug = function debug() { console.error.apply(console, arguments) }\n\n  this.debug(this.pattern, set)\n\n  // step 3: now we have a set, so turn each one into a series of path-portion\n  // matching patterns.\n  // These will be regexps, except in the case of \"**\", which is\n  // set to the GLOBSTAR object for globstar behavior,\n  // and will not contain any / characters\n  set = this.globParts = set.map(function (s) {\n    return s.split(slashSplit)\n  })\n\n  this.debug(this.pattern, set)\n\n  // glob --> regexps\n  set = set.map(function (s, si, set) {\n    return s.map(this.parse, this)\n  }, this)\n\n  this.debug(this.pattern, set)\n\n  // filter out everything that didn't compile properly.\n  set = set.filter(function (s) {\n    return s.indexOf(false) === -1\n  })\n\n  this.debug(this.pattern, set)\n\n  this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n  var pattern = this.pattern\n  var negate = false\n  var options = this.options\n  var negateOffset = 0\n\n  if (options.nonegate) return\n\n  for (var i = 0, l = pattern.length\n    ; i < l && pattern.charAt(i) === '!'\n    ; i++) {\n    negate = !negate\n    negateOffset++\n  }\n\n  if (negateOffset) this.pattern = pattern.substr(negateOffset)\n  this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n  return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n  if (!options) {\n    if (this instanceof Minimatch) {\n      options = this.options\n    } else {\n      options = {}\n    }\n  }\n\n  pattern = typeof pattern === 'undefined'\n    ? this.pattern : pattern\n\n  assertValidPattern(pattern)\n\n  // Thanks to Yeting Li <https://github.com/yetingli> for\n  // improving this regexp to avoid a ReDOS vulnerability.\n  if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n    // shortcut. no need to expand.\n    return [pattern]\n  }\n\n  return expand(pattern)\n}\n\nvar MAX_PATTERN_LENGTH = 1024 * 64\nvar assertValidPattern = function (pattern) {\n  if (typeof pattern !== 'string') {\n    throw new TypeError('invalid pattern')\n  }\n\n  if (pattern.length > MAX_PATTERN_LENGTH) {\n    throw new TypeError('pattern is too long')\n  }\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n  assertValidPattern(pattern)\n\n  var options = this.options\n\n  // shortcuts\n  if (pattern === '**') {\n    if (!options.noglobstar)\n      return GLOBSTAR\n    else\n      pattern = '*'\n  }\n  if (pattern === '') return ''\n\n  var re = ''\n  var hasMagic = !!options.nocase\n  var escaping = false\n  // ? => one single character\n  var patternListStack = []\n  var negativeLists = []\n  var stateChar\n  var inClass = false\n  var reClassStart = -1\n  var classStart = -1\n  // . and .. never match anything that doesn't start with .,\n  // even when options.dot is set.\n  var patternStart = pattern.charAt(0) === '.' ? '' // anything\n  // not (start or / followed by . or .. followed by / or end)\n  : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n  : '(?!\\\\.)'\n  var self = this\n\n  function clearStateChar () {\n    if (stateChar) {\n      // we had some state-tracking character\n      // that wasn't consumed by this pass.\n      switch (stateChar) {\n        case '*':\n          re += star\n          hasMagic = true\n        break\n        case '?':\n          re += qmark\n          hasMagic = true\n        break\n        default:\n          re += '\\\\' + stateChar\n        break\n      }\n      self.debug('clearStateChar %j %j', stateChar, re)\n      stateChar = false\n    }\n  }\n\n  for (var i = 0, len = pattern.length, c\n    ; (i < len) && (c = pattern.charAt(i))\n    ; i++) {\n    this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n    // skip over any that are escaped.\n    if (escaping && reSpecials[c]) {\n      re += '\\\\' + c\n      escaping = false\n      continue\n    }\n\n    switch (c) {\n      /* istanbul ignore next */\n      case '/': {\n        // completely not allowed, even escaped.\n        // Should already be path-split by now.\n        return false\n      }\n\n      case '\\\\':\n        clearStateChar()\n        escaping = true\n      continue\n\n      // the various stateChar values\n      // for the \"extglob\" stuff.\n      case '?':\n      case '*':\n      case '+':\n      case '@':\n      case '!':\n        this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n        // all of those are literals inside a class, except that\n        // the glob [!a] means [^a] in regexp\n        if (inClass) {\n          this.debug('  in class')\n          if (c === '!' && i === classStart + 1) c = '^'\n          re += c\n          continue\n        }\n\n        // if we already have a stateChar, then it means\n        // that there was something like ** or +? in there.\n        // Handle the stateChar, then proceed with this one.\n        self.debug('call clearStateChar %j', stateChar)\n        clearStateChar()\n        stateChar = c\n        // if extglob is disabled, then +(asdf|foo) isn't a thing.\n        // just clear the statechar *now*, rather than even diving into\n        // the patternList stuff.\n        if (options.noext) clearStateChar()\n      continue\n\n      case '(':\n        if (inClass) {\n          re += '('\n          continue\n        }\n\n        if (!stateChar) {\n          re += '\\\\('\n          continue\n        }\n\n        patternListStack.push({\n          type: stateChar,\n          start: i - 1,\n          reStart: re.length,\n          open: plTypes[stateChar].open,\n          close: plTypes[stateChar].close\n        })\n        // negation is (?:(?!js)[^/]*)\n        re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n        this.debug('plType %j %j', stateChar, re)\n        stateChar = false\n      continue\n\n      case ')':\n        if (inClass || !patternListStack.length) {\n          re += '\\\\)'\n          continue\n        }\n\n        clearStateChar()\n        hasMagic = true\n        var pl = patternListStack.pop()\n        // negation is (?:(?!js)[^/]*)\n        // The others are (?:<pattern>)<type>\n        re += pl.close\n        if (pl.type === '!') {\n          negativeLists.push(pl)\n        }\n        pl.reEnd = re.length\n      continue\n\n      case '|':\n        if (inClass || !patternListStack.length || escaping) {\n          re += '\\\\|'\n          escaping = false\n          continue\n        }\n\n        clearStateChar()\n        re += '|'\n      continue\n\n      // these are mostly the same in regexp and glob\n      case '[':\n        // swallow any state-tracking char before the [\n        clearStateChar()\n\n        if (inClass) {\n          re += '\\\\' + c\n          continue\n        }\n\n        inClass = true\n        classStart = i\n        reClassStart = re.length\n        re += c\n      continue\n\n      case ']':\n        //  a right bracket shall lose its special\n        //  meaning and represent itself in\n        //  a bracket expression if it occurs\n        //  first in the list.  -- POSIX.2 2.8.3.2\n        if (i === classStart + 1 || !inClass) {\n          re += '\\\\' + c\n          escaping = false\n          continue\n        }\n\n        // handle the case where we left a class open.\n        // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n        // split where the last [ was, make sure we don't have\n        // an invalid re. if so, re-walk the contents of the\n        // would-be class to re-translate any characters that\n        // were passed through as-is\n        // TODO: It would probably be faster to determine this\n        // without a try/catch and a new RegExp, but it's tricky\n        // to do safely.  For now, this is safe and works.\n        var cs = pattern.substring(classStart + 1, i)\n        try {\n          RegExp('[' + cs + ']')\n        } catch (er) {\n          // not a valid class!\n          var sp = this.parse(cs, SUBPARSE)\n          re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n          hasMagic = hasMagic || sp[1]\n          inClass = false\n          continue\n        }\n\n        // finish up the class.\n        hasMagic = true\n        inClass = false\n        re += c\n      continue\n\n      default:\n        // swallow any state char that wasn't consumed\n        clearStateChar()\n\n        if (escaping) {\n          // no need\n          escaping = false\n        } else if (reSpecials[c]\n          && !(c === '^' && inClass)) {\n          re += '\\\\'\n        }\n\n        re += c\n\n    } // switch\n  } // for\n\n  // handle the case where we left a class open.\n  // \"[abc\" is valid, equivalent to \"\\[abc\"\n  if (inClass) {\n    // split where the last [ was, and escape it\n    // this is a huge pita.  We now have to re-walk\n    // the contents of the would-be class to re-translate\n    // any characters that were passed through as-is\n    cs = pattern.substr(classStart + 1)\n    sp = this.parse(cs, SUBPARSE)\n    re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n    hasMagic = hasMagic || sp[1]\n  }\n\n  // handle the case where we had a +( thing at the *end*\n  // of the pattern.\n  // each pattern list stack adds 3 chars, and we need to go through\n  // and escape any | chars that were passed through as-is for the regexp.\n  // Go through and escape them, taking care not to double-escape any\n  // | chars that were already escaped.\n  for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n    var tail = re.slice(pl.reStart + pl.open.length)\n    this.debug('setting tail', re, pl)\n    // maybe some even number of \\, then maybe 1 \\, followed by a |\n    tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n      if (!$2) {\n        // the | isn't already escaped, so escape it.\n        $2 = '\\\\'\n      }\n\n      // need to escape all those slashes *again*, without escaping the\n      // one that we need for escaping the | character.  As it works out,\n      // escaping an even number of slashes can be done by simply repeating\n      // it exactly after itself.  That's why this trick works.\n      //\n      // I am sorry that you have to see this.\n      return $1 + $1 + $2 + '|'\n    })\n\n    this.debug('tail=%j\\n   %s', tail, tail, pl, re)\n    var t = pl.type === '*' ? star\n      : pl.type === '?' ? qmark\n      : '\\\\' + pl.type\n\n    hasMagic = true\n    re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n  }\n\n  // handle trailing things that only matter at the very end.\n  clearStateChar()\n  if (escaping) {\n    // trailing \\\\\n    re += '\\\\\\\\'\n  }\n\n  // only need to apply the nodot start if the re starts with\n  // something that could conceivably capture a dot\n  var addPatternStart = false\n  switch (re.charAt(0)) {\n    case '[': case '.': case '(': addPatternStart = true\n  }\n\n  // Hack to work around lack of negative lookbehind in JS\n  // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n  // like 'a.xyz.yz' doesn't match.  So, the first negative\n  // lookahead, has to look ALL the way ahead, to the end of\n  // the pattern.\n  for (var n = negativeLists.length - 1; n > -1; n--) {\n    var nl = negativeLists[n]\n\n    var nlBefore = re.slice(0, nl.reStart)\n    var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n    var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n    var nlAfter = re.slice(nl.reEnd)\n\n    nlLast += nlAfter\n\n    // Handle nested stuff like *(*.js|!(*.json)), where open parens\n    // mean that we should *not* include the ) in the bit that is considered\n    // \"after\" the negated section.\n    var openParensBefore = nlBefore.split('(').length - 1\n    var cleanAfter = nlAfter\n    for (i = 0; i < openParensBefore; i++) {\n      cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n    }\n    nlAfter = cleanAfter\n\n    var dollar = ''\n    if (nlAfter === '' && isSub !== SUBPARSE) {\n      dollar = '$'\n    }\n    var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n    re = newRe\n  }\n\n  // if the re is not \"\" at this point, then we need to make sure\n  // it doesn't match against an empty path part.\n  // Otherwise a/* will match a/, which it should not.\n  if (re !== '' && hasMagic) {\n    re = '(?=.)' + re\n  }\n\n  if (addPatternStart) {\n    re = patternStart + re\n  }\n\n  // parsing just a piece of a larger pattern.\n  if (isSub === SUBPARSE) {\n    return [re, hasMagic]\n  }\n\n  // skip the regexp for non-magical patterns\n  // unescape anything in it, though, so that it'll be\n  // an exact match against a file etc.\n  if (!hasMagic) {\n    return globUnescape(pattern)\n  }\n\n  var flags = options.nocase ? 'i' : ''\n  try {\n    var regExp = new RegExp('^' + re + '$', flags)\n  } catch (er) /* istanbul ignore next - should be impossible */ {\n    // If it was an invalid regular expression, then it can't match\n    // anything.  This trick looks for a character after the end of\n    // the string, which is of course impossible, except in multi-line\n    // mode, but it's not a /m regex.\n    return new RegExp('$.')\n  }\n\n  regExp._glob = pattern\n  regExp._src = re\n\n  return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n  return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n  if (this.regexp || this.regexp === false) return this.regexp\n\n  // at this point, this.set is a 2d array of partial\n  // pattern strings, or \"**\".\n  //\n  // It's better to use .match().  This function shouldn't\n  // be used, really, but it's pretty convenient sometimes,\n  // when you just want to work with a regex.\n  var set = this.set\n\n  if (!set.length) {\n    this.regexp = false\n    return this.regexp\n  }\n  var options = this.options\n\n  var twoStar = options.noglobstar ? star\n    : options.dot ? twoStarDot\n    : twoStarNoDot\n  var flags = options.nocase ? 'i' : ''\n\n  var re = set.map(function (pattern) {\n    return pattern.map(function (p) {\n      return (p === GLOBSTAR) ? twoStar\n      : (typeof p === 'string') ? regExpEscape(p)\n      : p._src\n    }).join('\\\\\\/')\n  }).join('|')\n\n  // must match entire pattern\n  // ending in a * or ** will make it less strict.\n  re = '^(?:' + re + ')$'\n\n  // can match anything, as long as it's not this.\n  if (this.negate) re = '^(?!' + re + ').*$'\n\n  try {\n    this.regexp = new RegExp(re, flags)\n  } catch (ex) /* istanbul ignore next - should be impossible */ {\n    this.regexp = false\n  }\n  return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n  options = options || {}\n  var mm = new Minimatch(pattern, options)\n  list = list.filter(function (f) {\n    return mm.match(f)\n  })\n  if (mm.options.nonull && !list.length) {\n    list.push(pattern)\n  }\n  return list\n}\n\nMinimatch.prototype.match = function match (f, partial) {\n  if (typeof partial === 'undefined') partial = this.partial\n  this.debug('match', f, this.pattern)\n  // short-circuit in the case of busted things.\n  // comments, etc.\n  if (this.comment) return false\n  if (this.empty) return f === ''\n\n  if (f === '/' && partial) return true\n\n  var options = this.options\n\n  // windows: need to use /, not \\\n  if (path.sep !== '/') {\n    f = f.split(path.sep).join('/')\n  }\n\n  // treat the test path as a set of pathparts.\n  f = f.split(slashSplit)\n  this.debug(this.pattern, 'split', f)\n\n  // just ONE of the pattern sets in this.set needs to match\n  // in order for it to be valid.  If negating, then just one\n  // match means that we have failed.\n  // Either way, return on the first hit.\n\n  var set = this.set\n  this.debug(this.pattern, 'set', set)\n\n  // Find the basename of the path by looking for the last non-empty segment\n  var filename\n  var i\n  for (i = f.length - 1; i >= 0; i--) {\n    filename = f[i]\n    if (filename) break\n  }\n\n  for (i = 0; i < set.length; i++) {\n    var pattern = set[i]\n    var file = f\n    if (options.matchBase && pattern.length === 1) {\n      file = [filename]\n    }\n    var hit = this.matchOne(file, pattern, partial)\n    if (hit) {\n      if (options.flipNegate) return true\n      return !this.negate\n    }\n  }\n\n  // didn't get any hits.  this is success if it's a negative\n  // pattern, failure otherwise.\n  if (options.flipNegate) return false\n  return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n  var options = this.options\n\n  this.debug('matchOne',\n    { 'this': this, file: file, pattern: pattern })\n\n  this.debug('matchOne', file.length, pattern.length)\n\n  for (var fi = 0,\n      pi = 0,\n      fl = file.length,\n      pl = pattern.length\n      ; (fi < fl) && (pi < pl)\n      ; fi++, pi++) {\n    this.debug('matchOne loop')\n    var p = pattern[pi]\n    var f = file[fi]\n\n    this.debug(pattern, p, f)\n\n    // should be impossible.\n    // some invalid regexp stuff in the set.\n    /* istanbul ignore if */\n    if (p === false) return false\n\n    if (p === GLOBSTAR) {\n      this.debug('GLOBSTAR', [pattern, p, f])\n\n      // \"**\"\n      // a/**/b/**/c would match the following:\n      // a/b/x/y/z/c\n      // a/x/y/z/b/c\n      // a/b/x/b/x/c\n      // a/b/c\n      // To do this, take the rest of the pattern after\n      // the **, and see if it would match the file remainder.\n      // If so, return success.\n      // If not, the ** \"swallows\" a segment, and try again.\n      // This is recursively awful.\n      //\n      // a/**/b/**/c matching a/b/x/y/z/c\n      // - a matches a\n      // - doublestar\n      //   - matchOne(b/x/y/z/c, b/**/c)\n      //     - b matches b\n      //     - doublestar\n      //       - matchOne(x/y/z/c, c) -> no\n      //       - matchOne(y/z/c, c) -> no\n      //       - matchOne(z/c, c) -> no\n      //       - matchOne(c, c) yes, hit\n      var fr = fi\n      var pr = pi + 1\n      if (pr === pl) {\n        this.debug('** at the end')\n        // a ** at the end will just swallow the rest.\n        // We have found a match.\n        // however, it will not swallow /.x, unless\n        // options.dot is set.\n        // . and .. are *never* matched by **, for explosively\n        // exponential reasons.\n        for (; fi < fl; fi++) {\n          if (file[fi] === '.' || file[fi] === '..' ||\n            (!options.dot && file[fi].charAt(0) === '.')) return false\n        }\n        return true\n      }\n\n      // ok, let's see if we can swallow whatever we can.\n      while (fr < fl) {\n        var swallowee = file[fr]\n\n        this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n        // XXX remove this slice.  Just pass the start index.\n        if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n          this.debug('globstar found match!', fr, fl, swallowee)\n          // found a match.\n          return true\n        } else {\n          // can't swallow \".\" or \"..\" ever.\n          // can only swallow \".foo\" when explicitly asked.\n          if (swallowee === '.' || swallowee === '..' ||\n            (!options.dot && swallowee.charAt(0) === '.')) {\n            this.debug('dot detected!', file, fr, pattern, pr)\n            break\n          }\n\n          // ** swallows a segment, and continue.\n          this.debug('globstar swallow a segment, and continue')\n          fr++\n        }\n      }\n\n      // no match was found.\n      // However, in partial mode, we can't say this is necessarily over.\n      // If there's more *pattern* left, then\n      /* istanbul ignore if */\n      if (partial) {\n        // ran out of file\n        this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n        if (fr === fl) return true\n      }\n      return false\n    }\n\n    // something other than **\n    // non-magic patterns just have to match exactly\n    // patterns with magic have been turned into regexps.\n    var hit\n    if (typeof p === 'string') {\n      hit = f === p\n      this.debug('string match', p, f, hit)\n    } else {\n      hit = f.match(p)\n      this.debug('pattern match', p, f, hit)\n    }\n\n    if (!hit) return false\n  }\n\n  // Note: ending in / means that we'll get a final \"\"\n  // at the end of the pattern.  This can only match a\n  // corresponding \"\" at the end of the file.\n  // If the file ends in /, then it can only match a\n  // a pattern that ends in /, unless the pattern just\n  // doesn't have any more for it. But, a/b/ should *not*\n  // match \"a/b/*\", even though \"\" matches against the\n  // [^/]*? pattern, except in partial mode, where it might\n  // simply not be reached yet.\n  // However, a/b/ should still satisfy a/*\n\n  // now either we fell off the end of the pattern, or we're done.\n  if (fi === fl && pi === pl) {\n    // ran out of pattern and filename at the same time.\n    // an exact hit!\n    return true\n  } else if (fi === fl) {\n    // ran out of file, but still had pattern left.\n    // this is ok if we're doing the match as part of\n    // a glob fs traversal.\n    return partial\n  } else /* istanbul ignore else */ if (pi === pl) {\n    // ran out of pattern, still have file left.\n    // this is only acceptable if we're on the very last\n    // empty segment of a file with a trailing slash.\n    // a/* should match a/b/\n    return (fi === fl - 1) && (file[fi] === '')\n  }\n\n  // should be unreachable.\n  /* istanbul ignore next */\n  throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n  return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n  return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","if (typeof Object.create === 'function') {\n  // implementation from standard node.js 'util' module\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      ctor.prototype = Object.create(superCtor.prototype, {\n        constructor: {\n          value: ctor,\n          enumerable: false,\n          writable: true,\n          configurable: true\n        }\n      })\n    }\n  };\n} else {\n  // old school shim for old browsers\n  module.exports = function inherits(ctor, superCtor) {\n    if (superCtor) {\n      ctor.super_ = superCtor\n      var TempCtor = function () {}\n      TempCtor.prototype = superCtor.prototype\n      ctor.prototype = new TempCtor()\n      ctor.prototype.constructor = ctor\n    }\n  }\n}\n","try {\n  var util = require('util');\n  /* istanbul ignore next */\n  if (typeof util.inherits !== 'function') throw '';\n  module.exports = util.inherits;\n} catch (e) {\n  /* istanbul ignore next */\n  module.exports = require('./inherits_browser.js');\n}\n","'use strict';\n\nfunction posix(path) {\n\treturn path.charAt(0) === '/';\n}\n\nfunction win32(path) {\n\t// https://github.com/nodejs/node/blob/b3fcc245fb25539909ef1d5eaa01dbf92e168633/lib/path.js#L56\n\tvar splitDeviceRe = /^([a-zA-Z]:|[\\\\\\/]{2}[^\\\\\\/]+[\\\\\\/]+[^\\\\\\/]+)?([\\\\\\/])?([\\s\\S]*?)$/;\n\tvar result = splitDeviceRe.exec(path);\n\tvar device = result[1] || '';\n\tvar isUnc = Boolean(device && device.charAt(1) !== ':');\n\n\t// UNC paths are always absolute\n\treturn Boolean(result[2] || isUnc);\n}\n\nmodule.exports = process.platform === 'win32' ? win32 : posix;\nmodule.exports.posix = posix;\nmodule.exports.win32 = win32;\n","exports.setopts = setopts\nexports.ownProp = ownProp\nexports.makeAbs = makeAbs\nexports.finish = finish\nexports.mark = mark\nexports.isIgnored = isIgnored\nexports.childrenIgnored = childrenIgnored\n\nfunction ownProp (obj, field) {\n  return Object.prototype.hasOwnProperty.call(obj, field)\n}\n\nvar fs = require(\"fs\")\nvar path = require(\"path\")\nvar minimatch = require(\"minimatch\")\nvar isAbsolute = require(\"path-is-absolute\")\nvar Minimatch = minimatch.Minimatch\n\nfunction alphasort (a, b) {\n  return a.localeCompare(b, 'en')\n}\n\nfunction setupIgnores (self, options) {\n  self.ignore = options.ignore || []\n\n  if (!Array.isArray(self.ignore))\n    self.ignore = [self.ignore]\n\n  if (self.ignore.length) {\n    self.ignore = self.ignore.map(ignoreMap)\n  }\n}\n\n// ignore patterns are always in dot:true mode.\nfunction ignoreMap (pattern) {\n  var gmatcher = null\n  if (pattern.slice(-3) === '/**') {\n    var gpattern = pattern.replace(/(\\/\\*\\*)+$/, '')\n    gmatcher = new Minimatch(gpattern, { dot: true })\n  }\n\n  return {\n    matcher: new Minimatch(pattern, { dot: true }),\n    gmatcher: gmatcher\n  }\n}\n\nfunction setopts (self, pattern, options) {\n  if (!options)\n    options = {}\n\n  // base-matching: just use globstar for that.\n  if (options.matchBase && -1 === pattern.indexOf(\"/\")) {\n    if (options.noglobstar) {\n      throw new Error(\"base matching requires globstar\")\n    }\n    pattern = \"**/\" + pattern\n  }\n\n  self.silent = !!options.silent\n  self.pattern = pattern\n  self.strict = options.strict !== false\n  self.realpath = !!options.realpath\n  self.realpathCache = options.realpathCache || Object.create(null)\n  self.follow = !!options.follow\n  self.dot = !!options.dot\n  self.mark = !!options.mark\n  self.nodir = !!options.nodir\n  if (self.nodir)\n    self.mark = true\n  self.sync = !!options.sync\n  self.nounique = !!options.nounique\n  self.nonull = !!options.nonull\n  self.nosort = !!options.nosort\n  self.nocase = !!options.nocase\n  self.stat = !!options.stat\n  self.noprocess = !!options.noprocess\n  self.absolute = !!options.absolute\n  self.fs = options.fs || fs\n\n  self.maxLength = options.maxLength || Infinity\n  self.cache = options.cache || Object.create(null)\n  self.statCache = options.statCache || Object.create(null)\n  self.symlinks = options.symlinks || Object.create(null)\n\n  setupIgnores(self, options)\n\n  self.changedCwd = false\n  var cwd = process.cwd()\n  if (!ownProp(options, \"cwd\"))\n    self.cwd = cwd\n  else {\n    self.cwd = path.resolve(options.cwd)\n    self.changedCwd = self.cwd !== cwd\n  }\n\n  self.root = options.root || path.resolve(self.cwd, \"/\")\n  self.root = path.resolve(self.root)\n  if (process.platform === \"win32\")\n    self.root = self.root.replace(/\\\\/g, \"/\")\n\n  // TODO: is an absolute `cwd` supposed to be resolved against `root`?\n  // e.g. { cwd: '/test', root: __dirname } === path.join(__dirname, '/test')\n  self.cwdAbs = isAbsolute(self.cwd) ? self.cwd : makeAbs(self, self.cwd)\n  if (process.platform === \"win32\")\n    self.cwdAbs = self.cwdAbs.replace(/\\\\/g, \"/\")\n  self.nomount = !!options.nomount\n\n  // disable comments and negation in Minimatch.\n  // Note that they are not supported in Glob itself anyway.\n  options.nonegate = true\n  options.nocomment = true\n  // always treat \\ in patterns as escapes, not path separators\n  options.allowWindowsEscape = false\n\n  self.minimatch = new Minimatch(pattern, options)\n  self.options = self.minimatch.options\n}\n\nfunction finish (self) {\n  var nou = self.nounique\n  var all = nou ? [] : Object.create(null)\n\n  for (var i = 0, l = self.matches.length; i < l; i ++) {\n    var matches = self.matches[i]\n    if (!matches || Object.keys(matches).length === 0) {\n      if (self.nonull) {\n        // do like the shell, and spit out the literal glob\n        var literal = self.minimatch.globSet[i]\n        if (nou)\n          all.push(literal)\n        else\n          all[literal] = true\n      }\n    } else {\n      // had matches\n      var m = Object.keys(matches)\n      if (nou)\n        all.push.apply(all, m)\n      else\n        m.forEach(function (m) {\n          all[m] = true\n        })\n    }\n  }\n\n  if (!nou)\n    all = Object.keys(all)\n\n  if (!self.nosort)\n    all = all.sort(alphasort)\n\n  // at *some* point we statted all of these\n  if (self.mark) {\n    for (var i = 0; i < all.length; i++) {\n      all[i] = self._mark(all[i])\n    }\n    if (self.nodir) {\n      all = all.filter(function (e) {\n        var notDir = !(/\\/$/.test(e))\n        var c = self.cache[e] || self.cache[makeAbs(self, e)]\n        if (notDir && c)\n          notDir = c !== 'DIR' && !Array.isArray(c)\n        return notDir\n      })\n    }\n  }\n\n  if (self.ignore.length)\n    all = all.filter(function(m) {\n      return !isIgnored(self, m)\n    })\n\n  self.found = all\n}\n\nfunction mark (self, p) {\n  var abs = makeAbs(self, p)\n  var c = self.cache[abs]\n  var m = p\n  if (c) {\n    var isDir = c === 'DIR' || Array.isArray(c)\n    var slash = p.slice(-1) === '/'\n\n    if (isDir && !slash)\n      m += '/'\n    else if (!isDir && slash)\n      m = m.slice(0, -1)\n\n    if (m !== p) {\n      var mabs = makeAbs(self, m)\n      self.statCache[mabs] = self.statCache[abs]\n      self.cache[mabs] = self.cache[abs]\n    }\n  }\n\n  return m\n}\n\n// lotta situps...\nfunction makeAbs (self, f) {\n  var abs = f\n  if (f.charAt(0) === '/') {\n    abs = path.join(self.root, f)\n  } else if (isAbsolute(f) || f === '') {\n    abs = f\n  } else if (self.changedCwd) {\n    abs = path.resolve(self.cwd, f)\n  } else {\n    abs = path.resolve(f)\n  }\n\n  if (process.platform === 'win32')\n    abs = abs.replace(/\\\\/g, '/')\n\n  return abs\n}\n\n\n// Return true, if pattern ends with globstar '**', for the accompanying parent directory.\n// Ex:- If node_modules/** is the pattern, add 'node_modules' to ignore list along with it's contents\nfunction isIgnored (self, path) {\n  if (!self.ignore.length)\n    return false\n\n  return self.ignore.some(function(item) {\n    return item.matcher.match(path) || !!(item.gmatcher && item.gmatcher.match(path))\n  })\n}\n\nfunction childrenIgnored (self, path) {\n  if (!self.ignore.length)\n    return false\n\n  return self.ignore.some(function(item) {\n    return !!(item.gmatcher && item.gmatcher.match(path))\n  })\n}\n","module.exports = globSync\nglobSync.GlobSync = GlobSync\n\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar Glob = require('./glob.js').Glob\nvar util = require('util')\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nfunction globSync (pattern, options) {\n  if (typeof options === 'function' || arguments.length === 3)\n    throw new TypeError('callback provided to sync glob\\n'+\n                        'See: https://github.com/isaacs/node-glob/issues/167')\n\n  return new GlobSync(pattern, options).found\n}\n\nfunction GlobSync (pattern, options) {\n  if (!pattern)\n    throw new Error('must provide pattern')\n\n  if (typeof options === 'function' || arguments.length === 3)\n    throw new TypeError('callback provided to sync glob\\n'+\n                        'See: https://github.com/isaacs/node-glob/issues/167')\n\n  if (!(this instanceof GlobSync))\n    return new GlobSync(pattern, options)\n\n  setopts(this, pattern, options)\n\n  if (this.noprocess)\n    return this\n\n  var n = this.minimatch.set.length\n  this.matches = new Array(n)\n  for (var i = 0; i < n; i ++) {\n    this._process(this.minimatch.set[i], i, false)\n  }\n  this._finish()\n}\n\nGlobSync.prototype._finish = function () {\n  assert.ok(this instanceof GlobSync)\n  if (this.realpath) {\n    var self = this\n    this.matches.forEach(function (matchset, index) {\n      var set = self.matches[index] = Object.create(null)\n      for (var p in matchset) {\n        try {\n          p = self._makeAbs(p)\n          var real = rp.realpathSync(p, self.realpathCache)\n          set[real] = true\n        } catch (er) {\n          if (er.syscall === 'stat')\n            set[self._makeAbs(p)] = true\n          else\n            throw er\n        }\n      }\n    })\n  }\n  common.finish(this)\n}\n\n\nGlobSync.prototype._process = function (pattern, index, inGlobStar) {\n  assert.ok(this instanceof GlobSync)\n\n  // Get the first [n] parts of pattern that are all strings.\n  var n = 0\n  while (typeof pattern[n] === 'string') {\n    n ++\n  }\n  // now n is the index of the first one that is *not* a string.\n\n  // See if there's anything else\n  var prefix\n  switch (n) {\n    // if not, then this is rather simple\n    case pattern.length:\n      this._processSimple(pattern.join('/'), index)\n      return\n\n    case 0:\n      // pattern *starts* with some non-trivial item.\n      // going to readdir(cwd), but not include the prefix in matches.\n      prefix = null\n      break\n\n    default:\n      // pattern has some string bits in the front.\n      // whatever it starts with, whether that's 'absolute' like /foo/bar,\n      // or 'relative' like '../baz'\n      prefix = pattern.slice(0, n).join('/')\n      break\n  }\n\n  var remain = pattern.slice(n)\n\n  // get the list of entries.\n  var read\n  if (prefix === null)\n    read = '.'\n  else if (isAbsolute(prefix) ||\n      isAbsolute(pattern.map(function (p) {\n        return typeof p === 'string' ? p : '[*]'\n      }).join('/'))) {\n    if (!prefix || !isAbsolute(prefix))\n      prefix = '/' + prefix\n    read = prefix\n  } else\n    read = prefix\n\n  var abs = this._makeAbs(read)\n\n  //if ignored, skip processing\n  if (childrenIgnored(this, read))\n    return\n\n  var isGlobStar = remain[0] === minimatch.GLOBSTAR\n  if (isGlobStar)\n    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar)\n  else\n    this._processReaddir(prefix, read, abs, remain, index, inGlobStar)\n}\n\n\nGlobSync.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar) {\n  var entries = this._readdir(abs, inGlobStar)\n\n  // if the abs isn't a dir, then nothing can match!\n  if (!entries)\n    return\n\n  // It will only match dot entries if it starts with a dot, or if\n  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.\n  var pn = remain[0]\n  var negate = !!this.minimatch.negate\n  var rawGlob = pn._glob\n  var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n  var matchedEntries = []\n  for (var i = 0; i < entries.length; i++) {\n    var e = entries[i]\n    if (e.charAt(0) !== '.' || dotOk) {\n      var m\n      if (negate && !prefix) {\n        m = !e.match(pn)\n      } else {\n        m = e.match(pn)\n      }\n      if (m)\n        matchedEntries.push(e)\n    }\n  }\n\n  var len = matchedEntries.length\n  // If there are no matched entries, then nothing matches.\n  if (len === 0)\n    return\n\n  // if this is the last remaining pattern bit, then no need for\n  // an additional stat *unless* the user has specified mark or\n  // stat explicitly.  We know they exist, since readdir returned\n  // them.\n\n  if (remain.length === 1 && !this.mark && !this.stat) {\n    if (!this.matches[index])\n      this.matches[index] = Object.create(null)\n\n    for (var i = 0; i < len; i ++) {\n      var e = matchedEntries[i]\n      if (prefix) {\n        if (prefix.slice(-1) !== '/')\n          e = prefix + '/' + e\n        else\n          e = prefix + e\n      }\n\n      if (e.charAt(0) === '/' && !this.nomount) {\n        e = path.join(this.root, e)\n      }\n      this._emitMatch(index, e)\n    }\n    // This was the last one, and no stats were needed\n    return\n  }\n\n  // now test all matched entries as stand-ins for that part\n  // of the pattern.\n  remain.shift()\n  for (var i = 0; i < len; i ++) {\n    var e = matchedEntries[i]\n    var newPattern\n    if (prefix)\n      newPattern = [prefix, e]\n    else\n      newPattern = [e]\n    this._process(newPattern.concat(remain), index, inGlobStar)\n  }\n}\n\n\nGlobSync.prototype._emitMatch = function (index, e) {\n  if (isIgnored(this, e))\n    return\n\n  var abs = this._makeAbs(e)\n\n  if (this.mark)\n    e = this._mark(e)\n\n  if (this.absolute) {\n    e = abs\n  }\n\n  if (this.matches[index][e])\n    return\n\n  if (this.nodir) {\n    var c = this.cache[abs]\n    if (c === 'DIR' || Array.isArray(c))\n      return\n  }\n\n  this.matches[index][e] = true\n\n  if (this.stat)\n    this._stat(e)\n}\n\n\nGlobSync.prototype._readdirInGlobStar = function (abs) {\n  // follow all symlinked directories forever\n  // just proceed as if this is a non-globstar situation\n  if (this.follow)\n    return this._readdir(abs, false)\n\n  var entries\n  var lstat\n  var stat\n  try {\n    lstat = this.fs.lstatSync(abs)\n  } catch (er) {\n    if (er.code === 'ENOENT') {\n      // lstat failed, doesn't exist\n      return null\n    }\n  }\n\n  var isSym = lstat && lstat.isSymbolicLink()\n  this.symlinks[abs] = isSym\n\n  // If it's not a symlink or a dir, then it's definitely a regular file.\n  // don't bother doing a readdir in that case.\n  if (!isSym && lstat && !lstat.isDirectory())\n    this.cache[abs] = 'FILE'\n  else\n    entries = this._readdir(abs, false)\n\n  return entries\n}\n\nGlobSync.prototype._readdir = function (abs, inGlobStar) {\n  var entries\n\n  if (inGlobStar && !ownProp(this.symlinks, abs))\n    return this._readdirInGlobStar(abs)\n\n  if (ownProp(this.cache, abs)) {\n    var c = this.cache[abs]\n    if (!c || c === 'FILE')\n      return null\n\n    if (Array.isArray(c))\n      return c\n  }\n\n  try {\n    return this._readdirEntries(abs, this.fs.readdirSync(abs))\n  } catch (er) {\n    this._readdirError(abs, er)\n    return null\n  }\n}\n\nGlobSync.prototype._readdirEntries = function (abs, entries) {\n  // if we haven't asked to stat everything, then just\n  // assume that everything in there exists, so we can avoid\n  // having to stat it a second time.\n  if (!this.mark && !this.stat) {\n    for (var i = 0; i < entries.length; i ++) {\n      var e = entries[i]\n      if (abs === '/')\n        e = abs + e\n      else\n        e = abs + '/' + e\n      this.cache[e] = true\n    }\n  }\n\n  this.cache[abs] = entries\n\n  // mark and cache dir-ness\n  return entries\n}\n\nGlobSync.prototype._readdirError = function (f, er) {\n  // handle errors, and cache the information\n  switch (er.code) {\n    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n    case 'ENOTDIR': // totally normal. means it *does* exist.\n      var abs = this._makeAbs(f)\n      this.cache[abs] = 'FILE'\n      if (abs === this.cwdAbs) {\n        var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n        error.path = this.cwd\n        error.code = er.code\n        throw error\n      }\n      break\n\n    case 'ENOENT': // not terribly unusual\n    case 'ELOOP':\n    case 'ENAMETOOLONG':\n    case 'UNKNOWN':\n      this.cache[this._makeAbs(f)] = false\n      break\n\n    default: // some unusual error.  Treat as failure.\n      this.cache[this._makeAbs(f)] = false\n      if (this.strict)\n        throw er\n      if (!this.silent)\n        console.error('glob error', er)\n      break\n  }\n}\n\nGlobSync.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar) {\n\n  var entries = this._readdir(abs, inGlobStar)\n\n  // no entries means not a dir, so it can never have matches\n  // foo.txt/** doesn't match foo.txt\n  if (!entries)\n    return\n\n  // test without the globstar, and with every child both below\n  // and replacing the globstar.\n  var remainWithoutGlobStar = remain.slice(1)\n  var gspref = prefix ? [ prefix ] : []\n  var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n  // the noGlobStar pattern exits the inGlobStar state\n  this._process(noGlobStar, index, false)\n\n  var len = entries.length\n  var isSym = this.symlinks[abs]\n\n  // If it's a symlink, and we're in a globstar, then stop\n  if (isSym && inGlobStar)\n    return\n\n  for (var i = 0; i < len; i++) {\n    var e = entries[i]\n    if (e.charAt(0) === '.' && !this.dot)\n      continue\n\n    // these two cases enter the inGlobStar state\n    var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n    this._process(instead, index, true)\n\n    var below = gspref.concat(entries[i], remain)\n    this._process(below, index, true)\n  }\n}\n\nGlobSync.prototype._processSimple = function (prefix, index) {\n  // XXX review this.  Shouldn't it be doing the mounting etc\n  // before doing stat?  kinda weird?\n  var exists = this._stat(prefix)\n\n  if (!this.matches[index])\n    this.matches[index] = Object.create(null)\n\n  // If it doesn't exist, then just mark the lack of results\n  if (!exists)\n    return\n\n  if (prefix && isAbsolute(prefix) && !this.nomount) {\n    var trail = /[\\/\\\\]$/.test(prefix)\n    if (prefix.charAt(0) === '/') {\n      prefix = path.join(this.root, prefix)\n    } else {\n      prefix = path.resolve(this.root, prefix)\n      if (trail)\n        prefix += '/'\n    }\n  }\n\n  if (process.platform === 'win32')\n    prefix = prefix.replace(/\\\\/g, '/')\n\n  // Mark this as a match\n  this._emitMatch(index, prefix)\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlobSync.prototype._stat = function (f) {\n  var abs = this._makeAbs(f)\n  var needDir = f.slice(-1) === '/'\n\n  if (f.length > this.maxLength)\n    return false\n\n  if (!this.stat && ownProp(this.cache, abs)) {\n    var c = this.cache[abs]\n\n    if (Array.isArray(c))\n      c = 'DIR'\n\n    // It exists, but maybe not how we need it\n    if (!needDir || c === 'DIR')\n      return c\n\n    if (needDir && c === 'FILE')\n      return false\n\n    // otherwise we have to stat, because maybe c=true\n    // if we know it exists, but not what it is.\n  }\n\n  var exists\n  var stat = this.statCache[abs]\n  if (!stat) {\n    var lstat\n    try {\n      lstat = this.fs.lstatSync(abs)\n    } catch (er) {\n      if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n        this.statCache[abs] = false\n        return false\n      }\n    }\n\n    if (lstat && lstat.isSymbolicLink()) {\n      try {\n        stat = this.fs.statSync(abs)\n      } catch (er) {\n        stat = lstat\n      }\n    } else {\n      stat = lstat\n    }\n  }\n\n  this.statCache[abs] = stat\n\n  var c = true\n  if (stat)\n    c = stat.isDirectory() ? 'DIR' : 'FILE'\n\n  this.cache[abs] = this.cache[abs] || c\n\n  if (needDir && c === 'FILE')\n    return false\n\n  return c\n}\n\nGlobSync.prototype._mark = function (p) {\n  return common.mark(this, p)\n}\n\nGlobSync.prototype._makeAbs = function (f) {\n  return common.makeAbs(this, f)\n}\n","// Returns a wrapper function that returns a wrapped callback\n// The wrapper function should do some stuff, and return a\n// presumably different callback function.\n// This makes sure that own properties are retained, so that\n// decorations and such are not lost along the way.\nmodule.exports = wrappy\nfunction wrappy (fn, cb) {\n  if (fn && cb) return wrappy(fn)(cb)\n\n  if (typeof fn !== 'function')\n    throw new TypeError('need wrapper function')\n\n  Object.keys(fn).forEach(function (k) {\n    wrapper[k] = fn[k]\n  })\n\n  return wrapper\n\n  function wrapper() {\n    var args = new Array(arguments.length)\n    for (var i = 0; i < args.length; i++) {\n      args[i] = arguments[i]\n    }\n    var ret = fn.apply(this, args)\n    var cb = args[args.length-1]\n    if (typeof ret === 'function' && ret !== cb) {\n      Object.keys(cb).forEach(function (k) {\n        ret[k] = cb[k]\n      })\n    }\n    return ret\n  }\n}\n","var wrappy = require('wrappy')\nmodule.exports = wrappy(once)\nmodule.exports.strict = wrappy(onceStrict)\n\nonce.proto = once(function () {\n  Object.defineProperty(Function.prototype, 'once', {\n    value: function () {\n      return once(this)\n    },\n    configurable: true\n  })\n\n  Object.defineProperty(Function.prototype, 'onceStrict', {\n    value: function () {\n      return onceStrict(this)\n    },\n    configurable: true\n  })\n})\n\nfunction once (fn) {\n  var f = function () {\n    if (f.called) return f.value\n    f.called = true\n    return f.value = fn.apply(this, arguments)\n  }\n  f.called = false\n  return f\n}\n\nfunction onceStrict (fn) {\n  var f = function () {\n    if (f.called)\n      throw new Error(f.onceError)\n    f.called = true\n    return f.value = fn.apply(this, arguments)\n  }\n  var name = fn.name || 'Function wrapped with `once`'\n  f.onceError = name + \" shouldn't be called more than once\"\n  f.called = false\n  return f\n}\n","var wrappy = require('wrappy')\nvar reqs = Object.create(null)\nvar once = require('once')\n\nmodule.exports = wrappy(inflight)\n\nfunction inflight (key, cb) {\n  if (reqs[key]) {\n    reqs[key].push(cb)\n    return null\n  } else {\n    reqs[key] = [cb]\n    return makeres(key)\n  }\n}\n\nfunction makeres (key) {\n  return once(function RES () {\n    var cbs = reqs[key]\n    var len = cbs.length\n    var args = slice(arguments)\n\n    // XXX It's somewhat ambiguous whether a new callback added in this\n    // pass should be queued for later execution if something in the\n    // list of callbacks throws, or if it should just be discarded.\n    // However, it's such an edge case that it hardly matters, and either\n    // choice is likely as surprising as the other.\n    // As it happens, we do go ahead and schedule it for later execution.\n    try {\n      for (var i = 0; i < len; i++) {\n        cbs[i].apply(null, args)\n      }\n    } finally {\n      if (cbs.length > len) {\n        // added more in the interim.\n        // de-zalgo, just in case, but don't call again.\n        cbs.splice(0, len)\n        process.nextTick(function () {\n          RES.apply(null, args)\n        })\n      } else {\n        delete reqs[key]\n      }\n    }\n  })\n}\n\nfunction slice (args) {\n  var length = args.length\n  var array = []\n\n  for (var i = 0; i < length; i++) array[i] = args[i]\n  return array\n}\n","// Approach:\n//\n// 1. Get the minimatch set\n// 2. For each pattern in the set, PROCESS(pattern, false)\n// 3. Store matches per-set, then uniq them\n//\n// PROCESS(pattern, inGlobStar)\n// Get the first [n] items from pattern that are all strings\n// Join these together.  This is PREFIX.\n//   If there is no more remaining, then stat(PREFIX) and\n//   add to matches if it succeeds.  END.\n//\n// If inGlobStar and PREFIX is symlink and points to dir\n//   set ENTRIES = []\n// else readdir(PREFIX) as ENTRIES\n//   If fail, END\n//\n// with ENTRIES\n//   If pattern[n] is GLOBSTAR\n//     // handle the case where the globstar match is empty\n//     // by pruning it out, and testing the resulting pattern\n//     PROCESS(pattern[0..n] + pattern[n+1 .. $], false)\n//     // handle other cases.\n//     for ENTRY in ENTRIES (not dotfiles)\n//       // attach globstar + tail onto the entry\n//       // Mark that this entry is a globstar match\n//       PROCESS(pattern[0..n] + ENTRY + pattern[n .. $], true)\n//\n//   else // not globstar\n//     for ENTRY in ENTRIES (not dotfiles, unless pattern[n] is dot)\n//       Test ENTRY against pattern[n]\n//       If fails, continue\n//       If passes, PROCESS(pattern[0..n] + item + pattern[n+1 .. $])\n//\n// Caveat:\n//   Cache all stats and readdirs results to minimize syscall.  Since all\n//   we ever care about is existence and directory-ness, we can just keep\n//   `true` for files, and [children,...] for directories, or `false` for\n//   things that don't exist.\n\nmodule.exports = glob\n\nvar rp = require('fs.realpath')\nvar minimatch = require('minimatch')\nvar Minimatch = minimatch.Minimatch\nvar inherits = require('inherits')\nvar EE = require('events').EventEmitter\nvar path = require('path')\nvar assert = require('assert')\nvar isAbsolute = require('path-is-absolute')\nvar globSync = require('./sync.js')\nvar common = require('./common.js')\nvar setopts = common.setopts\nvar ownProp = common.ownProp\nvar inflight = require('inflight')\nvar util = require('util')\nvar childrenIgnored = common.childrenIgnored\nvar isIgnored = common.isIgnored\n\nvar once = require('once')\n\nfunction glob (pattern, options, cb) {\n  if (typeof options === 'function') cb = options, options = {}\n  if (!options) options = {}\n\n  if (options.sync) {\n    if (cb)\n      throw new TypeError('callback provided to sync glob')\n    return globSync(pattern, options)\n  }\n\n  return new Glob(pattern, options, cb)\n}\n\nglob.sync = globSync\nvar GlobSync = glob.GlobSync = globSync.GlobSync\n\n// old api surface\nglob.glob = glob\n\nfunction extend (origin, add) {\n  if (add === null || typeof add !== 'object') {\n    return origin\n  }\n\n  var keys = Object.keys(add)\n  var i = keys.length\n  while (i--) {\n    origin[keys[i]] = add[keys[i]]\n  }\n  return origin\n}\n\nglob.hasMagic = function (pattern, options_) {\n  var options = extend({}, options_)\n  options.noprocess = true\n\n  var g = new Glob(pattern, options)\n  var set = g.minimatch.set\n\n  if (!pattern)\n    return false\n\n  if (set.length > 1)\n    return true\n\n  for (var j = 0; j < set[0].length; j++) {\n    if (typeof set[0][j] !== 'string')\n      return true\n  }\n\n  return false\n}\n\nglob.Glob = Glob\ninherits(Glob, EE)\nfunction Glob (pattern, options, cb) {\n  if (typeof options === 'function') {\n    cb = options\n    options = null\n  }\n\n  if (options && options.sync) {\n    if (cb)\n      throw new TypeError('callback provided to sync glob')\n    return new GlobSync(pattern, options)\n  }\n\n  if (!(this instanceof Glob))\n    return new Glob(pattern, options, cb)\n\n  setopts(this, pattern, options)\n  this._didRealPath = false\n\n  // process each pattern in the minimatch set\n  var n = this.minimatch.set.length\n\n  // The matches are stored as {<filename>: true,...} so that\n  // duplicates are automagically pruned.\n  // Later, we do an Object.keys() on these.\n  // Keep them as a list so we can fill in when nonull is set.\n  this.matches = new Array(n)\n\n  if (typeof cb === 'function') {\n    cb = once(cb)\n    this.on('error', cb)\n    this.on('end', function (matches) {\n      cb(null, matches)\n    })\n  }\n\n  var self = this\n  this._processing = 0\n\n  this._emitQueue = []\n  this._processQueue = []\n  this.paused = false\n\n  if (this.noprocess)\n    return this\n\n  if (n === 0)\n    return done()\n\n  var sync = true\n  for (var i = 0; i < n; i ++) {\n    this._process(this.minimatch.set[i], i, false, done)\n  }\n  sync = false\n\n  function done () {\n    --self._processing\n    if (self._processing <= 0) {\n      if (sync) {\n        process.nextTick(function () {\n          self._finish()\n        })\n      } else {\n        self._finish()\n      }\n    }\n  }\n}\n\nGlob.prototype._finish = function () {\n  assert(this instanceof Glob)\n  if (this.aborted)\n    return\n\n  if (this.realpath && !this._didRealpath)\n    return this._realpath()\n\n  common.finish(this)\n  this.emit('end', this.found)\n}\n\nGlob.prototype._realpath = function () {\n  if (this._didRealpath)\n    return\n\n  this._didRealpath = true\n\n  var n = this.matches.length\n  if (n === 0)\n    return this._finish()\n\n  var self = this\n  for (var i = 0; i < this.matches.length; i++)\n    this._realpathSet(i, next)\n\n  function next () {\n    if (--n === 0)\n      self._finish()\n  }\n}\n\nGlob.prototype._realpathSet = function (index, cb) {\n  var matchset = this.matches[index]\n  if (!matchset)\n    return cb()\n\n  var found = Object.keys(matchset)\n  var self = this\n  var n = found.length\n\n  if (n === 0)\n    return cb()\n\n  var set = this.matches[index] = Object.create(null)\n  found.forEach(function (p, i) {\n    // If there's a problem with the stat, then it means that\n    // one or more of the links in the realpath couldn't be\n    // resolved.  just return the abs value in that case.\n    p = self._makeAbs(p)\n    rp.realpath(p, self.realpathCache, function (er, real) {\n      if (!er)\n        set[real] = true\n      else if (er.syscall === 'stat')\n        set[p] = true\n      else\n        self.emit('error', er) // srsly wtf right here\n\n      if (--n === 0) {\n        self.matches[index] = set\n        cb()\n      }\n    })\n  })\n}\n\nGlob.prototype._mark = function (p) {\n  return common.mark(this, p)\n}\n\nGlob.prototype._makeAbs = function (f) {\n  return common.makeAbs(this, f)\n}\n\nGlob.prototype.abort = function () {\n  this.aborted = true\n  this.emit('abort')\n}\n\nGlob.prototype.pause = function () {\n  if (!this.paused) {\n    this.paused = true\n    this.emit('pause')\n  }\n}\n\nGlob.prototype.resume = function () {\n  if (this.paused) {\n    this.emit('resume')\n    this.paused = false\n    if (this._emitQueue.length) {\n      var eq = this._emitQueue.slice(0)\n      this._emitQueue.length = 0\n      for (var i = 0; i < eq.length; i ++) {\n        var e = eq[i]\n        this._emitMatch(e[0], e[1])\n      }\n    }\n    if (this._processQueue.length) {\n      var pq = this._processQueue.slice(0)\n      this._processQueue.length = 0\n      for (var i = 0; i < pq.length; i ++) {\n        var p = pq[i]\n        this._processing--\n        this._process(p[0], p[1], p[2], p[3])\n      }\n    }\n  }\n}\n\nGlob.prototype._process = function (pattern, index, inGlobStar, cb) {\n  assert(this instanceof Glob)\n  assert(typeof cb === 'function')\n\n  if (this.aborted)\n    return\n\n  this._processing++\n  if (this.paused) {\n    this._processQueue.push([pattern, index, inGlobStar, cb])\n    return\n  }\n\n  //console.error('PROCESS %d', this._processing, pattern)\n\n  // Get the first [n] parts of pattern that are all strings.\n  var n = 0\n  while (typeof pattern[n] === 'string') {\n    n ++\n  }\n  // now n is the index of the first one that is *not* a string.\n\n  // see if there's anything else\n  var prefix\n  switch (n) {\n    // if not, then this is rather simple\n    case pattern.length:\n      this._processSimple(pattern.join('/'), index, cb)\n      return\n\n    case 0:\n      // pattern *starts* with some non-trivial item.\n      // going to readdir(cwd), but not include the prefix in matches.\n      prefix = null\n      break\n\n    default:\n      // pattern has some string bits in the front.\n      // whatever it starts with, whether that's 'absolute' like /foo/bar,\n      // or 'relative' like '../baz'\n      prefix = pattern.slice(0, n).join('/')\n      break\n  }\n\n  var remain = pattern.slice(n)\n\n  // get the list of entries.\n  var read\n  if (prefix === null)\n    read = '.'\n  else if (isAbsolute(prefix) ||\n      isAbsolute(pattern.map(function (p) {\n        return typeof p === 'string' ? p : '[*]'\n      }).join('/'))) {\n    if (!prefix || !isAbsolute(prefix))\n      prefix = '/' + prefix\n    read = prefix\n  } else\n    read = prefix\n\n  var abs = this._makeAbs(read)\n\n  //if ignored, skip _processing\n  if (childrenIgnored(this, read))\n    return cb()\n\n  var isGlobStar = remain[0] === minimatch.GLOBSTAR\n  if (isGlobStar)\n    this._processGlobStar(prefix, read, abs, remain, index, inGlobStar, cb)\n  else\n    this._processReaddir(prefix, read, abs, remain, index, inGlobStar, cb)\n}\n\nGlob.prototype._processReaddir = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n  var self = this\n  this._readdir(abs, inGlobStar, function (er, entries) {\n    return self._processReaddir2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n  })\n}\n\nGlob.prototype._processReaddir2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n\n  // if the abs isn't a dir, then nothing can match!\n  if (!entries)\n    return cb()\n\n  // It will only match dot entries if it starts with a dot, or if\n  // dot is set.  Stuff like @(.foo|.bar) isn't allowed.\n  var pn = remain[0]\n  var negate = !!this.minimatch.negate\n  var rawGlob = pn._glob\n  var dotOk = this.dot || rawGlob.charAt(0) === '.'\n\n  var matchedEntries = []\n  for (var i = 0; i < entries.length; i++) {\n    var e = entries[i]\n    if (e.charAt(0) !== '.' || dotOk) {\n      var m\n      if (negate && !prefix) {\n        m = !e.match(pn)\n      } else {\n        m = e.match(pn)\n      }\n      if (m)\n        matchedEntries.push(e)\n    }\n  }\n\n  //console.error('prd2', prefix, entries, remain[0]._glob, matchedEntries)\n\n  var len = matchedEntries.length\n  // If there are no matched entries, then nothing matches.\n  if (len === 0)\n    return cb()\n\n  // if this is the last remaining pattern bit, then no need for\n  // an additional stat *unless* the user has specified mark or\n  // stat explicitly.  We know they exist, since readdir returned\n  // them.\n\n  if (remain.length === 1 && !this.mark && !this.stat) {\n    if (!this.matches[index])\n      this.matches[index] = Object.create(null)\n\n    for (var i = 0; i < len; i ++) {\n      var e = matchedEntries[i]\n      if (prefix) {\n        if (prefix !== '/')\n          e = prefix + '/' + e\n        else\n          e = prefix + e\n      }\n\n      if (e.charAt(0) === '/' && !this.nomount) {\n        e = path.join(this.root, e)\n      }\n      this._emitMatch(index, e)\n    }\n    // This was the last one, and no stats were needed\n    return cb()\n  }\n\n  // now test all matched entries as stand-ins for that part\n  // of the pattern.\n  remain.shift()\n  for (var i = 0; i < len; i ++) {\n    var e = matchedEntries[i]\n    var newPattern\n    if (prefix) {\n      if (prefix !== '/')\n        e = prefix + '/' + e\n      else\n        e = prefix + e\n    }\n    this._process([e].concat(remain), index, inGlobStar, cb)\n  }\n  cb()\n}\n\nGlob.prototype._emitMatch = function (index, e) {\n  if (this.aborted)\n    return\n\n  if (isIgnored(this, e))\n    return\n\n  if (this.paused) {\n    this._emitQueue.push([index, e])\n    return\n  }\n\n  var abs = isAbsolute(e) ? e : this._makeAbs(e)\n\n  if (this.mark)\n    e = this._mark(e)\n\n  if (this.absolute)\n    e = abs\n\n  if (this.matches[index][e])\n    return\n\n  if (this.nodir) {\n    var c = this.cache[abs]\n    if (c === 'DIR' || Array.isArray(c))\n      return\n  }\n\n  this.matches[index][e] = true\n\n  var st = this.statCache[abs]\n  if (st)\n    this.emit('stat', e, st)\n\n  this.emit('match', e)\n}\n\nGlob.prototype._readdirInGlobStar = function (abs, cb) {\n  if (this.aborted)\n    return\n\n  // follow all symlinked directories forever\n  // just proceed as if this is a non-globstar situation\n  if (this.follow)\n    return this._readdir(abs, false, cb)\n\n  var lstatkey = 'lstat\\0' + abs\n  var self = this\n  var lstatcb = inflight(lstatkey, lstatcb_)\n\n  if (lstatcb)\n    self.fs.lstat(abs, lstatcb)\n\n  function lstatcb_ (er, lstat) {\n    if (er && er.code === 'ENOENT')\n      return cb()\n\n    var isSym = lstat && lstat.isSymbolicLink()\n    self.symlinks[abs] = isSym\n\n    // If it's not a symlink or a dir, then it's definitely a regular file.\n    // don't bother doing a readdir in that case.\n    if (!isSym && lstat && !lstat.isDirectory()) {\n      self.cache[abs] = 'FILE'\n      cb()\n    } else\n      self._readdir(abs, false, cb)\n  }\n}\n\nGlob.prototype._readdir = function (abs, inGlobStar, cb) {\n  if (this.aborted)\n    return\n\n  cb = inflight('readdir\\0'+abs+'\\0'+inGlobStar, cb)\n  if (!cb)\n    return\n\n  //console.error('RD %j %j', +inGlobStar, abs)\n  if (inGlobStar && !ownProp(this.symlinks, abs))\n    return this._readdirInGlobStar(abs, cb)\n\n  if (ownProp(this.cache, abs)) {\n    var c = this.cache[abs]\n    if (!c || c === 'FILE')\n      return cb()\n\n    if (Array.isArray(c))\n      return cb(null, c)\n  }\n\n  var self = this\n  self.fs.readdir(abs, readdirCb(this, abs, cb))\n}\n\nfunction readdirCb (self, abs, cb) {\n  return function (er, entries) {\n    if (er)\n      self._readdirError(abs, er, cb)\n    else\n      self._readdirEntries(abs, entries, cb)\n  }\n}\n\nGlob.prototype._readdirEntries = function (abs, entries, cb) {\n  if (this.aborted)\n    return\n\n  // if we haven't asked to stat everything, then just\n  // assume that everything in there exists, so we can avoid\n  // having to stat it a second time.\n  if (!this.mark && !this.stat) {\n    for (var i = 0; i < entries.length; i ++) {\n      var e = entries[i]\n      if (abs === '/')\n        e = abs + e\n      else\n        e = abs + '/' + e\n      this.cache[e] = true\n    }\n  }\n\n  this.cache[abs] = entries\n  return cb(null, entries)\n}\n\nGlob.prototype._readdirError = function (f, er, cb) {\n  if (this.aborted)\n    return\n\n  // handle errors, and cache the information\n  switch (er.code) {\n    case 'ENOTSUP': // https://github.com/isaacs/node-glob/issues/205\n    case 'ENOTDIR': // totally normal. means it *does* exist.\n      var abs = this._makeAbs(f)\n      this.cache[abs] = 'FILE'\n      if (abs === this.cwdAbs) {\n        var error = new Error(er.code + ' invalid cwd ' + this.cwd)\n        error.path = this.cwd\n        error.code = er.code\n        this.emit('error', error)\n        this.abort()\n      }\n      break\n\n    case 'ENOENT': // not terribly unusual\n    case 'ELOOP':\n    case 'ENAMETOOLONG':\n    case 'UNKNOWN':\n      this.cache[this._makeAbs(f)] = false\n      break\n\n    default: // some unusual error.  Treat as failure.\n      this.cache[this._makeAbs(f)] = false\n      if (this.strict) {\n        this.emit('error', er)\n        // If the error is handled, then we abort\n        // if not, we threw out of here\n        this.abort()\n      }\n      if (!this.silent)\n        console.error('glob error', er)\n      break\n  }\n\n  return cb()\n}\n\nGlob.prototype._processGlobStar = function (prefix, read, abs, remain, index, inGlobStar, cb) {\n  var self = this\n  this._readdir(abs, inGlobStar, function (er, entries) {\n    self._processGlobStar2(prefix, read, abs, remain, index, inGlobStar, entries, cb)\n  })\n}\n\n\nGlob.prototype._processGlobStar2 = function (prefix, read, abs, remain, index, inGlobStar, entries, cb) {\n  //console.error('pgs2', prefix, remain[0], entries)\n\n  // no entries means not a dir, so it can never have matches\n  // foo.txt/** doesn't match foo.txt\n  if (!entries)\n    return cb()\n\n  // test without the globstar, and with every child both below\n  // and replacing the globstar.\n  var remainWithoutGlobStar = remain.slice(1)\n  var gspref = prefix ? [ prefix ] : []\n  var noGlobStar = gspref.concat(remainWithoutGlobStar)\n\n  // the noGlobStar pattern exits the inGlobStar state\n  this._process(noGlobStar, index, false, cb)\n\n  var isSym = this.symlinks[abs]\n  var len = entries.length\n\n  // If it's a symlink, and we're in a globstar, then stop\n  if (isSym && inGlobStar)\n    return cb()\n\n  for (var i = 0; i < len; i++) {\n    var e = entries[i]\n    if (e.charAt(0) === '.' && !this.dot)\n      continue\n\n    // these two cases enter the inGlobStar state\n    var instead = gspref.concat(entries[i], remainWithoutGlobStar)\n    this._process(instead, index, true, cb)\n\n    var below = gspref.concat(entries[i], remain)\n    this._process(below, index, true, cb)\n  }\n\n  cb()\n}\n\nGlob.prototype._processSimple = function (prefix, index, cb) {\n  // XXX review this.  Shouldn't it be doing the mounting etc\n  // before doing stat?  kinda weird?\n  var self = this\n  this._stat(prefix, function (er, exists) {\n    self._processSimple2(prefix, index, er, exists, cb)\n  })\n}\nGlob.prototype._processSimple2 = function (prefix, index, er, exists, cb) {\n\n  //console.error('ps2', prefix, exists)\n\n  if (!this.matches[index])\n    this.matches[index] = Object.create(null)\n\n  // If it doesn't exist, then just mark the lack of results\n  if (!exists)\n    return cb()\n\n  if (prefix && isAbsolute(prefix) && !this.nomount) {\n    var trail = /[\\/\\\\]$/.test(prefix)\n    if (prefix.charAt(0) === '/') {\n      prefix = path.join(this.root, prefix)\n    } else {\n      prefix = path.resolve(this.root, prefix)\n      if (trail)\n        prefix += '/'\n    }\n  }\n\n  if (process.platform === 'win32')\n    prefix = prefix.replace(/\\\\/g, '/')\n\n  // Mark this as a match\n  this._emitMatch(index, prefix)\n  cb()\n}\n\n// Returns either 'DIR', 'FILE', or false\nGlob.prototype._stat = function (f, cb) {\n  var abs = this._makeAbs(f)\n  var needDir = f.slice(-1) === '/'\n\n  if (f.length > this.maxLength)\n    return cb()\n\n  if (!this.stat && ownProp(this.cache, abs)) {\n    var c = this.cache[abs]\n\n    if (Array.isArray(c))\n      c = 'DIR'\n\n    // It exists, but maybe not how we need it\n    if (!needDir || c === 'DIR')\n      return cb(null, c)\n\n    if (needDir && c === 'FILE')\n      return cb()\n\n    // otherwise we have to stat, because maybe c=true\n    // if we know it exists, but not what it is.\n  }\n\n  var exists\n  var stat = this.statCache[abs]\n  if (stat !== undefined) {\n    if (stat === false)\n      return cb(null, stat)\n    else {\n      var type = stat.isDirectory() ? 'DIR' : 'FILE'\n      if (needDir && type === 'FILE')\n        return cb()\n      else\n        return cb(null, type, stat)\n    }\n  }\n\n  var self = this\n  var statcb = inflight('stat\\0' + abs, lstatcb_)\n  if (statcb)\n    self.fs.lstat(abs, statcb)\n\n  function lstatcb_ (er, lstat) {\n    if (lstat && lstat.isSymbolicLink()) {\n      // If it's a symlink, then treat it as the target, unless\n      // the target does not exist, then treat it as a file.\n      return self.fs.stat(abs, function (er, stat) {\n        if (er)\n          self._stat2(f, abs, null, lstat, cb)\n        else\n          self._stat2(f, abs, er, stat, cb)\n      })\n    } else {\n      self._stat2(f, abs, er, lstat, cb)\n    }\n  }\n}\n\nGlob.prototype._stat2 = function (f, abs, er, stat, cb) {\n  if (er && (er.code === 'ENOENT' || er.code === 'ENOTDIR')) {\n    this.statCache[abs] = false\n    return cb()\n  }\n\n  var needDir = f.slice(-1) === '/'\n  this.statCache[abs] = stat\n\n  if (abs.slice(-1) === '/' && stat && !stat.isDirectory())\n    return cb(null, false, stat)\n\n  var c = true\n  if (stat)\n    c = stat.isDirectory() ? 'DIR' : 'FILE'\n  this.cache[abs] = this.cache[abs] || c\n\n  if (needDir && c === 'FILE')\n    return cb()\n\n  return cb(null, c, stat)\n}\n","const assert = require(\"assert\")\nconst path = require(\"path\")\nconst fs = require(\"fs\")\nlet glob = undefined\ntry {\n  glob = require(\"glob\")\n} catch (_err) {\n  // treat glob as optional.\n}\n\nconst defaultGlobOpts = {\n  nosort: true,\n  silent: true\n}\n\n// for EMFILE handling\nlet timeout = 0\n\nconst isWindows = (process.platform === \"win32\")\n\nconst defaults = options => {\n  const methods = [\n    'unlink',\n    'chmod',\n    'stat',\n    'lstat',\n    'rmdir',\n    'readdir'\n  ]\n  methods.forEach(m => {\n    options[m] = options[m] || fs[m]\n    m = m + 'Sync'\n    options[m] = options[m] || fs[m]\n  })\n\n  options.maxBusyTries = options.maxBusyTries || 3\n  options.emfileWait = options.emfileWait || 1000\n  if (options.glob === false) {\n    options.disableGlob = true\n  }\n  if (options.disableGlob !== true && glob === undefined) {\n    throw Error('glob dependency not found, set `options.disableGlob = true` if intentional')\n  }\n  options.disableGlob = options.disableGlob || false\n  options.glob = options.glob || defaultGlobOpts\n}\n\nconst rimraf = (p, options, cb) => {\n  if (typeof options === 'function') {\n    cb = options\n    options = {}\n  }\n\n  assert(p, 'rimraf: missing path')\n  assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n  assert.equal(typeof cb, 'function', 'rimraf: callback function required')\n  assert(options, 'rimraf: invalid options argument provided')\n  assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n  defaults(options)\n\n  let busyTries = 0\n  let errState = null\n  let n = 0\n\n  const next = (er) => {\n    errState = errState || er\n    if (--n === 0)\n      cb(errState)\n  }\n\n  const afterGlob = (er, results) => {\n    if (er)\n      return cb(er)\n\n    n = results.length\n    if (n === 0)\n      return cb()\n\n    results.forEach(p => {\n      const CB = (er) => {\n        if (er) {\n          if ((er.code === \"EBUSY\" || er.code === \"ENOTEMPTY\" || er.code === \"EPERM\") &&\n              busyTries < options.maxBusyTries) {\n            busyTries ++\n            // try again, with the same exact callback as this one.\n            return setTimeout(() => rimraf_(p, options, CB), busyTries * 100)\n          }\n\n          // this one won't happen if graceful-fs is used.\n          if (er.code === \"EMFILE\" && timeout < options.emfileWait) {\n            return setTimeout(() => rimraf_(p, options, CB), timeout ++)\n          }\n\n          // already gone\n          if (er.code === \"ENOENT\") er = null\n        }\n\n        timeout = 0\n        next(er)\n      }\n      rimraf_(p, options, CB)\n    })\n  }\n\n  if (options.disableGlob || !glob.hasMagic(p))\n    return afterGlob(null, [p])\n\n  options.lstat(p, (er, stat) => {\n    if (!er)\n      return afterGlob(null, [p])\n\n    glob(p, options.glob, afterGlob)\n  })\n\n}\n\n// Two possible strategies.\n// 1. Assume it's a file.  unlink it, then do the dir stuff on EPERM or EISDIR\n// 2. Assume it's a directory.  readdir, then do the file stuff on ENOTDIR\n//\n// Both result in an extra syscall when you guess wrong.  However, there\n// are likely far more normal files in the world than directories.  This\n// is based on the assumption that a the average number of files per\n// directory is >= 1.\n//\n// If anyone ever complains about this, then I guess the strategy could\n// be made configurable somehow.  But until then, YAGNI.\nconst rimraf_ = (p, options, cb) => {\n  assert(p)\n  assert(options)\n  assert(typeof cb === 'function')\n\n  // sunos lets the root user unlink directories, which is... weird.\n  // so we have to lstat here and make sure it's not a dir.\n  options.lstat(p, (er, st) => {\n    if (er && er.code === \"ENOENT\")\n      return cb(null)\n\n    // Windows can EPERM on stat.  Life is suffering.\n    if (er && er.code === \"EPERM\" && isWindows)\n      fixWinEPERM(p, options, er, cb)\n\n    if (st && st.isDirectory())\n      return rmdir(p, options, er, cb)\n\n    options.unlink(p, er => {\n      if (er) {\n        if (er.code === \"ENOENT\")\n          return cb(null)\n        if (er.code === \"EPERM\")\n          return (isWindows)\n            ? fixWinEPERM(p, options, er, cb)\n            : rmdir(p, options, er, cb)\n        if (er.code === \"EISDIR\")\n          return rmdir(p, options, er, cb)\n      }\n      return cb(er)\n    })\n  })\n}\n\nconst fixWinEPERM = (p, options, er, cb) => {\n  assert(p)\n  assert(options)\n  assert(typeof cb === 'function')\n\n  options.chmod(p, 0o666, er2 => {\n    if (er2)\n      cb(er2.code === \"ENOENT\" ? null : er)\n    else\n      options.stat(p, (er3, stats) => {\n        if (er3)\n          cb(er3.code === \"ENOENT\" ? null : er)\n        else if (stats.isDirectory())\n          rmdir(p, options, er, cb)\n        else\n          options.unlink(p, cb)\n      })\n  })\n}\n\nconst fixWinEPERMSync = (p, options, er) => {\n  assert(p)\n  assert(options)\n\n  try {\n    options.chmodSync(p, 0o666)\n  } catch (er2) {\n    if (er2.code === \"ENOENT\")\n      return\n    else\n      throw er\n  }\n\n  let stats\n  try {\n    stats = options.statSync(p)\n  } catch (er3) {\n    if (er3.code === \"ENOENT\")\n      return\n    else\n      throw er\n  }\n\n  if (stats.isDirectory())\n    rmdirSync(p, options, er)\n  else\n    options.unlinkSync(p)\n}\n\nconst rmdir = (p, options, originalEr, cb) => {\n  assert(p)\n  assert(options)\n  assert(typeof cb === 'function')\n\n  // try to rmdir first, and only readdir on ENOTEMPTY or EEXIST (SunOS)\n  // if we guessed wrong, and it's not a directory, then\n  // raise the original error.\n  options.rmdir(p, er => {\n    if (er && (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\"))\n      rmkids(p, options, cb)\n    else if (er && er.code === \"ENOTDIR\")\n      cb(originalEr)\n    else\n      cb(er)\n  })\n}\n\nconst rmkids = (p, options, cb) => {\n  assert(p)\n  assert(options)\n  assert(typeof cb === 'function')\n\n  options.readdir(p, (er, files) => {\n    if (er)\n      return cb(er)\n    let n = files.length\n    if (n === 0)\n      return options.rmdir(p, cb)\n    let errState\n    files.forEach(f => {\n      rimraf(path.join(p, f), options, er => {\n        if (errState)\n          return\n        if (er)\n          return cb(errState = er)\n        if (--n === 0)\n          options.rmdir(p, cb)\n      })\n    })\n  })\n}\n\n// this looks simpler, and is strictly *faster*, but will\n// tie up the JavaScript thread and fail on excessively\n// deep directory trees.\nconst rimrafSync = (p, options) => {\n  options = options || {}\n  defaults(options)\n\n  assert(p, 'rimraf: missing path')\n  assert.equal(typeof p, 'string', 'rimraf: path should be a string')\n  assert(options, 'rimraf: missing options')\n  assert.equal(typeof options, 'object', 'rimraf: options should be object')\n\n  let results\n\n  if (options.disableGlob || !glob.hasMagic(p)) {\n    results = [p]\n  } else {\n    try {\n      options.lstatSync(p)\n      results = [p]\n    } catch (er) {\n      results = glob.sync(p, options.glob)\n    }\n  }\n\n  if (!results.length)\n    return\n\n  for (let i = 0; i < results.length; i++) {\n    const p = results[i]\n\n    let st\n    try {\n      st = options.lstatSync(p)\n    } catch (er) {\n      if (er.code === \"ENOENT\")\n        return\n\n      // Windows can EPERM on stat.  Life is suffering.\n      if (er.code === \"EPERM\" && isWindows)\n        fixWinEPERMSync(p, options, er)\n    }\n\n    try {\n      // sunos lets the root user unlink directories, which is... weird.\n      if (st && st.isDirectory())\n        rmdirSync(p, options, null)\n      else\n        options.unlinkSync(p)\n    } catch (er) {\n      if (er.code === \"ENOENT\")\n        return\n      if (er.code === \"EPERM\")\n        return isWindows ? fixWinEPERMSync(p, options, er) : rmdirSync(p, options, er)\n      if (er.code !== \"EISDIR\")\n        throw er\n\n      rmdirSync(p, options, er)\n    }\n  }\n}\n\nconst rmdirSync = (p, options, originalEr) => {\n  assert(p)\n  assert(options)\n\n  try {\n    options.rmdirSync(p)\n  } catch (er) {\n    if (er.code === \"ENOENT\")\n      return\n    if (er.code === \"ENOTDIR\")\n      throw originalEr\n    if (er.code === \"ENOTEMPTY\" || er.code === \"EEXIST\" || er.code === \"EPERM\")\n      rmkidsSync(p, options)\n  }\n}\n\nconst rmkidsSync = (p, options) => {\n  assert(p)\n  assert(options)\n  options.readdirSync(p).forEach(f => rimrafSync(path.join(p, f), options))\n\n  // We only end up here once we got ENOTEMPTY at least once, and\n  // at this point, we are guaranteed to have removed all the kids.\n  // So, we know that it won't be ENOENT or ENOTDIR or anything else.\n  // try really hard to delete stuff on windows, because it has a\n  // PROFOUNDLY annoying habit of not closing handles promptly when\n  // files are deleted, resulting in spurious ENOTEMPTY errors.\n  const retries = isWindows ? 100 : 1\n  let i = 0\n  do {\n    let threw = true\n    try {\n      const ret = options.rmdirSync(p, options)\n      threw = false\n      return ret\n    } finally {\n      if (++i < retries && threw)\n        continue\n    }\n  } while (true)\n}\n\nmodule.exports = rimraf\nrimraf.sync = rimrafSync\n","'use strict';\n\nconst fs = require('fs');\n\nmodule.exports = exports;\n\nconst versionArray = process.version\n  .substr(1)\n  .replace(/-.*$/, '')\n  .split('.')\n  .map((item) => {\n    return +item;\n  });\n\nconst napi_multiple_commands = [\n  'build',\n  'clean',\n  'configure',\n  'package',\n  'publish',\n  'reveal',\n  'testbinary',\n  'testpackage',\n  'unpublish'\n];\n\nconst napi_build_version_tag = 'napi_build_version=';\n\nmodule.exports.get_napi_version = function() {\n  // returns the non-zero numeric napi version or undefined if napi is not supported.\n  // correctly supporting target requires an updated cross-walk\n  let version = process.versions.napi; // can be undefined\n  if (!version) { // this code should never need to be updated\n    if (versionArray[0] === 9 && versionArray[1] >= 3) version = 2; // 9.3.0+\n    else if (versionArray[0] === 8) version = 1; // 8.0.0+\n  }\n  return version;\n};\n\nmodule.exports.get_napi_version_as_string = function(target) {\n  // returns the napi version as a string or an empty string if napi is not supported.\n  const version = module.exports.get_napi_version(target);\n  return version ? '' + version : '';\n};\n\nmodule.exports.validate_package_json = function(package_json, opts) { // throws Error\n\n  const binary = package_json.binary;\n  const module_path_ok = pathOK(binary.module_path);\n  const remote_path_ok = pathOK(binary.remote_path);\n  const package_name_ok = pathOK(binary.package_name);\n  const napi_build_versions = module.exports.get_napi_build_versions(package_json, opts, true);\n  const napi_build_versions_raw = module.exports.get_napi_build_versions_raw(package_json);\n\n  if (napi_build_versions) {\n    napi_build_versions.forEach((napi_build_version)=> {\n      if (!(parseInt(napi_build_version, 10) === napi_build_version && napi_build_version > 0)) {\n        throw new Error('All values specified in napi_versions must be positive integers.');\n      }\n    });\n  }\n\n  if (napi_build_versions && (!module_path_ok || (!remote_path_ok && !package_name_ok))) {\n    throw new Error('When napi_versions is specified; module_path and either remote_path or ' +\n\t\t\t\"package_name must contain the substitution string '{napi_build_version}`.\");\n  }\n\n  if ((module_path_ok || remote_path_ok || package_name_ok) && !napi_build_versions_raw) {\n    throw new Error(\"When the substitution string '{napi_build_version}` is specified in \" +\n\t\t\t'module_path, remote_path, or package_name; napi_versions must also be specified.');\n  }\n\n  if (napi_build_versions && !module.exports.get_best_napi_build_version(package_json, opts) &&\n\tmodule.exports.build_napi_only(package_json)) {\n    throw new Error(\n      'The Node-API version of this Node instance is ' + module.exports.get_napi_version(opts ? opts.target : undefined) + '. ' +\n\t\t\t'This module supports Node-API version(s) ' + module.exports.get_napi_build_versions_raw(package_json) + '. ' +\n\t\t\t'This Node instance cannot run this module.');\n  }\n\n  if (napi_build_versions_raw && !napi_build_versions && module.exports.build_napi_only(package_json)) {\n    throw new Error(\n      'The Node-API version of this Node instance is ' + module.exports.get_napi_version(opts ? opts.target : undefined) + '. ' +\n\t\t\t'This module supports Node-API version(s) ' + module.exports.get_napi_build_versions_raw(package_json) + '. ' +\n\t\t\t'This Node instance cannot run this module.');\n  }\n\n};\n\nfunction pathOK(path) {\n  return path && (path.indexOf('{napi_build_version}') !== -1 || path.indexOf('{node_napi_label}') !== -1);\n}\n\nmodule.exports.expand_commands = function(package_json, opts, commands) {\n  const expanded_commands = [];\n  const napi_build_versions = module.exports.get_napi_build_versions(package_json, opts);\n  commands.forEach((command)=> {\n    if (napi_build_versions && command.name === 'install') {\n      const napi_build_version = module.exports.get_best_napi_build_version(package_json, opts);\n      const args = napi_build_version ? [napi_build_version_tag + napi_build_version] : [];\n      expanded_commands.push({ name: command.name, args: args });\n    } else if (napi_build_versions && napi_multiple_commands.indexOf(command.name) !== -1) {\n      napi_build_versions.forEach((napi_build_version)=> {\n        const args = command.args.slice();\n        args.push(napi_build_version_tag + napi_build_version);\n        expanded_commands.push({ name: command.name, args: args });\n      });\n    } else {\n      expanded_commands.push(command);\n    }\n  });\n  return expanded_commands;\n};\n\nmodule.exports.get_napi_build_versions = function(package_json, opts, warnings) { // opts may be undefined\n  const log = require('npmlog');\n  let napi_build_versions = [];\n  const supported_napi_version = module.exports.get_napi_version(opts ? opts.target : undefined);\n  // remove duplicates, verify each napi version can actaully be built\n  if (package_json.binary && package_json.binary.napi_versions) {\n    package_json.binary.napi_versions.forEach((napi_version) => {\n      const duplicated = napi_build_versions.indexOf(napi_version) !== -1;\n      if (!duplicated && supported_napi_version && napi_version <= supported_napi_version) {\n        napi_build_versions.push(napi_version);\n      } else if (warnings && !duplicated && supported_napi_version) {\n        log.info('This Node instance does not support builds for Node-API version', napi_version);\n      }\n    });\n  }\n  if (opts && opts['build-latest-napi-version-only']) {\n    let latest_version = 0;\n    napi_build_versions.forEach((napi_version) => {\n      if (napi_version > latest_version) latest_version = napi_version;\n    });\n    napi_build_versions = latest_version ? [latest_version] : [];\n  }\n  return napi_build_versions.length ? napi_build_versions : undefined;\n};\n\nmodule.exports.get_napi_build_versions_raw = function(package_json) {\n  const napi_build_versions = [];\n  // remove duplicates\n  if (package_json.binary && package_json.binary.napi_versions) {\n    package_json.binary.napi_versions.forEach((napi_version) => {\n      if (napi_build_versions.indexOf(napi_version) === -1) {\n        napi_build_versions.push(napi_version);\n      }\n    });\n  }\n  return napi_build_versions.length ? napi_build_versions : undefined;\n};\n\nmodule.exports.get_command_arg = function(napi_build_version) {\n  return napi_build_version_tag + napi_build_version;\n};\n\nmodule.exports.get_napi_build_version_from_command_args = function(command_args) {\n  for (let i = 0; i < command_args.length; i++) {\n    const arg = command_args[i];\n    if (arg.indexOf(napi_build_version_tag) === 0) {\n      return parseInt(arg.substr(napi_build_version_tag.length), 10);\n    }\n  }\n  return undefined;\n};\n\nmodule.exports.swap_build_dir_out = function(napi_build_version) {\n  if (napi_build_version) {\n    const rm = require('rimraf');\n    rm.sync(module.exports.get_build_dir(napi_build_version));\n    fs.renameSync('build', module.exports.get_build_dir(napi_build_version));\n  }\n};\n\nmodule.exports.swap_build_dir_in = function(napi_build_version) {\n  if (napi_build_version) {\n    const rm = require('rimraf');\n    rm.sync('build');\n    fs.renameSync(module.exports.get_build_dir(napi_build_version), 'build');\n  }\n};\n\nmodule.exports.get_build_dir = function(napi_build_version) {\n  return 'build-tmp-napi-v' + napi_build_version;\n};\n\nmodule.exports.get_best_napi_build_version = function(package_json, opts) {\n  let best_napi_build_version = 0;\n  const napi_build_versions = module.exports.get_napi_build_versions(package_json, opts);\n  if (napi_build_versions) {\n    const our_napi_version = module.exports.get_napi_version(opts ? opts.target : undefined);\n    napi_build_versions.forEach((napi_build_version)=> {\n      if (napi_build_version > best_napi_build_version &&\n\t\t\t\tnapi_build_version <= our_napi_version) {\n        best_napi_build_version = napi_build_version;\n      }\n    });\n  }\n  return best_napi_build_version === 0 ? undefined : best_napi_build_version;\n};\n\nmodule.exports.build_napi_only = function(package_json) {\n  return package_json.binary && package_json.binary.package_name &&\n\tpackage_json.binary.package_name.indexOf('{node_napi_label}') === -1;\n};\n","// Note: this is the semver.org version of the spec that it implements\n// Not necessarily the package version of this code.\nconst SEMVER_SPEC_VERSION = '2.0.0'\n\nconst MAX_LENGTH = 256\nconst MAX_SAFE_INTEGER = Number.MAX_SAFE_INTEGER ||\n/* istanbul ignore next */ 9007199254740991\n\n// Max safe segment length for coercion.\nconst MAX_SAFE_COMPONENT_LENGTH = 16\n\n// Max safe length for a build identifier. The max length minus 6 characters for\n// the shortest version with a build 0.0.0+BUILD.\nconst MAX_SAFE_BUILD_LENGTH = MAX_LENGTH - 6\n\nconst RELEASE_TYPES = [\n  'major',\n  'premajor',\n  'minor',\n  'preminor',\n  'patch',\n  'prepatch',\n  'prerelease',\n]\n\nmodule.exports = {\n  MAX_LENGTH,\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_SAFE_INTEGER,\n  RELEASE_TYPES,\n  SEMVER_SPEC_VERSION,\n  FLAG_INCLUDE_PRERELEASE: 0b001,\n  FLAG_LOOSE: 0b010,\n}\n","const debug = (\n  typeof process === 'object' &&\n  process.env &&\n  process.env.NODE_DEBUG &&\n  /\\bsemver\\b/i.test(process.env.NODE_DEBUG)\n) ? (...args) => console.error('SEMVER', ...args)\n  : () => {}\n\nmodule.exports = debug\n","const {\n  MAX_SAFE_COMPONENT_LENGTH,\n  MAX_SAFE_BUILD_LENGTH,\n  MAX_LENGTH,\n} = require('./constants')\nconst debug = require('./debug')\nexports = module.exports = {}\n\n// The actual regexps go on exports.re\nconst re = exports.re = []\nconst safeRe = exports.safeRe = []\nconst src = exports.src = []\nconst t = exports.t = {}\nlet R = 0\n\nconst LETTERDASHNUMBER = '[a-zA-Z0-9-]'\n\n// Replace some greedy regex tokens to prevent regex dos issues. These regex are\n// used internally via the safeRe object since all inputs in this library get\n// normalized first to trim and collapse all extra whitespace. The original\n// regexes are exported for userland consumption and lower level usage. A\n// future breaking change could export the safer regex only with a note that\n// all input should have extra whitespace removed.\nconst safeRegexReplacements = [\n  ['\\\\s', 1],\n  ['\\\\d', MAX_LENGTH],\n  [LETTERDASHNUMBER, MAX_SAFE_BUILD_LENGTH],\n]\n\nconst makeSafeRegex = (value) => {\n  for (const [token, max] of safeRegexReplacements) {\n    value = value\n      .split(`${token}*`).join(`${token}{0,${max}}`)\n      .split(`${token}+`).join(`${token}{1,${max}}`)\n  }\n  return value\n}\n\nconst createToken = (name, value, isGlobal) => {\n  const safe = makeSafeRegex(value)\n  const index = R++\n  debug(name, index, value)\n  t[name] = index\n  src[index] = value\n  re[index] = new RegExp(value, isGlobal ? 'g' : undefined)\n  safeRe[index] = new RegExp(safe, isGlobal ? 'g' : undefined)\n}\n\n// The following Regular Expressions can be used for tokenizing,\n// validating, and parsing SemVer version strings.\n\n// ## Numeric Identifier\n// A single `0`, or a non-zero digit followed by zero or more digits.\n\ncreateToken('NUMERICIDENTIFIER', '0|[1-9]\\\\d*')\ncreateToken('NUMERICIDENTIFIERLOOSE', '\\\\d+')\n\n// ## Non-numeric Identifier\n// Zero or more digits, followed by a letter or hyphen, and then zero or\n// more letters, digits, or hyphens.\n\ncreateToken('NONNUMERICIDENTIFIER', `\\\\d*[a-zA-Z-]${LETTERDASHNUMBER}*`)\n\n// ## Main Version\n// Three dot-separated numeric identifiers.\n\ncreateToken('MAINVERSION', `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})\\\\.` +\n                   `(${src[t.NUMERICIDENTIFIER]})`)\n\ncreateToken('MAINVERSIONLOOSE', `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})\\\\.` +\n                        `(${src[t.NUMERICIDENTIFIERLOOSE]})`)\n\n// ## Pre-release Version Identifier\n// A numeric identifier, or a non-numeric identifier.\n\ncreateToken('PRERELEASEIDENTIFIER', `(?:${src[t.NUMERICIDENTIFIER]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\ncreateToken('PRERELEASEIDENTIFIERLOOSE', `(?:${src[t.NUMERICIDENTIFIERLOOSE]\n}|${src[t.NONNUMERICIDENTIFIER]})`)\n\n// ## Pre-release Version\n// Hyphen, followed by one or more dot-separated pre-release version\n// identifiers.\n\ncreateToken('PRERELEASE', `(?:-(${src[t.PRERELEASEIDENTIFIER]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIER]})*))`)\n\ncreateToken('PRERELEASELOOSE', `(?:-?(${src[t.PRERELEASEIDENTIFIERLOOSE]\n}(?:\\\\.${src[t.PRERELEASEIDENTIFIERLOOSE]})*))`)\n\n// ## Build Metadata Identifier\n// Any combination of digits, letters, or hyphens.\n\ncreateToken('BUILDIDENTIFIER', `${LETTERDASHNUMBER}+`)\n\n// ## Build Metadata\n// Plus sign, followed by one or more period-separated build metadata\n// identifiers.\n\ncreateToken('BUILD', `(?:\\\\+(${src[t.BUILDIDENTIFIER]\n}(?:\\\\.${src[t.BUILDIDENTIFIER]})*))`)\n\n// ## Full Version String\n// A main version, followed optionally by a pre-release version and\n// build metadata.\n\n// Note that the only major, minor, patch, and pre-release sections of\n// the version string are capturing groups.  The build metadata is not a\n// capturing group, because it should not ever be used in version\n// comparison.\n\ncreateToken('FULLPLAIN', `v?${src[t.MAINVERSION]\n}${src[t.PRERELEASE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('FULL', `^${src[t.FULLPLAIN]}$`)\n\n// like full, but allows v1.2.3 and =1.2.3, which people do sometimes.\n// also, 1.0.0alpha1 (prerelease without the hyphen) which is pretty\n// common in the npm registry.\ncreateToken('LOOSEPLAIN', `[v=\\\\s]*${src[t.MAINVERSIONLOOSE]\n}${src[t.PRERELEASELOOSE]}?${\n  src[t.BUILD]}?`)\n\ncreateToken('LOOSE', `^${src[t.LOOSEPLAIN]}$`)\n\ncreateToken('GTLT', '((?:<|>)?=?)')\n\n// Something like \"2.*\" or \"1.2.x\".\n// Note that \"x.x\" is a valid xRange identifer, meaning \"any version\"\n// Only the first item is strictly required.\ncreateToken('XRANGEIDENTIFIERLOOSE', `${src[t.NUMERICIDENTIFIERLOOSE]}|x|X|\\\\*`)\ncreateToken('XRANGEIDENTIFIER', `${src[t.NUMERICIDENTIFIER]}|x|X|\\\\*`)\n\ncreateToken('XRANGEPLAIN', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:\\\\.(${src[t.XRANGEIDENTIFIER]})` +\n                   `(?:${src[t.PRERELEASE]})?${\n                     src[t.BUILD]}?` +\n                   `)?)?`)\n\ncreateToken('XRANGEPLAINLOOSE', `[v=\\\\s]*(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:\\\\.(${src[t.XRANGEIDENTIFIERLOOSE]})` +\n                        `(?:${src[t.PRERELEASELOOSE]})?${\n                          src[t.BUILD]}?` +\n                        `)?)?`)\n\ncreateToken('XRANGE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAIN]}$`)\ncreateToken('XRANGELOOSE', `^${src[t.GTLT]}\\\\s*${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Coercion.\n// Extract anything that could conceivably be a part of a valid semver\ncreateToken('COERCE', `${'(^|[^\\\\d])' +\n              '(\\\\d{1,'}${MAX_SAFE_COMPONENT_LENGTH}})` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:\\\\.(\\\\d{1,${MAX_SAFE_COMPONENT_LENGTH}}))?` +\n              `(?:$|[^\\\\d])`)\ncreateToken('COERCERTL', src[t.COERCE], true)\n\n// Tilde ranges.\n// Meaning is \"reasonably at or greater than\"\ncreateToken('LONETILDE', '(?:~>?)')\n\ncreateToken('TILDETRIM', `(\\\\s*)${src[t.LONETILDE]}\\\\s+`, true)\nexports.tildeTrimReplace = '$1~'\n\ncreateToken('TILDE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('TILDELOOSE', `^${src[t.LONETILDE]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// Caret ranges.\n// Meaning is \"at least and backwards compatible with\"\ncreateToken('LONECARET', '(?:\\\\^)')\n\ncreateToken('CARETTRIM', `(\\\\s*)${src[t.LONECARET]}\\\\s+`, true)\nexports.caretTrimReplace = '$1^'\n\ncreateToken('CARET', `^${src[t.LONECARET]}${src[t.XRANGEPLAIN]}$`)\ncreateToken('CARETLOOSE', `^${src[t.LONECARET]}${src[t.XRANGEPLAINLOOSE]}$`)\n\n// A simple gt/lt/eq thing, or just \"\" to indicate \"any version\"\ncreateToken('COMPARATORLOOSE', `^${src[t.GTLT]}\\\\s*(${src[t.LOOSEPLAIN]})$|^$`)\ncreateToken('COMPARATOR', `^${src[t.GTLT]}\\\\s*(${src[t.FULLPLAIN]})$|^$`)\n\n// An expression to strip any whitespace between the gtlt and the thing\n// it modifies, so that `> 1.2.3` ==> `>1.2.3`\ncreateToken('COMPARATORTRIM', `(\\\\s*)${src[t.GTLT]\n}\\\\s*(${src[t.LOOSEPLAIN]}|${src[t.XRANGEPLAIN]})`, true)\nexports.comparatorTrimReplace = '$1$2$3'\n\n// Something like `1.2.3 - 1.2.4`\n// Note that these all use the loose form, because they'll be\n// checked against either the strict or loose comparator form\n// later.\ncreateToken('HYPHENRANGE', `^\\\\s*(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s+-\\\\s+` +\n                   `(${src[t.XRANGEPLAIN]})` +\n                   `\\\\s*$`)\n\ncreateToken('HYPHENRANGELOOSE', `^\\\\s*(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s+-\\\\s+` +\n                        `(${src[t.XRANGEPLAINLOOSE]})` +\n                        `\\\\s*$`)\n\n// Star ranges basically just allow anything at all.\ncreateToken('STAR', '(<|>)?=?\\\\s*\\\\*')\n// >=0.0.0 is like a star\ncreateToken('GTE0', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0\\\\s*$')\ncreateToken('GTE0PRE', '^\\\\s*>=\\\\s*0\\\\.0\\\\.0-0\\\\s*$')\n","// parse out just the options we care about\nconst looseOption = Object.freeze({ loose: true })\nconst emptyOpts = Object.freeze({ })\nconst parseOptions = options => {\n  if (!options) {\n    return emptyOpts\n  }\n\n  if (typeof options !== 'object') {\n    return looseOption\n  }\n\n  return options\n}\nmodule.exports = parseOptions\n","const numeric = /^[0-9]+$/\nconst compareIdentifiers = (a, b) => {\n  const anum = numeric.test(a)\n  const bnum = numeric.test(b)\n\n  if (anum && bnum) {\n    a = +a\n    b = +b\n  }\n\n  return a === b ? 0\n    : (anum && !bnum) ? -1\n    : (bnum && !anum) ? 1\n    : a < b ? -1\n    : 1\n}\n\nconst rcompareIdentifiers = (a, b) => compareIdentifiers(b, a)\n\nmodule.exports = {\n  compareIdentifiers,\n  rcompareIdentifiers,\n}\n","const debug = require('../internal/debug')\nconst { MAX_LENGTH, MAX_SAFE_INTEGER } = require('../internal/constants')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst parseOptions = require('../internal/parse-options')\nconst { compareIdentifiers } = require('../internal/identifiers')\nclass SemVer {\n  constructor (version, options) {\n    options = parseOptions(options)\n\n    if (version instanceof SemVer) {\n      if (version.loose === !!options.loose &&\n          version.includePrerelease === !!options.includePrerelease) {\n        return version\n      } else {\n        version = version.version\n      }\n    } else if (typeof version !== 'string') {\n      throw new TypeError(`Invalid version. Must be a string. Got type \"${typeof version}\".`)\n    }\n\n    if (version.length > MAX_LENGTH) {\n      throw new TypeError(\n        `version is longer than ${MAX_LENGTH} characters`\n      )\n    }\n\n    debug('SemVer', version, options)\n    this.options = options\n    this.loose = !!options.loose\n    // this isn't actually relevant for versions, but keep it so that we\n    // don't run into trouble passing this.options around.\n    this.includePrerelease = !!options.includePrerelease\n\n    const m = version.trim().match(options.loose ? re[t.LOOSE] : re[t.FULL])\n\n    if (!m) {\n      throw new TypeError(`Invalid Version: ${version}`)\n    }\n\n    this.raw = version\n\n    // these are actually numbers\n    this.major = +m[1]\n    this.minor = +m[2]\n    this.patch = +m[3]\n\n    if (this.major > MAX_SAFE_INTEGER || this.major < 0) {\n      throw new TypeError('Invalid major version')\n    }\n\n    if (this.minor > MAX_SAFE_INTEGER || this.minor < 0) {\n      throw new TypeError('Invalid minor version')\n    }\n\n    if (this.patch > MAX_SAFE_INTEGER || this.patch < 0) {\n      throw new TypeError('Invalid patch version')\n    }\n\n    // numberify any prerelease numeric ids\n    if (!m[4]) {\n      this.prerelease = []\n    } else {\n      this.prerelease = m[4].split('.').map((id) => {\n        if (/^[0-9]+$/.test(id)) {\n          const num = +id\n          if (num >= 0 && num < MAX_SAFE_INTEGER) {\n            return num\n          }\n        }\n        return id\n      })\n    }\n\n    this.build = m[5] ? m[5].split('.') : []\n    this.format()\n  }\n\n  format () {\n    this.version = `${this.major}.${this.minor}.${this.patch}`\n    if (this.prerelease.length) {\n      this.version += `-${this.prerelease.join('.')}`\n    }\n    return this.version\n  }\n\n  toString () {\n    return this.version\n  }\n\n  compare (other) {\n    debug('SemVer.compare', this.version, this.options, other)\n    if (!(other instanceof SemVer)) {\n      if (typeof other === 'string' && other === this.version) {\n        return 0\n      }\n      other = new SemVer(other, this.options)\n    }\n\n    if (other.version === this.version) {\n      return 0\n    }\n\n    return this.compareMain(other) || this.comparePre(other)\n  }\n\n  compareMain (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    return (\n      compareIdentifiers(this.major, other.major) ||\n      compareIdentifiers(this.minor, other.minor) ||\n      compareIdentifiers(this.patch, other.patch)\n    )\n  }\n\n  comparePre (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    // NOT having a prerelease is > having one\n    if (this.prerelease.length && !other.prerelease.length) {\n      return -1\n    } else if (!this.prerelease.length && other.prerelease.length) {\n      return 1\n    } else if (!this.prerelease.length && !other.prerelease.length) {\n      return 0\n    }\n\n    let i = 0\n    do {\n      const a = this.prerelease[i]\n      const b = other.prerelease[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  compareBuild (other) {\n    if (!(other instanceof SemVer)) {\n      other = new SemVer(other, this.options)\n    }\n\n    let i = 0\n    do {\n      const a = this.build[i]\n      const b = other.build[i]\n      debug('prerelease compare', i, a, b)\n      if (a === undefined && b === undefined) {\n        return 0\n      } else if (b === undefined) {\n        return 1\n      } else if (a === undefined) {\n        return -1\n      } else if (a === b) {\n        continue\n      } else {\n        return compareIdentifiers(a, b)\n      }\n    } while (++i)\n  }\n\n  // preminor will bump the version up to the next minor release, and immediately\n  // down to pre-release. premajor and prepatch work the same way.\n  inc (release, identifier, identifierBase) {\n    switch (release) {\n      case 'premajor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor = 0\n        this.major++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'preminor':\n        this.prerelease.length = 0\n        this.patch = 0\n        this.minor++\n        this.inc('pre', identifier, identifierBase)\n        break\n      case 'prepatch':\n        // If this is already a prerelease, it will bump to the next version\n        // drop any prereleases that might already exist, since they are not\n        // relevant at this point.\n        this.prerelease.length = 0\n        this.inc('patch', identifier, identifierBase)\n        this.inc('pre', identifier, identifierBase)\n        break\n      // If the input is a non-prerelease version, this acts the same as\n      // prepatch.\n      case 'prerelease':\n        if (this.prerelease.length === 0) {\n          this.inc('patch', identifier, identifierBase)\n        }\n        this.inc('pre', identifier, identifierBase)\n        break\n\n      case 'major':\n        // If this is a pre-major version, bump up to the same major version.\n        // Otherwise increment major.\n        // 1.0.0-5 bumps to 1.0.0\n        // 1.1.0 bumps to 2.0.0\n        if (\n          this.minor !== 0 ||\n          this.patch !== 0 ||\n          this.prerelease.length === 0\n        ) {\n          this.major++\n        }\n        this.minor = 0\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'minor':\n        // If this is a pre-minor version, bump up to the same minor version.\n        // Otherwise increment minor.\n        // 1.2.0-5 bumps to 1.2.0\n        // 1.2.1 bumps to 1.3.0\n        if (this.patch !== 0 || this.prerelease.length === 0) {\n          this.minor++\n        }\n        this.patch = 0\n        this.prerelease = []\n        break\n      case 'patch':\n        // If this is not a pre-release version, it will increment the patch.\n        // If it is a pre-release it will bump up to the same patch version.\n        // 1.2.0-5 patches to 1.2.0\n        // 1.2.0 patches to 1.2.1\n        if (this.prerelease.length === 0) {\n          this.patch++\n        }\n        this.prerelease = []\n        break\n      // This probably shouldn't be used publicly.\n      // 1.0.0 'pre' would become 1.0.0-0 which is the wrong direction.\n      case 'pre': {\n        const base = Number(identifierBase) ? 1 : 0\n\n        if (!identifier && identifierBase === false) {\n          throw new Error('invalid increment argument: identifier is empty')\n        }\n\n        if (this.prerelease.length === 0) {\n          this.prerelease = [base]\n        } else {\n          let i = this.prerelease.length\n          while (--i >= 0) {\n            if (typeof this.prerelease[i] === 'number') {\n              this.prerelease[i]++\n              i = -2\n            }\n          }\n          if (i === -1) {\n            // didn't increment anything\n            if (identifier === this.prerelease.join('.') && identifierBase === false) {\n              throw new Error('invalid increment argument: identifier already exists')\n            }\n            this.prerelease.push(base)\n          }\n        }\n        if (identifier) {\n          // 1.2.0-beta.1 bumps to 1.2.0-beta.2,\n          // 1.2.0-beta.fooblz or 1.2.0-beta bumps to 1.2.0-beta.0\n          let prerelease = [identifier, base]\n          if (identifierBase === false) {\n            prerelease = [identifier]\n          }\n          if (compareIdentifiers(this.prerelease[0], identifier) === 0) {\n            if (isNaN(this.prerelease[1])) {\n              this.prerelease = prerelease\n            }\n          } else {\n            this.prerelease = prerelease\n          }\n        }\n        break\n      }\n      default:\n        throw new Error(`invalid increment argument: ${release}`)\n    }\n    this.raw = this.format()\n    if (this.build.length) {\n      this.raw += `+${this.build.join('.')}`\n    }\n    return this\n  }\n}\n\nmodule.exports = SemVer\n","const SemVer = require('../classes/semver')\nconst parse = (version, options, throwErrors = false) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n  try {\n    return new SemVer(version, options)\n  } catch (er) {\n    if (!throwErrors) {\n      return null\n    }\n    throw er\n  }\n}\n\nmodule.exports = parse\n","const parse = require('./parse')\nconst valid = (version, options) => {\n  const v = parse(version, options)\n  return v ? v.version : null\n}\nmodule.exports = valid\n","const parse = require('./parse')\nconst clean = (version, options) => {\n  const s = parse(version.trim().replace(/^[=v]+/, ''), options)\n  return s ? s.version : null\n}\nmodule.exports = clean\n","const SemVer = require('../classes/semver')\n\nconst inc = (version, release, options, identifier, identifierBase) => {\n  if (typeof (options) === 'string') {\n    identifierBase = identifier\n    identifier = options\n    options = undefined\n  }\n\n  try {\n    return new SemVer(\n      version instanceof SemVer ? version.version : version,\n      options\n    ).inc(release, identifier, identifierBase).version\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = inc\n","const parse = require('./parse.js')\n\nconst diff = (version1, version2) => {\n  const v1 = parse(version1, null, true)\n  const v2 = parse(version2, null, true)\n  const comparison = v1.compare(v2)\n\n  if (comparison === 0) {\n    return null\n  }\n\n  const v1Higher = comparison > 0\n  const highVersion = v1Higher ? v1 : v2\n  const lowVersion = v1Higher ? v2 : v1\n  const highHasPre = !!highVersion.prerelease.length\n  const lowHasPre = !!lowVersion.prerelease.length\n\n  if (lowHasPre && !highHasPre) {\n    // Going from prerelease -> no prerelease requires some special casing\n\n    // If the low version has only a major, then it will always be a major\n    // Some examples:\n    // 1.0.0-1 -> 1.0.0\n    // 1.0.0-1 -> 1.1.1\n    // 1.0.0-1 -> 2.0.0\n    if (!lowVersion.patch && !lowVersion.minor) {\n      return 'major'\n    }\n\n    // Otherwise it can be determined by checking the high version\n\n    if (highVersion.patch) {\n      // anything higher than a patch bump would result in the wrong version\n      return 'patch'\n    }\n\n    if (highVersion.minor) {\n      // anything higher than a minor bump would result in the wrong version\n      return 'minor'\n    }\n\n    // bumping major/minor/patch all have same result\n    return 'major'\n  }\n\n  // add the `pre` prefix if we are going to a prerelease version\n  const prefix = highHasPre ? 'pre' : ''\n\n  if (v1.major !== v2.major) {\n    return prefix + 'major'\n  }\n\n  if (v1.minor !== v2.minor) {\n    return prefix + 'minor'\n  }\n\n  if (v1.patch !== v2.patch) {\n    return prefix + 'patch'\n  }\n\n  // high and low are preleases\n  return 'prerelease'\n}\n\nmodule.exports = diff\n","const SemVer = require('../classes/semver')\nconst major = (a, loose) => new SemVer(a, loose).major\nmodule.exports = major\n","const SemVer = require('../classes/semver')\nconst minor = (a, loose) => new SemVer(a, loose).minor\nmodule.exports = minor\n","const SemVer = require('../classes/semver')\nconst patch = (a, loose) => new SemVer(a, loose).patch\nmodule.exports = patch\n","const parse = require('./parse')\nconst prerelease = (version, options) => {\n  const parsed = parse(version, options)\n  return (parsed && parsed.prerelease.length) ? parsed.prerelease : null\n}\nmodule.exports = prerelease\n","const SemVer = require('../classes/semver')\nconst compare = (a, b, loose) =>\n  new SemVer(a, loose).compare(new SemVer(b, loose))\n\nmodule.exports = compare\n","const compare = require('./compare')\nconst rcompare = (a, b, loose) => compare(b, a, loose)\nmodule.exports = rcompare\n","const compare = require('./compare')\nconst compareLoose = (a, b) => compare(a, b, true)\nmodule.exports = compareLoose\n","const SemVer = require('../classes/semver')\nconst compareBuild = (a, b, loose) => {\n  const versionA = new SemVer(a, loose)\n  const versionB = new SemVer(b, loose)\n  return versionA.compare(versionB) || versionA.compareBuild(versionB)\n}\nmodule.exports = compareBuild\n","const compareBuild = require('./compare-build')\nconst sort = (list, loose) => list.sort((a, b) => compareBuild(a, b, loose))\nmodule.exports = sort\n","const compareBuild = require('./compare-build')\nconst rsort = (list, loose) => list.sort((a, b) => compareBuild(b, a, loose))\nmodule.exports = rsort\n","const compare = require('./compare')\nconst gt = (a, b, loose) => compare(a, b, loose) > 0\nmodule.exports = gt\n","const compare = require('./compare')\nconst lt = (a, b, loose) => compare(a, b, loose) < 0\nmodule.exports = lt\n","const compare = require('./compare')\nconst eq = (a, b, loose) => compare(a, b, loose) === 0\nmodule.exports = eq\n","const compare = require('./compare')\nconst neq = (a, b, loose) => compare(a, b, loose) !== 0\nmodule.exports = neq\n","const compare = require('./compare')\nconst gte = (a, b, loose) => compare(a, b, loose) >= 0\nmodule.exports = gte\n","const compare = require('./compare')\nconst lte = (a, b, loose) => compare(a, b, loose) <= 0\nmodule.exports = lte\n","const eq = require('./eq')\nconst neq = require('./neq')\nconst gt = require('./gt')\nconst gte = require('./gte')\nconst lt = require('./lt')\nconst lte = require('./lte')\n\nconst cmp = (a, op, b, loose) => {\n  switch (op) {\n    case '===':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a === b\n\n    case '!==':\n      if (typeof a === 'object') {\n        a = a.version\n      }\n      if (typeof b === 'object') {\n        b = b.version\n      }\n      return a !== b\n\n    case '':\n    case '=':\n    case '==':\n      return eq(a, b, loose)\n\n    case '!=':\n      return neq(a, b, loose)\n\n    case '>':\n      return gt(a, b, loose)\n\n    case '>=':\n      return gte(a, b, loose)\n\n    case '<':\n      return lt(a, b, loose)\n\n    case '<=':\n      return lte(a, b, loose)\n\n    default:\n      throw new TypeError(`Invalid operator: ${op}`)\n  }\n}\nmodule.exports = cmp\n","const SemVer = require('../classes/semver')\nconst parse = require('./parse')\nconst { safeRe: re, t } = require('../internal/re')\n\nconst coerce = (version, options) => {\n  if (version instanceof SemVer) {\n    return version\n  }\n\n  if (typeof version === 'number') {\n    version = String(version)\n  }\n\n  if (typeof version !== 'string') {\n    return null\n  }\n\n  options = options || {}\n\n  let match = null\n  if (!options.rtl) {\n    match = version.match(re[t.COERCE])\n  } else {\n    // Find the right-most coercible string that does not share\n    // a terminus with a more left-ward coercible string.\n    // Eg, '1.2.3.4' wants to coerce '2.3.4', not '3.4' or '4'\n    //\n    // Walk through the string checking with a /g regexp\n    // Manually set the index so as to pick up overlapping matches.\n    // Stop when we get a match that ends at the string end, since no\n    // coercible string can be more right-ward without the same terminus.\n    let next\n    while ((next = re[t.COERCERTL].exec(version)) &&\n        (!match || match.index + match[0].length !== version.length)\n    ) {\n      if (!match ||\n            next.index + next[0].length !== match.index + match[0].length) {\n        match = next\n      }\n      re[t.COERCERTL].lastIndex = next.index + next[1].length + next[2].length\n    }\n    // leave it in a clean state\n    re[t.COERCERTL].lastIndex = -1\n  }\n\n  if (match === null) {\n    return null\n  }\n\n  return parse(`${match[2]}.${match[3] || '0'}.${match[4] || '0'}`, options)\n}\nmodule.exports = coerce\n","'use strict'\nmodule.exports = function (Yallist) {\n  Yallist.prototype[Symbol.iterator] = function* () {\n    for (let walker = this.head; walker; walker = walker.next) {\n      yield walker.value\n    }\n  }\n}\n","'use strict'\nmodule.exports = Yallist\n\nYallist.Node = Node\nYallist.create = Yallist\n\nfunction Yallist (list) {\n  var self = this\n  if (!(self instanceof Yallist)) {\n    self = new Yallist()\n  }\n\n  self.tail = null\n  self.head = null\n  self.length = 0\n\n  if (list && typeof list.forEach === 'function') {\n    list.forEach(function (item) {\n      self.push(item)\n    })\n  } else if (arguments.length > 0) {\n    for (var i = 0, l = arguments.length; i < l; i++) {\n      self.push(arguments[i])\n    }\n  }\n\n  return self\n}\n\nYallist.prototype.removeNode = function (node) {\n  if (node.list !== this) {\n    throw new Error('removing node which does not belong to this list')\n  }\n\n  var next = node.next\n  var prev = node.prev\n\n  if (next) {\n    next.prev = prev\n  }\n\n  if (prev) {\n    prev.next = next\n  }\n\n  if (node === this.head) {\n    this.head = next\n  }\n  if (node === this.tail) {\n    this.tail = prev\n  }\n\n  node.list.length--\n  node.next = null\n  node.prev = null\n  node.list = null\n\n  return next\n}\n\nYallist.prototype.unshiftNode = function (node) {\n  if (node === this.head) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var head = this.head\n  node.list = this\n  node.next = head\n  if (head) {\n    head.prev = node\n  }\n\n  this.head = node\n  if (!this.tail) {\n    this.tail = node\n  }\n  this.length++\n}\n\nYallist.prototype.pushNode = function (node) {\n  if (node === this.tail) {\n    return\n  }\n\n  if (node.list) {\n    node.list.removeNode(node)\n  }\n\n  var tail = this.tail\n  node.list = this\n  node.prev = tail\n  if (tail) {\n    tail.next = node\n  }\n\n  this.tail = node\n  if (!this.head) {\n    this.head = node\n  }\n  this.length++\n}\n\nYallist.prototype.push = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    push(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.unshift = function () {\n  for (var i = 0, l = arguments.length; i < l; i++) {\n    unshift(this, arguments[i])\n  }\n  return this.length\n}\n\nYallist.prototype.pop = function () {\n  if (!this.tail) {\n    return undefined\n  }\n\n  var res = this.tail.value\n  this.tail = this.tail.prev\n  if (this.tail) {\n    this.tail.next = null\n  } else {\n    this.head = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.shift = function () {\n  if (!this.head) {\n    return undefined\n  }\n\n  var res = this.head.value\n  this.head = this.head.next\n  if (this.head) {\n    this.head.prev = null\n  } else {\n    this.tail = null\n  }\n  this.length--\n  return res\n}\n\nYallist.prototype.forEach = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.head, i = 0; walker !== null; i++) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.next\n  }\n}\n\nYallist.prototype.forEachReverse = function (fn, thisp) {\n  thisp = thisp || this\n  for (var walker = this.tail, i = this.length - 1; walker !== null; i--) {\n    fn.call(thisp, walker.value, i, this)\n    walker = walker.prev\n  }\n}\n\nYallist.prototype.get = function (n) {\n  for (var i = 0, walker = this.head; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.next\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.getReverse = function (n) {\n  for (var i = 0, walker = this.tail; walker !== null && i < n; i++) {\n    // abort out of the list early if we hit a cycle\n    walker = walker.prev\n  }\n  if (i === n && walker !== null) {\n    return walker.value\n  }\n}\n\nYallist.prototype.map = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.head; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.next\n  }\n  return res\n}\n\nYallist.prototype.mapReverse = function (fn, thisp) {\n  thisp = thisp || this\n  var res = new Yallist()\n  for (var walker = this.tail; walker !== null;) {\n    res.push(fn.call(thisp, walker.value, this))\n    walker = walker.prev\n  }\n  return res\n}\n\nYallist.prototype.reduce = function (fn, initial) {\n  var acc\n  var walker = this.head\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.head) {\n    walker = this.head.next\n    acc = this.head.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = 0; walker !== null; i++) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.next\n  }\n\n  return acc\n}\n\nYallist.prototype.reduceReverse = function (fn, initial) {\n  var acc\n  var walker = this.tail\n  if (arguments.length > 1) {\n    acc = initial\n  } else if (this.tail) {\n    walker = this.tail.prev\n    acc = this.tail.value\n  } else {\n    throw new TypeError('Reduce of empty list with no initial value')\n  }\n\n  for (var i = this.length - 1; walker !== null; i--) {\n    acc = fn(acc, walker.value, i)\n    walker = walker.prev\n  }\n\n  return acc\n}\n\nYallist.prototype.toArray = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.head; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.next\n  }\n  return arr\n}\n\nYallist.prototype.toArrayReverse = function () {\n  var arr = new Array(this.length)\n  for (var i = 0, walker = this.tail; walker !== null; i++) {\n    arr[i] = walker.value\n    walker = walker.prev\n  }\n  return arr\n}\n\nYallist.prototype.slice = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = 0, walker = this.head; walker !== null && i < from; i++) {\n    walker = walker.next\n  }\n  for (; walker !== null && i < to; i++, walker = walker.next) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.sliceReverse = function (from, to) {\n  to = to || this.length\n  if (to < 0) {\n    to += this.length\n  }\n  from = from || 0\n  if (from < 0) {\n    from += this.length\n  }\n  var ret = new Yallist()\n  if (to < from || to < 0) {\n    return ret\n  }\n  if (from < 0) {\n    from = 0\n  }\n  if (to > this.length) {\n    to = this.length\n  }\n  for (var i = this.length, walker = this.tail; walker !== null && i > to; i--) {\n    walker = walker.prev\n  }\n  for (; walker !== null && i > from; i--, walker = walker.prev) {\n    ret.push(walker.value)\n  }\n  return ret\n}\n\nYallist.prototype.splice = function (start, deleteCount, ...nodes) {\n  if (start > this.length) {\n    start = this.length - 1\n  }\n  if (start < 0) {\n    start = this.length + start;\n  }\n\n  for (var i = 0, walker = this.head; walker !== null && i < start; i++) {\n    walker = walker.next\n  }\n\n  var ret = []\n  for (var i = 0; walker && i < deleteCount; i++) {\n    ret.push(walker.value)\n    walker = this.removeNode(walker)\n  }\n  if (walker === null) {\n    walker = this.tail\n  }\n\n  if (walker !== this.head && walker !== this.tail) {\n    walker = walker.prev\n  }\n\n  for (var i = 0; i < nodes.length; i++) {\n    walker = insert(this, walker, nodes[i])\n  }\n  return ret;\n}\n\nYallist.prototype.reverse = function () {\n  var head = this.head\n  var tail = this.tail\n  for (var walker = head; walker !== null; walker = walker.prev) {\n    var p = walker.prev\n    walker.prev = walker.next\n    walker.next = p\n  }\n  this.head = tail\n  this.tail = head\n  return this\n}\n\nfunction insert (self, node, value) {\n  var inserted = node === self.head ?\n    new Node(value, null, node, self) :\n    new Node(value, node, node.next, self)\n\n  if (inserted.next === null) {\n    self.tail = inserted\n  }\n  if (inserted.prev === null) {\n    self.head = inserted\n  }\n\n  self.length++\n\n  return inserted\n}\n\nfunction push (self, item) {\n  self.tail = new Node(item, self.tail, null, self)\n  if (!self.head) {\n    self.head = self.tail\n  }\n  self.length++\n}\n\nfunction unshift (self, item) {\n  self.head = new Node(item, null, self.head, self)\n  if (!self.tail) {\n    self.tail = self.head\n  }\n  self.length++\n}\n\nfunction Node (value, prev, next, list) {\n  if (!(this instanceof Node)) {\n    return new Node(value, prev, next, list)\n  }\n\n  this.list = list\n  this.value = value\n\n  if (prev) {\n    prev.next = this\n    this.prev = prev\n  } else {\n    this.prev = null\n  }\n\n  if (next) {\n    next.prev = this\n    this.next = next\n  } else {\n    this.next = null\n  }\n}\n\ntry {\n  // add if support for Symbol.iterator is present\n  require('./iterator.js')(Yallist)\n} catch (er) {}\n","'use strict'\n\n// A linked list to keep track of recently-used-ness\nconst Yallist = require('yallist')\n\nconst MAX = Symbol('max')\nconst LENGTH = Symbol('length')\nconst LENGTH_CALCULATOR = Symbol('lengthCalculator')\nconst ALLOW_STALE = Symbol('allowStale')\nconst MAX_AGE = Symbol('maxAge')\nconst DISPOSE = Symbol('dispose')\nconst NO_DISPOSE_ON_SET = Symbol('noDisposeOnSet')\nconst LRU_LIST = Symbol('lruList')\nconst CACHE = Symbol('cache')\nconst UPDATE_AGE_ON_GET = Symbol('updateAgeOnGet')\n\nconst naiveLength = () => 1\n\n// lruList is a yallist where the head is the youngest\n// item, and the tail is the oldest.  the list contains the Hit\n// objects as the entries.\n// Each Hit object has a reference to its Yallist.Node.  This\n// never changes.\n//\n// cache is a Map (or PseudoMap) that matches the keys to\n// the Yallist.Node object.\nclass LRUCache {\n  constructor (options) {\n    if (typeof options === 'number')\n      options = { max: options }\n\n    if (!options)\n      options = {}\n\n    if (options.max && (typeof options.max !== 'number' || options.max < 0))\n      throw new TypeError('max must be a non-negative number')\n    // Kind of weird to have a default max of Infinity, but oh well.\n    const max = this[MAX] = options.max || Infinity\n\n    const lc = options.length || naiveLength\n    this[LENGTH_CALCULATOR] = (typeof lc !== 'function') ? naiveLength : lc\n    this[ALLOW_STALE] = options.stale || false\n    if (options.maxAge && typeof options.maxAge !== 'number')\n      throw new TypeError('maxAge must be a number')\n    this[MAX_AGE] = options.maxAge || 0\n    this[DISPOSE] = options.dispose\n    this[NO_DISPOSE_ON_SET] = options.noDisposeOnSet || false\n    this[UPDATE_AGE_ON_GET] = options.updateAgeOnGet || false\n    this.reset()\n  }\n\n  // resize the cache when the max changes.\n  set max (mL) {\n    if (typeof mL !== 'number' || mL < 0)\n      throw new TypeError('max must be a non-negative number')\n\n    this[MAX] = mL || Infinity\n    trim(this)\n  }\n  get max () {\n    return this[MAX]\n  }\n\n  set allowStale (allowStale) {\n    this[ALLOW_STALE] = !!allowStale\n  }\n  get allowStale () {\n    return this[ALLOW_STALE]\n  }\n\n  set maxAge (mA) {\n    if (typeof mA !== 'number')\n      throw new TypeError('maxAge must be a non-negative number')\n\n    this[MAX_AGE] = mA\n    trim(this)\n  }\n  get maxAge () {\n    return this[MAX_AGE]\n  }\n\n  // resize the cache when the lengthCalculator changes.\n  set lengthCalculator (lC) {\n    if (typeof lC !== 'function')\n      lC = naiveLength\n\n    if (lC !== this[LENGTH_CALCULATOR]) {\n      this[LENGTH_CALCULATOR] = lC\n      this[LENGTH] = 0\n      this[LRU_LIST].forEach(hit => {\n        hit.length = this[LENGTH_CALCULATOR](hit.value, hit.key)\n        this[LENGTH] += hit.length\n      })\n    }\n    trim(this)\n  }\n  get lengthCalculator () { return this[LENGTH_CALCULATOR] }\n\n  get length () { return this[LENGTH] }\n  get itemCount () { return this[LRU_LIST].length }\n\n  rforEach (fn, thisp) {\n    thisp = thisp || this\n    for (let walker = this[LRU_LIST].tail; walker !== null;) {\n      const prev = walker.prev\n      forEachStep(this, fn, walker, thisp)\n      walker = prev\n    }\n  }\n\n  forEach (fn, thisp) {\n    thisp = thisp || this\n    for (let walker = this[LRU_LIST].head; walker !== null;) {\n      const next = walker.next\n      forEachStep(this, fn, walker, thisp)\n      walker = next\n    }\n  }\n\n  keys () {\n    return this[LRU_LIST].toArray().map(k => k.key)\n  }\n\n  values () {\n    return this[LRU_LIST].toArray().map(k => k.value)\n  }\n\n  reset () {\n    if (this[DISPOSE] &&\n        this[LRU_LIST] &&\n        this[LRU_LIST].length) {\n      this[LRU_LIST].forEach(hit => this[DISPOSE](hit.key, hit.value))\n    }\n\n    this[CACHE] = new Map() // hash of items by key\n    this[LRU_LIST] = new Yallist() // list of items in order of use recency\n    this[LENGTH] = 0 // length of items in the list\n  }\n\n  dump () {\n    return this[LRU_LIST].map(hit =>\n      isStale(this, hit) ? false : {\n        k: hit.key,\n        v: hit.value,\n        e: hit.now + (hit.maxAge || 0)\n      }).toArray().filter(h => h)\n  }\n\n  dumpLru () {\n    return this[LRU_LIST]\n  }\n\n  set (key, value, maxAge) {\n    maxAge = maxAge || this[MAX_AGE]\n\n    if (maxAge && typeof maxAge !== 'number')\n      throw new TypeError('maxAge must be a number')\n\n    const now = maxAge ? Date.now() : 0\n    const len = this[LENGTH_CALCULATOR](value, key)\n\n    if (this[CACHE].has(key)) {\n      if (len > this[MAX]) {\n        del(this, this[CACHE].get(key))\n        return false\n      }\n\n      const node = this[CACHE].get(key)\n      const item = node.value\n\n      // dispose of the old one before overwriting\n      // split out into 2 ifs for better coverage tracking\n      if (this[DISPOSE]) {\n        if (!this[NO_DISPOSE_ON_SET])\n          this[DISPOSE](key, item.value)\n      }\n\n      item.now = now\n      item.maxAge = maxAge\n      item.value = value\n      this[LENGTH] += len - item.length\n      item.length = len\n      this.get(key)\n      trim(this)\n      return true\n    }\n\n    const hit = new Entry(key, value, len, now, maxAge)\n\n    // oversized objects fall out of cache automatically.\n    if (hit.length > this[MAX]) {\n      if (this[DISPOSE])\n        this[DISPOSE](key, value)\n\n      return false\n    }\n\n    this[LENGTH] += hit.length\n    this[LRU_LIST].unshift(hit)\n    this[CACHE].set(key, this[LRU_LIST].head)\n    trim(this)\n    return true\n  }\n\n  has (key) {\n    if (!this[CACHE].has(key)) return false\n    const hit = this[CACHE].get(key).value\n    return !isStale(this, hit)\n  }\n\n  get (key) {\n    return get(this, key, true)\n  }\n\n  peek (key) {\n    return get(this, key, false)\n  }\n\n  pop () {\n    const node = this[LRU_LIST].tail\n    if (!node)\n      return null\n\n    del(this, node)\n    return node.value\n  }\n\n  del (key) {\n    del(this, this[CACHE].get(key))\n  }\n\n  load (arr) {\n    // reset the cache\n    this.reset()\n\n    const now = Date.now()\n    // A previous serialized cache has the most recent items first\n    for (let l = arr.length - 1; l >= 0; l--) {\n      const hit = arr[l]\n      const expiresAt = hit.e || 0\n      if (expiresAt === 0)\n        // the item was created without expiration in a non aged cache\n        this.set(hit.k, hit.v)\n      else {\n        const maxAge = expiresAt - now\n        // dont add already expired items\n        if (maxAge > 0) {\n          this.set(hit.k, hit.v, maxAge)\n        }\n      }\n    }\n  }\n\n  prune () {\n    this[CACHE].forEach((value, key) => get(this, key, false))\n  }\n}\n\nconst get = (self, key, doUse) => {\n  const node = self[CACHE].get(key)\n  if (node) {\n    const hit = node.value\n    if (isStale(self, hit)) {\n      del(self, node)\n      if (!self[ALLOW_STALE])\n        return undefined\n    } else {\n      if (doUse) {\n        if (self[UPDATE_AGE_ON_GET])\n          node.value.now = Date.now()\n        self[LRU_LIST].unshiftNode(node)\n      }\n    }\n    return hit.value\n  }\n}\n\nconst isStale = (self, hit) => {\n  if (!hit || (!hit.maxAge && !self[MAX_AGE]))\n    return false\n\n  const diff = Date.now() - hit.now\n  return hit.maxAge ? diff > hit.maxAge\n    : self[MAX_AGE] && (diff > self[MAX_AGE])\n}\n\nconst trim = self => {\n  if (self[LENGTH] > self[MAX]) {\n    for (let walker = self[LRU_LIST].tail;\n      self[LENGTH] > self[MAX] && walker !== null;) {\n      // We know that we're about to delete this one, and also\n      // what the next least recently used key will be, so just\n      // go ahead and set it now.\n      const prev = walker.prev\n      del(self, walker)\n      walker = prev\n    }\n  }\n}\n\nconst del = (self, node) => {\n  if (node) {\n    const hit = node.value\n    if (self[DISPOSE])\n      self[DISPOSE](hit.key, hit.value)\n\n    self[LENGTH] -= hit.length\n    self[CACHE].delete(hit.key)\n    self[LRU_LIST].removeNode(node)\n  }\n}\n\nclass Entry {\n  constructor (key, value, length, now, maxAge) {\n    this.key = key\n    this.value = value\n    this.length = length\n    this.now = now\n    this.maxAge = maxAge || 0\n  }\n}\n\nconst forEachStep = (self, fn, node, thisp) => {\n  let hit = node.value\n  if (isStale(self, hit)) {\n    del(self, node)\n    if (!self[ALLOW_STALE])\n      hit = undefined\n  }\n  if (hit)\n    fn.call(thisp, hit.value, hit.key, self)\n}\n\nmodule.exports = LRUCache\n","// hoisted class for cyclic dependency\nclass Range {\n  constructor (range, options) {\n    options = parseOptions(options)\n\n    if (range instanceof Range) {\n      if (\n        range.loose === !!options.loose &&\n        range.includePrerelease === !!options.includePrerelease\n      ) {\n        return range\n      } else {\n        return new Range(range.raw, options)\n      }\n    }\n\n    if (range instanceof Comparator) {\n      // just put it in the set and return\n      this.raw = range.value\n      this.set = [[range]]\n      this.format()\n      return this\n    }\n\n    this.options = options\n    this.loose = !!options.loose\n    this.includePrerelease = !!options.includePrerelease\n\n    // First reduce all whitespace as much as possible so we do not have to rely\n    // on potentially slow regexes like \\s*. This is then stored and used for\n    // future error messages as well.\n    this.raw = range\n      .trim()\n      .split(/\\s+/)\n      .join(' ')\n\n    // First, split on ||\n    this.set = this.raw\n      .split('||')\n      // map the range to a 2d array of comparators\n      .map(r => this.parseRange(r.trim()))\n      // throw out any comparator lists that are empty\n      // this generally means that it was not a valid range, which is allowed\n      // in loose mode, but will still throw if the WHOLE range is invalid.\n      .filter(c => c.length)\n\n    if (!this.set.length) {\n      throw new TypeError(`Invalid SemVer Range: ${this.raw}`)\n    }\n\n    // if we have any that are not the null set, throw out null sets.\n    if (this.set.length > 1) {\n      // keep the first one, in case they're all null sets\n      const first = this.set[0]\n      this.set = this.set.filter(c => !isNullSet(c[0]))\n      if (this.set.length === 0) {\n        this.set = [first]\n      } else if (this.set.length > 1) {\n        // if we have any that are *, then the range is just *\n        for (const c of this.set) {\n          if (c.length === 1 && isAny(c[0])) {\n            this.set = [c]\n            break\n          }\n        }\n      }\n    }\n\n    this.format()\n  }\n\n  format () {\n    this.range = this.set\n      .map((comps) => comps.join(' ').trim())\n      .join('||')\n      .trim()\n    return this.range\n  }\n\n  toString () {\n    return this.range\n  }\n\n  parseRange (range) {\n    // memoize range parsing for performance.\n    // this is a very hot path, and fully deterministic.\n    const memoOpts =\n      (this.options.includePrerelease && FLAG_INCLUDE_PRERELEASE) |\n      (this.options.loose && FLAG_LOOSE)\n    const memoKey = memoOpts + ':' + range\n    const cached = cache.get(memoKey)\n    if (cached) {\n      return cached\n    }\n\n    const loose = this.options.loose\n    // `1.2.3 - 1.2.4` => `>=1.2.3 <=1.2.4`\n    const hr = loose ? re[t.HYPHENRANGELOOSE] : re[t.HYPHENRANGE]\n    range = range.replace(hr, hyphenReplace(this.options.includePrerelease))\n    debug('hyphen replace', range)\n\n    // `> 1.2.3 < 1.2.5` => `>1.2.3 <1.2.5`\n    range = range.replace(re[t.COMPARATORTRIM], comparatorTrimReplace)\n    debug('comparator trim', range)\n\n    // `~ 1.2.3` => `~1.2.3`\n    range = range.replace(re[t.TILDETRIM], tildeTrimReplace)\n    debug('tilde trim', range)\n\n    // `^ 1.2.3` => `^1.2.3`\n    range = range.replace(re[t.CARETTRIM], caretTrimReplace)\n    debug('caret trim', range)\n\n    // At this point, the range is completely trimmed and\n    // ready to be split into comparators.\n\n    let rangeList = range\n      .split(' ')\n      .map(comp => parseComparator(comp, this.options))\n      .join(' ')\n      .split(/\\s+/)\n      // >=0.0.0 is equivalent to *\n      .map(comp => replaceGTE0(comp, this.options))\n\n    if (loose) {\n      // in loose mode, throw out any that are not valid comparators\n      rangeList = rangeList.filter(comp => {\n        debug('loose invalid filter', comp, this.options)\n        return !!comp.match(re[t.COMPARATORLOOSE])\n      })\n    }\n    debug('range list', rangeList)\n\n    // if any comparators are the null set, then replace with JUST null set\n    // if more than one comparator, remove any * comparators\n    // also, don't include the same comparator more than once\n    const rangeMap = new Map()\n    const comparators = rangeList.map(comp => new Comparator(comp, this.options))\n    for (const comp of comparators) {\n      if (isNullSet(comp)) {\n        return [comp]\n      }\n      rangeMap.set(comp.value, comp)\n    }\n    if (rangeMap.size > 1 && rangeMap.has('')) {\n      rangeMap.delete('')\n    }\n\n    const result = [...rangeMap.values()]\n    cache.set(memoKey, result)\n    return result\n  }\n\n  intersects (range, options) {\n    if (!(range instanceof Range)) {\n      throw new TypeError('a Range is required')\n    }\n\n    return this.set.some((thisComparators) => {\n      return (\n        isSatisfiable(thisComparators, options) &&\n        range.set.some((rangeComparators) => {\n          return (\n            isSatisfiable(rangeComparators, options) &&\n            thisComparators.every((thisComparator) => {\n              return rangeComparators.every((rangeComparator) => {\n                return thisComparator.intersects(rangeComparator, options)\n              })\n            })\n          )\n        })\n      )\n    })\n  }\n\n  // if ANY of the sets match ALL of its comparators, then pass\n  test (version) {\n    if (!version) {\n      return false\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    for (let i = 0; i < this.set.length; i++) {\n      if (testSet(this.set[i], version, this.options)) {\n        return true\n      }\n    }\n    return false\n  }\n}\n\nmodule.exports = Range\n\nconst LRU = require('lru-cache')\nconst cache = new LRU({ max: 1000 })\n\nconst parseOptions = require('../internal/parse-options')\nconst Comparator = require('./comparator')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst {\n  safeRe: re,\n  t,\n  comparatorTrimReplace,\n  tildeTrimReplace,\n  caretTrimReplace,\n} = require('../internal/re')\nconst { FLAG_INCLUDE_PRERELEASE, FLAG_LOOSE } = require('../internal/constants')\n\nconst isNullSet = c => c.value === '<0.0.0-0'\nconst isAny = c => c.value === ''\n\n// take a set of comparators and determine whether there\n// exists a version which can satisfy it\nconst isSatisfiable = (comparators, options) => {\n  let result = true\n  const remainingComparators = comparators.slice()\n  let testComparator = remainingComparators.pop()\n\n  while (result && remainingComparators.length) {\n    result = remainingComparators.every((otherComparator) => {\n      return testComparator.intersects(otherComparator, options)\n    })\n\n    testComparator = remainingComparators.pop()\n  }\n\n  return result\n}\n\n// comprised of xranges, tildes, stars, and gtlt's at this point.\n// already replaced the hyphen ranges\n// turn into a set of JUST comparators.\nconst parseComparator = (comp, options) => {\n  debug('comp', comp, options)\n  comp = replaceCarets(comp, options)\n  debug('caret', comp)\n  comp = replaceTildes(comp, options)\n  debug('tildes', comp)\n  comp = replaceXRanges(comp, options)\n  debug('xrange', comp)\n  comp = replaceStars(comp, options)\n  debug('stars', comp)\n  return comp\n}\n\nconst isX = id => !id || id.toLowerCase() === 'x' || id === '*'\n\n// ~, ~> --> * (any, kinda silly)\n// ~2, ~2.x, ~2.x.x, ~>2, ~>2.x ~>2.x.x --> >=2.0.0 <3.0.0-0\n// ~2.0, ~2.0.x, ~>2.0, ~>2.0.x --> >=2.0.0 <2.1.0-0\n// ~1.2, ~1.2.x, ~>1.2, ~>1.2.x --> >=1.2.0 <1.3.0-0\n// ~1.2.3, ~>1.2.3 --> >=1.2.3 <1.3.0-0\n// ~1.2.0, ~>1.2.0 --> >=1.2.0 <1.3.0-0\n// ~0.0.1 --> >=0.0.1 <0.1.0-0\nconst replaceTildes = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceTilde(c, options))\n    .join(' ')\n}\n\nconst replaceTilde = (comp, options) => {\n  const r = options.loose ? re[t.TILDELOOSE] : re[t.TILDE]\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('tilde', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0 <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      // ~1.2 == >=1.2.0 <1.3.0-0\n      ret = `>=${M}.${m}.0 <${M}.${+m + 1}.0-0`\n    } else if (pr) {\n      debug('replaceTilde pr', pr)\n      ret = `>=${M}.${m}.${p}-${pr\n      } <${M}.${+m + 1}.0-0`\n    } else {\n      // ~1.2.3 == >=1.2.3 <1.3.0-0\n      ret = `>=${M}.${m}.${p\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('tilde return', ret)\n    return ret\n  })\n}\n\n// ^ --> * (any, kinda silly)\n// ^2, ^2.x, ^2.x.x --> >=2.0.0 <3.0.0-0\n// ^2.0, ^2.0.x --> >=2.0.0 <3.0.0-0\n// ^1.2, ^1.2.x --> >=1.2.0 <2.0.0-0\n// ^1.2.3 --> >=1.2.3 <2.0.0-0\n// ^1.2.0 --> >=1.2.0 <2.0.0-0\n// ^0.0.1 --> >=0.0.1 <0.0.2-0\n// ^0.1.0 --> >=0.1.0 <0.2.0-0\nconst replaceCarets = (comp, options) => {\n  return comp\n    .trim()\n    .split(/\\s+/)\n    .map((c) => replaceCaret(c, options))\n    .join(' ')\n}\n\nconst replaceCaret = (comp, options) => {\n  debug('caret', comp, options)\n  const r = options.loose ? re[t.CARETLOOSE] : re[t.CARET]\n  const z = options.includePrerelease ? '-0' : ''\n  return comp.replace(r, (_, M, m, p, pr) => {\n    debug('caret', comp, _, M, m, p, pr)\n    let ret\n\n    if (isX(M)) {\n      ret = ''\n    } else if (isX(m)) {\n      ret = `>=${M}.0.0${z} <${+M + 1}.0.0-0`\n    } else if (isX(p)) {\n      if (M === '0') {\n        ret = `>=${M}.${m}.0${z} <${M}.${+m + 1}.0-0`\n      } else {\n        ret = `>=${M}.${m}.0${z} <${+M + 1}.0.0-0`\n      }\n    } else if (pr) {\n      debug('replaceCaret pr', pr)\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p}-${pr\n          } <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p}-${pr\n        } <${+M + 1}.0.0-0`\n      }\n    } else {\n      debug('no pr')\n      if (M === '0') {\n        if (m === '0') {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${m}.${+p + 1}-0`\n        } else {\n          ret = `>=${M}.${m}.${p\n          }${z} <${M}.${+m + 1}.0-0`\n        }\n      } else {\n        ret = `>=${M}.${m}.${p\n        } <${+M + 1}.0.0-0`\n      }\n    }\n\n    debug('caret return', ret)\n    return ret\n  })\n}\n\nconst replaceXRanges = (comp, options) => {\n  debug('replaceXRanges', comp, options)\n  return comp\n    .split(/\\s+/)\n    .map((c) => replaceXRange(c, options))\n    .join(' ')\n}\n\nconst replaceXRange = (comp, options) => {\n  comp = comp.trim()\n  const r = options.loose ? re[t.XRANGELOOSE] : re[t.XRANGE]\n  return comp.replace(r, (ret, gtlt, M, m, p, pr) => {\n    debug('xRange', comp, ret, gtlt, M, m, p, pr)\n    const xM = isX(M)\n    const xm = xM || isX(m)\n    const xp = xm || isX(p)\n    const anyX = xp\n\n    if (gtlt === '=' && anyX) {\n      gtlt = ''\n    }\n\n    // if we're including prereleases in the match, then we need\n    // to fix this to -0, the lowest possible prerelease value\n    pr = options.includePrerelease ? '-0' : ''\n\n    if (xM) {\n      if (gtlt === '>' || gtlt === '<') {\n        // nothing is allowed\n        ret = '<0.0.0-0'\n      } else {\n        // nothing is forbidden\n        ret = '*'\n      }\n    } else if (gtlt && anyX) {\n      // we know patch is an x, because we have any x at all.\n      // replace X with 0\n      if (xm) {\n        m = 0\n      }\n      p = 0\n\n      if (gtlt === '>') {\n        // >1 => >=2.0.0\n        // >1.2 => >=1.3.0\n        gtlt = '>='\n        if (xm) {\n          M = +M + 1\n          m = 0\n          p = 0\n        } else {\n          m = +m + 1\n          p = 0\n        }\n      } else if (gtlt === '<=') {\n        // <=0.7.x is actually <0.8.0, since any 0.7.x should\n        // pass.  Similarly, <=7.x is actually <8.0.0, etc.\n        gtlt = '<'\n        if (xm) {\n          M = +M + 1\n        } else {\n          m = +m + 1\n        }\n      }\n\n      if (gtlt === '<') {\n        pr = '-0'\n      }\n\n      ret = `${gtlt + M}.${m}.${p}${pr}`\n    } else if (xm) {\n      ret = `>=${M}.0.0${pr} <${+M + 1}.0.0-0`\n    } else if (xp) {\n      ret = `>=${M}.${m}.0${pr\n      } <${M}.${+m + 1}.0-0`\n    }\n\n    debug('xRange return', ret)\n\n    return ret\n  })\n}\n\n// Because * is AND-ed with everything else in the comparator,\n// and '' means \"any version\", just remove the *s entirely.\nconst replaceStars = (comp, options) => {\n  debug('replaceStars', comp, options)\n  // Looseness is ignored here.  star is always as loose as it gets!\n  return comp\n    .trim()\n    .replace(re[t.STAR], '')\n}\n\nconst replaceGTE0 = (comp, options) => {\n  debug('replaceGTE0', comp, options)\n  return comp\n    .trim()\n    .replace(re[options.includePrerelease ? t.GTE0PRE : t.GTE0], '')\n}\n\n// This function is passed to string.replace(re[t.HYPHENRANGE])\n// M, m, patch, prerelease, build\n// 1.2 - 3.4.5 => >=1.2.0 <=3.4.5\n// 1.2.3 - 3.4 => >=1.2.0 <3.5.0-0 Any 3.4.x will do\n// 1.2 - 3.4 => >=1.2.0 <3.5.0-0\nconst hyphenReplace = incPr => ($0,\n  from, fM, fm, fp, fpr, fb,\n  to, tM, tm, tp, tpr, tb) => {\n  if (isX(fM)) {\n    from = ''\n  } else if (isX(fm)) {\n    from = `>=${fM}.0.0${incPr ? '-0' : ''}`\n  } else if (isX(fp)) {\n    from = `>=${fM}.${fm}.0${incPr ? '-0' : ''}`\n  } else if (fpr) {\n    from = `>=${from}`\n  } else {\n    from = `>=${from}${incPr ? '-0' : ''}`\n  }\n\n  if (isX(tM)) {\n    to = ''\n  } else if (isX(tm)) {\n    to = `<${+tM + 1}.0.0-0`\n  } else if (isX(tp)) {\n    to = `<${tM}.${+tm + 1}.0-0`\n  } else if (tpr) {\n    to = `<=${tM}.${tm}.${tp}-${tpr}`\n  } else if (incPr) {\n    to = `<${tM}.${tm}.${+tp + 1}-0`\n  } else {\n    to = `<=${to}`\n  }\n\n  return `${from} ${to}`.trim()\n}\n\nconst testSet = (set, version, options) => {\n  for (let i = 0; i < set.length; i++) {\n    if (!set[i].test(version)) {\n      return false\n    }\n  }\n\n  if (version.prerelease.length && !options.includePrerelease) {\n    // Find the set of versions that are allowed to have prereleases\n    // For example, ^1.2.3-pr.1 desugars to >=1.2.3-pr.1 <2.0.0\n    // That should allow `1.2.3-pr.2` to pass.\n    // However, `1.2.4-alpha.notready` should NOT be allowed,\n    // even though it's within the range set by the comparators.\n    for (let i = 0; i < set.length; i++) {\n      debug(set[i].semver)\n      if (set[i].semver === Comparator.ANY) {\n        continue\n      }\n\n      if (set[i].semver.prerelease.length > 0) {\n        const allowed = set[i].semver\n        if (allowed.major === version.major &&\n            allowed.minor === version.minor &&\n            allowed.patch === version.patch) {\n          return true\n        }\n      }\n    }\n\n    // Version has a -pre, but it's not one of the ones we like.\n    return false\n  }\n\n  return true\n}\n","const ANY = Symbol('SemVer ANY')\n// hoisted class for cyclic dependency\nclass Comparator {\n  static get ANY () {\n    return ANY\n  }\n\n  constructor (comp, options) {\n    options = parseOptions(options)\n\n    if (comp instanceof Comparator) {\n      if (comp.loose === !!options.loose) {\n        return comp\n      } else {\n        comp = comp.value\n      }\n    }\n\n    comp = comp.trim().split(/\\s+/).join(' ')\n    debug('comparator', comp, options)\n    this.options = options\n    this.loose = !!options.loose\n    this.parse(comp)\n\n    if (this.semver === ANY) {\n      this.value = ''\n    } else {\n      this.value = this.operator + this.semver.version\n    }\n\n    debug('comp', this)\n  }\n\n  parse (comp) {\n    const r = this.options.loose ? re[t.COMPARATORLOOSE] : re[t.COMPARATOR]\n    const m = comp.match(r)\n\n    if (!m) {\n      throw new TypeError(`Invalid comparator: ${comp}`)\n    }\n\n    this.operator = m[1] !== undefined ? m[1] : ''\n    if (this.operator === '=') {\n      this.operator = ''\n    }\n\n    // if it literally is just '>' or '' then allow anything.\n    if (!m[2]) {\n      this.semver = ANY\n    } else {\n      this.semver = new SemVer(m[2], this.options.loose)\n    }\n  }\n\n  toString () {\n    return this.value\n  }\n\n  test (version) {\n    debug('Comparator.test', version, this.options.loose)\n\n    if (this.semver === ANY || version === ANY) {\n      return true\n    }\n\n    if (typeof version === 'string') {\n      try {\n        version = new SemVer(version, this.options)\n      } catch (er) {\n        return false\n      }\n    }\n\n    return cmp(version, this.operator, this.semver, this.options)\n  }\n\n  intersects (comp, options) {\n    if (!(comp instanceof Comparator)) {\n      throw new TypeError('a Comparator is required')\n    }\n\n    if (this.operator === '') {\n      if (this.value === '') {\n        return true\n      }\n      return new Range(comp.value, options).test(this.value)\n    } else if (comp.operator === '') {\n      if (comp.value === '') {\n        return true\n      }\n      return new Range(this.value, options).test(comp.semver)\n    }\n\n    options = parseOptions(options)\n\n    // Special cases where nothing can possibly be lower\n    if (options.includePrerelease &&\n      (this.value === '<0.0.0-0' || comp.value === '<0.0.0-0')) {\n      return false\n    }\n    if (!options.includePrerelease &&\n      (this.value.startsWith('<0.0.0') || comp.value.startsWith('<0.0.0'))) {\n      return false\n    }\n\n    // Same direction increasing (> or >=)\n    if (this.operator.startsWith('>') && comp.operator.startsWith('>')) {\n      return true\n    }\n    // Same direction decreasing (< or <=)\n    if (this.operator.startsWith('<') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // same SemVer and both sides are inclusive (<= or >=)\n    if (\n      (this.semver.version === comp.semver.version) &&\n      this.operator.includes('=') && comp.operator.includes('=')) {\n      return true\n    }\n    // opposite directions less than\n    if (cmp(this.semver, '<', comp.semver, options) &&\n      this.operator.startsWith('>') && comp.operator.startsWith('<')) {\n      return true\n    }\n    // opposite directions greater than\n    if (cmp(this.semver, '>', comp.semver, options) &&\n      this.operator.startsWith('<') && comp.operator.startsWith('>')) {\n      return true\n    }\n    return false\n  }\n}\n\nmodule.exports = Comparator\n\nconst parseOptions = require('../internal/parse-options')\nconst { safeRe: re, t } = require('../internal/re')\nconst cmp = require('../functions/cmp')\nconst debug = require('../internal/debug')\nconst SemVer = require('./semver')\nconst Range = require('./range')\n","const Range = require('../classes/range')\nconst satisfies = (version, range, options) => {\n  try {\n    range = new Range(range, options)\n  } catch (er) {\n    return false\n  }\n  return range.test(version)\n}\nmodule.exports = satisfies\n","const Range = require('../classes/range')\n\n// Mostly just for testing and legacy API reasons\nconst toComparators = (range, options) =>\n  new Range(range, options).set\n    .map(comp => comp.map(c => c.value).join(' ').trim().split(' '))\n\nmodule.exports = toComparators\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\n\nconst maxSatisfying = (versions, range, options) => {\n  let max = null\n  let maxSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!max || maxSV.compare(v) === -1) {\n        // compare(max, v, true)\n        max = v\n        maxSV = new SemVer(max, options)\n      }\n    }\n  })\n  return max\n}\nmodule.exports = maxSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst minSatisfying = (versions, range, options) => {\n  let min = null\n  let minSV = null\n  let rangeObj = null\n  try {\n    rangeObj = new Range(range, options)\n  } catch (er) {\n    return null\n  }\n  versions.forEach((v) => {\n    if (rangeObj.test(v)) {\n      // satisfies(v, range, options)\n      if (!min || minSV.compare(v) === 1) {\n        // compare(min, v, true)\n        min = v\n        minSV = new SemVer(min, options)\n      }\n    }\n  })\n  return min\n}\nmodule.exports = minSatisfying\n","const SemVer = require('../classes/semver')\nconst Range = require('../classes/range')\nconst gt = require('../functions/gt')\n\nconst minVersion = (range, loose) => {\n  range = new Range(range, loose)\n\n  let minver = new SemVer('0.0.0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = new SemVer('0.0.0-0')\n  if (range.test(minver)) {\n    return minver\n  }\n\n  minver = null\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let setMin = null\n    comparators.forEach((comparator) => {\n      // Clone to avoid manipulating the comparator's semver object.\n      const compver = new SemVer(comparator.semver.version)\n      switch (comparator.operator) {\n        case '>':\n          if (compver.prerelease.length === 0) {\n            compver.patch++\n          } else {\n            compver.prerelease.push(0)\n          }\n          compver.raw = compver.format()\n          /* fallthrough */\n        case '':\n        case '>=':\n          if (!setMin || gt(compver, setMin)) {\n            setMin = compver\n          }\n          break\n        case '<':\n        case '<=':\n          /* Ignore maximum versions */\n          break\n        /* istanbul ignore next */\n        default:\n          throw new Error(`Unexpected operation: ${comparator.operator}`)\n      }\n    })\n    if (setMin && (!minver || gt(minver, setMin))) {\n      minver = setMin\n    }\n  }\n\n  if (minver && range.test(minver)) {\n    return minver\n  }\n\n  return null\n}\nmodule.exports = minVersion\n","const Range = require('../classes/range')\nconst validRange = (range, options) => {\n  try {\n    // Return '*' instead of '' so that truthiness works.\n    // This will throw if it's invalid anyway\n    return new Range(range, options).range || '*'\n  } catch (er) {\n    return null\n  }\n}\nmodule.exports = validRange\n","const SemVer = require('../classes/semver')\nconst Comparator = require('../classes/comparator')\nconst { ANY } = Comparator\nconst Range = require('../classes/range')\nconst satisfies = require('../functions/satisfies')\nconst gt = require('../functions/gt')\nconst lt = require('../functions/lt')\nconst lte = require('../functions/lte')\nconst gte = require('../functions/gte')\n\nconst outside = (version, range, hilo, options) => {\n  version = new SemVer(version, options)\n  range = new Range(range, options)\n\n  let gtfn, ltefn, ltfn, comp, ecomp\n  switch (hilo) {\n    case '>':\n      gtfn = gt\n      ltefn = lte\n      ltfn = lt\n      comp = '>'\n      ecomp = '>='\n      break\n    case '<':\n      gtfn = lt\n      ltefn = gte\n      ltfn = gt\n      comp = '<'\n      ecomp = '<='\n      break\n    default:\n      throw new TypeError('Must provide a hilo val of \"<\" or \">\"')\n  }\n\n  // If it satisfies the range it is not outside\n  if (satisfies(version, range, options)) {\n    return false\n  }\n\n  // From now on, variable terms are as if we're in \"gtr\" mode.\n  // but note that everything is flipped for the \"ltr\" function.\n\n  for (let i = 0; i < range.set.length; ++i) {\n    const comparators = range.set[i]\n\n    let high = null\n    let low = null\n\n    comparators.forEach((comparator) => {\n      if (comparator.semver === ANY) {\n        comparator = new Comparator('>=0.0.0')\n      }\n      high = high || comparator\n      low = low || comparator\n      if (gtfn(comparator.semver, high.semver, options)) {\n        high = comparator\n      } else if (ltfn(comparator.semver, low.semver, options)) {\n        low = comparator\n      }\n    })\n\n    // If the edge version comparator has a operator then our version\n    // isn't outside it\n    if (high.operator === comp || high.operator === ecomp) {\n      return false\n    }\n\n    // If the lowest version comparator has an operator and our version\n    // is less than it then it isn't higher than the range\n    if ((!low.operator || low.operator === comp) &&\n        ltefn(version, low.semver)) {\n      return false\n    } else if (low.operator === ecomp && ltfn(version, low.semver)) {\n      return false\n    }\n  }\n  return true\n}\n\nmodule.exports = outside\n","// Determine if version is greater than all the versions possible in the range.\nconst outside = require('./outside')\nconst gtr = (version, range, options) => outside(version, range, '>', options)\nmodule.exports = gtr\n","const outside = require('./outside')\n// Determine if version is less than all the versions possible in the range\nconst ltr = (version, range, options) => outside(version, range, '<', options)\nmodule.exports = ltr\n","const Range = require('../classes/range')\nconst intersects = (r1, r2, options) => {\n  r1 = new Range(r1, options)\n  r2 = new Range(r2, options)\n  return r1.intersects(r2, options)\n}\nmodule.exports = intersects\n","// given a set of versions and a range, create a \"simplified\" range\n// that includes the same versions that the original range does\n// If the original range is shorter than the simplified one, return that.\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\nmodule.exports = (versions, range, options) => {\n  const set = []\n  let first = null\n  let prev = null\n  const v = versions.sort((a, b) => compare(a, b, options))\n  for (const version of v) {\n    const included = satisfies(version, range, options)\n    if (included) {\n      prev = version\n      if (!first) {\n        first = version\n      }\n    } else {\n      if (prev) {\n        set.push([first, prev])\n      }\n      prev = null\n      first = null\n    }\n  }\n  if (first) {\n    set.push([first, null])\n  }\n\n  const ranges = []\n  for (const [min, max] of set) {\n    if (min === max) {\n      ranges.push(min)\n    } else if (!max && min === v[0]) {\n      ranges.push('*')\n    } else if (!max) {\n      ranges.push(`>=${min}`)\n    } else if (min === v[0]) {\n      ranges.push(`<=${max}`)\n    } else {\n      ranges.push(`${min} - ${max}`)\n    }\n  }\n  const simplified = ranges.join(' || ')\n  const original = typeof range.raw === 'string' ? range.raw : String(range)\n  return simplified.length < original.length ? simplified : range\n}\n","const Range = require('../classes/range.js')\nconst Comparator = require('../classes/comparator.js')\nconst { ANY } = Comparator\nconst satisfies = require('../functions/satisfies.js')\nconst compare = require('../functions/compare.js')\n\n// Complex range `r1 || r2 || ...` is a subset of `R1 || R2 || ...` iff:\n// - Every simple range `r1, r2, ...` is a null set, OR\n// - Every simple range `r1, r2, ...` which is not a null set is a subset of\n//   some `R1, R2, ...`\n//\n// Simple range `c1 c2 ...` is a subset of simple range `C1 C2 ...` iff:\n// - If c is only the ANY comparator\n//   - If C is only the ANY comparator, return true\n//   - Else if in prerelease mode, return false\n//   - else replace c with `[>=0.0.0]`\n// - If C is only the ANY comparator\n//   - if in prerelease mode, return true\n//   - else replace C with `[>=0.0.0]`\n// - Let EQ be the set of = comparators in c\n// - If EQ is more than one, return true (null set)\n// - Let GT be the highest > or >= comparator in c\n// - Let LT be the lowest < or <= comparator in c\n// - If GT and LT, and GT.semver > LT.semver, return true (null set)\n// - If any C is a = range, and GT or LT are set, return false\n// - If EQ\n//   - If GT, and EQ does not satisfy GT, return true (null set)\n//   - If LT, and EQ does not satisfy LT, return true (null set)\n//   - If EQ satisfies every C, return true\n//   - Else return false\n// - If GT\n//   - If GT.semver is lower than any > or >= comp in C, return false\n//   - If GT is >=, and GT.semver does not satisfy every C, return false\n//   - If GT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the GT.semver tuple, return false\n// - If LT\n//   - If LT.semver is greater than any < or <= comp in C, return false\n//   - If LT is <=, and LT.semver does not satisfy every C, return false\n//   - If GT.semver has a prerelease, and not in prerelease mode\n//     - If no C has a prerelease and the LT.semver tuple, return false\n// - Else return true\n\nconst subset = (sub, dom, options = {}) => {\n  if (sub === dom) {\n    return true\n  }\n\n  sub = new Range(sub, options)\n  dom = new Range(dom, options)\n  let sawNonNull = false\n\n  OUTER: for (const simpleSub of sub.set) {\n    for (const simpleDom of dom.set) {\n      const isSub = simpleSubset(simpleSub, simpleDom, options)\n      sawNonNull = sawNonNull || isSub !== null\n      if (isSub) {\n        continue OUTER\n      }\n    }\n    // the null set is a subset of everything, but null simple ranges in\n    // a complex range should be ignored.  so if we saw a non-null range,\n    // then we know this isn't a subset, but if EVERY simple range was null,\n    // then it is a subset.\n    if (sawNonNull) {\n      return false\n    }\n  }\n  return true\n}\n\nconst minimumVersionWithPreRelease = [new Comparator('>=0.0.0-0')]\nconst minimumVersion = [new Comparator('>=0.0.0')]\n\nconst simpleSubset = (sub, dom, options) => {\n  if (sub === dom) {\n    return true\n  }\n\n  if (sub.length === 1 && sub[0].semver === ANY) {\n    if (dom.length === 1 && dom[0].semver === ANY) {\n      return true\n    } else if (options.includePrerelease) {\n      sub = minimumVersionWithPreRelease\n    } else {\n      sub = minimumVersion\n    }\n  }\n\n  if (dom.length === 1 && dom[0].semver === ANY) {\n    if (options.includePrerelease) {\n      return true\n    } else {\n      dom = minimumVersion\n    }\n  }\n\n  const eqSet = new Set()\n  let gt, lt\n  for (const c of sub) {\n    if (c.operator === '>' || c.operator === '>=') {\n      gt = higherGT(gt, c, options)\n    } else if (c.operator === '<' || c.operator === '<=') {\n      lt = lowerLT(lt, c, options)\n    } else {\n      eqSet.add(c.semver)\n    }\n  }\n\n  if (eqSet.size > 1) {\n    return null\n  }\n\n  let gtltComp\n  if (gt && lt) {\n    gtltComp = compare(gt.semver, lt.semver, options)\n    if (gtltComp > 0) {\n      return null\n    } else if (gtltComp === 0 && (gt.operator !== '>=' || lt.operator !== '<=')) {\n      return null\n    }\n  }\n\n  // will iterate one or zero times\n  for (const eq of eqSet) {\n    if (gt && !satisfies(eq, String(gt), options)) {\n      return null\n    }\n\n    if (lt && !satisfies(eq, String(lt), options)) {\n      return null\n    }\n\n    for (const c of dom) {\n      if (!satisfies(eq, String(c), options)) {\n        return false\n      }\n    }\n\n    return true\n  }\n\n  let higher, lower\n  let hasDomLT, hasDomGT\n  // if the subset has a prerelease, we need a comparator in the superset\n  // with the same tuple and a prerelease, or it's not a subset\n  let needDomLTPre = lt &&\n    !options.includePrerelease &&\n    lt.semver.prerelease.length ? lt.semver : false\n  let needDomGTPre = gt &&\n    !options.includePrerelease &&\n    gt.semver.prerelease.length ? gt.semver : false\n  // exception: <1.2.3-0 is the same as <1.2.3\n  if (needDomLTPre && needDomLTPre.prerelease.length === 1 &&\n      lt.operator === '<' && needDomLTPre.prerelease[0] === 0) {\n    needDomLTPre = false\n  }\n\n  for (const c of dom) {\n    hasDomGT = hasDomGT || c.operator === '>' || c.operator === '>='\n    hasDomLT = hasDomLT || c.operator === '<' || c.operator === '<='\n    if (gt) {\n      if (needDomGTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomGTPre.major &&\n            c.semver.minor === needDomGTPre.minor &&\n            c.semver.patch === needDomGTPre.patch) {\n          needDomGTPre = false\n        }\n      }\n      if (c.operator === '>' || c.operator === '>=') {\n        higher = higherGT(gt, c, options)\n        if (higher === c && higher !== gt) {\n          return false\n        }\n      } else if (gt.operator === '>=' && !satisfies(gt.semver, String(c), options)) {\n        return false\n      }\n    }\n    if (lt) {\n      if (needDomLTPre) {\n        if (c.semver.prerelease && c.semver.prerelease.length &&\n            c.semver.major === needDomLTPre.major &&\n            c.semver.minor === needDomLTPre.minor &&\n            c.semver.patch === needDomLTPre.patch) {\n          needDomLTPre = false\n        }\n      }\n      if (c.operator === '<' || c.operator === '<=') {\n        lower = lowerLT(lt, c, options)\n        if (lower === c && lower !== lt) {\n          return false\n        }\n      } else if (lt.operator === '<=' && !satisfies(lt.semver, String(c), options)) {\n        return false\n      }\n    }\n    if (!c.operator && (lt || gt) && gtltComp !== 0) {\n      return false\n    }\n  }\n\n  // if there was a < or >, and nothing in the dom, then must be false\n  // UNLESS it was limited by another range in the other direction.\n  // Eg, >1.0.0 <1.0.1 is still a subset of <2.0.0\n  if (gt && hasDomLT && !lt && gtltComp !== 0) {\n    return false\n  }\n\n  if (lt && hasDomGT && !gt && gtltComp !== 0) {\n    return false\n  }\n\n  // we needed a prerelease range in a specific tuple, but didn't get one\n  // then this isn't a subset.  eg >=1.2.3-pre is not a subset of >=1.0.0,\n  // because it includes prereleases in the 1.2.3 tuple\n  if (needDomGTPre || needDomLTPre) {\n    return false\n  }\n\n  return true\n}\n\n// >=1.2.3 is lower than >1.2.3\nconst higherGT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp > 0 ? a\n    : comp < 0 ? b\n    : b.operator === '>' && a.operator === '>=' ? b\n    : a\n}\n\n// <=1.2.3 is higher than <1.2.3\nconst lowerLT = (a, b, options) => {\n  if (!a) {\n    return b\n  }\n  const comp = compare(a.semver, b.semver, options)\n  return comp < 0 ? a\n    : comp > 0 ? b\n    : b.operator === '<' && a.operator === '<=' ? b\n    : a\n}\n\nmodule.exports = subset\n","// just pre-load all the stuff that index.js lazily exports\nconst internalRe = require('./internal/re')\nconst constants = require('./internal/constants')\nconst SemVer = require('./classes/semver')\nconst identifiers = require('./internal/identifiers')\nconst parse = require('./functions/parse')\nconst valid = require('./functions/valid')\nconst clean = require('./functions/clean')\nconst inc = require('./functions/inc')\nconst diff = require('./functions/diff')\nconst major = require('./functions/major')\nconst minor = require('./functions/minor')\nconst patch = require('./functions/patch')\nconst prerelease = require('./functions/prerelease')\nconst compare = require('./functions/compare')\nconst rcompare = require('./functions/rcompare')\nconst compareLoose = require('./functions/compare-loose')\nconst compareBuild = require('./functions/compare-build')\nconst sort = require('./functions/sort')\nconst rsort = require('./functions/rsort')\nconst gt = require('./functions/gt')\nconst lt = require('./functions/lt')\nconst eq = require('./functions/eq')\nconst neq = require('./functions/neq')\nconst gte = require('./functions/gte')\nconst lte = require('./functions/lte')\nconst cmp = require('./functions/cmp')\nconst coerce = require('./functions/coerce')\nconst Comparator = require('./classes/comparator')\nconst Range = require('./classes/range')\nconst satisfies = require('./functions/satisfies')\nconst toComparators = require('./ranges/to-comparators')\nconst maxSatisfying = require('./ranges/max-satisfying')\nconst minSatisfying = require('./ranges/min-satisfying')\nconst minVersion = require('./ranges/min-version')\nconst validRange = require('./ranges/valid')\nconst outside = require('./ranges/outside')\nconst gtr = require('./ranges/gtr')\nconst ltr = require('./ranges/ltr')\nconst intersects = require('./ranges/intersects')\nconst simplifyRange = require('./ranges/simplify')\nconst subset = require('./ranges/subset')\nmodule.exports = {\n  parse,\n  valid,\n  clean,\n  inc,\n  diff,\n  major,\n  minor,\n  patch,\n  prerelease,\n  compare,\n  rcompare,\n  compareLoose,\n  compareBuild,\n  sort,\n  rsort,\n  gt,\n  lt,\n  eq,\n  neq,\n  gte,\n  lte,\n  cmp,\n  coerce,\n  Comparator,\n  Range,\n  satisfies,\n  toComparators,\n  maxSatisfying,\n  minSatisfying,\n  minVersion,\n  validRange,\n  outside,\n  gtr,\n  ltr,\n  intersects,\n  simplifyRange,\n  subset,\n  SemVer,\n  re: internalRe.re,\n  src: internalRe.src,\n  tokens: internalRe.t,\n  SEMVER_SPEC_VERSION: constants.SEMVER_SPEC_VERSION,\n  RELEASE_TYPES: constants.RELEASE_TYPES,\n  compareIdentifiers: identifiers.compareIdentifiers,\n  rcompareIdentifiers: identifiers.rcompareIdentifiers,\n}\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst isLinux = () => process.platform === 'linux';\n\nlet report = null;\nconst getReport = () => {\n  if (!report) {\n    /* istanbul ignore next */\n    report = isLinux() && process.report\n      ? process.report.getReport()\n      : {};\n  }\n  return report;\n};\n\nmodule.exports = { isLinux, getReport };\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst fs = require('fs');\n\n/**\n * The path where we can find the ldd\n */\nconst LDD_PATH = '/usr/bin/ldd';\n\n/**\n * Read the content of a file synchronous\n *\n * @param {string} path\n * @returns {string}\n */\nconst readFileSync = (path) => fs.readFileSync(path, 'utf-8');\n\n/**\n * Read the content of a file\n *\n * @param {string} path\n * @returns {Promise<string>}\n */\nconst readFile = (path) => new Promise((resolve, reject) => {\n  fs.readFile(path, 'utf-8', (err, data) => {\n    if (err) {\n      reject(err);\n    } else {\n      resolve(data);\n    }\n  });\n});\n\nmodule.exports = {\n  LDD_PATH,\n  readFileSync,\n  readFile\n};\n","// Copyright 2017 Lovell Fuller and others.\n// SPDX-License-Identifier: Apache-2.0\n\n'use strict';\n\nconst childProcess = require('child_process');\nconst { isLinux, getReport } = require('./process');\nconst { LDD_PATH, readFile, readFileSync } = require('./filesystem');\n\nlet cachedFamilyFilesystem;\nlet cachedVersionFilesystem;\n\nconst command = 'getconf GNU_LIBC_VERSION 2>&1 || true; ldd --version 2>&1 || true';\nlet commandOut = '';\n\nconst safeCommand = () => {\n  if (!commandOut) {\n    return new Promise((resolve) => {\n      childProcess.exec(command, (err, out) => {\n        commandOut = err ? ' ' : out;\n        resolve(commandOut);\n      });\n    });\n  }\n  return commandOut;\n};\n\nconst safeCommandSync = () => {\n  if (!commandOut) {\n    try {\n      commandOut = childProcess.execSync(command, { encoding: 'utf8' });\n    } catch (_err) {\n      commandOut = ' ';\n    }\n  }\n  return commandOut;\n};\n\n/**\n * A String constant containing the value `glibc`.\n * @type {string}\n * @public\n */\nconst GLIBC = 'glibc';\n\n/**\n * A Regexp constant to get the GLIBC Version.\n * @type {string}\n */\nconst RE_GLIBC_VERSION = /GLIBC\\s(\\d+\\.\\d+)/;\n\n/**\n * A String constant containing the value `musl`.\n * @type {string}\n * @public\n */\nconst MUSL = 'musl';\n\n/**\n * This string is used to find if the {@link LDD_PATH} is GLIBC\n * @type {string}\n */\nconst GLIBC_ON_LDD = GLIBC.toUpperCase();\n\n/**\n * This string is used to find if the {@link LDD_PATH} is musl\n * @type {string}\n */\nconst MUSL_ON_LDD = MUSL.toLowerCase();\n\nconst isFileMusl = (f) => f.includes('libc.musl-') || f.includes('ld-musl-');\n\nconst familyFromReport = () => {\n  const report = getReport();\n  if (report.header && report.header.glibcVersionRuntime) {\n    return GLIBC;\n  }\n  if (Array.isArray(report.sharedObjects)) {\n    if (report.sharedObjects.some(isFileMusl)) {\n      return MUSL;\n    }\n  }\n  return null;\n};\n\nconst familyFromCommand = (out) => {\n  const [getconf, ldd1] = out.split(/[\\r\\n]+/);\n  if (getconf && getconf.includes(GLIBC)) {\n    return GLIBC;\n  }\n  if (ldd1 && ldd1.includes(MUSL)) {\n    return MUSL;\n  }\n  return null;\n};\n\nconst getFamilyFromLddContent = (content) => {\n  if (content.includes(MUSL_ON_LDD)) {\n    return MUSL;\n  }\n  if (content.includes(GLIBC_ON_LDD)) {\n    return GLIBC;\n  }\n  return null;\n};\n\nconst familyFromFilesystem = async () => {\n  if (cachedFamilyFilesystem !== undefined) {\n    return cachedFamilyFilesystem;\n  }\n  cachedFamilyFilesystem = null;\n  try {\n    const lddContent = await readFile(LDD_PATH);\n    cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n  } catch (e) {}\n  return cachedFamilyFilesystem;\n};\n\nconst familyFromFilesystemSync = () => {\n  if (cachedFamilyFilesystem !== undefined) {\n    return cachedFamilyFilesystem;\n  }\n  cachedFamilyFilesystem = null;\n  try {\n    const lddContent = readFileSync(LDD_PATH);\n    cachedFamilyFilesystem = getFamilyFromLddContent(lddContent);\n  } catch (e) {}\n  return cachedFamilyFilesystem;\n};\n\n/**\n * Resolves with the libc family when it can be determined, `null` otherwise.\n * @returns {Promise<?string>}\n */\nconst family = async () => {\n  let family = null;\n  if (isLinux()) {\n    family = await familyFromFilesystem();\n    if (!family) {\n      family = familyFromReport();\n    }\n    if (!family) {\n      const out = await safeCommand();\n      family = familyFromCommand(out);\n    }\n  }\n  return family;\n};\n\n/**\n * Returns the libc family when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst familySync = () => {\n  let family = null;\n  if (isLinux()) {\n    family = familyFromFilesystemSync();\n    if (!family) {\n      family = familyFromReport();\n    }\n    if (!family) {\n      const out = safeCommandSync();\n      family = familyFromCommand(out);\n    }\n  }\n  return family;\n};\n\n/**\n * Resolves `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {Promise<boolean>}\n */\nconst isNonGlibcLinux = async () => isLinux() && await family() !== GLIBC;\n\n/**\n * Returns `true` only when the platform is Linux and the libc family is not `glibc`.\n * @returns {boolean}\n */\nconst isNonGlibcLinuxSync = () => isLinux() && familySync() !== GLIBC;\n\nconst versionFromFilesystem = async () => {\n  if (cachedVersionFilesystem !== undefined) {\n    return cachedVersionFilesystem;\n  }\n  cachedVersionFilesystem = null;\n  try {\n    const lddContent = await readFile(LDD_PATH);\n    const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n    if (versionMatch) {\n      cachedVersionFilesystem = versionMatch[1];\n    }\n  } catch (e) {}\n  return cachedVersionFilesystem;\n};\n\nconst versionFromFilesystemSync = () => {\n  if (cachedVersionFilesystem !== undefined) {\n    return cachedVersionFilesystem;\n  }\n  cachedVersionFilesystem = null;\n  try {\n    const lddContent = readFileSync(LDD_PATH);\n    const versionMatch = lddContent.match(RE_GLIBC_VERSION);\n    if (versionMatch) {\n      cachedVersionFilesystem = versionMatch[1];\n    }\n  } catch (e) {}\n  return cachedVersionFilesystem;\n};\n\nconst versionFromReport = () => {\n  const report = getReport();\n  if (report.header && report.header.glibcVersionRuntime) {\n    return report.header.glibcVersionRuntime;\n  }\n  return null;\n};\n\nconst versionSuffix = (s) => s.trim().split(/\\s+/)[1];\n\nconst versionFromCommand = (out) => {\n  const [getconf, ldd1, ldd2] = out.split(/[\\r\\n]+/);\n  if (getconf && getconf.includes(GLIBC)) {\n    return versionSuffix(getconf);\n  }\n  if (ldd1 && ldd2 && ldd1.includes(MUSL)) {\n    return versionSuffix(ldd2);\n  }\n  return null;\n};\n\n/**\n * Resolves with the libc version when it can be determined, `null` otherwise.\n * @returns {Promise<?string>}\n */\nconst version = async () => {\n  let version = null;\n  if (isLinux()) {\n    version = await versionFromFilesystem();\n    if (!version) {\n      version = versionFromReport();\n    }\n    if (!version) {\n      const out = await safeCommand();\n      version = versionFromCommand(out);\n    }\n  }\n  return version;\n};\n\n/**\n * Returns the libc version when it can be determined, `null` otherwise.\n * @returns {?string}\n */\nconst versionSync = () => {\n  let version = null;\n  if (isLinux()) {\n    version = versionFromFilesystemSync();\n    if (!version) {\n      version = versionFromReport();\n    }\n    if (!version) {\n      const out = safeCommandSync();\n      version = versionFromCommand(out);\n    }\n  }\n  return version;\n};\n\nmodule.exports = {\n  GLIBC,\n  MUSL,\n  family,\n  familySync,\n  isNonGlibcLinux,\n  isNonGlibcLinuxSync,\n  version,\n  versionSync\n};\n","'use strict';\n\nmodule.exports = exports;\n\nconst path = require('path');\nconst semver = require('semver');\nconst url = require('url');\nconst detect_libc = require('detect-libc');\nconst napi = require('./napi.js');\n\nlet abi_crosswalk;\n\n// This is used for unit testing to provide a fake\n// ABI crosswalk that emulates one that is not updated\n// for the current version\nif (process.env.NODE_PRE_GYP_ABI_CROSSWALK) {\n  abi_crosswalk = require(process.env.NODE_PRE_GYP_ABI_CROSSWALK);\n} else {\n  abi_crosswalk = require('./abi_crosswalk.json');\n}\n\nconst major_versions = {};\nObject.keys(abi_crosswalk).forEach((v) => {\n  const major = v.split('.')[0];\n  if (!major_versions[major]) {\n    major_versions[major] = v;\n  }\n});\n\nfunction get_electron_abi(runtime, target_version) {\n  if (!runtime) {\n    throw new Error('get_electron_abi requires valid runtime arg');\n  }\n  if (typeof target_version === 'undefined') {\n    // erroneous CLI call\n    throw new Error('Empty target version is not supported if electron is the target.');\n  }\n  // Electron guarantees that patch version update won't break native modules.\n  const sem_ver = semver.parse(target_version);\n  return runtime + '-v' + sem_ver.major + '.' + sem_ver.minor;\n}\nmodule.exports.get_electron_abi = get_electron_abi;\n\nfunction get_node_webkit_abi(runtime, target_version) {\n  if (!runtime) {\n    throw new Error('get_node_webkit_abi requires valid runtime arg');\n  }\n  if (typeof target_version === 'undefined') {\n    // erroneous CLI call\n    throw new Error('Empty target version is not supported if node-webkit is the target.');\n  }\n  return runtime + '-v' + target_version;\n}\nmodule.exports.get_node_webkit_abi = get_node_webkit_abi;\n\nfunction get_node_abi(runtime, versions) {\n  if (!runtime) {\n    throw new Error('get_node_abi requires valid runtime arg');\n  }\n  if (!versions) {\n    throw new Error('get_node_abi requires valid process.versions object');\n  }\n  const sem_ver = semver.parse(versions.node);\n  if (sem_ver.major === 0 && sem_ver.minor % 2) { // odd series\n    // https://github.com/mapbox/node-pre-gyp/issues/124\n    return runtime + '-v' + versions.node;\n  } else {\n    // process.versions.modules added in >= v0.10.4 and v0.11.7\n    // https://github.com/joyent/node/commit/ccabd4a6fa8a6eb79d29bc3bbe9fe2b6531c2d8e\n    return versions.modules ? runtime + '-v' + (+versions.modules) :\n      'v8-' + versions.v8.split('.').slice(0, 2).join('.');\n  }\n}\nmodule.exports.get_node_abi = get_node_abi;\n\nfunction get_runtime_abi(runtime, target_version) {\n  if (!runtime) {\n    throw new Error('get_runtime_abi requires valid runtime arg');\n  }\n  if (runtime === 'node-webkit') {\n    return get_node_webkit_abi(runtime, target_version || process.versions['node-webkit']);\n  } else if (runtime === 'electron') {\n    return get_electron_abi(runtime, target_version || process.versions.electron);\n  } else {\n    if (runtime !== 'node') {\n      throw new Error(\"Unknown Runtime: '\" + runtime + \"'\");\n    }\n    if (!target_version) {\n      return get_node_abi(runtime, process.versions);\n    } else {\n      let cross_obj;\n      // abi_crosswalk generated with ./scripts/abi_crosswalk.js\n      if (abi_crosswalk[target_version]) {\n        cross_obj = abi_crosswalk[target_version];\n      } else {\n        const target_parts = target_version.split('.').map((i) => { return +i; });\n        if (target_parts.length !== 3) { // parse failed\n          throw new Error('Unknown target version: ' + target_version);\n        }\n        /*\n                    The below code tries to infer the last known ABI compatible version\n                    that we have recorded in the abi_crosswalk.json when an exact match\n                    is not possible. The reasons for this to exist are complicated:\n\n                       - We support passing --target to be able to allow developers to package binaries for versions of node\n                         that are not the same one as they are running. This might also be used in combination with the\n                         --target_arch or --target_platform flags to also package binaries for alternative platforms\n                       - When --target is passed we can't therefore determine the ABI (process.versions.modules) from the node\n                         version that is running in memory\n                       - So, therefore node-pre-gyp keeps an \"ABI crosswalk\" (lib/util/abi_crosswalk.json) to be able to look\n                         this info up for all versions\n                       - But we cannot easily predict what the future ABI will be for released versions\n                       - And node-pre-gyp needs to be a `bundledDependency` in apps that depend on it in order to work correctly\n                         by being fully available at install time.\n                       - So, the speed of node releases and the bundled nature of node-pre-gyp mean that a new node-pre-gyp release\n                         need to happen for every node.js/io.js/node-webkit/nw.js/atom-shell/etc release that might come online if\n                         you want the `--target` flag to keep working for the latest version\n                       - Which is impractical ^^\n                       - Hence the below code guesses about future ABI to make the need to update node-pre-gyp less demanding.\n\n                    In practice then you can have a dependency of your app like `node-sqlite3` that bundles a `node-pre-gyp` that\n                    only knows about node v0.10.33 in the `abi_crosswalk.json` but target node v0.10.34 (which is assumed to be\n                    ABI compatible with v0.10.33).\n\n                    TODO: use semver module instead of custom version parsing\n                */\n        const major = target_parts[0];\n        let minor = target_parts[1];\n        let patch = target_parts[2];\n        // io.js: yeah if node.js ever releases 1.x this will break\n        // but that is unlikely to happen: https://github.com/iojs/io.js/pull/253#issuecomment-69432616\n        if (major === 1) {\n          // look for last release that is the same major version\n          // e.g. we assume io.js 1.x is ABI compatible with >= 1.0.0\n          while (true) {\n            if (minor > 0) --minor;\n            if (patch > 0) --patch;\n            const new_iojs_target = '' + major + '.' + minor + '.' + patch;\n            if (abi_crosswalk[new_iojs_target]) {\n              cross_obj = abi_crosswalk[new_iojs_target];\n              console.log('Warning: node-pre-gyp could not find exact match for ' + target_version);\n              console.log('Warning: but node-pre-gyp successfully choose ' + new_iojs_target + ' as ABI compatible target');\n              break;\n            }\n            if (minor === 0 && patch === 0) {\n              break;\n            }\n          }\n        } else if (major >= 2) {\n          // look for last release that is the same major version\n          if (major_versions[major]) {\n            cross_obj = abi_crosswalk[major_versions[major]];\n            console.log('Warning: node-pre-gyp could not find exact match for ' + target_version);\n            console.log('Warning: but node-pre-gyp successfully choose ' + major_versions[major] + ' as ABI compatible target');\n          }\n        } else if (major === 0) { // node.js\n          if (target_parts[1] % 2 === 0) { // for stable/even node.js series\n            // look for the last release that is the same minor release\n            // e.g. we assume node 0.10.x is ABI compatible with >= 0.10.0\n            while (--patch > 0) {\n              const new_node_target = '' + major + '.' + minor + '.' + patch;\n              if (abi_crosswalk[new_node_target]) {\n                cross_obj = abi_crosswalk[new_node_target];\n                console.log('Warning: node-pre-gyp could not find exact match for ' + target_version);\n                console.log('Warning: but node-pre-gyp successfully choose ' + new_node_target + ' as ABI compatible target');\n                break;\n              }\n            }\n          }\n        }\n      }\n      if (!cross_obj) {\n        throw new Error('Unsupported target version: ' + target_version);\n      }\n      // emulate process.versions\n      const versions_obj = {\n        node: target_version,\n        v8: cross_obj.v8 + '.0',\n        // abi_crosswalk uses 1 for node versions lacking process.versions.modules\n        // process.versions.modules added in >= v0.10.4 and v0.11.7\n        modules: cross_obj.node_abi > 1 ? cross_obj.node_abi : undefined\n      };\n      return get_node_abi(runtime, versions_obj);\n    }\n  }\n}\nmodule.exports.get_runtime_abi = get_runtime_abi;\n\nconst required_parameters = [\n  'module_name',\n  'module_path',\n  'host'\n];\n\nfunction validate_config(package_json, opts) {\n  const msg = package_json.name + ' package.json is not node-pre-gyp ready:\\n';\n  const missing = [];\n  if (!package_json.main) {\n    missing.push('main');\n  }\n  if (!package_json.version) {\n    missing.push('version');\n  }\n  if (!package_json.name) {\n    missing.push('name');\n  }\n  if (!package_json.binary) {\n    missing.push('binary');\n  }\n  const o = package_json.binary;\n  if (o) {\n    required_parameters.forEach((p) => {\n      if (!o[p] || typeof o[p] !== 'string') {\n        missing.push('binary.' + p);\n      }\n    });\n  }\n\n  if (missing.length >= 1) {\n    throw new Error(msg + 'package.json must declare these properties: \\n' + missing.join('\\n'));\n  }\n  if (o) {\n    // enforce https over http\n    const protocol = url.parse(o.host).protocol;\n    if (protocol === 'http:') {\n      throw new Error(\"'host' protocol (\" + protocol + \") is invalid - only 'https:' is accepted\");\n    }\n  }\n  napi.validate_package_json(package_json, opts);\n}\n\nmodule.exports.validate_config = validate_config;\n\nfunction eval_template(template, opts) {\n  Object.keys(opts).forEach((key) => {\n    const pattern = '{' + key + '}';\n    while (template.indexOf(pattern) > -1) {\n      template = template.replace(pattern, opts[key]);\n    }\n  });\n  return template;\n}\n\n// url.resolve needs single trailing slash\n// to behave correctly, otherwise a double slash\n// may end up in the url which breaks requests\n// and a lacking slash may not lead to proper joining\nfunction fix_slashes(pathname) {\n  if (pathname.slice(-1) !== '/') {\n    return pathname + '/';\n  }\n  return pathname;\n}\n\n// remove double slashes\n// note: path.normalize will not work because\n// it will convert forward to back slashes\nfunction drop_double_slashes(pathname) {\n  return pathname.replace(/\\/\\//g, '/');\n}\n\nfunction get_process_runtime(versions) {\n  let runtime = 'node';\n  if (versions['node-webkit']) {\n    runtime = 'node-webkit';\n  } else if (versions.electron) {\n    runtime = 'electron';\n  }\n  return runtime;\n}\n\nmodule.exports.get_process_runtime = get_process_runtime;\n\nconst default_package_name = '{module_name}-v{version}-{node_abi}-{platform}-{arch}.tar.gz';\nconst default_remote_path = '';\n\nmodule.exports.evaluate = function(package_json, options, napi_build_version) {\n  options = options || {};\n  validate_config(package_json, options); // options is a suitable substitute for opts in this case\n  const v = package_json.version;\n  const module_version = semver.parse(v);\n  const runtime = options.runtime || get_process_runtime(process.versions);\n  const opts = {\n    name: package_json.name,\n    configuration: options.debug ? 'Debug' : 'Release',\n    debug: options.debug,\n    module_name: package_json.binary.module_name,\n    version: module_version.version,\n    prerelease: module_version.prerelease.length ? module_version.prerelease.join('.') : '',\n    build: module_version.build.length ? module_version.build.join('.') : '',\n    major: module_version.major,\n    minor: module_version.minor,\n    patch: module_version.patch,\n    runtime: runtime,\n    node_abi: get_runtime_abi(runtime, options.target),\n    node_abi_napi: napi.get_napi_version(options.target) ? 'napi' : get_runtime_abi(runtime, options.target),\n    napi_version: napi.get_napi_version(options.target), // non-zero numeric, undefined if unsupported\n    napi_build_version: napi_build_version || '',\n    node_napi_label: napi_build_version ? 'napi-v' + napi_build_version : get_runtime_abi(runtime, options.target),\n    target: options.target || '',\n    platform: options.target_platform || process.platform,\n    target_platform: options.target_platform || process.platform,\n    arch: options.target_arch || process.arch,\n    target_arch: options.target_arch || process.arch,\n    libc: options.target_libc || detect_libc.familySync() || 'unknown',\n    module_main: package_json.main,\n    toolset: options.toolset || '', // address https://github.com/mapbox/node-pre-gyp/issues/119\n    bucket: package_json.binary.bucket,\n    region: package_json.binary.region,\n    s3ForcePathStyle: package_json.binary.s3ForcePathStyle || false\n  };\n    // support host mirror with npm config `--{module_name}_binary_host_mirror`\n    // e.g.: https://github.com/node-inspector/v8-profiler/blob/master/package.json#L25\n    // > npm install v8-profiler --profiler_binary_host_mirror=https://npm.taobao.org/mirrors/node-inspector/\n  const validModuleName = opts.module_name.replace('-', '_');\n  const host = process.env['npm_config_' + validModuleName + '_binary_host_mirror'] || package_json.binary.host;\n  opts.host = fix_slashes(eval_template(host, opts));\n  opts.module_path = eval_template(package_json.binary.module_path, opts);\n  // now we resolve the module_path to ensure it is absolute so that binding.gyp variables work predictably\n  if (options.module_root) {\n    // resolve relative to known module root: works for pre-binding require\n    opts.module_path = path.join(options.module_root, opts.module_path);\n  } else {\n    // resolve relative to current working directory: works for node-pre-gyp commands\n    opts.module_path = path.resolve(opts.module_path);\n  }\n  opts.module = path.join(opts.module_path, opts.module_name + '.node');\n  opts.remote_path = package_json.binary.remote_path ? drop_double_slashes(fix_slashes(eval_template(package_json.binary.remote_path, opts))) : default_remote_path;\n  const package_name = package_json.binary.package_name ? package_json.binary.package_name : default_package_name;\n  opts.package_name = eval_template(package_name, opts);\n  opts.staged_tarball = path.join('build/stage', opts.remote_path, opts.package_name);\n  opts.hosted_path = url.resolve(opts.host, opts.remote_path);\n  opts.hosted_tarball = url.resolve(opts.hosted_path, opts.package_name);\n  return opts;\n};\n","'use strict';\n\nconst npg = require('..');\nconst versioning = require('../lib/util/versioning.js');\nconst napi = require('../lib/util/napi.js');\nconst existsSync = require('fs').existsSync || require('path').existsSync;\nconst path = require('path');\n\nmodule.exports = exports;\n\nexports.usage = 'Finds the require path for the node-pre-gyp installed module';\n\nexports.validate = function(package_json, opts) {\n  versioning.validate_config(package_json, opts);\n};\n\nexports.find = function(package_json_path, opts) {\n  if (!existsSync(package_json_path)) {\n    throw new Error(package_json_path + 'does not exist');\n  }\n  const prog = new npg.Run({ package_json_path, argv: process.argv });\n  prog.setBinaryHostProperty();\n  const package_json = prog.package_json;\n\n  versioning.validate_config(package_json, opts);\n  let napi_build_version;\n  if (napi.get_napi_build_versions(package_json, opts)) {\n    napi_build_version = napi.get_best_napi_build_version(package_json, opts);\n  }\n  opts = opts || {};\n  if (!opts.module_root) opts.module_root = path.dirname(package_json_path);\n  const meta = versioning.evaluate(package_json, opts, napi_build_version);\n  return meta.module;\n};\n","'use strict';\n\n/**\n * Module exports.\n */\n\nmodule.exports = exports;\n\n/**\n * Module dependencies.\n */\n\n// load mocking control function for accessing s3 via https. the function is a noop always returning\n// false if not mocking.\nexports.mockS3Http = require('./util/s3_setup').get_mockS3Http();\nexports.mockS3Http('on');\nconst mocking = exports.mockS3Http('get');\n\n\nconst fs = require('fs');\nconst path = require('path');\nconst nopt = require('nopt');\nconst log = require('npmlog');\nlog.disableProgress();\nconst napi = require('./util/napi.js');\n\nconst EE = require('events').EventEmitter;\nconst inherits = require('util').inherits;\nconst cli_commands = [\n  'clean',\n  'install',\n  'reinstall',\n  'build',\n  'rebuild',\n  'package',\n  'testpackage',\n  'publish',\n  'unpublish',\n  'info',\n  'testbinary',\n  'reveal',\n  'configure'\n];\nconst aliases = {};\n\n// differentiate node-pre-gyp's logs from npm's\nlog.heading = 'node-pre-gyp';\n\nif (mocking) {\n  log.warn(`mocking s3 to ${process.env.node_pre_gyp_mock_s3}`);\n}\n\n// this is a getter to avoid circular reference warnings with node v14.\nObject.defineProperty(exports, 'find', {\n  get: function() {\n    return require('./pre-binding').find;\n  },\n  enumerable: true\n});\n\n// in the following, \"my_module\" is using node-pre-gyp to\n// prebuild and install pre-built binaries. \"main_module\"\n// is using \"my_module\".\n//\n// \"bin/node-pre-gyp\" invokes Run() without a path. the\n// expectation is that the working directory is the package\n// root \"my_module\". this is true because in all cases npm is\n// executing a script in the context of \"my_module\".\n//\n// \"pre-binding.find()\" is executed by \"my_module\" but in the\n// context of \"main_module\". this is because \"main_module\" is\n// executing and requires \"my_module\" which is then executing\n// \"pre-binding.find()\" via \"node-pre-gyp.find()\", so the working\n// directory is that of \"main_module\".\n//\n// that's why \"find()\" must pass the path to package.json.\n//\nfunction Run({ package_json_path = './package.json', argv }) {\n  this.package_json_path = package_json_path;\n  this.commands = {};\n\n  const self = this;\n  cli_commands.forEach((command) => {\n    self.commands[command] = function(argvx, callback) {\n      log.verbose('command', command, argvx);\n      return require('./' + command)(self, argvx, callback);\n    };\n  });\n\n  this.parseArgv(argv);\n\n  // this is set to true after the binary.host property was set to\n  // either staging_host or production_host.\n  this.binaryHostSet = false;\n}\ninherits(Run, EE);\nexports.Run = Run;\nconst proto = Run.prototype;\n\n/**\n * Export the contents of the package.json.\n */\n\nproto.package = require('../package.json');\n\n/**\n * nopt configuration definitions\n */\n\nproto.configDefs = {\n  help: Boolean,     // everywhere\n  arch: String,      // 'configure'\n  debug: Boolean,    // 'build'\n  directory: String, // bin\n  proxy: String,     // 'install'\n  loglevel: String  // everywhere\n};\n\n/**\n * nopt shorthands\n */\n\nproto.shorthands = {\n  release: '--no-debug',\n  C: '--directory',\n  debug: '--debug',\n  j: '--jobs',\n  silent: '--loglevel=silent',\n  silly: '--loglevel=silly',\n  verbose: '--loglevel=verbose'\n};\n\n/**\n * expose the command aliases for the bin file to use.\n */\n\nproto.aliases = aliases;\n\n/**\n * Parses the given argv array and sets the 'opts', 'argv',\n * 'command', and 'package_json' properties.\n */\n\nproto.parseArgv = function parseOpts(argv) {\n  this.opts = nopt(this.configDefs, this.shorthands, argv);\n  this.argv = this.opts.argv.remain.slice();\n  const commands = this.todo = [];\n\n  // create a copy of the argv array with aliases mapped\n  argv = this.argv.map((arg) => {\n    // is this an alias?\n    if (arg in this.aliases) {\n      arg = this.aliases[arg];\n    }\n    return arg;\n  });\n\n  // process the mapped args into \"command\" objects (\"name\" and \"args\" props)\n  argv.slice().forEach((arg) => {\n    if (arg in this.commands) {\n      const args = argv.splice(0, argv.indexOf(arg));\n      argv.shift();\n      if (commands.length > 0) {\n        commands[commands.length - 1].args = args;\n      }\n      commands.push({ name: arg, args: [] });\n    }\n  });\n  if (commands.length > 0) {\n    commands[commands.length - 1].args = argv.splice(0);\n  }\n\n\n  // if a directory was specified package.json is assumed to be relative\n  // to it.\n  let package_json_path = this.package_json_path;\n  if (this.opts.directory) {\n    package_json_path = path.join(this.opts.directory, package_json_path);\n  }\n\n  this.package_json = JSON.parse(fs.readFileSync(package_json_path));\n\n  // expand commands entries for multiple napi builds\n  this.todo = napi.expand_commands(this.package_json, this.opts, commands);\n\n  // support for inheriting config env variables from npm\n  const npm_config_prefix = 'npm_config_';\n  Object.keys(process.env).forEach((name) => {\n    if (name.indexOf(npm_config_prefix) !== 0) return;\n    const val = process.env[name];\n    if (name === npm_config_prefix + 'loglevel') {\n      log.level = val;\n    } else {\n      // add the user-defined options to the config\n      name = name.substring(npm_config_prefix.length);\n      // avoid npm argv clobber already present args\n      // which avoids problem of 'npm test' calling\n      // script that runs unique npm install commands\n      if (name === 'argv') {\n        if (this.opts.argv &&\n             this.opts.argv.remain &&\n             this.opts.argv.remain.length) {\n          // do nothing\n        } else {\n          this.opts[name] = val;\n        }\n      } else {\n        this.opts[name] = val;\n      }\n    }\n  });\n\n  if (this.opts.loglevel) {\n    log.level = this.opts.loglevel;\n  }\n  log.resume();\n};\n\n/**\n * allow the binary.host property to be set at execution time.\n *\n * for this to take effect requires all the following to be true.\n * - binary is a property in package.json\n * - binary.host is falsey\n * - binary.staging_host is not empty\n * - binary.production_host is not empty\n *\n * if any of the previous checks fail then the function returns an empty string\n * and makes no changes to package.json's binary property.\n *\n *\n * if command is \"publish\" then the default is set to \"binary.staging_host\"\n * if command is not \"publish\" the the default is set to \"binary.production_host\"\n *\n * if the command-line option '--s3_host' is set to \"staging\" or \"production\" then\n * \"binary.host\" is set to the specified \"staging_host\" or \"production_host\". if\n * '--s3_host' is any other value an exception is thrown.\n *\n * if '--s3_host' is not present then \"binary.host\" is set to the default as above.\n *\n * this strategy was chosen so that any command other than \"publish\" or \"unpublish\" uses \"production\"\n * as the default without requiring any command-line options but that \"publish\" and \"unpublish\" require\n * '--s3_host production_host' to be specified in order to *really* publish (or unpublish). publishing\n * to staging can be done freely without worrying about disturbing any production releases.\n */\nproto.setBinaryHostProperty = function(command) {\n  if (this.binaryHostSet) {\n    return this.package_json.binary.host;\n  }\n  const p = this.package_json;\n  // don't set anything if host is present. it must be left blank to trigger this.\n  if (!p || !p.binary || p.binary.host) {\n    return '';\n  }\n  // and both staging and production must be present. errors will be reported later.\n  if (!p.binary.staging_host || !p.binary.production_host) {\n    return '';\n  }\n  let target = 'production_host';\n  if (command === 'publish' || command === 'unpublish') {\n    target = 'staging_host';\n  }\n  // the environment variable has priority over the default or the command line. if\n  // either the env var or the command line option are invalid throw an error.\n  const npg_s3_host = process.env.node_pre_gyp_s3_host;\n  if (npg_s3_host === 'staging' || npg_s3_host === 'production') {\n    target = `${npg_s3_host}_host`;\n  } else if (this.opts['s3_host'] === 'staging' || this.opts['s3_host'] === 'production') {\n    target = `${this.opts['s3_host']}_host`;\n  } else if (this.opts['s3_host'] || npg_s3_host) {\n    throw new Error(`invalid s3_host ${this.opts['s3_host'] || npg_s3_host}`);\n  }\n\n  p.binary.host = p.binary[target];\n  this.binaryHostSet = true;\n\n  return p.binary.host;\n};\n\n/**\n * Returns the usage instructions for node-pre-gyp.\n */\n\nproto.usage = function usage() {\n  const str = [\n    '',\n    '  Usage: node-pre-gyp <command> [options]',\n    '',\n    '  where <command> is one of:',\n    cli_commands.map((c) => {\n      return '    - ' + c + ' - ' + require('./' + c).usage;\n    }).join('\\n'),\n    '',\n    'node-pre-gyp@' + this.version + '  ' + path.resolve(__dirname, '..'),\n    'node@' + process.versions.node\n  ].join('\\n');\n  return str;\n};\n\n/**\n * Version number getter.\n */\n\nObject.defineProperty(proto, 'version', {\n  get: function() {\n    return this.package.version;\n  },\n  enumerable: true\n});\n","const binary = require('@mapbox/node-pre-gyp');\nconst path = require('path');\nconst binding_path = binary.find(path.resolve(path.join(__dirname,'../package.json')));\nconst binding = require(binding_path);\nmodule.exports = exports = binding;\n","// Inspired by https://github.com/tlrobinson/long-stack-traces\nconst util = require('util');\n\nfunction extendTrace(object, property, pos) {\n    const old = object[property];\n    object[property] = function() {\n        const error = new Error();\n        const name = object.constructor.name + '#' + property + '(' +\n            Array.prototype.slice.call(arguments).map(function(el) {\n                return util.inspect(el, false, 0);\n            }).join(', ') + ')';\n\n        if (typeof pos === 'undefined') pos = -1;\n        if (pos < 0) pos += arguments.length;\n        const cb = arguments[pos];\n        if (typeof arguments[pos] === 'function') {\n            arguments[pos] = function replacement() {\n                const err = arguments[0];\n                if (err && err.stack && !err.__augmented) {\n                    err.stack = filter(err).join('\\n');\n                    err.stack += '\\n--> in ' + name;\n                    err.stack += '\\n' + filter(error).slice(1).join('\\n');\n                    err.__augmented = true;\n                }\n                return cb.apply(this, arguments);\n            };\n        }\n        return old.apply(this, arguments);\n    };\n}\nexports.extendTrace = extendTrace;\n\n\nfunction filter(error) {\n    return error.stack.split('\\n').filter(function(line) {\n        return line.indexOf(__filename) < 0;\n    });\n}\n","const path = require('path');\nconst sqlite3 = require('./sqlite3-binding.js');\nconst EventEmitter = require('events').EventEmitter;\nmodule.exports = exports = sqlite3;\n\nfunction normalizeMethod (fn) {\n    return function (sql) {\n        let errBack;\n        const args = Array.prototype.slice.call(arguments, 1);\n\n        if (typeof args[args.length - 1] === 'function') {\n            const callback = args[args.length - 1];\n            errBack = function(err) {\n                if (err) {\n                    callback(err);\n                }\n            };\n        }\n        const statement = new Statement(this, sql, errBack);\n        return fn.call(this, statement, args);\n    };\n}\n\nfunction inherits(target, source) {\n    for (const k in source.prototype)\n        target.prototype[k] = source.prototype[k];\n}\n\nsqlite3.cached = {\n    Database: function(file, a, b) {\n        if (file === '' || file === ':memory:') {\n            // Don't cache special databases.\n            return new Database(file, a, b);\n        }\n\n        let db;\n        file = path.resolve(file);\n\n        if (!sqlite3.cached.objects[file]) {\n            db = sqlite3.cached.objects[file] = new Database(file, a, b);\n        }\n        else {\n            // Make sure the callback is called.\n            db = sqlite3.cached.objects[file];\n            const callback = (typeof a === 'number') ? b : a;\n            if (typeof callback === 'function') {\n                function cb() { callback.call(db, null); }\n                if (db.open) process.nextTick(cb);\n                else db.once('open', cb);\n            }\n        }\n\n        return db;\n    },\n    objects: {}\n};\n\n\nconst Database = sqlite3.Database;\nconst Statement = sqlite3.Statement;\nconst Backup = sqlite3.Backup;\n\ninherits(Database, EventEmitter);\ninherits(Statement, EventEmitter);\ninherits(Backup, EventEmitter);\n\n// Database#prepare(sql, [bind1, bind2, ...], [callback])\nDatabase.prototype.prepare = normalizeMethod(function(statement, params) {\n    return params.length\n        ? statement.bind.apply(statement, params)\n        : statement;\n});\n\n// Database#run(sql, [bind1, bind2, ...], [callback])\nDatabase.prototype.run = normalizeMethod(function(statement, params) {\n    statement.run.apply(statement, params).finalize();\n    return this;\n});\n\n// Database#get(sql, [bind1, bind2, ...], [callback])\nDatabase.prototype.get = normalizeMethod(function(statement, params) {\n    statement.get.apply(statement, params).finalize();\n    return this;\n});\n\n// Database#all(sql, [bind1, bind2, ...], [callback])\nDatabase.prototype.all = normalizeMethod(function(statement, params) {\n    statement.all.apply(statement, params).finalize();\n    return this;\n});\n\n// Database#each(sql, [bind1, bind2, ...], [callback], [complete])\nDatabase.prototype.each = normalizeMethod(function(statement, params) {\n    statement.each.apply(statement, params).finalize();\n    return this;\n});\n\nDatabase.prototype.map = normalizeMethod(function(statement, params) {\n    statement.map.apply(statement, params).finalize();\n    return this;\n});\n\n// Database#backup(filename, [callback])\n// Database#backup(filename, destName, sourceName, filenameIsDest, [callback])\nDatabase.prototype.backup = function() {\n    let backup;\n    if (arguments.length <= 2) {\n        // By default, we write the main database out to the main database of the named file.\n        // This is the most likely use of the backup api.\n        backup = new Backup(this, arguments[0], 'main', 'main', true, arguments[1]);\n    } else {\n        // Otherwise, give the user full control over the sqlite3_backup_init arguments.\n        backup = new Backup(this, arguments[0], arguments[1], arguments[2], arguments[3], arguments[4]);\n    }\n    // Per the sqlite docs, exclude the following errors as non-fatal by default.\n    backup.retryErrors = [sqlite3.BUSY, sqlite3.LOCKED];\n    return backup;\n};\n\nStatement.prototype.map = function() {\n    const params = Array.prototype.slice.call(arguments);\n    const callback = params.pop();\n    params.push(function(err, rows) {\n        if (err) return callback(err);\n        const result = {};\n        if (rows.length) {\n            const keys = Object.keys(rows[0]);\n            const key = keys[0];\n            if (keys.length > 2) {\n                // Value is an object\n                for (let i = 0; i < rows.length; i++) {\n                    result[rows[i][key]] = rows[i];\n                }\n            } else {\n                const value = keys[1];\n                // Value is a plain value\n                for (let i = 0; i < rows.length; i++) {\n                    result[rows[i][key]] = rows[i][value];\n                }\n            }\n        }\n        callback(err, result);\n    });\n    return this.all.apply(this, params);\n};\n\nlet isVerbose = false;\n\nconst supportedEvents = [ 'trace', 'profile', 'change' ];\n\nDatabase.prototype.addListener = Database.prototype.on = function(type) {\n    const val = EventEmitter.prototype.addListener.apply(this, arguments);\n    if (supportedEvents.indexOf(type) >= 0) {\n        this.configure(type, true);\n    }\n    return val;\n};\n\nDatabase.prototype.removeListener = function(type) {\n    const val = EventEmitter.prototype.removeListener.apply(this, arguments);\n    if (supportedEvents.indexOf(type) >= 0 && !this._events[type]) {\n        this.configure(type, false);\n    }\n    return val;\n};\n\nDatabase.prototype.removeAllListeners = function(type) {\n    const val = EventEmitter.prototype.removeAllListeners.apply(this, arguments);\n    if (supportedEvents.indexOf(type) >= 0) {\n        this.configure(type, false);\n    }\n    return val;\n};\n\n// Save the stack trace over EIO callbacks.\nsqlite3.verbose = function() {\n    if (!isVerbose) {\n        const trace = require('./trace');\n        [\n            'prepare',\n            'get',\n            'run',\n            'all',\n            'each',\n            'map',\n            'close',\n            'exec'\n        ].forEach(function (name) {\n            trace.extendTrace(Database.prototype, name);\n        });\n        [\n            'bind',\n            'get',\n            'run',\n            'all',\n            'each',\n            'map',\n            'reset',\n            'finalize',\n        ].forEach(function (name) {\n            trace.extendTrace(Statement.prototype, name);\n        });\n        isVerbose = true;\n    }\n\n    return sqlite3;\n};\n","function SQLiteResult(error, insertId, rowsAffected, rows) {\n  this.error = error;\n  this.insertId = insertId;\n  this.rowsAffected = rowsAffected;\n  this.rows = rows;\n}\n\nexport default SQLiteResult;\n","import sqlite3 from 'sqlite3';\nimport SQLiteResult from './SQLiteResult.js';\n\nvar READ_ONLY_ERROR = new Error(\n  'could not prepare statement (23 not authorized)');\n\nfunction SQLiteDatabase(name, opts) {\n  opts = opts || {};\n  this._db = new sqlite3.Database(name);\n  if (opts.busyTimeout) {\n    this._db.configure('busyTimeout', opts.busyTimeout); // Default is 1000\n  }\n  if (opts.trace) {\n    this._db.configure('trace', opts.trace);\n  }\n  if (opts.profile) {\n    this._db.configure('profile', opts.profile);\n  }\n}\n\nfunction runSelect(db, sql, args, cb) {\n  db.all(sql, args, function (err, rows) {\n    if (err) {\n      return cb(new SQLiteResult(err));\n    }\n    var insertId = void 0;\n    var rowsAffected = 0;\n    var resultSet = new SQLiteResult(null, insertId, rowsAffected, rows);\n    cb(resultSet);\n  });\n}\n\nfunction runNonSelect(db, sql, args, cb) {\n  db.run(sql, args, function (err) {\n    if (err) {\n      return cb(new SQLiteResult(err));\n    }\n    /* jshint validthis:true */\n    var executionResult = this;\n    var insertId = executionResult.lastID;\n    var rowsAffected = executionResult.changes;\n    var rows = [];\n    var resultSet = new SQLiteResult(null, insertId, rowsAffected, rows);\n    cb(resultSet);\n  });\n}\n\nSQLiteDatabase.prototype.exec = function exec(queries, readOnly, callback) {\n\n  var db = this._db;\n  var len = queries.length;\n  var results = new Array(len);\n\n  var i = 0;\n\n  function checkDone() {\n    if (++i === len) {\n      callback(null, results);\n    } else {\n      doNext();\n    }\n  }\n\n  function onQueryComplete(i) {\n    return function (res) {\n      results[i] = res;\n      checkDone();\n    };\n  }\n\n  function doNext() {\n    var query = queries[i];\n    var sql = query.sql;\n    var args = query.args;\n\n    // TODO: It seems like the node-sqlite3 API either allows:\n    // 1) all(), which returns results but not rowsAffected or lastID\n    // 2) run(), which doesn't return results, but returns rowsAffected and lastID\n    // So we try to sniff whether it's a SELECT query or not.\n    // This is inherently error-prone, although it will probably work in the 99%\n    // case.\n    var isSelect = /^\\s*SELECT\\b/i.test(sql);\n\n    if (readOnly && !isSelect) {\n      onQueryComplete(i)(new SQLiteResult(READ_ONLY_ERROR));\n    } else if (isSelect) {\n      runSelect(db, sql, args, onQueryComplete(i));\n    } else {\n      runNonSelect(db, sql, args, onQueryComplete(i));\n    }\n  }\n\n  doNext();\n};\n\nexport default SQLiteDatabase;\n","import customOpenDatabase from 'websql-configurable/custom/index.js';\nimport SQLiteDatabase from 'websql-configurable/lib/sqlite/SQLiteDatabase.js';\nimport CFG from './CFG.js';\n\n/**\n * @param {string} name\n * @returns {SQLiteDatabase}\n */\nfunction wrappedSQLiteDatabase (name) {\n    const db = new SQLiteDatabase(name, {});\n    if (CFG.sqlBusyTimeout) {\n        db._db.configure('busyTimeout', /** @type {number} */ (CFG.sqlBusyTimeout)); // Default is 1000\n    }\n    if (CFG.sqlTrace) {\n        // @ts-expect-error native API?\n        db._db.configure('trace', CFG.sqlTrace);\n    }\n    if (CFG.sqlProfile) {\n        // @ts-expect-error native API?\n        db._db.configure('profile', CFG.sqlProfile);\n    }\n    return db;\n}\n\nconst nodeWebSQL = customOpenDatabase(wrappedSQLiteDatabase, {});\nexport default nodeWebSQL;\n","// ID_Start (includes Other_ID_Start)\nconst UnicodeIDStart =\n  '(?:[$A-Z_a-z\\\\xAA\\\\xB5\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0370-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386\\\\u0388-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0620-\\\\u064A\\\\u066E\\\\u066F\\\\u0671-\\\\u06D3\\\\u06D5\\\\u06E5\\\\u06E6\\\\u06EE\\\\u06EF\\\\u06FA-\\\\u06FC\\\\u06FF\\\\u0710\\\\u0712-\\\\u072F\\\\u074D-\\\\u07A5\\\\u07B1\\\\u07CA-\\\\u07EA\\\\u07F4\\\\u07F5\\\\u07FA\\\\u0800-\\\\u0815\\\\u081A\\\\u0824\\\\u0828\\\\u0840-\\\\u0858\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u0904-\\\\u0939\\\\u093D\\\\u0950\\\\u0958-\\\\u0961\\\\u0971-\\\\u0980\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BD\\\\u09CE\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E1\\\\u09F0\\\\u09F1\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A72-\\\\u0A74\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABD\\\\u0AD0\\\\u0AE0\\\\u0AE1\\\\u0AF9\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3D\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B61\\\\u0B71\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BD0\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D\\\\u0C58-\\\\u0C5A\\\\u0C60\\\\u0C61\\\\u0C80\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBD\\\\u0CDE\\\\u0CE0\\\\u0CE1\\\\u0CF1\\\\u0CF2\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D\\\\u0D4E\\\\u0D54-\\\\u0D56\\\\u0D5F-\\\\u0D61\\\\u0D7A-\\\\u0D7F\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0E01-\\\\u0E30\\\\u0E32\\\\u0E33\\\\u0E40-\\\\u0E46\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB0\\\\u0EB2\\\\u0EB3\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F40-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F88-\\\\u0F8C\\\\u1000-\\\\u102A\\\\u103F\\\\u1050-\\\\u1055\\\\u105A-\\\\u105D\\\\u1061\\\\u1065\\\\u1066\\\\u106E-\\\\u1070\\\\u1075-\\\\u1081\\\\u108E\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1711\\\\u1720-\\\\u1731\\\\u1740-\\\\u1751\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1780-\\\\u17B3\\\\u17D7\\\\u17DC\\\\u1820-\\\\u1877\\\\u1880-\\\\u18A8\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1950-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u1A00-\\\\u1A16\\\\u1A20-\\\\u1A54\\\\u1AA7\\\\u1B05-\\\\u1B33\\\\u1B45-\\\\u1B4B\\\\u1B83-\\\\u1BA0\\\\u1BAE\\\\u1BAF\\\\u1BBA-\\\\u1BE5\\\\u1C00-\\\\u1C23\\\\u1C4D-\\\\u1C4F\\\\u1C5A-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CE9-\\\\u1CEC\\\\u1CEE-\\\\u1CF1\\\\u1CF5\\\\u1CF6\\\\u1D00-\\\\u1DBF\\\\u1E00-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CEE\\\\u2CF2\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D80-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u3005-\\\\u3007\\\\u3021-\\\\u3029\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u309B-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA61F\\\\uA62A\\\\uA62B\\\\uA640-\\\\uA66E\\\\uA67F-\\\\uA69D\\\\uA6A0-\\\\uA6EF\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA801\\\\uA803-\\\\uA805\\\\uA807-\\\\uA80A\\\\uA80C-\\\\uA822\\\\uA840-\\\\uA873\\\\uA882-\\\\uA8B3\\\\uA8F2-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA90A-\\\\uA925\\\\uA930-\\\\uA946\\\\uA960-\\\\uA97C\\\\uA984-\\\\uA9B2\\\\uA9CF\\\\uA9E0-\\\\uA9E4\\\\uA9E6-\\\\uA9EF\\\\uA9FA-\\\\uA9FE\\\\uAA00-\\\\uAA28\\\\uAA40-\\\\uAA42\\\\uAA44-\\\\uAA4B\\\\uAA60-\\\\uAA76\\\\uAA7A\\\\uAA7E-\\\\uAAAF\\\\uAAB1\\\\uAAB5\\\\uAAB6\\\\uAAB9-\\\\uAABD\\\\uAAC0\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEA\\\\uAAF2-\\\\uAAF4\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABE2\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D\\\\uFB1F-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF21-\\\\uFF3A\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF75\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00\\\\uDE10-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE4\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC03-\\\\uDC37\\\\uDC83-\\\\uDCAF\\\\uDCD0-\\\\uDCE8\\\\uDD03-\\\\uDD26\\\\uDD50-\\\\uDD72\\\\uDD76\\\\uDD83-\\\\uDDB2\\\\uDDC1-\\\\uDDC4\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE2B\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEDE\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3D\\\\uDF50\\\\uDF5D-\\\\uDF61]|\\\\uD805[\\\\uDC00-\\\\uDC34\\\\uDC47-\\\\uDC4A\\\\uDC80-\\\\uDCAF\\\\uDCC4\\\\uDCC5\\\\uDCC7\\\\uDD80-\\\\uDDAE\\\\uDDD8-\\\\uDDDB\\\\uDE00-\\\\uDE2F\\\\uDE44\\\\uDE80-\\\\uDEAA\\\\uDF00-\\\\uDF19]|\\\\uD806[\\\\uDCA0-\\\\uDCDF\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC2E\\\\uDC40\\\\uDC72-\\\\uDC8F]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDED0-\\\\uDEED\\\\uDF00-\\\\uDF2F\\\\uDF40-\\\\uDF43\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50\\\\uDF93-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDD00-\\\\uDD43]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D])';\n\n// ID_Continue (includes Other_ID_Continue)\nconst UnicodeIDContinue =\n  '(?:[$0-9A-Z_a-z\\\\xAA\\\\xB5\\\\xB7\\\\xBA\\\\xC0-\\\\xD6\\\\xD8-\\\\xF6\\\\xF8-\\\\u02C1\\\\u02C6-\\\\u02D1\\\\u02E0-\\\\u02E4\\\\u02EC\\\\u02EE\\\\u0300-\\\\u0374\\\\u0376\\\\u0377\\\\u037A-\\\\u037D\\\\u037F\\\\u0386-\\\\u038A\\\\u038C\\\\u038E-\\\\u03A1\\\\u03A3-\\\\u03F5\\\\u03F7-\\\\u0481\\\\u0483-\\\\u0487\\\\u048A-\\\\u052F\\\\u0531-\\\\u0556\\\\u0559\\\\u0561-\\\\u0587\\\\u0591-\\\\u05BD\\\\u05BF\\\\u05C1\\\\u05C2\\\\u05C4\\\\u05C5\\\\u05C7\\\\u05D0-\\\\u05EA\\\\u05F0-\\\\u05F2\\\\u0610-\\\\u061A\\\\u0620-\\\\u0669\\\\u066E-\\\\u06D3\\\\u06D5-\\\\u06DC\\\\u06DF-\\\\u06E8\\\\u06EA-\\\\u06FC\\\\u06FF\\\\u0710-\\\\u074A\\\\u074D-\\\\u07B1\\\\u07C0-\\\\u07F5\\\\u07FA\\\\u0800-\\\\u082D\\\\u0840-\\\\u085B\\\\u08A0-\\\\u08B4\\\\u08B6-\\\\u08BD\\\\u08D4-\\\\u08E1\\\\u08E3-\\\\u0963\\\\u0966-\\\\u096F\\\\u0971-\\\\u0983\\\\u0985-\\\\u098C\\\\u098F\\\\u0990\\\\u0993-\\\\u09A8\\\\u09AA-\\\\u09B0\\\\u09B2\\\\u09B6-\\\\u09B9\\\\u09BC-\\\\u09C4\\\\u09C7\\\\u09C8\\\\u09CB-\\\\u09CE\\\\u09D7\\\\u09DC\\\\u09DD\\\\u09DF-\\\\u09E3\\\\u09E6-\\\\u09F1\\\\u0A01-\\\\u0A03\\\\u0A05-\\\\u0A0A\\\\u0A0F\\\\u0A10\\\\u0A13-\\\\u0A28\\\\u0A2A-\\\\u0A30\\\\u0A32\\\\u0A33\\\\u0A35\\\\u0A36\\\\u0A38\\\\u0A39\\\\u0A3C\\\\u0A3E-\\\\u0A42\\\\u0A47\\\\u0A48\\\\u0A4B-\\\\u0A4D\\\\u0A51\\\\u0A59-\\\\u0A5C\\\\u0A5E\\\\u0A66-\\\\u0A75\\\\u0A81-\\\\u0A83\\\\u0A85-\\\\u0A8D\\\\u0A8F-\\\\u0A91\\\\u0A93-\\\\u0AA8\\\\u0AAA-\\\\u0AB0\\\\u0AB2\\\\u0AB3\\\\u0AB5-\\\\u0AB9\\\\u0ABC-\\\\u0AC5\\\\u0AC7-\\\\u0AC9\\\\u0ACB-\\\\u0ACD\\\\u0AD0\\\\u0AE0-\\\\u0AE3\\\\u0AE6-\\\\u0AEF\\\\u0AF9\\\\u0B01-\\\\u0B03\\\\u0B05-\\\\u0B0C\\\\u0B0F\\\\u0B10\\\\u0B13-\\\\u0B28\\\\u0B2A-\\\\u0B30\\\\u0B32\\\\u0B33\\\\u0B35-\\\\u0B39\\\\u0B3C-\\\\u0B44\\\\u0B47\\\\u0B48\\\\u0B4B-\\\\u0B4D\\\\u0B56\\\\u0B57\\\\u0B5C\\\\u0B5D\\\\u0B5F-\\\\u0B63\\\\u0B66-\\\\u0B6F\\\\u0B71\\\\u0B82\\\\u0B83\\\\u0B85-\\\\u0B8A\\\\u0B8E-\\\\u0B90\\\\u0B92-\\\\u0B95\\\\u0B99\\\\u0B9A\\\\u0B9C\\\\u0B9E\\\\u0B9F\\\\u0BA3\\\\u0BA4\\\\u0BA8-\\\\u0BAA\\\\u0BAE-\\\\u0BB9\\\\u0BBE-\\\\u0BC2\\\\u0BC6-\\\\u0BC8\\\\u0BCA-\\\\u0BCD\\\\u0BD0\\\\u0BD7\\\\u0BE6-\\\\u0BEF\\\\u0C00-\\\\u0C03\\\\u0C05-\\\\u0C0C\\\\u0C0E-\\\\u0C10\\\\u0C12-\\\\u0C28\\\\u0C2A-\\\\u0C39\\\\u0C3D-\\\\u0C44\\\\u0C46-\\\\u0C48\\\\u0C4A-\\\\u0C4D\\\\u0C55\\\\u0C56\\\\u0C58-\\\\u0C5A\\\\u0C60-\\\\u0C63\\\\u0C66-\\\\u0C6F\\\\u0C80-\\\\u0C83\\\\u0C85-\\\\u0C8C\\\\u0C8E-\\\\u0C90\\\\u0C92-\\\\u0CA8\\\\u0CAA-\\\\u0CB3\\\\u0CB5-\\\\u0CB9\\\\u0CBC-\\\\u0CC4\\\\u0CC6-\\\\u0CC8\\\\u0CCA-\\\\u0CCD\\\\u0CD5\\\\u0CD6\\\\u0CDE\\\\u0CE0-\\\\u0CE3\\\\u0CE6-\\\\u0CEF\\\\u0CF1\\\\u0CF2\\\\u0D01-\\\\u0D03\\\\u0D05-\\\\u0D0C\\\\u0D0E-\\\\u0D10\\\\u0D12-\\\\u0D3A\\\\u0D3D-\\\\u0D44\\\\u0D46-\\\\u0D48\\\\u0D4A-\\\\u0D4E\\\\u0D54-\\\\u0D57\\\\u0D5F-\\\\u0D63\\\\u0D66-\\\\u0D6F\\\\u0D7A-\\\\u0D7F\\\\u0D82\\\\u0D83\\\\u0D85-\\\\u0D96\\\\u0D9A-\\\\u0DB1\\\\u0DB3-\\\\u0DBB\\\\u0DBD\\\\u0DC0-\\\\u0DC6\\\\u0DCA\\\\u0DCF-\\\\u0DD4\\\\u0DD6\\\\u0DD8-\\\\u0DDF\\\\u0DE6-\\\\u0DEF\\\\u0DF2\\\\u0DF3\\\\u0E01-\\\\u0E3A\\\\u0E40-\\\\u0E4E\\\\u0E50-\\\\u0E59\\\\u0E81\\\\u0E82\\\\u0E84\\\\u0E87\\\\u0E88\\\\u0E8A\\\\u0E8D\\\\u0E94-\\\\u0E97\\\\u0E99-\\\\u0E9F\\\\u0EA1-\\\\u0EA3\\\\u0EA5\\\\u0EA7\\\\u0EAA\\\\u0EAB\\\\u0EAD-\\\\u0EB9\\\\u0EBB-\\\\u0EBD\\\\u0EC0-\\\\u0EC4\\\\u0EC6\\\\u0EC8-\\\\u0ECD\\\\u0ED0-\\\\u0ED9\\\\u0EDC-\\\\u0EDF\\\\u0F00\\\\u0F18\\\\u0F19\\\\u0F20-\\\\u0F29\\\\u0F35\\\\u0F37\\\\u0F39\\\\u0F3E-\\\\u0F47\\\\u0F49-\\\\u0F6C\\\\u0F71-\\\\u0F84\\\\u0F86-\\\\u0F97\\\\u0F99-\\\\u0FBC\\\\u0FC6\\\\u1000-\\\\u1049\\\\u1050-\\\\u109D\\\\u10A0-\\\\u10C5\\\\u10C7\\\\u10CD\\\\u10D0-\\\\u10FA\\\\u10FC-\\\\u1248\\\\u124A-\\\\u124D\\\\u1250-\\\\u1256\\\\u1258\\\\u125A-\\\\u125D\\\\u1260-\\\\u1288\\\\u128A-\\\\u128D\\\\u1290-\\\\u12B0\\\\u12B2-\\\\u12B5\\\\u12B8-\\\\u12BE\\\\u12C0\\\\u12C2-\\\\u12C5\\\\u12C8-\\\\u12D6\\\\u12D8-\\\\u1310\\\\u1312-\\\\u1315\\\\u1318-\\\\u135A\\\\u135D-\\\\u135F\\\\u1369-\\\\u1371\\\\u1380-\\\\u138F\\\\u13A0-\\\\u13F5\\\\u13F8-\\\\u13FD\\\\u1401-\\\\u166C\\\\u166F-\\\\u167F\\\\u1681-\\\\u169A\\\\u16A0-\\\\u16EA\\\\u16EE-\\\\u16F8\\\\u1700-\\\\u170C\\\\u170E-\\\\u1714\\\\u1720-\\\\u1734\\\\u1740-\\\\u1753\\\\u1760-\\\\u176C\\\\u176E-\\\\u1770\\\\u1772\\\\u1773\\\\u1780-\\\\u17D3\\\\u17D7\\\\u17DC\\\\u17DD\\\\u17E0-\\\\u17E9\\\\u180B-\\\\u180D\\\\u1810-\\\\u1819\\\\u1820-\\\\u1877\\\\u1880-\\\\u18AA\\\\u18B0-\\\\u18F5\\\\u1900-\\\\u191E\\\\u1920-\\\\u192B\\\\u1930-\\\\u193B\\\\u1946-\\\\u196D\\\\u1970-\\\\u1974\\\\u1980-\\\\u19AB\\\\u19B0-\\\\u19C9\\\\u19D0-\\\\u19DA\\\\u1A00-\\\\u1A1B\\\\u1A20-\\\\u1A5E\\\\u1A60-\\\\u1A7C\\\\u1A7F-\\\\u1A89\\\\u1A90-\\\\u1A99\\\\u1AA7\\\\u1AB0-\\\\u1ABD\\\\u1B00-\\\\u1B4B\\\\u1B50-\\\\u1B59\\\\u1B6B-\\\\u1B73\\\\u1B80-\\\\u1BF3\\\\u1C00-\\\\u1C37\\\\u1C40-\\\\u1C49\\\\u1C4D-\\\\u1C7D\\\\u1C80-\\\\u1C88\\\\u1CD0-\\\\u1CD2\\\\u1CD4-\\\\u1CF6\\\\u1CF8\\\\u1CF9\\\\u1D00-\\\\u1DF5\\\\u1DFB-\\\\u1F15\\\\u1F18-\\\\u1F1D\\\\u1F20-\\\\u1F45\\\\u1F48-\\\\u1F4D\\\\u1F50-\\\\u1F57\\\\u1F59\\\\u1F5B\\\\u1F5D\\\\u1F5F-\\\\u1F7D\\\\u1F80-\\\\u1FB4\\\\u1FB6-\\\\u1FBC\\\\u1FBE\\\\u1FC2-\\\\u1FC4\\\\u1FC6-\\\\u1FCC\\\\u1FD0-\\\\u1FD3\\\\u1FD6-\\\\u1FDB\\\\u1FE0-\\\\u1FEC\\\\u1FF2-\\\\u1FF4\\\\u1FF6-\\\\u1FFC\\\\u200C\\\\u200D\\\\u203F\\\\u2040\\\\u2054\\\\u2071\\\\u207F\\\\u2090-\\\\u209C\\\\u20D0-\\\\u20DC\\\\u20E1\\\\u20E5-\\\\u20F0\\\\u2102\\\\u2107\\\\u210A-\\\\u2113\\\\u2115\\\\u2118-\\\\u211D\\\\u2124\\\\u2126\\\\u2128\\\\u212A-\\\\u2139\\\\u213C-\\\\u213F\\\\u2145-\\\\u2149\\\\u214E\\\\u2160-\\\\u2188\\\\u2C00-\\\\u2C2E\\\\u2C30-\\\\u2C5E\\\\u2C60-\\\\u2CE4\\\\u2CEB-\\\\u2CF3\\\\u2D00-\\\\u2D25\\\\u2D27\\\\u2D2D\\\\u2D30-\\\\u2D67\\\\u2D6F\\\\u2D7F-\\\\u2D96\\\\u2DA0-\\\\u2DA6\\\\u2DA8-\\\\u2DAE\\\\u2DB0-\\\\u2DB6\\\\u2DB8-\\\\u2DBE\\\\u2DC0-\\\\u2DC6\\\\u2DC8-\\\\u2DCE\\\\u2DD0-\\\\u2DD6\\\\u2DD8-\\\\u2DDE\\\\u2DE0-\\\\u2DFF\\\\u3005-\\\\u3007\\\\u3021-\\\\u302F\\\\u3031-\\\\u3035\\\\u3038-\\\\u303C\\\\u3041-\\\\u3096\\\\u3099-\\\\u309F\\\\u30A1-\\\\u30FA\\\\u30FC-\\\\u30FF\\\\u3105-\\\\u312D\\\\u3131-\\\\u318E\\\\u31A0-\\\\u31BA\\\\u31F0-\\\\u31FF\\\\u3400-\\\\u4DB5\\\\u4E00-\\\\u9FD5\\\\uA000-\\\\uA48C\\\\uA4D0-\\\\uA4FD\\\\uA500-\\\\uA60C\\\\uA610-\\\\uA62B\\\\uA640-\\\\uA66F\\\\uA674-\\\\uA67D\\\\uA67F-\\\\uA6F1\\\\uA717-\\\\uA71F\\\\uA722-\\\\uA788\\\\uA78B-\\\\uA7AE\\\\uA7B0-\\\\uA7B7\\\\uA7F7-\\\\uA827\\\\uA840-\\\\uA873\\\\uA880-\\\\uA8C5\\\\uA8D0-\\\\uA8D9\\\\uA8E0-\\\\uA8F7\\\\uA8FB\\\\uA8FD\\\\uA900-\\\\uA92D\\\\uA930-\\\\uA953\\\\uA960-\\\\uA97C\\\\uA980-\\\\uA9C0\\\\uA9CF-\\\\uA9D9\\\\uA9E0-\\\\uA9FE\\\\uAA00-\\\\uAA36\\\\uAA40-\\\\uAA4D\\\\uAA50-\\\\uAA59\\\\uAA60-\\\\uAA76\\\\uAA7A-\\\\uAAC2\\\\uAADB-\\\\uAADD\\\\uAAE0-\\\\uAAEF\\\\uAAF2-\\\\uAAF6\\\\uAB01-\\\\uAB06\\\\uAB09-\\\\uAB0E\\\\uAB11-\\\\uAB16\\\\uAB20-\\\\uAB26\\\\uAB28-\\\\uAB2E\\\\uAB30-\\\\uAB5A\\\\uAB5C-\\\\uAB65\\\\uAB70-\\\\uABEA\\\\uABEC\\\\uABED\\\\uABF0-\\\\uABF9\\\\uAC00-\\\\uD7A3\\\\uD7B0-\\\\uD7C6\\\\uD7CB-\\\\uD7FB\\\\uF900-\\\\uFA6D\\\\uFA70-\\\\uFAD9\\\\uFB00-\\\\uFB06\\\\uFB13-\\\\uFB17\\\\uFB1D-\\\\uFB28\\\\uFB2A-\\\\uFB36\\\\uFB38-\\\\uFB3C\\\\uFB3E\\\\uFB40\\\\uFB41\\\\uFB43\\\\uFB44\\\\uFB46-\\\\uFBB1\\\\uFBD3-\\\\uFD3D\\\\uFD50-\\\\uFD8F\\\\uFD92-\\\\uFDC7\\\\uFDF0-\\\\uFDFB\\\\uFE00-\\\\uFE0F\\\\uFE20-\\\\uFE2F\\\\uFE33\\\\uFE34\\\\uFE4D-\\\\uFE4F\\\\uFE70-\\\\uFE74\\\\uFE76-\\\\uFEFC\\\\uFF10-\\\\uFF19\\\\uFF21-\\\\uFF3A\\\\uFF3F\\\\uFF41-\\\\uFF5A\\\\uFF66-\\\\uFFBE\\\\uFFC2-\\\\uFFC7\\\\uFFCA-\\\\uFFCF\\\\uFFD2-\\\\uFFD7\\\\uFFDA-\\\\uFFDC]|\\\\uD800[\\\\uDC00-\\\\uDC0B\\\\uDC0D-\\\\uDC26\\\\uDC28-\\\\uDC3A\\\\uDC3C\\\\uDC3D\\\\uDC3F-\\\\uDC4D\\\\uDC50-\\\\uDC5D\\\\uDC80-\\\\uDCFA\\\\uDD40-\\\\uDD74\\\\uDDFD\\\\uDE80-\\\\uDE9C\\\\uDEA0-\\\\uDED0\\\\uDEE0\\\\uDF00-\\\\uDF1F\\\\uDF30-\\\\uDF4A\\\\uDF50-\\\\uDF7A\\\\uDF80-\\\\uDF9D\\\\uDFA0-\\\\uDFC3\\\\uDFC8-\\\\uDFCF\\\\uDFD1-\\\\uDFD5]|\\\\uD801[\\\\uDC00-\\\\uDC9D\\\\uDCA0-\\\\uDCA9\\\\uDCB0-\\\\uDCD3\\\\uDCD8-\\\\uDCFB\\\\uDD00-\\\\uDD27\\\\uDD30-\\\\uDD63\\\\uDE00-\\\\uDF36\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF67]|\\\\uD802[\\\\uDC00-\\\\uDC05\\\\uDC08\\\\uDC0A-\\\\uDC35\\\\uDC37\\\\uDC38\\\\uDC3C\\\\uDC3F-\\\\uDC55\\\\uDC60-\\\\uDC76\\\\uDC80-\\\\uDC9E\\\\uDCE0-\\\\uDCF2\\\\uDCF4\\\\uDCF5\\\\uDD00-\\\\uDD15\\\\uDD20-\\\\uDD39\\\\uDD80-\\\\uDDB7\\\\uDDBE\\\\uDDBF\\\\uDE00-\\\\uDE03\\\\uDE05\\\\uDE06\\\\uDE0C-\\\\uDE13\\\\uDE15-\\\\uDE17\\\\uDE19-\\\\uDE33\\\\uDE38-\\\\uDE3A\\\\uDE3F\\\\uDE60-\\\\uDE7C\\\\uDE80-\\\\uDE9C\\\\uDEC0-\\\\uDEC7\\\\uDEC9-\\\\uDEE6\\\\uDF00-\\\\uDF35\\\\uDF40-\\\\uDF55\\\\uDF60-\\\\uDF72\\\\uDF80-\\\\uDF91]|\\\\uD803[\\\\uDC00-\\\\uDC48\\\\uDC80-\\\\uDCB2\\\\uDCC0-\\\\uDCF2]|\\\\uD804[\\\\uDC00-\\\\uDC46\\\\uDC66-\\\\uDC6F\\\\uDC7F-\\\\uDCBA\\\\uDCD0-\\\\uDCE8\\\\uDCF0-\\\\uDCF9\\\\uDD00-\\\\uDD34\\\\uDD36-\\\\uDD3F\\\\uDD50-\\\\uDD73\\\\uDD76\\\\uDD80-\\\\uDDC4\\\\uDDCA-\\\\uDDCC\\\\uDDD0-\\\\uDDDA\\\\uDDDC\\\\uDE00-\\\\uDE11\\\\uDE13-\\\\uDE37\\\\uDE3E\\\\uDE80-\\\\uDE86\\\\uDE88\\\\uDE8A-\\\\uDE8D\\\\uDE8F-\\\\uDE9D\\\\uDE9F-\\\\uDEA8\\\\uDEB0-\\\\uDEEA\\\\uDEF0-\\\\uDEF9\\\\uDF00-\\\\uDF03\\\\uDF05-\\\\uDF0C\\\\uDF0F\\\\uDF10\\\\uDF13-\\\\uDF28\\\\uDF2A-\\\\uDF30\\\\uDF32\\\\uDF33\\\\uDF35-\\\\uDF39\\\\uDF3C-\\\\uDF44\\\\uDF47\\\\uDF48\\\\uDF4B-\\\\uDF4D\\\\uDF50\\\\uDF57\\\\uDF5D-\\\\uDF63\\\\uDF66-\\\\uDF6C\\\\uDF70-\\\\uDF74]|\\\\uD805[\\\\uDC00-\\\\uDC4A\\\\uDC50-\\\\uDC59\\\\uDC80-\\\\uDCC5\\\\uDCC7\\\\uDCD0-\\\\uDCD9\\\\uDD80-\\\\uDDB5\\\\uDDB8-\\\\uDDC0\\\\uDDD8-\\\\uDDDD\\\\uDE00-\\\\uDE40\\\\uDE44\\\\uDE50-\\\\uDE59\\\\uDE80-\\\\uDEB7\\\\uDEC0-\\\\uDEC9\\\\uDF00-\\\\uDF19\\\\uDF1D-\\\\uDF2B\\\\uDF30-\\\\uDF39]|\\\\uD806[\\\\uDCA0-\\\\uDCE9\\\\uDCFF\\\\uDEC0-\\\\uDEF8]|\\\\uD807[\\\\uDC00-\\\\uDC08\\\\uDC0A-\\\\uDC36\\\\uDC38-\\\\uDC40\\\\uDC50-\\\\uDC59\\\\uDC72-\\\\uDC8F\\\\uDC92-\\\\uDCA7\\\\uDCA9-\\\\uDCB6]|\\\\uD808[\\\\uDC00-\\\\uDF99]|\\\\uD809[\\\\uDC00-\\\\uDC6E\\\\uDC80-\\\\uDD43]|[\\\\uD80C\\\\uD81C-\\\\uD820\\\\uD840-\\\\uD868\\\\uD86A-\\\\uD86C\\\\uD86F-\\\\uD872][\\\\uDC00-\\\\uDFFF]|\\\\uD80D[\\\\uDC00-\\\\uDC2E]|\\\\uD811[\\\\uDC00-\\\\uDE46]|\\\\uD81A[\\\\uDC00-\\\\uDE38\\\\uDE40-\\\\uDE5E\\\\uDE60-\\\\uDE69\\\\uDED0-\\\\uDEED\\\\uDEF0-\\\\uDEF4\\\\uDF00-\\\\uDF36\\\\uDF40-\\\\uDF43\\\\uDF50-\\\\uDF59\\\\uDF63-\\\\uDF77\\\\uDF7D-\\\\uDF8F]|\\\\uD81B[\\\\uDF00-\\\\uDF44\\\\uDF50-\\\\uDF7E\\\\uDF8F-\\\\uDF9F\\\\uDFE0]|\\\\uD821[\\\\uDC00-\\\\uDFEC]|\\\\uD822[\\\\uDC00-\\\\uDEF2]|\\\\uD82C[\\\\uDC00\\\\uDC01]|\\\\uD82F[\\\\uDC00-\\\\uDC6A\\\\uDC70-\\\\uDC7C\\\\uDC80-\\\\uDC88\\\\uDC90-\\\\uDC99\\\\uDC9D\\\\uDC9E]|\\\\uD834[\\\\uDD65-\\\\uDD69\\\\uDD6D-\\\\uDD72\\\\uDD7B-\\\\uDD82\\\\uDD85-\\\\uDD8B\\\\uDDAA-\\\\uDDAD\\\\uDE42-\\\\uDE44]|\\\\uD835[\\\\uDC00-\\\\uDC54\\\\uDC56-\\\\uDC9C\\\\uDC9E\\\\uDC9F\\\\uDCA2\\\\uDCA5\\\\uDCA6\\\\uDCA9-\\\\uDCAC\\\\uDCAE-\\\\uDCB9\\\\uDCBB\\\\uDCBD-\\\\uDCC3\\\\uDCC5-\\\\uDD05\\\\uDD07-\\\\uDD0A\\\\uDD0D-\\\\uDD14\\\\uDD16-\\\\uDD1C\\\\uDD1E-\\\\uDD39\\\\uDD3B-\\\\uDD3E\\\\uDD40-\\\\uDD44\\\\uDD46\\\\uDD4A-\\\\uDD50\\\\uDD52-\\\\uDEA5\\\\uDEA8-\\\\uDEC0\\\\uDEC2-\\\\uDEDA\\\\uDEDC-\\\\uDEFA\\\\uDEFC-\\\\uDF14\\\\uDF16-\\\\uDF34\\\\uDF36-\\\\uDF4E\\\\uDF50-\\\\uDF6E\\\\uDF70-\\\\uDF88\\\\uDF8A-\\\\uDFA8\\\\uDFAA-\\\\uDFC2\\\\uDFC4-\\\\uDFCB\\\\uDFCE-\\\\uDFFF]|\\\\uD836[\\\\uDE00-\\\\uDE36\\\\uDE3B-\\\\uDE6C\\\\uDE75\\\\uDE84\\\\uDE9B-\\\\uDE9F\\\\uDEA1-\\\\uDEAF]|\\\\uD838[\\\\uDC00-\\\\uDC06\\\\uDC08-\\\\uDC18\\\\uDC1B-\\\\uDC21\\\\uDC23\\\\uDC24\\\\uDC26-\\\\uDC2A]|\\\\uD83A[\\\\uDC00-\\\\uDCC4\\\\uDCD0-\\\\uDCD6\\\\uDD00-\\\\uDD4A\\\\uDD50-\\\\uDD59]|\\\\uD83B[\\\\uDE00-\\\\uDE03\\\\uDE05-\\\\uDE1F\\\\uDE21\\\\uDE22\\\\uDE24\\\\uDE27\\\\uDE29-\\\\uDE32\\\\uDE34-\\\\uDE37\\\\uDE39\\\\uDE3B\\\\uDE42\\\\uDE47\\\\uDE49\\\\uDE4B\\\\uDE4D-\\\\uDE4F\\\\uDE51\\\\uDE52\\\\uDE54\\\\uDE57\\\\uDE59\\\\uDE5B\\\\uDE5D\\\\uDE5F\\\\uDE61\\\\uDE62\\\\uDE64\\\\uDE67-\\\\uDE6A\\\\uDE6C-\\\\uDE72\\\\uDE74-\\\\uDE77\\\\uDE79-\\\\uDE7C\\\\uDE7E\\\\uDE80-\\\\uDE89\\\\uDE8B-\\\\uDE9B\\\\uDEA1-\\\\uDEA3\\\\uDEA5-\\\\uDEA9\\\\uDEAB-\\\\uDEBB]|\\\\uD869[\\\\uDC00-\\\\uDED6\\\\uDF00-\\\\uDFFF]|\\\\uD86D[\\\\uDC00-\\\\uDF34\\\\uDF40-\\\\uDFFF]|\\\\uD86E[\\\\uDC00-\\\\uDC1D\\\\uDC20-\\\\uDFFF]|\\\\uD873[\\\\uDC00-\\\\uDEA1]|\\\\uD87E[\\\\uDC00-\\\\uDE1D]|\\\\uDB40[\\\\uDD00-\\\\uDDEF])';\n\nexport {UnicodeIDStart, UnicodeIDContinue};\n","import fs from 'node:fs';\n\nimport setGlobalVars from './setGlobalVars.js';\nimport nodeWebSQL from './nodeWebSQL.js'; // Importing \"websql\" would not gain us SQLite config ability\nimport CFG from './CFG.js';\nimport * as UnicodeIdentifiers from './UnicodeIdentifiers.js';\n\nCFG.win = {openDatabase: nodeWebSQL};\n\n/**\n * @param {import('./setGlobalVars.js').ShimmedObject} idb\n * @param {import('./CFG.js').default} initialConfig\n * @returns {{}|Window}\n */\nconst __setGlobalVars = function (idb, initialConfig = {}) {\n    const obj = setGlobalVars(idb, {fs, ...initialConfig});\n    /* istanbul ignore next -- TS guard */\n    if (!obj.shimIndexedDB) {\n        return obj;\n    }\n    obj.shimIndexedDB.__setUnicodeIdentifiers(UnicodeIdentifiers);\n\n    return obj;\n};\n\nexport default __setGlobalVars;\n"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","phases","NONE","CAPTURING_PHASE","AT_TARGET","BUBBLING_PHASE","ShimDOMException","DOMException","msg","name","err","Error","ev","WeakMap","evCfg","ShimEvent","Event","type","_this","toStringTag","toString","_arguments","Array","slice","call","arguments","evInit","_ev","length","TypeError","_evCfg","composed","set","that","initEvent","bubbles","cancelable","forEach","pr","prop","Object","defineProperty","get","undefined","props","push","defineProperties","reduce","includes","preventDefault","_passive","defaultPrevented","stopImmediatePropagation","_stopImmediatePropagation","stopPropagation","_stopPropagation","_dispatched","enumerable","configurable","i","writable","value","ShimCustomEvent","CustomEvent","_arguments2","initCustomEvent","detail","copyEvent","e","getListenersOptions","listeners","options","listenersByType","opts","capture","stringifiedOptions","JSON","stringify","listenersByTypeOptions","filter","methods","addListener","listener","listenersOptions","some","l","removeListener","splice","hasListener","EventTarget","assign","listenerType","method","mainMethod","handleEvent","bind","console","log","arrStr","toLowerCase","meth","_legacyOutputDidListenersThrowCheck","__setOptions","customOptions","_defaultSync","defaultSync","_extraProperties","extraProperties","legacyOutputDidListenersThrowFlag","dispatchEvent","_dispatchEvent","setTarget","_this2","eventCopy","_eventCopy","finishEventDispatch","eventPhase","currentTarget","_children","invokeDefaults","target","invokeCurrentListeners","_defaultListeners","continueEventDispatch","setTimeout","_lateListeners","_listeners","child","pop","parent","__getParent","_earlyListeners","par","root_","checkOnListeners","_this3","listOpts","concat","dummyIPos","listenerObj","onListener","tryCatch","ret","once","passive","removeEventListener","evt","cb","triggerErrorEvent","error","triggerGlobalErrorEvent","useNodeImpl","window","ErrorEvent","errEv","message","filename","fileName","lineno","lineNumber","colno","columnNumber","__legacyOutputDidListenersThrowError","ShimEventTarget","EventTargetFactory","createInstance","ET","setPrototypeOfCustomEvent","setPrototypeOf","map","CFG","val","test","validator","isArray","getDefaultExportFromCjs","x","__esModule","hasOwnProperty","regex","regex$1","escapeUnmatchedSurrogates","arg","replaceAll","_","unmatchedHighSurrogate","precedingLow","unmatchedLowSurrogate","codePointAt","padStart","escapeNameForSQLiteIdentifier","escapeSQLiteStatement","unescapeSQLiteResponse","unescapeUnmatchedSurrogates","esc","sqlEscape","sqlQuote","escapeDatabaseNameForSQLAndFiles","db","escapeDatabaseName","escapeNFDForDatabaseNames","RegExp","expandsOnNFD","expandable","databaseCharacterEscapeList","replace","n0","charCodeAt","databaseNameLengthLimit","addSQLiteExtension","lowSurr","String","fromCodePoint","Number","parseInt","highSurr","escapeStoreNameForSQL","store","escapeIndexNameForSQL","index","escapeIndexNameForSQLKeyColumn","sqlLIKEEscape","str","instanceOf","Clss","hasInstance","isObj","isDate","getDate","isBlob","size","isFile","isBinary","byteLength","getFloat64","isIterable","defineOuterInterface","o","desc","getOwnPropertyDescriptor","defineReadonlyOuterInterface","defineListenerProperties","defineReadonlyProperties","getter","isIdentifier","item","UnicodeIDStart","UnicodeIDContinue","IdentifierStart","IdentifierPart","isValidKeyPathString","keyPathString","split","every","pathComponent","isValidKeyPath","keyPath","Boolean","enforceRange","number","Math","floor","max","min","isFinite","convertToDOMString","v","treatNullAs","ToString","convertToSequenceDOMString","isNullish","createEvent","debug","util","readonlyProperties","IDBVersionChangeEvent","__eventInitDict","create","createNativeDOMException","codes","IndexSizeError","HierarchyRequestError","WrongDocumentError","InvalidCharacterError","NoModificationAllowedError","NotFoundError","NotSupportedError","InUseAttributeError","InvalidStateError","SyntaxError","InvalidModificationError","NamespaceError","InvalidAccessError","TypeMismatchError","SecurityError","NetworkError","AbortError","URLMismatchError","QuotaExceededError","TimeoutError","InvalidNodeTypeError","DataCloneError","EncodingError","NotReadableError","UnknownError","ConstraintError","DataError","TransactionInactiveError","ReadOnlyError","VersionError","OperationError","NotAllowedError","legacyCodes","INDEX_SIZE_ERR","DOMSTRING_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","INVALID_CHARACTER_ERR","NO_DATA_ALLOWED_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INUSE_ATTRIBUTE_ERR","INVALID_STATE_ERR","SYNTAX_ERR","INVALID_MODIFICATION_ERR","NAMESPACE_ERR","INVALID_ACCESS_ERR","VALIDATION_ERR","TYPE_MISMATCH_ERR","SECURITY_ERR","NETWORK_ERR","ABORT_ERR","URL_MISMATCH_ERR","QUOTA_EXCEEDED_ERR","TIMEOUT_ERR","INVALID_NODE_TYPE_ERR","DATA_CLONE_ERR","createNonNativeDOMExceptionClass","_code","_name","_message","DummyDOMException","keys","codeName","ShimNonNativeDOMException","createNonNativeDOMException","logError","DEBUG","trace","isErrorOrDOMErrorOrDOMException","findError","args","webSQLErrback","webSQLErr","code","createDOMException","sqlError","useNativeDOMException","doneFlagGetters","IDBRequest","__super","__done","readyState","__result","__error","__source","__transaction","__createInstance","openListeners","IDBOpenDBRequest","IDBOpenDBRequestAlias","isPromise","p","then","addReject","prom","reject","PENDING","FULFILLED","REJECTED","SyncPromise","fn","s","c","transist","state","func","resolve","reason","errBack","rej","settle","catch","all","promises","newPromises","res","race","resolved","cmp","first","second","encodedKey1","keyEncode","encodedKey2","result","decodedKey1","keyDecode","decodedKey2","warn","keyTypeToEncodedChar","invalid","date","string","binary","array","keyTypes","k","encodedCharToKeyType","signValues","types","encode","decode","key","key32","MIN_VALUE","repeat","abs","decimalIndex","indexOf","significantDigitIndex","search","sign","exponent","mantissa","padBase32Exponent","flipBase32","padBase32Mantissa","zeros","NEGATIVE_INFINITY","POSITIVE_INFINITY","pow32","negate","inArray","encoded","entries","encodedItem","decoded","parse","decodedItem","toJSON","Date","getCopyBytesHeldByBufferSource","b","arr","buffer","ArrayBuffer","uint8","Uint8Array","n","exp","flipped","ch","roundToPrecision","whole","wholeNum","fraction","fractionNum","expansion","num","precision","parseFloat","toPrecision","getKeyType","keyType","convertValueToKey","input","seen","convertValueToKeyValueDecoded","convertValueToMultiEntryKey","O","offset","isView","arrayBuffer","byteOffset","multiEntry","fullKeys","isNaN","is","octets","len","hasOwn","entry","getTime","convertValueToMultiEntryKeyDecoded","convertValueToKeyRethrowingAndIfInvalid","extractKeyFromValueUsingKeyPath","extractKeyValueDecodedFromValueUsingKeyPath","evaluateKeyPathOnValue","evaluateKeyPathOnValueToDecodedValue","r","failure","identifiers","idntfr","lastModified","injectKeyIntoValueUsingKeyPath","last","identifier","hop","checkKeyCouldBeInjectedIntoValue","isKeyInRange","range","checkCached","lowerMatch","lower","upperMatch","upper","encodedKey","__lowerCached","__upperCached","lowerOpen","upperOpen","isMultiEntryMatch","encodedEntry","findMultiEntryMatches","keyEntry","matches","nested","convertKeyToValue","roundTrip","MAX_ALLOWED_CURRENT_NUMBER","getCurrentNumber","tx","sqlFailCb","executeSql","__currentName","data","rows","currNum","assignCurrentNumber","successCb","failCb","sql","sqlValues","setCurrentNumber","generateKeyForStore","possiblyUpdateKeyGenerator","cn","useNewKeyForAutoInc","IDBKeyRange","__lowerOpen","__upperOpen","IDBKeyRangeAlias","lowerConverted","upperConverted","Key","__lower","__upper","only","lowerBound","upperBound","bound","setSQLForKeyRange","quotedKeyColumnName","addAnd","encodedLowerKey","encodedUpperKey","hasLower","hasUpper","convertValueToKeyRange","nullDisallowed","cleanInterface","testObject","DOMStringList","_items","_length","contains","isInteger","clone","stringList","addIndexes","sortList","sort","thisArg","DOMStringListAlias","nonenumerableReadonly","nonenumerableWritable","uniqueID","IDBTransaction","IDBTransactionAlias","storeNames","mode","me","__id","__active","__running","__errored","__requests","__objectStoreNames","__mode","__db","readonlyProp","__storeHandles","__executeRequests","__transFinishedCb","executeRequests","__tx","q","success","req","__requestsFinished","__abortTransaction","executeNextRequest","addLateEventListener","addDefaultEventListener","requestsFinished","op","webSQLError","__transactionEndCallback","__transactionFinished","__completed","currentTask","done","rollback","commit","readOnly","complete","__internal","__createRequest","source","request","__addToTransactionQueue","callback","__pushToQueue","__addNonRequestToTransactionQueue","__assertActive","__assertWritable","__assertVersionChange","objectStore","objectStoreName","__assertNotFinished","__objectStores","__pendingDelete","__deleted","IDBObjectStore","__clone","__version","__oldVersion","__oldObjectStoreNames","values","__pendingName","__name","__originalName","__indexNames","__oldIndexNames","__indexes","__indexHandles","abort","errOrResult","lastIndexOf","reqEvt","__abortFinished","__assertNotVersionChange","__assertNotFinishedObjectStoreMethod","ownKeys","t","getOwnPropertySymbols","apply","_objectSpread2","_defineProperty","getOwnPropertyDescriptors","_classCallCheck","_defineProperties","_toPropertyKey","_createClass","_slicedToArray","_arrayWithHoles","_iterableToArrayLimit","a","u","next","return","_unsupportedIterableToArray","_nonIterableRest","_arrayLikeToArray","from","_toPrimitive","toPrimitive","TypesonPromise","Promise","__typeson__type__","allSettled","getPrototypeOf","isThenable","isObject","hasConstructorOf","Function","isPlainObject","isUserObject","escapeKeyPathComponent","unescapeKeyPathComponent","getByKeyPath","setAtKeyPath","getJSONType","_await","_async","nestedPathsFirst","keypath","match","Typeson","plainObjectReplacers","nonplainObjectReplacers","revivers","stringification","encapsulate","stringifySync","throwOnBadSyncType","sync","stringifyAsync","revive","parseSync","parseAsync","specialTypeNames","returnTypeNames","rootTypeName","iterateNone","f","y","d","cyclic","encapsulateObserver","m","finish","_toConsumableArray","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Set","$types","$","h","_invoke","g","_adaptBuiltinStateObjectProperties","_encapsulate","w","stateObj","promisesData","resolvingTypesonPromise","awaitingTypesonPromise","replaced","iterateIn","iterateUnsetNumeric","A","cyclicKeypath","S","j","T","N","I","addLength","P","_loop","E","endIterateIn","end","endIterateOwn","C","_loop2","endIterateUnsetNumeric","replaceAsync","typeDetected","replacing","encapsulateSync","encapsulateAsync","finishRevival","executeReviver","reviveAsync","checkUndefined","revivePlainObjects","plain","reducer","_revive","reviveSync","register","R","testPlainObjects","fallback","Undefined","typeson","structuredCloningThrowing","ReferenceError","IDBIndex","IDBIndexAlias","indexProperties","__objectStore","columnName","__keyPath","optionalParams","__multiEntry","__unique","unique","__cursors","cursors","newName","oldName","transaction","__invalidStateIfDeleted","indexNames","storeHandle","oldIndexHandle","colInfoToPreserveArr","autoIncrement","indexName","__renameIndex","__updateIndexList","__pendingCreate","idx","__createIndex","storeName","indexHandle","createIndex","columnExists","__recreated","indexValues","applyIndex","addIndexEntry","Sca","indexKey","indexKeyStr","escapedStoreNameSQL","escapedIndexNameSQL","addIndexSQL","useSQLiteIndexes","join","__deleteIndex","deleteIndex","finishDeleteIndex","indexList","deleted","__fetchIndexData","opType","count","fetchArgs","buildFetchIndexDataSQL","executeFetchIndexData","openCursor","query","direction","cursor","IDBCursorWithValue","__request","openKeyCursor","IDBCursor","getKey","getAll","getAllKeys","newNameType","escapedNewIndexNameSQL","escapedTmpStoreNameSQL","colNamesToPreserve","colInfo","colInfoToPreserve","listColInfoToPreserve","listColsToPreserve","renameIndex","indexCreations","escapedIndexToRecreate","unboundedDisallowed","hasKey","multiChecks","isCount","records","recordCount","record","escapedIndexNameForKeyCol","row","rowKey","check","hasRange","col","innerKey","convertedRange","IDBObjectStoreAlias","storeProperties","__idbdb","idbdb","__autoIncrement","autoInc","oldStore","objectStoreNames","oldHandle","objectStoreClear","newStore","__createObjectStore","__versionTransaction","storeHandles","createObjectStore","insertStoreInfo","encodedKeyPath","__deleteObjectStore","deleteObjectStore","__validateKeyAndValueAndCloneValue","cursorUpdate","clonedValue","__deriveKey","keyCloneThenSuccess","oldCn","__insertData","clonedKeyOrCurrentNumber","paramMap","indexPromises","setIndexInfo","multiCheck","sqlStart","sqlEnd","insertSqlValues","stmt","insertSql","fail","add","ky","__storingRecordObjectStore","put","__overwrite","rowsAffected","invalidateCache","noOverwrite","insert","__invalidateCache","__get","sqlStr","objectStoreGet","delete","sqlArr","objectStoreDelete","clear","optionalParameters","IDBDatabase","IDBDatabaseAlias","oldVersion","version","__closePending","__upgradeTransaction","__transactions","itemCopy","createOptions","throwIfUpgradeTransactionNull","close","__unblocking","trans","__forceClose","ct","on__abort","fs","setFS","_fs","getOrigin","location","origin","hasNullOrigin","checkOrigin","connectionQueue","processNextInConnectionQueue","queueItems","removeFromQueue","shift","addEventListener","addRequestToConnectionQueue","triggerAnyVersionChangeAndBlockedEvents","openConnections","newVersion","connectionIsClosed","connection","connectionsClosed","conn","unblocking","websqlDBCache","sysdb","nameCounter","getLatestCachedWebSQLVersion","prev","curr","getLatestCachedWebSQLDB","cleanupDatabaseResources","__openDatabase","escapedDatabaseName","databaseDeleted","dbError","useMemoryDatabase","memoryDatabase","latestSQLiteDBCached","sqliteDB","_db","deleteDatabaseFiles","unlink","path","databaseBasePath","DEFAULT_DB_SIZE","tables","deleteTables","createSysDB","sysDbCreateError","er","sysDatabaseBasePath","systx","IDBFactory","IDBFactoryAlias","__connections","open","calledDbCreateError","autoName","sqlSafeName","useDatabaseCache","cacheDatabaseInstances","dbCreateError","setupDatabase","finishRequest","sysdbFinishedCb","reportError","versionSet","onupgradeneeded","finished","on__beforecomplete","on__preabort","on__complete","openDB","setup","createIndexes","latestCachedVersion","readTransaction","sysReadTx","deleteDatabase","calledDBError","sysdbFinishedCbDelete","completeDatabaseDelete","key1","key2","databases","dbGetDatabaseNamesError","dbNames","dbName","connIdx","forceClose","__setConnectionQueueOrigin","shimIndexedDB","IDBCursorAlias","keyColumnName","valueColumnName","__indexSource","__key","__primaryKey","__store","__range","__keyColumnName","__valueColumnName","__keyOnly","__valueDecoder","__count","__prefetchedIndex","__multiEntryIndex","__sqlDirection","__gotValue","continue","__find","primaryKey","__findMultiEntry","recordsToLoad","__findBasic","continueCall","quotedKey","__prefetchedData","__decode","leftBracketRegex","rowItem","matchingKey","reverse","__onsuccess","__value","__matchedKeys","encKey","encVal","encPrimaryKey","__sourceOrEffectiveObjStoreDeleted","__continue","advanceContinue","advanceState","__advanceCount","cmpResult","__continueFinish","recordsToPreloadOnContinue","cursorPreloadPackSize","cursorContinue","triggerSuccess","primKey","checkKey","continuePrimaryKey","noErrors","encObjectStorePos","advance","update","valueToUpdate","addToQueue","evaluatedKey","cursorDelete","IDBCursorWithValueAlias","setConfig","setGlobalVars","idb","initialConfig","IDB","globalThis","shim","propDesc","win","openDatabase","__useShim","setNonIDBGlobals","prefix","shimIDBFactory","shimNS","shimIDBDatabase","shimIDBObjectStore","shimIDBIndex","shimIDBTransaction","shimIDBCursor","shimIDBCursorWithValue","shimIDBKeyRange","shimIDBRequest","shimIDBOpenDBRequest","shimIDBVersionChangeEvent","fullIDLSupport","indexedDB","addNonIDBGlobals","replaceNonIDBGlobals","__debug","__setConfig","__getConfig","__setUnicodeIdentifiers","webkitIndexedDB","mozIndexedDB","oIndexedDB","msIndexedDB","poorIndexedDbSupport","navigator","userAgent","avoidAutoShim","webkitIDBDatabase","webkitIDBTransaction","webkitIDBCursor","webkitIDBKeyRange","nextTick","process","browser","install","queueMicrotask","global","Mutation","MutationObserver","WebKitMutationObserver","mutation","handle","called","observer","element","document","createTextNode","observe","characterData","messageChannel","setImmediate","MessageChannel","channel","port1","onmessage","port2","postMessage","stateChange","createElement","scriptEl","onreadystatechange","parentNode","removeChild","documentElement","appendChild","timeout","require$$0","require$$1","require$$2","require$$3","require$$4","require$$5","draining","currentQueue","queueIndex","queue","scheduled","cleanUpNextTick","run","clearTimeout","scheduleDrain","Item","fun","lib","immediate","task","Queue","node","start","Infinity","output","tinyQueue","noopFn","WebSQLRows","_array","WebSQLResultSet","insertId","errorUnhandled","massageSQLResult","SQLTask","sqlCallback","sqlErrorCallback","runBatch","self","batch","onDone","_running","runAllSql","_websqlDatabase","_currentTask","exec","results","_error","batchTask","_complete","_sqlQueue","_onTransactionComplete","executeDelay","_runningTimeout","WebSQLTransaction","websqlDatabase","_executeDelay","noop","_checkDone","ROLLBACK","COMMIT","TransactionTask","txnCallback","errorCallback","successCallback","nonstandardTransCb","WebSQLDatabase","dbVersion","webSQLOverrides","_txnQueue","_transactionDelay","transactionDelay","_runNextTransaction","cont","_runTransaction","txn","_createTransaction","customOpenDatabase","SQLiteDatabase","sqliteOpts","sqlite","websql","openDelay","createDb","sqliteDatabase","module","exports","url","detect","config","to","hosted_path","uri","pathname","bucket","region","endpoint","host","s3ForcePathStyle","parts","hostname","get_s3","env","node_pre_gyp_mock_s3","AWSMock","os","basePath","tmpdir","s3","S3","wcb","listObjects","params","headObject","deleteObject","putObject","AWS","get_mockS3Http","mock_s3","nock","require$$6","mockDir","mock_http","requestBody","filepath","accessSync","constants","R_OK","createReadStream","persist","reply","mockS3Http","action","previous","abbrev","monkeyPatch","list","lexSort","abbrevs","current","nextMatches","prevMatches","cl","curChar","charAt","substr","DEBUG_NOPT","NOPT_DEBUG","Stream","nopt","clean","typeDefs","validate","validateString","validateBoolean","validateUrl","validateNumber","validatePath","validateStream","validateDate","shorthands","argv","remain","cooked","original","remove","typeDefault","trim","invalidHandler","isWin","platform","homePattern","home","homedir","valueOf","href","ok","shortAbbr","hadEq","at","shRes","resolveShort","no","argType","isTypeArray","la","isBool","singles","___singles","chrs","EventEmitter","trackerId","TrackerBase","trackerBaseModule","id","inherits","Tracker","trackerModule","todo","workDone","workTodo","completed","addWork","work","emit","completeWork","delegates","Delegator","proto","getters","setters","fluents","access","setter","__defineGetter__","__defineSetter__","fluent","stream","delegate","TrackerStream","trackerStreamModule","Transform","tracker","on","delegateChange","trackerStream","completion","_transform","encoding","_flush","TrackerGroup","trackerGroupModule","parentGroup","trackers","weight","totalWeight","bubbleChange","trackerGroup","nameInTree","names","unshift","addUnit","unit","toTest","valPerWeight","ii","newGroup","newItem","newStream","depth","indent","consoleControlStrings","up","down","forward","back","nextLine","previousLine","horizontalAbsolute","eraseData","eraseLine","goto","gotoSOL","beep","hideCursor","showCursor","colors","reset","bold","italic","underline","inverse","stopBold","stopItalic","stopUnderline","stopInverse","white","black","blue","cyan","green","magenta","red","yellow","bgWhite","bgBlack","bgBlue","bgCyan","bgGreen","bgMagenta","bgRed","bgYellow","grey","brightBlack","brightRed","brightGreen","brightYellow","brightBlue","brightMagenta","brightCyan","brightWhite","bgGrey","bgBrightBlack","bgBrightRed","bgBrightGreen","bgBrightYellow","bgBrightBlue","bgBrightMagenta","bgBrightCyan","bgBrightWhite","color","colorWith","colorNameToCode","ansiRegex","onlyFirst","pattern","stripAnsi","isFullwidthCodePoint","codePoint","isFullwidthCodePointModule","default","emojiRegex","stringWidth","width","stringWidthModule","align","center","alignCenter","left","alignLeft","right","alignRight","createPadding","trimmed","trimRight","padding","strWidth","trimLeft","padLeft","padRight","padLeftBy","aproba","isArguments","thingy","label","F","B","Z","addSchema","schema","arity","group","rawSchemas","wrongNumberOfArgs","missingRequiredArg","invalidType","schemas","unknownType","moreThanOneError","matching","newMatching","typeCheck","labels","newException","expectedTypes","valueType","typeCode","englishList","expected","got","english","ex","captureStackTrace","wideTruncate_1","wideTruncate","noAnsi","ansiSize","truncated","User","MissingTemplateValue","format","template","Internal","templateItem","TemplateItem","isPercent","percent","outputLength","overallOutputLength","maxLength","minLength","kerning","round","getBaseLength","getLength","getMaxLength","getMinLength","renderValueWithValues","renderValue","renderTemplate","renderTemplateModule","items","prepareItems","rendered","preType","cappedTypeName","toUpperCase","postType","hasPreOrPost","generatePreAndPost","baseItem","parentValues","pre","post","$1","$2","cloneAndObjectify","cloned","remainingSpace","variableCount","consumeSpace","finishSizing","prevPadRight","resized","resizing","hunkSize","renderFunction","alignWith","leftPadding","rightPadding","aligned","consoleControl","Plumbing","plumbingModule","theme","showing","setTheme","setTemplate","setWidth","hide","show","status","hasUnicodeModule","isUTF8","ctype","LC_ALL","LC_CTYPE","LANG","colorSupport_1","colorSupport","alwaysReturn","hasNone","level","hasBasic","has256","has16m","stdout","term","TERM","ignoreTTY","isTTY","ignoreDumb","COLORTERM","TMUX","ignoreCI","CI","TEAMCITY_VERSION","TRAVIS","TERM_PROGRAM","ver","TERM_PROGRAM_VERSION","hasColor","processOk","reallyExit","kill","pid","signalExitModule","assert","signals","EE","emitter","__signal_exit_emitter__","emitted","infinite","setMaxListeners","equal","loaded","load","alwaysLast","unload","sig","sigListeners","originalProcessEmit","originalProcessReallyExit","unload_1","event","signal","signals_1","processEmit","processReallyExit","load_1","exitCode","propIsEnumerable","propertyIsEnumerable","toObject","shouldUseNative","test1","getOwnPropertyNames","test2","fromCharCode","order2","test3","letter","objectAssign","symbols","spin","spinstr","spun","progressBar","sofar","rest","remaining","baseTheme","activityIndicator","progressbar","themeSet","ThemeSetProto","newThemeSet","newTheme","getThemeNames","themes","addTheme","addToAllThemes","getTheme","newMissingThemeError","setDefault","hasUnicode","defaults","true","false","getDefault","platformName","newMissingDefaultThemeError","themeset","ThemeSet","themesModule","preProgressbar","postProgressbar","progressbarTheme","activityIndicatorTheme","preSubsection","preComplete","postComplete","preRemaining","postRemaining","setInterval_1","setInterval","process_1","setImmediateModule","onExit","defaultThemes","require$$7","gauge","Gauge","callWith","arg1","arg2","writeTo","write","stderr","_status","section","subsection","_paused","_disabled","_showing","_onScreen","_needsRedraw","_hideCursor","_fixedFramerate","fixedFramerate","_lastUpdateAt","_updateInterval","updateInterval","_themes","_theme","_computeTheme","setWriteTo","tty","PlumbingClass","_gauge","getWidth","_$$doRedraw","_doRedraw","_$$handleSizeChange","_handleSizeChange","_cleanupOnExit","cleanupOnExit","_removeOnExit","enabled","_tty","enable","disable","isEnabled","_requestRedraw","useUnicode","useColor","setThemeset","columns","_writeTo","_enableEvents","_disableEvents","redrawTracker","unref","clearInterval","sectionKeys","pulse","now","setBlocking","blocking","_handle","Progress","colorEnabled","enableColor","unicodeEnabled","disableColor","progressEnabled","enableUnicode","disableUnicode","setGaugeThemeset","setGaugeTemplate","enableProgress","showProgress","disableProgress","trackerConstructors","mixinLog","clearProgress","disp","logline","_format","style","prefixStyle","pause","resume","_buffer","emitLog","maxRecordSize","lvl","levels","stack","messageRaw","mrs","newSize","line","heading","headingStyle","settings","fg","bg","addLevel","pathModule","isWindows","NODE_DEBUG","rethrow","backtrace","debugCallback","missingCallback","throwDeprecation","noDeprecation","traceDeprecation","maybeCallback","normalize","nextPartRe","splitRootRe","old","realpathSync","cache","seenLinks","knownHard","pos","base","lstatSync","lastIndex","resolvedLink","stat","isSymbolicLink","linkTarget","dev","ino","statSync","readlinkSync","realpath","lstat","LOOP","gotResolvedLink","gotStat","gotTarget","readlink","fs_realpath","monkeypatch","unmonkeypatch","origRealpath","origRealpathSync","newError","syscall","concatMap","xs","balancedMatch","balanced","maybeMatch","body","reg","begs","beg","ai","bi","braceExpansion","expandTop","escSlash","random","escOpen","escClose","escComma","escPeriod","numeric","escapeBraces","unescapeBraces","parseCommaParts","postParts","expand","embrace","isPadded","el","lte","gte","isTop","expansions","isNumericSequence","isAlphaSequence","isSequence","isOptions","incr","pad","need","z","minimatch_1","minimatch","Minimatch","require","sep","GLOBSTAR","plTypes","qmark","star","twoStarDot","twoStarNoDot","reSpecials","charSet","slashSplit","ext","def","orig","makeRe","braceExpand","assertValidPattern","nocomment","allowWindowsEscape","regexp","comment","empty","partial","make","parseNegate","globSet","globParts","si","negateOffset","nonegate","nobrace","MAX_PATTERN_LENGTH","SUBPARSE","isSub","noglobstar","re","hasMagic","nocase","escaping","patternListStack","negativeLists","stateChar","inClass","reClassStart","classStart","patternStart","dot","clearStateChar","noext","reStart","pl","reEnd","cs","substring","sp","tail","addPatternStart","nl","nlBefore","nlFirst","nlLast","nlAfter","openParensBefore","cleanAfter","dollar","newRe","globUnescape","flags","regExp","_glob","_src","twoStar","regExpEscape","mm","nonull","file","matchBase","hit","matchOne","flipNegate","fi","pi","fl","fr","swallowee","inherits_browserModule","ctor","superCtor","super_","TempCtor","inheritsModule","posix","win32","splitDeviceRe","device","isUnc","pathIsAbsoluteModule","common","setopts","ownProp","makeAbs","mark","isIgnored","childrenIgnored","field","isAbsolute","alphasort","localeCompare","setupIgnores","ignore","ignoreMap","gmatcher","gpattern","matcher","silent","strict","realpathCache","follow","nodir","nounique","nosort","noprocess","absolute","statCache","symlinks","changedCwd","cwd","root","cwdAbs","nomount","nou","literal","_mark","notDir","found","isDir","slash","mabs","globSync","GlobSync","rp","Glob","_process","_finish","matchset","_makeAbs","real","inGlobStar","_processSimple","read","isGlobStar","_processGlobStar","_processReaddir","_readdir","pn","rawGlob","dotOk","matchedEntries","_emitMatch","newPattern","_stat","_readdirInGlobStar","isSym","isDirectory","_readdirEntries","readdirSync","_readdirError","remainWithoutGlobStar","gspref","noGlobStar","instead","below","exists","trail","needDir","wrappy_1","wrappy","wrapper","onceModule","onceStrict","onceError","reqs","inflight_1","inflight","makeres","RES","cbs","glob_1","glob","require$$8","require$$9","require$$11","extend","options_","_didRealPath","_processing","_emitQueue","_processQueue","paused","aborted","_didRealpath","_realpath","_realpathSet","eq","pq","_processReaddir2","st","lstatkey","lstatcb","lstatcb_","readdir","readdirCb","_processGlobStar2","_processSimple2","statcb","_stat2","_err","defaultGlobOpts","maxBusyTries","emfileWait","disableGlob","rimraf","busyTries","errState","afterGlob","CB","rimraf_","fixWinEPERM","rmdir","chmod","er2","er3","stats","fixWinEPERMSync","chmodSync","rmdirSync","unlinkSync","originalEr","rmkids","files","rimrafSync","rmkidsSync","retries","threw","rimraf_1","versionArray","napi_multiple_commands","napi_build_version_tag","get_napi_version","versions","napi","get_napi_version_as_string","validate_package_json","package_json","module_path_ok","pathOK","module_path","remote_path_ok","remote_path","package_name_ok","package_name","napi_build_versions","get_napi_build_versions","napi_build_versions_raw","get_napi_build_versions_raw","napi_build_version","get_best_napi_build_version","build_napi_only","expand_commands","commands","expanded_commands","command","warnings","supported_napi_version","napi_versions","napi_version","duplicated","info","latest_version","get_command_arg","get_napi_build_version_from_command_args","command_args","swap_build_dir_out","rm","get_build_dir","renameSync","swap_build_dir_in","best_napi_build_version","our_napi_version","SEMVER_SPEC_VERSION","MAX_LENGTH","MAX_SAFE_INTEGER","MAX_SAFE_COMPONENT_LENGTH","MAX_SAFE_BUILD_LENGTH","RELEASE_TYPES","FLAG_INCLUDE_PRERELEASE","FLAG_LOOSE","debug_1","safeRe","src","LETTERDASHNUMBER","safeRegexReplacements","makeSafeRegex","token","createToken","isGlobal","safe","NUMERICIDENTIFIER","NUMERICIDENTIFIERLOOSE","NONNUMERICIDENTIFIER","PRERELEASEIDENTIFIER","PRERELEASEIDENTIFIERLOOSE","BUILDIDENTIFIER","MAINVERSION","PRERELEASE","BUILD","FULLPLAIN","MAINVERSIONLOOSE","PRERELEASELOOSE","LOOSEPLAIN","XRANGEIDENTIFIER","XRANGEIDENTIFIERLOOSE","GTLT","XRANGEPLAIN","XRANGEPLAINLOOSE","COERCE","LONETILDE","tildeTrimReplace","LONECARET","caretTrimReplace","comparatorTrimReplace","looseOption","freeze","loose","emptyOpts","parseOptions","parseOptions_1","compareIdentifiers","anum","bnum","rcompareIdentifiers","SemVer","includePrerelease","LOOSE","FULL","raw","major","minor","patch","prerelease","build","compare","other","compareMain","comparePre","compareBuild","inc","release","identifierBase","semver","throwErrors","parse_1","valid","valid_1","clean_1","inc_1","diff","version1","version2","v1","v2","comparison","v1Higher","highVersion","lowVersion","highHasPre","lowHasPre","diff_1","major_1","minor_1","patch_1","parsed","prerelease_1","compare_1","rcompare","rcompare_1","compareLoose","compareLoose_1","versionA","versionB","compareBuild_1","sort_1","rsort","rsort_1","gt","gt_1","lt","lt_1","eq_1","neq","neq_1","gte_1","lte_1","cmp_1","coerce","rtl","COERCERTL","coerce_1","Yallist","walker","head","yallist","Node","removeNode","unshiftNode","pushNode","thisp","forEachReverse","getReverse","mapReverse","initial","acc","reduceReverse","toArray","toArrayReverse","sliceReverse","deleteCount","nodes","inserted","MAX","LENGTH","LENGTH_CALCULATOR","ALLOW_STALE","MAX_AGE","DISPOSE","NO_DISPOSE_ON_SET","LRU_LIST","CACHE","UPDATE_AGE_ON_GET","naiveLength","LRUCache","lc","stale","maxAge","dispose","noDisposeOnSet","updateAgeOnGet","mL","allowStale","mA","lengthCalculator","lC","itemCount","rforEach","forEachStep","Map","dump","isStale","dumpLru","has","del","Entry","peek","expiresAt","prune","doUse","lruCache","Range","Comparator","parseRange","isNullSet","isAny","comps","memoOpts","memoKey","cached","hr","HYPHENRANGELOOSE","HYPHENRANGE","hyphenReplace","COMPARATORTRIM","TILDETRIM","CARETTRIM","rangeList","comp","parseComparator","replaceGTE0","COMPARATORLOOSE","rangeMap","comparators","intersects","thisComparators","isSatisfiable","rangeComparators","thisComparator","rangeComparator","testSet","LRU","remainingComparators","testComparator","otherComparator","replaceCarets","replaceTildes","replaceXRanges","replaceStars","isX","replaceTilde","TILDELOOSE","TILDE","M","replaceCaret","CARETLOOSE","CARET","replaceXRange","XRANGELOOSE","XRANGE","gtlt","xM","xm","xp","anyX","STAR","GTE0PRE","GTE0","incPr","$0","fM","fm","fp","fpr","fb","tM","tm","tp","tpr","tb","ANY","allowed","operator","COMPARATOR","startsWith","comparator","satisfies","satisfies_1","toComparators","toComparators_1","maxSatisfying","maxSV","rangeObj","maxSatisfying_1","minSatisfying","minSV","minSatisfying_1","minVersion","minver","setMin","compver","minVersion_1","validRange","outside","hilo","gtfn","ltefn","ltfn","ecomp","high","low","outside_1","gtr","gtr_1","ltr","ltr_1","r1","r2","intersects_1","simplify","included","ranges","simplified","subset","sub","dom","sawNonNull","OUTER","simpleSub","simpleDom","simpleSubset","minimumVersionWithPreRelease","minimumVersion","eqSet","higherGT","lowerLT","gtltComp","higher","hasDomLT","hasDomGT","needDomLTPre","needDomGTPre","subset_1","internalRe","require$$10","require$$12","require$$13","require$$14","require$$15","require$$16","require$$17","require$$18","require$$19","require$$20","require$$21","require$$22","require$$23","require$$24","require$$25","require$$26","require$$27","require$$28","require$$29","require$$30","require$$31","require$$32","require$$33","require$$34","require$$35","require$$36","require$$37","require$$38","simplifyRange","require$$39","require$$40","tokens","isLinux","report","getReport","LDD_PATH","readFileSync","readFile","filesystem","childProcess","cachedFamilyFilesystem","cachedVersionFilesystem","commandOut","safeCommand","out","safeCommandSync","execSync","GLIBC","RE_GLIBC_VERSION","MUSL","GLIBC_ON_LDD","MUSL_ON_LDD","isFileMusl","familyFromReport","header","glibcVersionRuntime","sharedObjects","familyFromCommand","getconf","ldd1","getFamilyFromLddContent","content","familyFromFilesystem","lddContent","familyFromFilesystemSync","family","familySync","isNonGlibcLinux","isNonGlibcLinuxSync","versionFromFilesystem","versionMatch","versionFromFilesystemSync","versionFromReport","versionSuffix","versionFromCommand","ldd2","versionSync","detectLibc","detect_libc","abi_crosswalk","NODE_PRE_GYP_ABI_CROSSWALK","major_versions","get_electron_abi","runtime","target_version","sem_ver","get_node_webkit_abi","get_node_abi","modules","v8","get_runtime_abi","electron","cross_obj","target_parts","new_iojs_target","new_node_target","versions_obj","node_abi","required_parameters","validate_config","missing","main","protocol","eval_template","fix_slashes","drop_double_slashes","get_process_runtime","default_package_name","default_remote_path","evaluate","module_version","configuration","module_name","node_abi_napi","node_napi_label","target_platform","arch","target_arch","libc","target_libc","module_main","toolset","validModuleName","module_root","staged_tarball","hosted_tarball","npg","versioning","existsSync","usage","find","package_json_path","prog","Run","setBinaryHostProperty","dirname","meta","mocking","cli_commands","aliases","argvx","verbose","parseArgv","binaryHostSet","package","configDefs","help","directory","proxy","loglevel","silly","parseOpts","npm_config_prefix","staging_host","production_host","npg_s3_host","node_pre_gyp_s3_host","__dirname","binding_path","binding","extendTrace","object","property","inspect","replacement","__augmented","__filename","sqlite3","normalizeMethod","statement","Statement","Database","objects","Backup","prepare","finalize","each","backup","retryErrors","BUSY","LOCKED","isVerbose","supportedEvents","configure","_events","removeAllListeners","SQLiteResult","READ_ONLY_ERROR","busyTimeout","profile","runSelect","resultSet","runNonSelect","executionResult","lastID","changes","queries","checkDone","doNext","onQueryComplete","isSelect","wrappedSQLiteDatabase","sqlBusyTimeout","sqlTrace","sqlProfile","nodeWebSQL","__setGlobalVars","UnicodeIdentifiers"],"mappings":"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AACA+D,IAAAA,EAAE,CAACtK,SAAS,GAAGmK,eAAe,CAACnK,SAAS,CAAA;AACxC;IACA,OAAO,IAAIsK,EAAE,EAAE,CAAA;AACjB,GAAA;AACF,CAAC,CAAA;AACD7E,WAAW,CAAC1E,SAAS,GAAGA,SAAS,CAAA;AACjC0E,WAAW,CAAC3B,eAAe,GAAGA,eAAe,CAAA;AAC7C2B,WAAW,CAACnF,gBAAgB,GAAGA,kBAAgB,CAAA;AAC/CmF,WAAW,CAAC0E,eAAe,GAAG1E,WAAW,CAAA;AACzCA,WAAW,CAAC2E,kBAAkB,GAAGA,kBAAkB,CAAA;;AAEnD;AACA;AACA;AACA,SAASG,yBAAyBA,GAAG;AACnC;AACA/H,EAAAA,MAAM,CAACgI,cAAc,CAAC1G,eAAe,uBAAuB/C,SAAS,CAAC,CAAA;AACtE;EACAyB,MAAM,CAACgI,cAAc,CAAC1G,eAAe,CAAC9D,SAAS,EAAEe,SAAS,CAACf,SAAS,CAAC,CAAA;AACvE;;ACh6BA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,MAAMyK,GAAG,GAAG,EAAE,CAAA;AAEd,MAAMC,GAAG,8BAAgC,EAAG,CAAA;;AAE5C;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACC;AACG;AACA,OAAO;AAAE;;AAET;AACA;AACA,wBAAwB;AAExB;AACA;AACA;AACA;AACA,UAAU;AAEV;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAAE;;AAElB;AACA;AACA,aAAa;AAEb;AACA;AACA,uBAAuB;AAEvB;AACA;AACA;AACA;AACA;AACA,gBAAgB;AAChB;AACA,mBAAmB;AAEnB;AACA;AACA;AACA;AACA,aAAa;AAEb;AACA,eAAe;AAAE;AACjB;AACA;AACA;AACA;;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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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","x_google_ignoreList":[0,8,14,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148]}