From 005ab6e2224d3950af78231d255e97627d5e18e6 Mon Sep 17 00:00:00 2001 From: Ashutosh Kumar Singh Date: Fri, 17 Apr 2020 13:02:53 -0400 Subject: [PATCH] Minor refactor to correct spelling, updated version number to 20.2.5 and bundled. --- bundles/redoc.lib.js | 10 +++++----- bundles/redoc.lib.js.map | 2 +- bundles/redoc.standalone.js | 8 ++++---- bundles/redoc.standalone.js.map | 2 +- package.json | 2 +- src/components/ApiBackTo/ApiBackTo.tsx | 2 +- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/bundles/redoc.lib.js b/bundles/redoc.lib.js index 22100c0a..6a1f714f 100644 --- a/bundles/redoc.lib.js +++ b/bundles/redoc.lib.js @@ -1,7 +1,7 @@ /*! * ReDoc - OpenAPI/Swagger-generated API Reference Documentation * ------------------------------------------------------------- - * Version: "20.2.4" + * Version: "20.2.5" * Repo: https://github.com/Redocly/redoc */ (function webpackUniversalModuleDefinition(root, factory) { @@ -6444,7 +6444,7 @@ module.exports = require("prismjs/components/prism-swift.js"); var addMethods = __webpack_require__(78) var methods = ["add","done","toJS","load","search"] module.exports = function() { - var w = new Worker(URL.createObjectURL(new Blob(["/*!\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\n * -------------------------------------------------------------\n * Version: \"20.2.4\"\n * Repo: https://github.com/Redocly/redoc\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 97);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar shared = __webpack_require__(32);\nvar has = __webpack_require__(3);\nvar uid = __webpack_require__(36);\nvar NATIVE_SYMBOL = __webpack_require__(37);\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar createPropertyDescriptor = __webpack_require__(22);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar anObject = __webpack_require__(2);\nvar toPrimitive = __webpack_require__(35);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar setGlobal = __webpack_require__(20);\nvar inspectSource = __webpack_require__(23);\nvar InternalStateModule = __webpack_require__(16);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(40);\nvar global = __webpack_require__(0);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar objectHas = __webpack_require__(3);\nvar sharedKey = __webpack_require__(24);\nvar hiddenKeys = __webpack_require__(25);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar setGlobal = __webpack_require__(20);\nvar copyConstructorProperties = __webpack_require__(67);\nvar isForced = __webpack_require__(43);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(66);\nvar requireObjectCoercible = __webpack_require__(27);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(33);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(32);\nvar uid = __webpack_require__(36);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar propertyIsEnumerableModule = __webpack_require__(65);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar toIndexedObject = __webpack_require__(18);\nvar toPrimitive = __webpack_require__(35);\nvar has = __webpack_require__(3);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(9).f;\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(15);\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(12);\nvar store = __webpack_require__(33);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar setGlobal = __webpack_require__(20);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar fails = __webpack_require__(5);\nvar createElement = __webpack_require__(21);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classofRaw = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar createIteratorConstructor = __webpack_require__(73);\nvar getPrototypeOf = __webpack_require__(45);\nvar setPrototypeOf = __webpack_require__(78);\nvar setToStringTag = __webpack_require__(30);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\nvar Iterators = __webpack_require__(14);\nvar IteratorsCore = __webpack_require__(44);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toIndexedObject = __webpack_require__(18);\nvar indexOf = __webpack_require__(70).indexOf;\nvar hiddenKeys = __webpack_require__(25);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(45);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toObject = __webpack_require__(74);\nvar sharedKey = __webpack_require__(24);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar defineProperties = __webpack_require__(76);\nvar enumBugKeys = __webpack_require__(29);\nvar hiddenKeys = __webpack_require__(25);\nvar html = __webpack_require__(47);\nvar documentCreateElement = __webpack_require__(21);\nvar sharedKey = __webpack_require__(24);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global.Promise;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isArrayIteratorMethod = __webpack_require__(88);\nvar toLength = __webpack_require__(42);\nvar bind = __webpack_require__(50);\nvar getIteratorMethod = __webpack_require__(89);\nvar callWithSafeIterationClosing = __webpack_require__(90);\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(15);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aFunction = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\nvar bind = __webpack_require__(50);\nvar html = __webpack_require__(47);\nvar createElement = __webpack_require__(21);\nvar IS_IOS = __webpack_require__(53);\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(54);\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isObject = __webpack_require__(7);\nvar newPromiseCapability = __webpack_require__(31);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(63);\n__webpack_require__(80);\n__webpack_require__(84);\n__webpack_require__(95);\n__webpack_require__(96);\nvar path = __webpack_require__(40);\n\nmodule.exports = path.Promise;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar redefine = __webpack_require__(10);\nvar toString = __webpack_require__(62);\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(37);\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar inspectSource = __webpack_require__(23);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classof = __webpack_require__(38);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(64).charAt;\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar ownKeys = __webpack_require__(68);\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\nvar definePropertyModule = __webpack_require__(9);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\nvar getOwnPropertyNamesModule = __webpack_require__(69);\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\nvar anObject = __webpack_require__(2);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(18);\nvar toLength = __webpack_require__(42);\nvar toAbsoluteIndex = __webpack_require__(71);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\nvar create = __webpack_require__(46);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(30);\nvar Iterators = __webpack_require__(14);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar anObject = __webpack_require__(2);\nvar objectKeys = __webpack_require__(77);\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aPossiblePrototype = __webpack_require__(79);\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar DOMIterables = __webpack_require__(81);\nvar ArrayIteratorMethods = __webpack_require__(82);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(18);\nvar addToUnscopables = __webpack_require__(83);\nvar Iterators = __webpack_require__(14);\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar create = __webpack_require__(46);\nvar definePropertyModule = __webpack_require__(9);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar global = __webpack_require__(0);\nvar getBuiltIn = __webpack_require__(11);\nvar NativePromise = __webpack_require__(48);\nvar redefine = __webpack_require__(10);\nvar redefineAll = __webpack_require__(85);\nvar setToStringTag = __webpack_require__(30);\nvar setSpecies = __webpack_require__(86);\nvar isObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(15);\nvar anInstance = __webpack_require__(87);\nvar classof = __webpack_require__(13);\nvar inspectSource = __webpack_require__(23);\nvar iterate = __webpack_require__(49);\nvar checkCorrectnessOfIteration = __webpack_require__(91);\nvar speciesConstructor = __webpack_require__(51);\nvar task = __webpack_require__(52).set;\nvar microtask = __webpack_require__(92);\nvar promiseResolve = __webpack_require__(55);\nvar hostReportErrors = __webpack_require__(93);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar InternalStateModule = __webpack_require__(16);\nvar isForced = __webpack_require__(43);\nvar wellKnownSymbol = __webpack_require__(1);\nvar V8_VERSION = __webpack_require__(94);\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(10);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(11);\nvar definePropertyModule = __webpack_require__(9);\nvar wellKnownSymbol = __webpack_require__(1);\nvar DESCRIPTORS = __webpack_require__(8);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar Iterators = __webpack_require__(14);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(38);\nvar Iterators = __webpack_require__(14);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar classof = __webpack_require__(13);\nvar macrotask = __webpack_require__(52).set;\nvar IS_IOS = __webpack_require__(53);\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar userAgent = __webpack_require__(54);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar aFunction = __webpack_require__(15);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar iterate = __webpack_require__(49);\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar NativePromise = __webpack_require__(48);\nvar fails = __webpack_require__(5);\nvar getBuiltIn = __webpack_require__(11);\nvar speciesConstructor = __webpack_require__(51);\nvar promiseResolve = __webpack_require__(55);\nvar redefine = __webpack_require__(10);\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"add\", function() { return /* binding */ add; });\n__webpack_require__.d(__webpack_exports__, \"done\", function() { return /* binding */ done; });\n__webpack_require__.d(__webpack_exports__, \"toJS\", function() { return /* binding */ toJS; });\n__webpack_require__.d(__webpack_exports__, \"load\", function() { return /* binding */ load; });\n__webpack_require__.d(__webpack_exports__, \"search\", function() { return /* binding */ search; });\n\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\nvar lunr = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--4-0!./node_modules/babel-loader/lib??ref--4-1!./src/services/SearchWorker.worker.ts\n\n\ntry {\n // tslint:disable-next-line\n __webpack_require__(57); // bundle into worker\n}\ncatch (_) { } // nope\n/* just for better typings */\nvar Worker = /** @class */ (function () {\n function Worker() {\n this.add = add;\n this.done = done;\n this.search = search;\n this.toJS = toJS;\n this.load = load;\n }\n return Worker;\n}());\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\"default\"] = (Worker);\nvar store = [];\nvar resolveIndex = function () {\n throw new Error('Should not be called');\n};\nvar index = new Promise(function (resolve) {\n resolveIndex = resolve;\n});\nlunr[\"tokenizer\"].separator = /\\s+/;\nvar builder = new lunr[\"Builder\"]();\nbuilder.field('title');\nbuilder.field('description');\nbuilder.ref('ref');\nbuilder.pipeline.add(lunr[\"trimmer\"], lunr[\"stopWordFilter\"], lunr[\"stemmer\"]);\nvar expandTerm = function (term) { return '*' + lunr[\"stemmer\"](new lunr[\"Token\"](term, {})) + '*'; };\nfunction add(title, description, meta) {\n var ref = store.push(meta) - 1;\n var item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref: ref\n };\n builder.add(item);\n}\nfunction done() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n resolveIndex(builder.build());\n return [2 /*return*/];\n });\n });\n}\nfunction toJS() {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = {\n store: store\n };\n return [4 /*yield*/, index];\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\n _a)];\n }\n });\n });\n}\nfunction load(state) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = state.store;\n resolveIndex(lunr[\"Index\"].load(state.index));\n return [2 /*return*/];\n });\n });\n}\nfunction search(q, limit) {\n if (limit === void 0) { limit = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var searchResults;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (q.trim().length === 0) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, index];\n case 1:\n searchResults = (_a.sent()).query(function (t) {\n q.trim().toLowerCase().split(/\\s+/).forEach(function (term) {\n var exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n return [2 /*return*/, searchResults.map(function (res) { return ({\n meta: store[res.ref],\n score: res.score\n }); })];\n }\n });\n });\n}\n\naddEventListener('message', function (e) {var ref = e.data;var type = ref.type;var method = ref.method;var id = ref.id;var params = ref.params;var f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () { return f.apply(__webpack_exports__, params); });} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=fea68db94dba05b54c01.worker.js.map"])), { name: "[hash].worker.js" }) + var w = new Worker(URL.createObjectURL(new Blob(["/*!\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\n * -------------------------------------------------------------\n * Version: \"20.2.5\"\n * Repo: https://github.com/Redocly/redoc\n */\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId]) {\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/ \t\t}\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\ti: moduleId,\n/******/ \t\t\tl: false,\n/******/ \t\t\texports: {}\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.l = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// define getter function for harmony exports\n/******/ \t__webpack_require__.d = function(exports, name, getter) {\n/******/ \t\tif(!__webpack_require__.o(exports, name)) {\n/******/ \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n/******/ \t\t}\n/******/ \t};\n/******/\n/******/ \t// define __esModule on exports\n/******/ \t__webpack_require__.r = function(exports) {\n/******/ \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n/******/ \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n/******/ \t\t}\n/******/ \t\tObject.defineProperty(exports, '__esModule', { value: true });\n/******/ \t};\n/******/\n/******/ \t// create a fake namespace object\n/******/ \t// mode & 1: value is a module id, require it\n/******/ \t// mode & 2: merge all properties of value into the ns\n/******/ \t// mode & 4: return value when already ns object\n/******/ \t// mode & 8|1: behave like require\n/******/ \t__webpack_require__.t = function(value, mode) {\n/******/ \t\tif(mode & 1) value = __webpack_require__(value);\n/******/ \t\tif(mode & 8) return value;\n/******/ \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n/******/ \t\tvar ns = Object.create(null);\n/******/ \t\t__webpack_require__.r(ns);\n/******/ \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n/******/ \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n/******/ \t\treturn ns;\n/******/ \t};\n/******/\n/******/ \t// getDefaultExport function for compatibility with non-harmony modules\n/******/ \t__webpack_require__.n = function(module) {\n/******/ \t\tvar getter = module && module.__esModule ?\n/******/ \t\t\tfunction getDefault() { return module['default']; } :\n/******/ \t\t\tfunction getModuleExports() { return module; };\n/******/ \t\t__webpack_require__.d(getter, 'a', getter);\n/******/ \t\treturn getter;\n/******/ \t};\n/******/\n/******/ \t// Object.prototype.hasOwnProperty.call\n/******/ \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(__webpack_require__.s = 97);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar shared = __webpack_require__(32);\nvar has = __webpack_require__(3);\nvar uid = __webpack_require__(36);\nvar NATIVE_SYMBOL = __webpack_require__(37);\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */\n\n;(function(){\n\n/**\n * A convenience function for configuring and constructing\n * a new lunr Index.\n *\n * A lunr.Builder instance is created and the pipeline setup\n * with a trimmer, stop word filter and stemmer.\n *\n * This builder object is yielded to the configuration function\n * that is passed as a parameter, allowing the list of fields\n * and other builder parameters to be customised.\n *\n * All documents _must_ be added within the passed config function.\n *\n * @example\n * var idx = lunr(function () {\n * this.field('title')\n * this.field('body')\n * this.ref('id')\n *\n * documents.forEach(function (doc) {\n * this.add(doc)\n * }, this)\n * })\n *\n * @see {@link lunr.Builder}\n * @see {@link lunr.Pipeline}\n * @see {@link lunr.trimmer}\n * @see {@link lunr.stopWordFilter}\n * @see {@link lunr.stemmer}\n * @namespace {function} lunr\n */\nvar lunr = function (config) {\n var builder = new lunr.Builder\n\n builder.pipeline.add(\n lunr.trimmer,\n lunr.stopWordFilter,\n lunr.stemmer\n )\n\n builder.searchPipeline.add(\n lunr.stemmer\n )\n\n config.call(builder, builder)\n return builder.build()\n}\n\nlunr.version = \"2.3.8\"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A namespace containing utils for the rest of the lunr library\n * @namespace lunr.utils\n */\nlunr.utils = {}\n\n/**\n * Print a warning message to the console.\n *\n * @param {String} message The message to be printed.\n * @memberOf lunr.utils\n * @function\n */\nlunr.utils.warn = (function (global) {\n /* eslint-disable no-console */\n return function (message) {\n if (global.console && console.warn) {\n console.warn(message)\n }\n }\n /* eslint-enable no-console */\n})(this)\n\n/**\n * Convert an object to a string.\n *\n * In the case of `null` and `undefined` the function returns\n * the empty string, in all other cases the result of calling\n * `toString` on the passed object is returned.\n *\n * @param {Any} obj The object to convert to a string.\n * @return {String} string representation of the passed object.\n * @memberOf lunr.utils\n */\nlunr.utils.asString = function (obj) {\n if (obj === void 0 || obj === null) {\n return \"\"\n } else {\n return obj.toString()\n }\n}\n\n/**\n * Clones an object.\n *\n * Will create a copy of an existing object such that any mutations\n * on the copy cannot affect the original.\n *\n * Only shallow objects are supported, passing a nested object to this\n * function will cause a TypeError.\n *\n * Objects with primitives, and arrays of primitives are supported.\n *\n * @param {Object} obj The object to clone.\n * @return {Object} a clone of the passed object.\n * @throws {TypeError} when a nested object is passed.\n * @memberOf Utils\n */\nlunr.utils.clone = function (obj) {\n if (obj === null || obj === undefined) {\n return obj\n }\n\n var clone = Object.create(null),\n keys = Object.keys(obj)\n\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i],\n val = obj[key]\n\n if (Array.isArray(val)) {\n clone[key] = val.slice()\n continue\n }\n\n if (typeof val === 'string' ||\n typeof val === 'number' ||\n typeof val === 'boolean') {\n clone[key] = val\n continue\n }\n\n throw new TypeError(\"clone is not deep and does not support nested objects\")\n }\n\n return clone\n}\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\n this.docRef = docRef\n this.fieldName = fieldName\n this._stringValue = stringValue\n}\n\nlunr.FieldRef.joiner = \"/\"\n\nlunr.FieldRef.fromString = function (s) {\n var n = s.indexOf(lunr.FieldRef.joiner)\n\n if (n === -1) {\n throw \"malformed field ref string\"\n }\n\n var fieldRef = s.slice(0, n),\n docRef = s.slice(n + 1)\n\n return new lunr.FieldRef (docRef, fieldRef, s)\n}\n\nlunr.FieldRef.prototype.toString = function () {\n if (this._stringValue == undefined) {\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\n }\n\n return this._stringValue\n}\n/*!\n * lunr.Set\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A lunr set.\n *\n * @constructor\n */\nlunr.Set = function (elements) {\n this.elements = Object.create(null)\n\n if (elements) {\n this.length = elements.length\n\n for (var i = 0; i < this.length; i++) {\n this.elements[elements[i]] = true\n }\n } else {\n this.length = 0\n }\n}\n\n/**\n * A complete set that contains all elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.complete = {\n intersect: function (other) {\n return other\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return true\n }\n}\n\n/**\n * An empty set that contains no elements.\n *\n * @static\n * @readonly\n * @type {lunr.Set}\n */\nlunr.Set.empty = {\n intersect: function () {\n return this\n },\n\n union: function (other) {\n return other\n },\n\n contains: function () {\n return false\n }\n}\n\n/**\n * Returns true if this set contains the specified object.\n *\n * @param {object} object - Object whose presence in this set is to be tested.\n * @returns {boolean} - True if this set contains the specified object.\n */\nlunr.Set.prototype.contains = function (object) {\n return !!this.elements[object]\n}\n\n/**\n * Returns a new set containing only the elements that are present in both\n * this set and the specified set.\n *\n * @param {lunr.Set} other - set to intersect with this set.\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\n */\n\nlunr.Set.prototype.intersect = function (other) {\n var a, b, elements, intersection = []\n\n if (other === lunr.Set.complete) {\n return this\n }\n\n if (other === lunr.Set.empty) {\n return other\n }\n\n if (this.length < other.length) {\n a = this\n b = other\n } else {\n a = other\n b = this\n }\n\n elements = Object.keys(a.elements)\n\n for (var i = 0; i < elements.length; i++) {\n var element = elements[i]\n if (element in b.elements) {\n intersection.push(element)\n }\n }\n\n return new lunr.Set (intersection)\n}\n\n/**\n * Returns a new set combining the elements of this and the specified set.\n *\n * @param {lunr.Set} other - set to union with this set.\n * @return {lunr.Set} a new set that is the union of this and the specified set.\n */\n\nlunr.Set.prototype.union = function (other) {\n if (other === lunr.Set.complete) {\n return lunr.Set.complete\n }\n\n if (other === lunr.Set.empty) {\n return this\n }\n\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\n}\n/**\n * A function to calculate the inverse document frequency for\n * a posting. This is shared between the builder and the index\n *\n * @private\n * @param {object} posting - The posting for a given term\n * @param {number} documentCount - The total number of documents.\n */\nlunr.idf = function (posting, documentCount) {\n var documentsWithTerm = 0\n\n for (var fieldName in posting) {\n if (fieldName == '_index') continue // Ignore the term index, its not a field\n documentsWithTerm += Object.keys(posting[fieldName]).length\n }\n\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\n\n return Math.log(1 + Math.abs(x))\n}\n\n/**\n * A token wraps a string representation of a token\n * as it is passed through the text processing pipeline.\n *\n * @constructor\n * @param {string} [str=''] - The string token being wrapped.\n * @param {object} [metadata={}] - Metadata associated with this token.\n */\nlunr.Token = function (str, metadata) {\n this.str = str || \"\"\n this.metadata = metadata || {}\n}\n\n/**\n * Returns the token string that is being wrapped by this object.\n *\n * @returns {string}\n */\nlunr.Token.prototype.toString = function () {\n return this.str\n}\n\n/**\n * A token update function is used when updating or optionally\n * when cloning a token.\n *\n * @callback lunr.Token~updateFunction\n * @param {string} str - The string representation of the token.\n * @param {Object} metadata - All metadata associated with this token.\n */\n\n/**\n * Applies the given function to the wrapped string token.\n *\n * @example\n * token.update(function (str, metadata) {\n * return str.toUpperCase()\n * })\n *\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.update = function (fn) {\n this.str = fn(this.str, this.metadata)\n return this\n}\n\n/**\n * Creates a clone of this token. Optionally a function can be\n * applied to the cloned token.\n *\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\n * @returns {lunr.Token}\n */\nlunr.Token.prototype.clone = function (fn) {\n fn = fn || function (s) { return s }\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\n}\n/*!\n * lunr.tokenizer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A function for splitting a string into tokens ready to be inserted into\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\n * the value of this property to change how strings are split into tokens.\n *\n * This tokenizer will convert its parameter to a string by calling `toString` and\n * then will split this string on the character in `lunr.tokenizer.separator`.\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\n *\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\n * added as metadata to every token that is created from the object to be tokenized.\n *\n * @static\n * @param {?(string|object|object[])} obj - The object to convert into tokens\n * @param {?object} metadata - Optional metadata to associate with every token\n * @returns {lunr.Token[]}\n * @see {@link lunr.Pipeline}\n */\nlunr.tokenizer = function (obj, metadata) {\n if (obj == null || obj == undefined) {\n return []\n }\n\n if (Array.isArray(obj)) {\n return obj.map(function (t) {\n return new lunr.Token(\n lunr.utils.asString(t).toLowerCase(),\n lunr.utils.clone(metadata)\n )\n })\n }\n\n var str = obj.toString().toLowerCase(),\n len = str.length,\n tokens = []\n\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\n var char = str.charAt(sliceEnd),\n sliceLength = sliceEnd - sliceStart\n\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\n\n if (sliceLength > 0) {\n var tokenMetadata = lunr.utils.clone(metadata) || {}\n tokenMetadata[\"position\"] = [sliceStart, sliceLength]\n tokenMetadata[\"index\"] = tokens.length\n\n tokens.push(\n new lunr.Token (\n str.slice(sliceStart, sliceEnd),\n tokenMetadata\n )\n )\n }\n\n sliceStart = sliceEnd + 1\n }\n\n }\n\n return tokens\n}\n\n/**\n * The separator used to split a string into tokens. Override this property to change the behaviour of\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\n *\n * @static\n * @see lunr.tokenizer\n */\nlunr.tokenizer.separator = /[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\n * tokens in documents entering the search index and queries being ran against\n * the index.\n *\n * An instance of lunr.Index created with the lunr shortcut will contain a\n * pipeline with a stop word filter and an English language stemmer. Extra\n * functions can be added before or after either of these functions or these\n * default functions can be removed.\n *\n * When run the pipeline will call each function in turn, passing a token, the\n * index of that token in the original list of all tokens and finally a list of\n * all the original tokens.\n *\n * The output of functions in the pipeline will be passed to the next function\n * in the pipeline. To exclude a token from entering the index the function\n * should return undefined, the rest of the pipeline will not be called with\n * this token.\n *\n * For serialisation of pipelines to work, all functions used in an instance of\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\n * then be loaded. If trying to load a serialised pipeline that uses functions\n * that are not registered an error will be thrown.\n *\n * If not planning on serialising the pipeline then registering pipeline functions\n * is not necessary.\n *\n * @constructor\n */\nlunr.Pipeline = function () {\n this._stack = []\n}\n\nlunr.Pipeline.registeredFunctions = Object.create(null)\n\n/**\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\n * string as well as all known metadata. A pipeline function can mutate the token string\n * or mutate (or add) metadata for a given token.\n *\n * A pipeline function can indicate that the passed token should be discarded by returning\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\n * functions and will not be added to the index.\n *\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\n *\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\n *\n * @interface lunr.PipelineFunction\n * @param {lunr.Token} token - A token from the document being processed.\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\n * @returns {(?lunr.Token|lunr.Token[])}\n */\n\n/**\n * Register a function with the pipeline.\n *\n * Functions that are used in the pipeline should be registered if the pipeline\n * needs to be serialised, or a serialised pipeline needs to be loaded.\n *\n * Registering a function does not add it to a pipeline, functions must still be\n * added to instances of the pipeline for them to be used when running a pipeline.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @param {String} label - The label to register this function with\n */\nlunr.Pipeline.registerFunction = function (fn, label) {\n if (label in this.registeredFunctions) {\n lunr.utils.warn('Overwriting existing registered function: ' + label)\n }\n\n fn.label = label\n lunr.Pipeline.registeredFunctions[fn.label] = fn\n}\n\n/**\n * Warns if the function is not registered as a Pipeline function.\n *\n * @param {lunr.PipelineFunction} fn - The function to check for.\n * @private\n */\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\n\n if (!isRegistered) {\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\n', fn)\n }\n}\n\n/**\n * Loads a previously serialised pipeline.\n *\n * All functions to be loaded must already be registered with lunr.Pipeline.\n * If any function from the serialised data has not been registered then an\n * error will be thrown.\n *\n * @param {Object} serialised - The serialised pipeline to load.\n * @returns {lunr.Pipeline}\n */\nlunr.Pipeline.load = function (serialised) {\n var pipeline = new lunr.Pipeline\n\n serialised.forEach(function (fnName) {\n var fn = lunr.Pipeline.registeredFunctions[fnName]\n\n if (fn) {\n pipeline.add(fn)\n } else {\n throw new Error('Cannot load unregistered function: ' + fnName)\n }\n })\n\n return pipeline\n}\n\n/**\n * Adds new functions to the end of the pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\n */\nlunr.Pipeline.prototype.add = function () {\n var fns = Array.prototype.slice.call(arguments)\n\n fns.forEach(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n this._stack.push(fn)\n }, this)\n}\n\n/**\n * Adds a single function after a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n pos = pos + 1\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Adds a single function before a function that already exists in the\n * pipeline.\n *\n * Logs a warning if the function has not been registered.\n *\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\n */\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\n\n var pos = this._stack.indexOf(existingFn)\n if (pos == -1) {\n throw new Error('Cannot find existingFn')\n }\n\n this._stack.splice(pos, 0, newFn)\n}\n\n/**\n * Removes a function from the pipeline.\n *\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\n */\nlunr.Pipeline.prototype.remove = function (fn) {\n var pos = this._stack.indexOf(fn)\n if (pos == -1) {\n return\n }\n\n this._stack.splice(pos, 1)\n}\n\n/**\n * Runs the current list of functions that make up the pipeline against the\n * passed tokens.\n *\n * @param {Array} tokens The tokens to run through the pipeline.\n * @returns {Array}\n */\nlunr.Pipeline.prototype.run = function (tokens) {\n var stackLength = this._stack.length\n\n for (var i = 0; i < stackLength; i++) {\n var fn = this._stack[i]\n var memo = []\n\n for (var j = 0; j < tokens.length; j++) {\n var result = fn(tokens[j], j, tokens)\n\n if (result === null || result === void 0 || result === '') continue\n\n if (Array.isArray(result)) {\n for (var k = 0; k < result.length; k++) {\n memo.push(result[k])\n }\n } else {\n memo.push(result)\n }\n }\n\n tokens = memo\n }\n\n return tokens\n}\n\n/**\n * Convenience method for passing a string through a pipeline and getting\n * strings out. This method takes care of wrapping the passed string in a\n * token and mapping the resulting tokens back to strings.\n *\n * @param {string} str - The string to pass through the pipeline.\n * @param {?object} metadata - Optional metadata to associate with the token\n * passed to the pipeline.\n * @returns {string[]}\n */\nlunr.Pipeline.prototype.runString = function (str, metadata) {\n var token = new lunr.Token (str, metadata)\n\n return this.run([token]).map(function (t) {\n return t.toString()\n })\n}\n\n/**\n * Resets the pipeline by removing any existing processors.\n *\n */\nlunr.Pipeline.prototype.reset = function () {\n this._stack = []\n}\n\n/**\n * Returns a representation of the pipeline ready for serialisation.\n *\n * Logs a warning if the function has not been registered.\n *\n * @returns {Array}\n */\nlunr.Pipeline.prototype.toJSON = function () {\n return this._stack.map(function (fn) {\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\n\n return fn.label\n })\n}\n/*!\n * lunr.Vector\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A vector is used to construct the vector space of documents and queries. These\n * vectors support operations to determine the similarity between two documents or\n * a document and a query.\n *\n * Normally no parameters are required for initializing a vector, but in the case of\n * loading a previously dumped vector the raw elements can be provided to the constructor.\n *\n * For performance reasons vectors are implemented with a flat array, where an elements\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\n * allows the underlying array to be as sparse as possible and still offer decent\n * performance when being used for vector calculations.\n *\n * @constructor\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\n */\nlunr.Vector = function (elements) {\n this._magnitude = 0\n this.elements = elements || []\n}\n\n\n/**\n * Calculates the position within the vector to insert a given index.\n *\n * This is used internally by insert and upsert. If there are duplicate indexes then\n * the position is returned as if the value for that index were to be updated, but it\n * is the callers responsibility to check whether there is a duplicate at that index\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @returns {Number}\n */\nlunr.Vector.prototype.positionForIndex = function (index) {\n // For an empty vector the tuple can be inserted at the beginning\n if (this.elements.length == 0) {\n return 0\n }\n\n var start = 0,\n end = this.elements.length / 2,\n sliceLength = end - start,\n pivotPoint = Math.floor(sliceLength / 2),\n pivotIndex = this.elements[pivotPoint * 2]\n\n while (sliceLength > 1) {\n if (pivotIndex < index) {\n start = pivotPoint\n }\n\n if (pivotIndex > index) {\n end = pivotPoint\n }\n\n if (pivotIndex == index) {\n break\n }\n\n sliceLength = end - start\n pivotPoint = start + Math.floor(sliceLength / 2)\n pivotIndex = this.elements[pivotPoint * 2]\n }\n\n if (pivotIndex == index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex > index) {\n return pivotPoint * 2\n }\n\n if (pivotIndex < index) {\n return (pivotPoint + 1) * 2\n }\n}\n\n/**\n * Inserts an element at an index within the vector.\n *\n * Does not allow duplicates, will throw an error if there is already an entry\n * for this index.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n */\nlunr.Vector.prototype.insert = function (insertIdx, val) {\n this.upsert(insertIdx, val, function () {\n throw \"duplicate index\"\n })\n}\n\n/**\n * Inserts or updates an existing index within the vector.\n *\n * @param {Number} insertIdx - The index at which the element should be inserted.\n * @param {Number} val - The value to be inserted into the vector.\n * @param {function} fn - A function that is called for updates, the existing value and the\n * requested value are passed as arguments\n */\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\n this._magnitude = 0\n var position = this.positionForIndex(insertIdx)\n\n if (this.elements[position] == insertIdx) {\n this.elements[position + 1] = fn(this.elements[position + 1], val)\n } else {\n this.elements.splice(position, 0, insertIdx, val)\n }\n}\n\n/**\n * Calculates the magnitude of this vector.\n *\n * @returns {Number}\n */\nlunr.Vector.prototype.magnitude = function () {\n if (this._magnitude) return this._magnitude\n\n var sumOfSquares = 0,\n elementsLength = this.elements.length\n\n for (var i = 1; i < elementsLength; i += 2) {\n var val = this.elements[i]\n sumOfSquares += val * val\n }\n\n return this._magnitude = Math.sqrt(sumOfSquares)\n}\n\n/**\n * Calculates the dot product of this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\n * @returns {Number}\n */\nlunr.Vector.prototype.dot = function (otherVector) {\n var dotProduct = 0,\n a = this.elements, b = otherVector.elements,\n aLen = a.length, bLen = b.length,\n aVal = 0, bVal = 0,\n i = 0, j = 0\n\n while (i < aLen && j < bLen) {\n aVal = a[i], bVal = b[j]\n if (aVal < bVal) {\n i += 2\n } else if (aVal > bVal) {\n j += 2\n } else if (aVal == bVal) {\n dotProduct += a[i + 1] * b[j + 1]\n i += 2\n j += 2\n }\n }\n\n return dotProduct\n}\n\n/**\n * Calculates the similarity between this vector and another vector.\n *\n * @param {lunr.Vector} otherVector - The other vector to calculate the\n * similarity with.\n * @returns {Number}\n */\nlunr.Vector.prototype.similarity = function (otherVector) {\n return this.dot(otherVector) / this.magnitude() || 0\n}\n\n/**\n * Converts the vector to an array of the elements within the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toArray = function () {\n var output = new Array (this.elements.length / 2)\n\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\n output[j] = this.elements[i]\n }\n\n return output\n}\n\n/**\n * A JSON serializable representation of the vector.\n *\n * @returns {Number[]}\n */\nlunr.Vector.prototype.toJSON = function () {\n return this.elements\n}\n/* eslint-disable */\n/*!\n * lunr.stemmer\n * Copyright (C) 2019 Oliver Nightingale\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\n */\n\n/**\n * lunr.stemmer is an english language stemmer, this is a JavaScript\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token - The string to stem\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n * @function\n */\nlunr.stemmer = (function(){\n var step2list = {\n \"ational\" : \"ate\",\n \"tional\" : \"tion\",\n \"enci\" : \"ence\",\n \"anci\" : \"ance\",\n \"izer\" : \"ize\",\n \"bli\" : \"ble\",\n \"alli\" : \"al\",\n \"entli\" : \"ent\",\n \"eli\" : \"e\",\n \"ousli\" : \"ous\",\n \"ization\" : \"ize\",\n \"ation\" : \"ate\",\n \"ator\" : \"ate\",\n \"alism\" : \"al\",\n \"iveness\" : \"ive\",\n \"fulness\" : \"ful\",\n \"ousness\" : \"ous\",\n \"aliti\" : \"al\",\n \"iviti\" : \"ive\",\n \"biliti\" : \"ble\",\n \"logi\" : \"log\"\n },\n\n step3list = {\n \"icate\" : \"ic\",\n \"ative\" : \"\",\n \"alize\" : \"al\",\n \"iciti\" : \"ic\",\n \"ical\" : \"ic\",\n \"ful\" : \"\",\n \"ness\" : \"\"\n },\n\n c = \"[^aeiou]\", // consonant\n v = \"[aeiouy]\", // vowel\n C = c + \"[^aeiouy]*\", // consonant sequence\n V = v + \"[aeiou]*\", // vowel sequence\n\n mgr0 = \"^(\" + C + \")?\" + V + C, // [C]VC... is m>0\n meq1 = \"^(\" + C + \")?\" + V + C + \"(\" + V + \")?$\", // [C]VC[V] is m=1\n mgr1 = \"^(\" + C + \")?\" + V + C + V + C, // [C]VCVC... is m>1\n s_v = \"^(\" + C + \")?\" + v; // vowel in stem\n\n var re_mgr0 = new RegExp(mgr0);\n var re_mgr1 = new RegExp(mgr1);\n var re_meq1 = new RegExp(meq1);\n var re_s_v = new RegExp(s_v);\n\n var re_1a = /^(.+?)(ss|i)es$/;\n var re2_1a = /^(.+?)([^s])s$/;\n var re_1b = /^(.+?)eed$/;\n var re2_1b = /^(.+?)(ed|ing)$/;\n var re_1b_2 = /.$/;\n var re2_1b_2 = /(at|bl|iz)$/;\n var re3_1b_2 = new RegExp(\"([^aeiouylsz])\\\\1$\");\n var re4_1b_2 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var re_1c = /^(.+?[^aeiou])y$/;\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\n\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\n\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\n var re2_4 = /^(.+?)(s|t)(ion)$/;\n\n var re_5 = /^(.+?)e$/;\n var re_5_1 = /ll$/;\n var re3_5 = new RegExp(\"^\" + C + v + \"[^aeiouwxy]$\");\n\n var porterStemmer = function porterStemmer(w) {\n var stem,\n suffix,\n firstch,\n re,\n re2,\n re3,\n re4;\n\n if (w.length < 3) { return w; }\n\n firstch = w.substr(0,1);\n if (firstch == \"y\") {\n w = firstch.toUpperCase() + w.substr(1);\n }\n\n // Step 1a\n re = re_1a\n re2 = re2_1a;\n\n if (re.test(w)) { w = w.replace(re,\"$1$2\"); }\n else if (re2.test(w)) { w = w.replace(re2,\"$1$2\"); }\n\n // Step 1b\n re = re_1b;\n re2 = re2_1b;\n if (re.test(w)) {\n var fp = re.exec(w);\n re = re_mgr0;\n if (re.test(fp[1])) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1];\n re2 = re_s_v;\n if (re2.test(stem)) {\n w = stem;\n re2 = re2_1b_2;\n re3 = re3_1b_2;\n re4 = re4_1b_2;\n if (re2.test(w)) { w = w + \"e\"; }\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\"\"); }\n else if (re4.test(w)) { w = w + \"e\"; }\n }\n }\n\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\n re = re_1c;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n w = stem + \"i\";\n }\n\n // Step 2\n re = re_2;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step2list[suffix];\n }\n }\n\n // Step 3\n re = re_3;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n suffix = fp[2];\n re = re_mgr0;\n if (re.test(stem)) {\n w = stem + step3list[suffix];\n }\n }\n\n // Step 4\n re = re_4;\n re2 = re2_4;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n if (re.test(stem)) {\n w = stem;\n }\n } else if (re2.test(w)) {\n var fp = re2.exec(w);\n stem = fp[1] + fp[2];\n re2 = re_mgr1;\n if (re2.test(stem)) {\n w = stem;\n }\n }\n\n // Step 5\n re = re_5;\n if (re.test(w)) {\n var fp = re.exec(w);\n stem = fp[1];\n re = re_mgr1;\n re2 = re_meq1;\n re3 = re3_5;\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\n w = stem;\n }\n }\n\n re = re_5_1;\n re2 = re_mgr1;\n if (re.test(w) && re2.test(w)) {\n re = re_1b_2;\n w = w.replace(re,\"\");\n }\n\n // and turn initial Y back to y\n\n if (firstch == \"y\") {\n w = firstch.toLowerCase() + w.substr(1);\n }\n\n return w;\n };\n\n return function (token) {\n return token.update(porterStemmer);\n }\n})();\n\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\n/*!\n * lunr.stopWordFilter\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\n * list of stop words.\n *\n * The built in lunr.stopWordFilter is built using this generator and can be used\n * to generate custom stopWordFilters for applications or non English languages.\n *\n * @function\n * @param {Array} token The token to pass through the filter\n * @returns {lunr.PipelineFunction}\n * @see lunr.Pipeline\n * @see lunr.stopWordFilter\n */\nlunr.generateStopWordFilter = function (stopWords) {\n var words = stopWords.reduce(function (memo, stopWord) {\n memo[stopWord] = stopWord\n return memo\n }, {})\n\n return function (token) {\n if (token && words[token.toString()] !== token.toString()) return token\n }\n}\n\n/**\n * lunr.stopWordFilter is an English language stop word list filter, any words\n * contained in the list will not be passed through the filter.\n *\n * This is intended to be used in the Pipeline. If the token does not pass the\n * filter then undefined will be returned.\n *\n * @function\n * @implements {lunr.PipelineFunction}\n * @params {lunr.Token} token - A token to check for being a stop word.\n * @returns {lunr.Token}\n * @see {@link lunr.Pipeline}\n */\nlunr.stopWordFilter = lunr.generateStopWordFilter([\n 'a',\n 'able',\n 'about',\n 'across',\n 'after',\n 'all',\n 'almost',\n 'also',\n 'am',\n 'among',\n 'an',\n 'and',\n 'any',\n 'are',\n 'as',\n 'at',\n 'be',\n 'because',\n 'been',\n 'but',\n 'by',\n 'can',\n 'cannot',\n 'could',\n 'dear',\n 'did',\n 'do',\n 'does',\n 'either',\n 'else',\n 'ever',\n 'every',\n 'for',\n 'from',\n 'get',\n 'got',\n 'had',\n 'has',\n 'have',\n 'he',\n 'her',\n 'hers',\n 'him',\n 'his',\n 'how',\n 'however',\n 'i',\n 'if',\n 'in',\n 'into',\n 'is',\n 'it',\n 'its',\n 'just',\n 'least',\n 'let',\n 'like',\n 'likely',\n 'may',\n 'me',\n 'might',\n 'most',\n 'must',\n 'my',\n 'neither',\n 'no',\n 'nor',\n 'not',\n 'of',\n 'off',\n 'often',\n 'on',\n 'only',\n 'or',\n 'other',\n 'our',\n 'own',\n 'rather',\n 'said',\n 'say',\n 'says',\n 'she',\n 'should',\n 'since',\n 'so',\n 'some',\n 'than',\n 'that',\n 'the',\n 'their',\n 'them',\n 'then',\n 'there',\n 'these',\n 'they',\n 'this',\n 'tis',\n 'to',\n 'too',\n 'twas',\n 'us',\n 'wants',\n 'was',\n 'we',\n 'were',\n 'what',\n 'when',\n 'where',\n 'which',\n 'while',\n 'who',\n 'whom',\n 'why',\n 'will',\n 'with',\n 'would',\n 'yet',\n 'you',\n 'your'\n])\n\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\n/*!\n * lunr.trimmer\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.trimmer is a pipeline function for trimming non word\n * characters from the beginning and end of tokens before they\n * enter the index.\n *\n * This implementation may not work correctly for non latin\n * characters and should either be removed or adapted for use\n * with languages with non-latin characters.\n *\n * @static\n * @implements {lunr.PipelineFunction}\n * @param {lunr.Token} token The token to pass through the filter\n * @returns {lunr.Token}\n * @see lunr.Pipeline\n */\nlunr.trimmer = function (token) {\n return token.update(function (s) {\n return s.replace(/^\\W+/, '').replace(/\\W+$/, '')\n })\n}\n\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\n/*!\n * lunr.TokenSet\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * A token set is used to store the unique list of all tokens\n * within an index. Token sets are also used to represent an\n * incoming query to the index, this query token set and index\n * token set are then intersected to find which tokens to look\n * up in the inverted index.\n *\n * A token set can hold multiple tokens, as in the case of the\n * index token set, or it can hold a single token as in the\n * case of a simple query token set.\n *\n * Additionally token sets are used to perform wildcard matching.\n * Leading, contained and trailing wildcards are supported, and\n * from this edit distance matching can also be provided.\n *\n * Token sets are implemented as a minimal finite state automata,\n * where both common prefixes and suffixes are shared between tokens.\n * This helps to reduce the space used for storing the token set.\n *\n * @constructor\n */\nlunr.TokenSet = function () {\n this.final = false\n this.edges = {}\n this.id = lunr.TokenSet._nextId\n lunr.TokenSet._nextId += 1\n}\n\n/**\n * Keeps track of the next, auto increment, identifier to assign\n * to a new tokenSet.\n *\n * TokenSets require a unique identifier to be correctly minimised.\n *\n * @private\n */\nlunr.TokenSet._nextId = 1\n\n/**\n * Creates a TokenSet instance from the given sorted array of words.\n *\n * @param {String[]} arr - A sorted array of strings to create the set from.\n * @returns {lunr.TokenSet}\n * @throws Will throw an error if the input array is not sorted.\n */\nlunr.TokenSet.fromArray = function (arr) {\n var builder = new lunr.TokenSet.Builder\n\n for (var i = 0, len = arr.length; i < len; i++) {\n builder.insert(arr[i])\n }\n\n builder.finish()\n return builder.root\n}\n\n/**\n * Creates a token set from a query clause.\n *\n * @private\n * @param {Object} clause - A single clause from lunr.Query.\n * @param {string} clause.term - The query clause term.\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromClause = function (clause) {\n if ('editDistance' in clause) {\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\n } else {\n return lunr.TokenSet.fromString(clause.term)\n }\n}\n\n/**\n * Creates a token set representing a single string with a specified\n * edit distance.\n *\n * Insertions, deletions, substitutions and transpositions are each\n * treated as an edit distance of 1.\n *\n * Increasing the allowed edit distance will have a dramatic impact\n * on the performance of both creating and intersecting these TokenSets.\n * It is advised to keep the edit distance less than 3.\n *\n * @param {string} str - The string to create the token set from.\n * @param {number} editDistance - The allowed edit distance to match.\n * @returns {lunr.Vector}\n */\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\n var root = new lunr.TokenSet\n\n var stack = [{\n node: root,\n editsRemaining: editDistance,\n str: str\n }]\n\n while (stack.length) {\n var frame = stack.pop()\n\n // no edit\n if (frame.str.length > 0) {\n var char = frame.str.charAt(0),\n noEditNode\n\n if (char in frame.node.edges) {\n noEditNode = frame.node.edges[char]\n } else {\n noEditNode = new lunr.TokenSet\n frame.node.edges[char] = noEditNode\n }\n\n if (frame.str.length == 1) {\n noEditNode.final = true\n }\n\n stack.push({\n node: noEditNode,\n editsRemaining: frame.editsRemaining,\n str: frame.str.slice(1)\n })\n }\n\n if (frame.editsRemaining == 0) {\n continue\n }\n\n // insertion\n if (\"*\" in frame.node.edges) {\n var insertionNode = frame.node.edges[\"*\"]\n } else {\n var insertionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = insertionNode\n }\n\n if (frame.str.length == 0) {\n insertionNode.final = true\n }\n\n stack.push({\n node: insertionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str\n })\n\n // deletion\n // can only do a deletion if we have enough edits remaining\n // and if there are characters left to delete in the string\n if (frame.str.length > 1) {\n stack.push({\n node: frame.node,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // deletion\n // just removing the last character from the str\n if (frame.str.length == 1) {\n frame.node.final = true\n }\n\n // substitution\n // can only do a substitution if we have enough edits remaining\n // and if there are characters left to substitute\n if (frame.str.length >= 1) {\n if (\"*\" in frame.node.edges) {\n var substitutionNode = frame.node.edges[\"*\"]\n } else {\n var substitutionNode = new lunr.TokenSet\n frame.node.edges[\"*\"] = substitutionNode\n }\n\n if (frame.str.length == 1) {\n substitutionNode.final = true\n }\n\n stack.push({\n node: substitutionNode,\n editsRemaining: frame.editsRemaining - 1,\n str: frame.str.slice(1)\n })\n }\n\n // transposition\n // can only do a transposition if there are edits remaining\n // and there are enough characters to transpose\n if (frame.str.length > 1) {\n var charA = frame.str.charAt(0),\n charB = frame.str.charAt(1),\n transposeNode\n\n if (charB in frame.node.edges) {\n transposeNode = frame.node.edges[charB]\n } else {\n transposeNode = new lunr.TokenSet\n frame.node.edges[charB] = transposeNode\n }\n\n if (frame.str.length == 1) {\n transposeNode.final = true\n }\n\n stack.push({\n node: transposeNode,\n editsRemaining: frame.editsRemaining - 1,\n str: charA + frame.str.slice(2)\n })\n }\n }\n\n return root\n}\n\n/**\n * Creates a TokenSet from a string.\n *\n * The string may contain one or more wildcard characters (*)\n * that will allow wildcard matching when intersecting with\n * another TokenSet.\n *\n * @param {string} str - The string to create a TokenSet from.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.fromString = function (str) {\n var node = new lunr.TokenSet,\n root = node\n\n /*\n * Iterates through all characters within the passed string\n * appending a node for each character.\n *\n * When a wildcard character is found then a self\n * referencing edge is introduced to continually match\n * any number of any characters.\n */\n for (var i = 0, len = str.length; i < len; i++) {\n var char = str[i],\n final = (i == len - 1)\n\n if (char == \"*\") {\n node.edges[char] = node\n node.final = final\n\n } else {\n var next = new lunr.TokenSet\n next.final = final\n\n node.edges[char] = next\n node = next\n }\n }\n\n return root\n}\n\n/**\n * Converts this TokenSet into an array of strings\n * contained within the TokenSet.\n *\n * This is not intended to be used on a TokenSet that\n * contains wildcards, in these cases the results are\n * undefined and are likely to cause an infinite loop.\n *\n * @returns {string[]}\n */\nlunr.TokenSet.prototype.toArray = function () {\n var words = []\n\n var stack = [{\n prefix: \"\",\n node: this\n }]\n\n while (stack.length) {\n var frame = stack.pop(),\n edges = Object.keys(frame.node.edges),\n len = edges.length\n\n if (frame.node.final) {\n /* In Safari, at this point the prefix is sometimes corrupted, see:\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\n * String.prototype method forces Safari to \"cast\" this string to what\n * it's supposed to be, fixing the bug. */\n frame.prefix.charAt(0)\n words.push(frame.prefix)\n }\n\n for (var i = 0; i < len; i++) {\n var edge = edges[i]\n\n stack.push({\n prefix: frame.prefix.concat(edge),\n node: frame.node.edges[edge]\n })\n }\n }\n\n return words\n}\n\n/**\n * Generates a string representation of a TokenSet.\n *\n * This is intended to allow TokenSets to be used as keys\n * in objects, largely to aid the construction and minimisation\n * of a TokenSet. As such it is not designed to be a human\n * friendly representation of the TokenSet.\n *\n * @returns {string}\n */\nlunr.TokenSet.prototype.toString = function () {\n // NOTE: Using Object.keys here as this.edges is very likely\n // to enter 'hash-mode' with many keys being added\n //\n // avoiding a for-in loop here as it leads to the function\n // being de-optimised (at least in V8). From some simple\n // benchmarks the performance is comparable, but allowing\n // V8 to optimize may mean easy performance wins in the future.\n\n if (this._str) {\n return this._str\n }\n\n var str = this.final ? '1' : '0',\n labels = Object.keys(this.edges).sort(),\n len = labels.length\n\n for (var i = 0; i < len; i++) {\n var label = labels[i],\n node = this.edges[label]\n\n str = str + label + node.id\n }\n\n return str\n}\n\n/**\n * Returns a new TokenSet that is the intersection of\n * this TokenSet and the passed TokenSet.\n *\n * This intersection will take into account any wildcards\n * contained within the TokenSet.\n *\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\n * @returns {lunr.TokenSet}\n */\nlunr.TokenSet.prototype.intersect = function (b) {\n var output = new lunr.TokenSet,\n frame = undefined\n\n var stack = [{\n qNode: b,\n output: output,\n node: this\n }]\n\n while (stack.length) {\n frame = stack.pop()\n\n // NOTE: As with the #toString method, we are using\n // Object.keys and a for loop instead of a for-in loop\n // as both of these objects enter 'hash' mode, causing\n // the function to be de-optimised in V8\n var qEdges = Object.keys(frame.qNode.edges),\n qLen = qEdges.length,\n nEdges = Object.keys(frame.node.edges),\n nLen = nEdges.length\n\n for (var q = 0; q < qLen; q++) {\n var qEdge = qEdges[q]\n\n for (var n = 0; n < nLen; n++) {\n var nEdge = nEdges[n]\n\n if (nEdge == qEdge || qEdge == '*') {\n var node = frame.node.edges[nEdge],\n qNode = frame.qNode.edges[qEdge],\n final = node.final && qNode.final,\n next = undefined\n\n if (nEdge in frame.output.edges) {\n // an edge already exists for this character\n // no need to create a new node, just set the finality\n // bit unless this node is already final\n next = frame.output.edges[nEdge]\n next.final = next.final || final\n\n } else {\n // no edge exists yet, must create one\n // set the finality bit and insert it\n // into the output\n next = new lunr.TokenSet\n next.final = final\n frame.output.edges[nEdge] = next\n }\n\n stack.push({\n qNode: qNode,\n output: next,\n node: node\n })\n }\n }\n }\n }\n\n return output\n}\nlunr.TokenSet.Builder = function () {\n this.previousWord = \"\"\n this.root = new lunr.TokenSet\n this.uncheckedNodes = []\n this.minimizedNodes = {}\n}\n\nlunr.TokenSet.Builder.prototype.insert = function (word) {\n var node,\n commonPrefix = 0\n\n if (word < this.previousWord) {\n throw new Error (\"Out of order word insertion\")\n }\n\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\n if (word[i] != this.previousWord[i]) break\n commonPrefix++\n }\n\n this.minimize(commonPrefix)\n\n if (this.uncheckedNodes.length == 0) {\n node = this.root\n } else {\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\n }\n\n for (var i = commonPrefix; i < word.length; i++) {\n var nextNode = new lunr.TokenSet,\n char = word[i]\n\n node.edges[char] = nextNode\n\n this.uncheckedNodes.push({\n parent: node,\n char: char,\n child: nextNode\n })\n\n node = nextNode\n }\n\n node.final = true\n this.previousWord = word\n}\n\nlunr.TokenSet.Builder.prototype.finish = function () {\n this.minimize(0)\n}\n\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\n var node = this.uncheckedNodes[i],\n childKey = node.child.toString()\n\n if (childKey in this.minimizedNodes) {\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\n } else {\n // Cache the key for this node since\n // we know it can't change anymore\n node.child._str = childKey\n\n this.minimizedNodes[childKey] = node.child\n }\n\n this.uncheckedNodes.pop()\n }\n}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * An index contains the built index of all documents and provides a query interface\n * to the index.\n *\n * Usually instances of lunr.Index will not be created using this constructor, instead\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\n * used to load previously built and serialized indexes.\n *\n * @constructor\n * @param {Object} attrs - The attributes of the built search index.\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\n * @param {Object} attrs.fieldVectors - Field vectors\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\n * @param {string[]} attrs.fields - The names of indexed document fields.\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\n */\nlunr.Index = function (attrs) {\n this.invertedIndex = attrs.invertedIndex\n this.fieldVectors = attrs.fieldVectors\n this.tokenSet = attrs.tokenSet\n this.fields = attrs.fields\n this.pipeline = attrs.pipeline\n}\n\n/**\n * A result contains details of a document matching a search query.\n * @typedef {Object} lunr.Index~Result\n * @property {string} ref - The reference of the document this result represents.\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\n */\n\n/**\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\n * query language which itself is parsed into an instance of lunr.Query.\n *\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\n * is best used for human entered text rather than program generated text.\n *\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\n * or 'world', though those that contain both will rank higher in the results.\n *\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\n * wildcards will increase the number of documents that will be found but can also have a negative\n * impact on query performance, especially with wildcards at the beginning of a term.\n *\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\n * hello in the title field will match this query. Using a field not present in the index will lead\n * to an error being thrown.\n *\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\n * Avoid large values for edit distance to improve query performance.\n *\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\n *\n * To escape special characters the backslash character '\\' can be used, this allows searches to include\n * characters that would normally be considered modifiers, e.g. `foo\\~2` will search for a term \"foo~2\" instead\n * of attempting to apply a boost of 2 to the search term \"foo\".\n *\n * @typedef {string} lunr.Index~QueryString\n * @example Simple single term query\n * hello\n * @example Multiple term query\n * hello world\n * @example term scoped to a field\n * title:hello\n * @example term with a boost of 10\n * hello^10\n * @example term with an edit distance of 2\n * hello~2\n * @example terms with presence modifiers\n * -foo +bar baz\n */\n\n/**\n * Performs a search against the index using lunr query syntax.\n *\n * Results will be returned sorted by their score, the most relevant results\n * will be returned first. For details on how the score is calculated, please see\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\n *\n * For more programmatic querying use lunr.Index#query.\n *\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.search = function (queryString) {\n return this.query(function (query) {\n var parser = new lunr.QueryParser(queryString, query)\n parser.parse()\n })\n}\n\n/**\n * A query builder callback provides a query object to be used to express\n * the query to perform on the index.\n *\n * @callback lunr.Index~queryBuilder\n * @param {lunr.Query} query - The query object to build up.\n * @this lunr.Query\n */\n\n/**\n * Performs a query against the index using the yielded lunr.Query object.\n *\n * If performing programmatic queries against the index, this method is preferred\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\n *\n * A query object is yielded to the supplied function which should be used to\n * express the query to be run against the index.\n *\n * Note that although this function takes a callback parameter it is _not_ an\n * asynchronous operation, the callback is just yielded a query object to be\n * customized.\n *\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\n * @returns {lunr.Index~Result[]}\n */\nlunr.Index.prototype.query = function (fn) {\n // for each query clause\n // * process terms\n // * expand terms from token set\n // * find matching documents and metadata\n // * get document vectors\n // * score documents\n\n var query = new lunr.Query(this.fields),\n matchingFields = Object.create(null),\n queryVectors = Object.create(null),\n termFieldCache = Object.create(null),\n requiredMatches = Object.create(null),\n prohibitedMatches = Object.create(null)\n\n /*\n * To support field level boosts a query vector is created per\n * field. An empty vector is eagerly created to support negated\n * queries.\n */\n for (var i = 0; i < this.fields.length; i++) {\n queryVectors[this.fields[i]] = new lunr.Vector\n }\n\n fn.call(query, query)\n\n for (var i = 0; i < query.clauses.length; i++) {\n /*\n * Unless the pipeline has been disabled for this term, which is\n * the case for terms with wildcards, we need to pass the clause\n * term through the search pipeline. A pipeline returns an array\n * of processed terms. Pipeline functions may expand the passed\n * term, which means we may end up performing multiple index lookups\n * for a single query term.\n */\n var clause = query.clauses[i],\n terms = null,\n clauseMatches = lunr.Set.complete\n\n if (clause.usePipeline) {\n terms = this.pipeline.runString(clause.term, {\n fields: clause.fields\n })\n } else {\n terms = [clause.term]\n }\n\n for (var m = 0; m < terms.length; m++) {\n var term = terms[m]\n\n /*\n * Each term returned from the pipeline needs to use the same query\n * clause object, e.g. the same boost and or edit distance. The\n * simplest way to do this is to re-use the clause object but mutate\n * its term property.\n */\n clause.term = term\n\n /*\n * From the term in the clause we create a token set which will then\n * be used to intersect the indexes token set to get a list of terms\n * to lookup in the inverted index\n */\n var termTokenSet = lunr.TokenSet.fromClause(clause),\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\n\n /*\n * If a term marked as required does not exist in the tokenSet it is\n * impossible for the search to return any matches. We set all the field\n * scoped required matches set to empty and stop examining any further\n * clauses.\n */\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = lunr.Set.empty\n }\n\n break\n }\n\n for (var j = 0; j < expandedTerms.length; j++) {\n /*\n * For each term get the posting and termIndex, this is required for\n * building the query vector.\n */\n var expandedTerm = expandedTerms[j],\n posting = this.invertedIndex[expandedTerm],\n termIndex = posting._index\n\n for (var k = 0; k < clause.fields.length; k++) {\n /*\n * For each field that this query term is scoped by (by default\n * all fields are in scope) we need to get all the document refs\n * that have this term in that field.\n *\n * The posting is the entry in the invertedIndex for the matching\n * term from above.\n */\n var field = clause.fields[k],\n fieldPosting = posting[field],\n matchingDocumentRefs = Object.keys(fieldPosting),\n termField = expandedTerm + \"/\" + field,\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\n\n /*\n * if the presence of this term is required ensure that the matching\n * documents are added to the set of required matches for this clause.\n *\n */\n if (clause.presence == lunr.Query.presence.REQUIRED) {\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\n\n if (requiredMatches[field] === undefined) {\n requiredMatches[field] = lunr.Set.complete\n }\n }\n\n /*\n * if the presence of this term is prohibited ensure that the matching\n * documents are added to the set of prohibited matches for this field,\n * creating that set if it does not yet exist.\n */\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\n if (prohibitedMatches[field] === undefined) {\n prohibitedMatches[field] = lunr.Set.empty\n }\n\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\n\n /*\n * Prohibited matches should not be part of the query vector used for\n * similarity scoring and no metadata should be extracted so we continue\n * to the next field\n */\n continue\n }\n\n /*\n * The query field vector is populated using the termIndex found for\n * the term and a unit value with the appropriate boost applied.\n * Using upsert because there could already be an entry in the vector\n * for the term we are working with. In that case we just add the scores\n * together.\n */\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\n\n /**\n * If we've already seen this term, field combo then we've already collected\n * the matching documents and metadata, no need to go through all that again\n */\n if (termFieldCache[termField]) {\n continue\n }\n\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\n /*\n * All metadata for this term/field/document triple\n * are then extracted and collected into an instance\n * of lunr.MatchData ready to be returned in the query\n * results\n */\n var matchingDocumentRef = matchingDocumentRefs[l],\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\n metadata = fieldPosting[matchingDocumentRef],\n fieldMatch\n\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\n } else {\n fieldMatch.add(expandedTerm, field, metadata)\n }\n\n }\n\n termFieldCache[termField] = true\n }\n }\n }\n\n /**\n * If the presence was required we need to update the requiredMatches field sets.\n * We do this after all fields for the term have collected their matches because\n * the clause terms presence is required in _any_ of the fields not _all_ of the\n * fields.\n */\n if (clause.presence === lunr.Query.presence.REQUIRED) {\n for (var k = 0; k < clause.fields.length; k++) {\n var field = clause.fields[k]\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\n }\n }\n }\n\n /**\n * Need to combine the field scoped required and prohibited\n * matching documents into a global set of required and prohibited\n * matches\n */\n var allRequiredMatches = lunr.Set.complete,\n allProhibitedMatches = lunr.Set.empty\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i]\n\n if (requiredMatches[field]) {\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\n }\n\n if (prohibitedMatches[field]) {\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\n }\n }\n\n var matchingFieldRefs = Object.keys(matchingFields),\n results = [],\n matches = Object.create(null)\n\n /*\n * If the query is negated (contains only prohibited terms)\n * we need to get _all_ fieldRefs currently existing in the\n * index. This is only done when we know that the query is\n * entirely prohibited terms to avoid any cost of getting all\n * fieldRefs unnecessarily.\n *\n * Additionally, blank MatchData must be created to correctly\n * populate the results.\n */\n if (query.isNegated()) {\n matchingFieldRefs = Object.keys(this.fieldVectors)\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n var matchingFieldRef = matchingFieldRefs[i]\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\n matchingFields[matchingFieldRef] = new lunr.MatchData\n }\n }\n\n for (var i = 0; i < matchingFieldRefs.length; i++) {\n /*\n * Currently we have document fields that match the query, but we\n * need to return documents. The matchData and scores are combined\n * from multiple fields belonging to the same document.\n *\n * Scores are calculated by field, using the query vectors created\n * above, and combined into a final document score using addition.\n */\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\n docRef = fieldRef.docRef\n\n if (!allRequiredMatches.contains(docRef)) {\n continue\n }\n\n if (allProhibitedMatches.contains(docRef)) {\n continue\n }\n\n var fieldVector = this.fieldVectors[fieldRef],\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\n docMatch\n\n if ((docMatch = matches[docRef]) !== undefined) {\n docMatch.score += score\n docMatch.matchData.combine(matchingFields[fieldRef])\n } else {\n var match = {\n ref: docRef,\n score: score,\n matchData: matchingFields[fieldRef]\n }\n matches[docRef] = match\n results.push(match)\n }\n }\n\n /*\n * Sort the results objects by score, highest first.\n */\n return results.sort(function (a, b) {\n return b.score - a.score\n })\n}\n\n/**\n * Prepares the index for JSON serialization.\n *\n * The schema for this JSON blob will be described in a\n * separate JSON schema file.\n *\n * @returns {Object}\n */\nlunr.Index.prototype.toJSON = function () {\n var invertedIndex = Object.keys(this.invertedIndex)\n .sort()\n .map(function (term) {\n return [term, this.invertedIndex[term]]\n }, this)\n\n var fieldVectors = Object.keys(this.fieldVectors)\n .map(function (ref) {\n return [ref, this.fieldVectors[ref].toJSON()]\n }, this)\n\n return {\n version: lunr.version,\n fields: this.fields,\n fieldVectors: fieldVectors,\n invertedIndex: invertedIndex,\n pipeline: this.pipeline.toJSON()\n }\n}\n\n/**\n * Loads a previously serialized lunr.Index\n *\n * @param {Object} serializedIndex - A previously serialized lunr.Index\n * @returns {lunr.Index}\n */\nlunr.Index.load = function (serializedIndex) {\n var attrs = {},\n fieldVectors = {},\n serializedVectors = serializedIndex.fieldVectors,\n invertedIndex = Object.create(null),\n serializedInvertedIndex = serializedIndex.invertedIndex,\n tokenSetBuilder = new lunr.TokenSet.Builder,\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\n\n if (serializedIndex.version != lunr.version) {\n lunr.utils.warn(\"Version mismatch when loading serialised index. Current version of lunr '\" + lunr.version + \"' does not match serialized index '\" + serializedIndex.version + \"'\")\n }\n\n for (var i = 0; i < serializedVectors.length; i++) {\n var tuple = serializedVectors[i],\n ref = tuple[0],\n elements = tuple[1]\n\n fieldVectors[ref] = new lunr.Vector(elements)\n }\n\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\n var tuple = serializedInvertedIndex[i],\n term = tuple[0],\n posting = tuple[1]\n\n tokenSetBuilder.insert(term)\n invertedIndex[term] = posting\n }\n\n tokenSetBuilder.finish()\n\n attrs.fields = serializedIndex.fields\n\n attrs.fieldVectors = fieldVectors\n attrs.invertedIndex = invertedIndex\n attrs.tokenSet = tokenSetBuilder.root\n attrs.pipeline = pipeline\n\n return new lunr.Index(attrs)\n}\n/*!\n * lunr.Builder\n * Copyright (C) 2019 Oliver Nightingale\n */\n\n/**\n * lunr.Builder performs indexing on a set of documents and\n * returns instances of lunr.Index ready for querying.\n *\n * All configuration of the index is done via the builder, the\n * fields to index, the document reference, the text processing\n * pipeline and document scoring parameters are all set on the\n * builder before indexing.\n *\n * @constructor\n * @property {string} _ref - Internal reference to the document reference field.\n * @property {string[]} _fields - Internal reference to the document fields to index.\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\n */\nlunr.Builder = function () {\n this._ref = \"id\"\n this._fields = Object.create(null)\n this._documents = Object.create(null)\n this.invertedIndex = Object.create(null)\n this.fieldTermFrequencies = {}\n this.fieldLengths = {}\n this.tokenizer = lunr.tokenizer\n this.pipeline = new lunr.Pipeline\n this.searchPipeline = new lunr.Pipeline\n this.documentCount = 0\n this._b = 0.75\n this._k1 = 1.2\n this.termIndex = 0\n this.metadataWhitelist = []\n}\n\n/**\n * Sets the document field used as the document reference. Every document must have this field.\n * The type of this field in the document should be a string, if it is not a string it will be\n * coerced into a string by calling toString.\n *\n * The default ref is 'id'.\n *\n * The ref should _not_ be changed during indexing, it should be set before any documents are\n * added to the index. Changing it during indexing can lead to inconsistent results.\n *\n * @param {string} ref - The name of the reference field in the document.\n */\nlunr.Builder.prototype.ref = function (ref) {\n this._ref = ref\n}\n\n/**\n * A function that is used to extract a field from a document.\n *\n * Lunr expects a field to be at the top level of a document, if however the field\n * is deeply nested within a document an extractor function can be used to extract\n * the right field for indexing.\n *\n * @callback fieldExtractor\n * @param {object} doc - The document being added to the index.\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\n * @example Extracting a nested field\n * function (doc) { return doc.nested.field }\n */\n\n/**\n * Adds a field to the list of document fields that will be indexed. Every document being\n * indexed should have this field. Null values for this field in indexed documents will\n * not cause errors but will limit the chance of that document being retrieved by searches.\n *\n * All fields should be added before adding documents to the index. Adding fields after\n * a document has been indexed will have no effect on already indexed documents.\n *\n * Fields can be boosted at build time. This allows terms within that field to have more\n * importance when ranking search results. Use a field boost to specify that matches within\n * one field are more important than other fields.\n *\n * @param {string} fieldName - The name of a field to index in all documents.\n * @param {object} attributes - Optional attributes associated with this field.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\n */\nlunr.Builder.prototype.field = function (fieldName, attributes) {\n if (/\\//.test(fieldName)) {\n throw new RangeError (\"Field '\" + fieldName + \"' contains illegal character '/'\")\n }\n\n this._fields[fieldName] = attributes || {}\n}\n\n/**\n * A parameter to tune the amount of field length normalisation that is applied when\n * calculating relevance scores. A value of 0 will completely disable any normalisation\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\n * will be clamped to the range 0 - 1.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.b = function (number) {\n if (number < 0) {\n this._b = 0\n } else if (number > 1) {\n this._b = 1\n } else {\n this._b = number\n }\n}\n\n/**\n * A parameter that controls the speed at which a rise in term frequency results in term\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\n * slower saturation levels, a lower value will result in quicker saturation.\n *\n * @param {number} number - The value to set for this tuning parameter.\n */\nlunr.Builder.prototype.k1 = function (number) {\n this._k1 = number\n}\n\n/**\n * Adds a document to the index.\n *\n * Before adding fields to the index the index should have been fully setup, with the document\n * ref and all fields to index already having been specified.\n *\n * The document must have a field name as specified by the ref (by default this is 'id') and\n * it should have all fields defined for indexing, though null or undefined values will not\n * cause errors.\n *\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\n * this document should rank higher in search results than other documents.\n *\n * @param {object} doc - The document to add to the index.\n * @param {object} attributes - Optional attributes associated with this document.\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\n */\nlunr.Builder.prototype.add = function (doc, attributes) {\n var docRef = doc[this._ref],\n fields = Object.keys(this._fields)\n\n this._documents[docRef] = attributes || {}\n this.documentCount += 1\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i],\n extractor = this._fields[fieldName].extractor,\n field = extractor ? extractor(doc) : doc[fieldName],\n tokens = this.tokenizer(field, {\n fields: [fieldName]\n }),\n terms = this.pipeline.run(tokens),\n fieldRef = new lunr.FieldRef (docRef, fieldName),\n fieldTerms = Object.create(null)\n\n this.fieldTermFrequencies[fieldRef] = fieldTerms\n this.fieldLengths[fieldRef] = 0\n\n // store the length of this field for this document\n this.fieldLengths[fieldRef] += terms.length\n\n // calculate term frequencies for this field\n for (var j = 0; j < terms.length; j++) {\n var term = terms[j]\n\n if (fieldTerms[term] == undefined) {\n fieldTerms[term] = 0\n }\n\n fieldTerms[term] += 1\n\n // add to inverted index\n // create an initial posting if one doesn't exist\n if (this.invertedIndex[term] == undefined) {\n var posting = Object.create(null)\n posting[\"_index\"] = this.termIndex\n this.termIndex += 1\n\n for (var k = 0; k < fields.length; k++) {\n posting[fields[k]] = Object.create(null)\n }\n\n this.invertedIndex[term] = posting\n }\n\n // add an entry for this term/fieldName/docRef to the invertedIndex\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\n }\n\n // store all whitelisted metadata about this token in the\n // inverted index\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\n var metadataKey = this.metadataWhitelist[l],\n metadata = term.metadata[metadataKey]\n\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\n }\n\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\n }\n }\n\n }\n}\n\n/**\n * Calculates the average document length for this index\n *\n * @private\n */\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\n\n var fieldRefs = Object.keys(this.fieldLengths),\n numberOfFields = fieldRefs.length,\n accumulator = {},\n documentsWithField = {}\n\n for (var i = 0; i < numberOfFields; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n field = fieldRef.fieldName\n\n documentsWithField[field] || (documentsWithField[field] = 0)\n documentsWithField[field] += 1\n\n accumulator[field] || (accumulator[field] = 0)\n accumulator[field] += this.fieldLengths[fieldRef]\n }\n\n var fields = Object.keys(this._fields)\n\n for (var i = 0; i < fields.length; i++) {\n var fieldName = fields[i]\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\n }\n\n this.averageFieldLength = accumulator\n}\n\n/**\n * Builds a vector space model of every document using lunr.Vector\n *\n * @private\n */\nlunr.Builder.prototype.createFieldVectors = function () {\n var fieldVectors = {},\n fieldRefs = Object.keys(this.fieldTermFrequencies),\n fieldRefsLength = fieldRefs.length,\n termIdfCache = Object.create(null)\n\n for (var i = 0; i < fieldRefsLength; i++) {\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\n fieldName = fieldRef.fieldName,\n fieldLength = this.fieldLengths[fieldRef],\n fieldVector = new lunr.Vector,\n termFrequencies = this.fieldTermFrequencies[fieldRef],\n terms = Object.keys(termFrequencies),\n termsLength = terms.length\n\n\n var fieldBoost = this._fields[fieldName].boost || 1,\n docBoost = this._documents[fieldRef.docRef].boost || 1\n\n for (var j = 0; j < termsLength; j++) {\n var term = terms[j],\n tf = termFrequencies[term],\n termIndex = this.invertedIndex[term]._index,\n idf, score, scoreWithPrecision\n\n if (termIdfCache[term] === undefined) {\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\n termIdfCache[term] = idf\n } else {\n idf = termIdfCache[term]\n }\n\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\n score *= fieldBoost\n score *= docBoost\n scoreWithPrecision = Math.round(score * 1000) / 1000\n // Converts 1.23456789 to 1.234.\n // Reducing the precision so that the vectors take up less\n // space when serialised. Doing it now so that they behave\n // the same before and after serialisation. Also, this is\n // the fastest approach to reducing a number's precision in\n // JavaScript.\n\n fieldVector.insert(termIndex, scoreWithPrecision)\n }\n\n fieldVectors[fieldRef] = fieldVector\n }\n\n this.fieldVectors = fieldVectors\n}\n\n/**\n * Creates a token set of all tokens in the index using lunr.TokenSet\n *\n * @private\n */\nlunr.Builder.prototype.createTokenSet = function () {\n this.tokenSet = lunr.TokenSet.fromArray(\n Object.keys(this.invertedIndex).sort()\n )\n}\n\n/**\n * Builds the index, creating an instance of lunr.Index.\n *\n * This completes the indexing process and should only be called\n * once all documents have been added to the index.\n *\n * @returns {lunr.Index}\n */\nlunr.Builder.prototype.build = function () {\n this.calculateAverageFieldLengths()\n this.createFieldVectors()\n this.createTokenSet()\n\n return new lunr.Index({\n invertedIndex: this.invertedIndex,\n fieldVectors: this.fieldVectors,\n tokenSet: this.tokenSet,\n fields: Object.keys(this._fields),\n pipeline: this.searchPipeline\n })\n}\n\n/**\n * Applies a plugin to the index builder.\n *\n * A plugin is a function that is called with the index builder as its context.\n * Plugins can be used to customise or extend the behaviour of the index\n * in some way. A plugin is just a function, that encapsulated the custom\n * behaviour that should be applied when building the index.\n *\n * The plugin function will be called with the index builder as its argument, additional\n * arguments can also be passed when calling use. The function will be called\n * with the index builder as its context.\n *\n * @param {Function} plugin The plugin to apply.\n */\nlunr.Builder.prototype.use = function (fn) {\n var args = Array.prototype.slice.call(arguments, 1)\n args.unshift(this)\n fn.apply(this, args)\n}\n/**\n * Contains and collects metadata about a matching document.\n * A single instance of lunr.MatchData is returned as part of every\n * lunr.Index~Result.\n *\n * @constructor\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n * @property {object} metadata - A cloned collection of metadata associated with this document.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData = function (term, field, metadata) {\n var clonedMetadata = Object.create(null),\n metadataKeys = Object.keys(metadata || {})\n\n // Cloning the metadata to prevent the original\n // being mutated during match data combination.\n // Metadata is kept in an array within the inverted\n // index so cloning the data can be done with\n // Array#slice\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n clonedMetadata[key] = metadata[key].slice()\n }\n\n this.metadata = Object.create(null)\n\n if (term !== undefined) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = clonedMetadata\n }\n}\n\n/**\n * An instance of lunr.MatchData will be created for every term that matches a\n * document. However only one instance is required in a lunr.Index~Result. This\n * method combines metadata from another instance of lunr.MatchData with this\n * objects metadata.\n *\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\n * @see {@link lunr.Index~Result}\n */\nlunr.MatchData.prototype.combine = function (otherMatchData) {\n var terms = Object.keys(otherMatchData.metadata)\n\n for (var i = 0; i < terms.length; i++) {\n var term = terms[i],\n fields = Object.keys(otherMatchData.metadata[term])\n\n if (this.metadata[term] == undefined) {\n this.metadata[term] = Object.create(null)\n }\n\n for (var j = 0; j < fields.length; j++) {\n var field = fields[j],\n keys = Object.keys(otherMatchData.metadata[term][field])\n\n if (this.metadata[term][field] == undefined) {\n this.metadata[term][field] = Object.create(null)\n }\n\n for (var k = 0; k < keys.length; k++) {\n var key = keys[k]\n\n if (this.metadata[term][field][key] == undefined) {\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\n } else {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\n }\n\n }\n }\n }\n}\n\n/**\n * Add metadata for a term/field pair to this instance of match data.\n *\n * @param {string} term - The term this match data is associated with\n * @param {string} field - The field in which the term was found\n * @param {object} metadata - The metadata recorded about this term in this field\n */\nlunr.MatchData.prototype.add = function (term, field, metadata) {\n if (!(term in this.metadata)) {\n this.metadata[term] = Object.create(null)\n this.metadata[term][field] = metadata\n return\n }\n\n if (!(field in this.metadata[term])) {\n this.metadata[term][field] = metadata\n return\n }\n\n var metadataKeys = Object.keys(metadata)\n\n for (var i = 0; i < metadataKeys.length; i++) {\n var key = metadataKeys[i]\n\n if (key in this.metadata[term][field]) {\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\n } else {\n this.metadata[term][field][key] = metadata[key]\n }\n }\n}\n/**\n * A lunr.Query provides a programmatic way of defining queries to be performed\n * against a {@link lunr.Index}.\n *\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\n * so the query object is pre-initialized with the right index fields.\n *\n * @constructor\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\n */\nlunr.Query = function (allFields) {\n this.clauses = []\n this.allFields = allFields\n}\n\n/**\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\n *\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\n * concatenation.\n *\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\n *\n * @constant\n * @default\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with trailing wildcard\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\n * @example query term with leading and trailing wildcard\n * query.term('foo', {\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\n * })\n */\n\nlunr.Query.wildcard = new String (\"*\")\nlunr.Query.wildcard.NONE = 0\nlunr.Query.wildcard.LEADING = 1\nlunr.Query.wildcard.TRAILING = 2\n\n/**\n * Constants for indicating what kind of presence a term must have in matching documents.\n *\n * @constant\n * @enum {number}\n * @see lunr.Query~Clause\n * @see lunr.Query#clause\n * @see lunr.Query#term\n * @example query term with required presence\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\n */\nlunr.Query.presence = {\n /**\n * Term's presence in a document is optional, this is the default value.\n */\n OPTIONAL: 1,\n\n /**\n * Term's presence in a document is required, documents that do not contain\n * this term will not be returned.\n */\n REQUIRED: 2,\n\n /**\n * Term's presence in a document is prohibited, documents that do contain\n * this term will not be returned.\n */\n PROHIBITED: 3\n}\n\n/**\n * A single clause in a {@link lunr.Query} contains a term and details on how to\n * match that term against a {@link lunr.Index}.\n *\n * @typedef {Object} lunr.Query~Clause\n * @property {string[]} fields - The fields in an index this clause should be matched against.\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\n */\n\n/**\n * Adds a {@link lunr.Query~Clause} to this query.\n *\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\n * a default boost of 1 is applied to the clause.\n *\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\n * @see lunr.Query~Clause\n * @returns {lunr.Query}\n */\nlunr.Query.prototype.clause = function (clause) {\n if (!('fields' in clause)) {\n clause.fields = this.allFields\n }\n\n if (!('boost' in clause)) {\n clause.boost = 1\n }\n\n if (!('usePipeline' in clause)) {\n clause.usePipeline = true\n }\n\n if (!('wildcard' in clause)) {\n clause.wildcard = lunr.Query.wildcard.NONE\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\n clause.term = \"*\" + clause.term\n }\n\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\n clause.term = \"\" + clause.term + \"*\"\n }\n\n if (!('presence' in clause)) {\n clause.presence = lunr.Query.presence.OPTIONAL\n }\n\n this.clauses.push(clause)\n\n return this\n}\n\n/**\n * A negated query is one in which every clause has a presence of\n * prohibited. These queries require some special processing to return\n * the expected results.\n *\n * @returns boolean\n */\nlunr.Query.prototype.isNegated = function () {\n for (var i = 0; i < this.clauses.length; i++) {\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\n * to the list of clauses that make up this query.\n *\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\n * to a token or token-like string should be done before calling this method.\n *\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\n * array, each term in the array will share the same options.\n *\n * @param {object|object[]} term - The term(s) to add to the query.\n * @param {object} [options] - Any additional properties to add to the query clause.\n * @returns {lunr.Query}\n * @see lunr.Query#clause\n * @see lunr.Query~Clause\n * @example adding a single term to a query\n * query.term(\"foo\")\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\n * query.term(\"foo\", {\n * fields: [\"title\"],\n * boost: 10,\n * wildcard: lunr.Query.wildcard.TRAILING\n * })\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\n * query.term(lunr.tokenizer(\"foo bar\"))\n */\nlunr.Query.prototype.term = function (term, options) {\n if (Array.isArray(term)) {\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\n return this\n }\n\n var clause = options || {}\n clause.term = term.toString()\n\n this.clause(clause)\n\n return this\n}\nlunr.QueryParseError = function (message, start, end) {\n this.name = \"QueryParseError\"\n this.message = message\n this.start = start\n this.end = end\n}\n\nlunr.QueryParseError.prototype = new Error\nlunr.QueryLexer = function (str) {\n this.lexemes = []\n this.str = str\n this.length = str.length\n this.pos = 0\n this.start = 0\n this.escapeCharPositions = []\n}\n\nlunr.QueryLexer.prototype.run = function () {\n var state = lunr.QueryLexer.lexText\n\n while (state) {\n state = state(this)\n }\n}\n\nlunr.QueryLexer.prototype.sliceString = function () {\n var subSlices = [],\n sliceStart = this.start,\n sliceEnd = this.pos\n\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\n sliceEnd = this.escapeCharPositions[i]\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\n sliceStart = sliceEnd + 1\n }\n\n subSlices.push(this.str.slice(sliceStart, this.pos))\n this.escapeCharPositions.length = 0\n\n return subSlices.join('')\n}\n\nlunr.QueryLexer.prototype.emit = function (type) {\n this.lexemes.push({\n type: type,\n str: this.sliceString(),\n start: this.start,\n end: this.pos\n })\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.escapeCharacter = function () {\n this.escapeCharPositions.push(this.pos - 1)\n this.pos += 1\n}\n\nlunr.QueryLexer.prototype.next = function () {\n if (this.pos >= this.length) {\n return lunr.QueryLexer.EOS\n }\n\n var char = this.str.charAt(this.pos)\n this.pos += 1\n return char\n}\n\nlunr.QueryLexer.prototype.width = function () {\n return this.pos - this.start\n}\n\nlunr.QueryLexer.prototype.ignore = function () {\n if (this.start == this.pos) {\n this.pos += 1\n }\n\n this.start = this.pos\n}\n\nlunr.QueryLexer.prototype.backup = function () {\n this.pos -= 1\n}\n\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\n var char, charCode\n\n do {\n char = this.next()\n charCode = char.charCodeAt(0)\n } while (charCode > 47 && charCode < 58)\n\n if (char != lunr.QueryLexer.EOS) {\n this.backup()\n }\n}\n\nlunr.QueryLexer.prototype.more = function () {\n return this.pos < this.length\n}\n\nlunr.QueryLexer.EOS = 'EOS'\nlunr.QueryLexer.FIELD = 'FIELD'\nlunr.QueryLexer.TERM = 'TERM'\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\nlunr.QueryLexer.BOOST = 'BOOST'\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\n\nlunr.QueryLexer.lexField = function (lexer) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.FIELD)\n lexer.ignore()\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexTerm = function (lexer) {\n if (lexer.width() > 1) {\n lexer.backup()\n lexer.emit(lunr.QueryLexer.TERM)\n }\n\n lexer.ignore()\n\n if (lexer.more()) {\n return lunr.QueryLexer.lexText\n }\n}\n\nlunr.QueryLexer.lexEditDistance = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexBoost = function (lexer) {\n lexer.ignore()\n lexer.acceptDigitRun()\n lexer.emit(lunr.QueryLexer.BOOST)\n return lunr.QueryLexer.lexText\n}\n\nlunr.QueryLexer.lexEOS = function (lexer) {\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n}\n\n// This matches the separator used when tokenising fields\n// within a document. These should match otherwise it is\n// not possible to search for some tokens within a document.\n//\n// It is possible for the user to change the separator on the\n// tokenizer so it _might_ clash with any other of the special\n// characters already used within the search string, e.g. :.\n//\n// This means that it is possible to change the separator in\n// such a way that makes some words unsearchable using a search\n// string.\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\n\nlunr.QueryLexer.lexText = function (lexer) {\n while (true) {\n var char = lexer.next()\n\n if (char == lunr.QueryLexer.EOS) {\n return lunr.QueryLexer.lexEOS\n }\n\n // Escape character is '\\'\n if (char.charCodeAt(0) == 92) {\n lexer.escapeCharacter()\n continue\n }\n\n if (char == \":\") {\n return lunr.QueryLexer.lexField\n }\n\n if (char == \"~\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexEditDistance\n }\n\n if (char == \"^\") {\n lexer.backup()\n if (lexer.width() > 0) {\n lexer.emit(lunr.QueryLexer.TERM)\n }\n return lunr.QueryLexer.lexBoost\n }\n\n // \"+\" indicates term presence is required\n // checking for length to ensure that only\n // leading \"+\" are considered\n if (char == \"+\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n // \"-\" indicates term presence is prohibited\n // checking for length to ensure that only\n // leading \"-\" are considered\n if (char == \"-\" && lexer.width() === 1) {\n lexer.emit(lunr.QueryLexer.PRESENCE)\n return lunr.QueryLexer.lexText\n }\n\n if (char.match(lunr.QueryLexer.termSeparator)) {\n return lunr.QueryLexer.lexTerm\n }\n }\n}\n\nlunr.QueryParser = function (str, query) {\n this.lexer = new lunr.QueryLexer (str)\n this.query = query\n this.currentClause = {}\n this.lexemeIdx = 0\n}\n\nlunr.QueryParser.prototype.parse = function () {\n this.lexer.run()\n this.lexemes = this.lexer.lexemes\n\n var state = lunr.QueryParser.parseClause\n\n while (state) {\n state = state(this)\n }\n\n return this.query\n}\n\nlunr.QueryParser.prototype.peekLexeme = function () {\n return this.lexemes[this.lexemeIdx]\n}\n\nlunr.QueryParser.prototype.consumeLexeme = function () {\n var lexeme = this.peekLexeme()\n this.lexemeIdx += 1\n return lexeme\n}\n\nlunr.QueryParser.prototype.nextClause = function () {\n var completedClause = this.currentClause\n this.query.clause(completedClause)\n this.currentClause = {}\n}\n\nlunr.QueryParser.parseClause = function (parser) {\n var lexeme = parser.peekLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.type) {\n case lunr.QueryLexer.PRESENCE:\n return lunr.QueryParser.parsePresence\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expected either a field or a term, found \" + lexeme.type\n\n if (lexeme.str.length >= 1) {\n errorMessage += \" with value '\" + lexeme.str + \"'\"\n }\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n}\n\nlunr.QueryParser.parsePresence = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n switch (lexeme.str) {\n case \"-\":\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\n break\n case \"+\":\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\n break\n default:\n var errorMessage = \"unrecognised presence operator'\" + lexeme.str + \"'\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term or field, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.FIELD:\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term or field, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseField = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\n var possibleFields = parser.query.allFields.map(function (f) { return \"'\" + f + \"'\" }).join(', '),\n errorMessage = \"unrecognised field '\" + lexeme.str + \"', possible fields: \" + possibleFields\n\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.fields = [lexeme.str]\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n var errorMessage = \"expecting term, found nothing\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n return lunr.QueryParser.parseTerm\n default:\n var errorMessage = \"expecting term, found '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseTerm = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n parser.currentClause.term = lexeme.str.toLowerCase()\n\n if (lexeme.str.indexOf(\"*\") != -1) {\n parser.currentClause.usePipeline = false\n }\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseEditDistance = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var editDistance = parseInt(lexeme.str, 10)\n\n if (isNaN(editDistance)) {\n var errorMessage = \"edit distance must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.editDistance = editDistance\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\nlunr.QueryParser.parseBoost = function (parser) {\n var lexeme = parser.consumeLexeme()\n\n if (lexeme == undefined) {\n return\n }\n\n var boost = parseInt(lexeme.str, 10)\n\n if (isNaN(boost)) {\n var errorMessage = \"boost must be numeric\"\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\n }\n\n parser.currentClause.boost = boost\n\n var nextLexeme = parser.peekLexeme()\n\n if (nextLexeme == undefined) {\n parser.nextClause()\n return\n }\n\n switch (nextLexeme.type) {\n case lunr.QueryLexer.TERM:\n parser.nextClause()\n return lunr.QueryParser.parseTerm\n case lunr.QueryLexer.FIELD:\n parser.nextClause()\n return lunr.QueryParser.parseField\n case lunr.QueryLexer.EDIT_DISTANCE:\n return lunr.QueryParser.parseEditDistance\n case lunr.QueryLexer.BOOST:\n return lunr.QueryParser.parseBoost\n case lunr.QueryLexer.PRESENCE:\n parser.nextClause()\n return lunr.QueryParser.parsePresence\n default:\n var errorMessage = \"Unexpected lexeme type '\" + nextLexeme.type + \"'\"\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\n }\n}\n\n /**\n * export the module via AMD, CommonJS or as a browser global\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\n */\n ;(function (root, factory) {\n if (true) {\n // AMD. Register as an anonymous module.\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\n\t\t\t\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\n\t\t\t\t__WEBPACK_AMD_DEFINE_FACTORY__),\n\t\t\t\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\n } else {}\n }(this, function () {\n /**\n * Just return a value to define the module export.\n * This example returns an object, but the module\n * can return a function as the exported value.\n */\n return lunr\n }))\n})();\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar createPropertyDescriptor = __webpack_require__(22);\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\nvar anObject = __webpack_require__(2);\nvar toPrimitive = __webpack_require__(35);\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar setGlobal = __webpack_require__(20);\nvar inspectSource = __webpack_require__(23);\nvar InternalStateModule = __webpack_require__(16);\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar path = __webpack_require__(40);\nvar global = __webpack_require__(0);\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports) {\n\nmodule.exports = false;\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports) {\n\nvar toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it) {\n if (typeof it != 'function') {\n throw TypeError(String(it) + ' is not a function');\n } return it;\n};\n\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar objectHas = __webpack_require__(3);\nvar sharedKey = __webpack_require__(24);\nvar hiddenKeys = __webpack_require__(25);\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar setGlobal = __webpack_require__(20);\nvar copyConstructorProperties = __webpack_require__(67);\nvar isForced = __webpack_require__(43);\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = __webpack_require__(66);\nvar requireObjectCoercible = __webpack_require__(27);\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar createNonEnumerableProperty = __webpack_require__(6);\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar isObject = __webpack_require__(7);\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar store = __webpack_require__(33);\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar shared = __webpack_require__(32);\nvar uid = __webpack_require__(36);\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n\n\n/***/ }),\n/* 25 */\n/***/ (function(module, exports) {\n\nmodule.exports = {};\n\n\n/***/ }),\n/* 26 */\n/***/ (function(module, exports) {\n\nvar ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n\n\n/***/ }),\n/* 27 */\n/***/ (function(module, exports) {\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n/***/ }),\n/* 28 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar propertyIsEnumerableModule = __webpack_require__(65);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar toIndexedObject = __webpack_require__(18);\nvar toPrimitive = __webpack_require__(35);\nvar has = __webpack_require__(3);\nvar IE8_DOM_DEFINE = __webpack_require__(34);\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n\n\n/***/ }),\n/* 29 */\n/***/ (function(module, exports) {\n\n// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n\n\n/***/ }),\n/* 30 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar defineProperty = __webpack_require__(9).f;\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (it, TAG, STATIC) {\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n\n\n/***/ }),\n/* 31 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar aFunction = __webpack_require__(15);\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aFunction(resolve);\n this.reject = aFunction(reject);\n};\n\n// 25.4.1.5 NewPromiseCapability(C)\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n\n\n/***/ }),\n/* 32 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar IS_PURE = __webpack_require__(12);\nvar store = __webpack_require__(33);\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.4',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n\n\n/***/ }),\n/* 33 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar setGlobal = __webpack_require__(20);\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n\n\n/***/ }),\n/* 34 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar fails = __webpack_require__(5);\nvar createElement = __webpack_require__(21);\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n\n\n/***/ }),\n/* 35 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n/***/ }),\n/* 36 */\n/***/ (function(module, exports) {\n\nvar id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n\n\n/***/ }),\n/* 37 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n\n\n/***/ }),\n/* 38 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classofRaw = __webpack_require__(13);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\n};\n\n\n/***/ }),\n/* 39 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar createIteratorConstructor = __webpack_require__(73);\nvar getPrototypeOf = __webpack_require__(45);\nvar setPrototypeOf = __webpack_require__(78);\nvar setToStringTag = __webpack_require__(30);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar redefine = __webpack_require__(10);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\nvar Iterators = __webpack_require__(14);\nvar IteratorsCore = __webpack_require__(44);\n\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array#{values, @@iterator}.name in V8 / FF\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return nativeIterator.call(this); };\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\n }\n Iterators[NAME] = defaultIterator;\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n redefine(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n return methods;\n};\n\n\n/***/ }),\n/* 40 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global;\n\n\n/***/ }),\n/* 41 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toIndexedObject = __webpack_require__(18);\nvar indexOf = __webpack_require__(70).indexOf;\nvar hiddenKeys = __webpack_require__(25);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n/***/ }),\n/* 42 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n\n\n/***/ }),\n/* 43 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n\n\n/***/ }),\n/* 44 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getPrototypeOf = __webpack_require__(45);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar has = __webpack_require__(3);\nvar wellKnownSymbol = __webpack_require__(1);\nvar IS_PURE = __webpack_require__(12);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\nvar returnThis = function () { return this; };\n\n// `%IteratorPrototype%` object\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nif (IteratorPrototype == undefined) IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n\n\n/***/ }),\n/* 45 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar toObject = __webpack_require__(74);\nvar sharedKey = __webpack_require__(24);\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar ObjectPrototype = Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\n O = toObject(O);\n if (has(O, IE_PROTO)) return O[IE_PROTO];\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectPrototype : null;\n};\n\n\n/***/ }),\n/* 46 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar defineProperties = __webpack_require__(76);\nvar enumBugKeys = __webpack_require__(29);\nvar hiddenKeys = __webpack_require__(25);\nvar html = __webpack_require__(47);\nvar documentCreateElement = __webpack_require__(21);\nvar sharedKey = __webpack_require__(24);\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n /* global ActiveXObject */\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.github.io/ecma262/#sec-object.create\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : defineProperties(result, Properties);\n};\n\n\n/***/ }),\n/* 47 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n\n\n/***/ }),\n/* 48 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = global.Promise;\n\n\n/***/ }),\n/* 49 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isArrayIteratorMethod = __webpack_require__(88);\nvar toLength = __webpack_require__(42);\nvar bind = __webpack_require__(50);\nvar getIteratorMethod = __webpack_require__(89);\nvar callWithSafeIterationClosing = __webpack_require__(90);\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\n var iterator, iterFn, index, length, result, next, step;\n\n if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\n result = AS_ENTRIES\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\n : boundFunction(iterable[index]);\n if (result && result instanceof Result) return result;\n } return new Result(false);\n }\n iterator = iterFn.call(iterable);\n }\n\n next = iterator.next;\n while (!(step = next.call(iterator)).done) {\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\n if (typeof result == 'object' && result && result instanceof Result) return result;\n } return new Result(false);\n};\n\niterate.stop = function (result) {\n return new Result(true, result);\n};\n\n\n/***/ }),\n/* 50 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar aFunction = __webpack_require__(15);\n\n// optional / simple context binding\nmodule.exports = function (fn, that, length) {\n aFunction(fn);\n if (that === undefined) return fn;\n switch (length) {\n case 0: return function () {\n return fn.call(that);\n };\n case 1: return function (a) {\n return fn.call(that, a);\n };\n case 2: return function (a, b) {\n return fn.call(that, a, b);\n };\n case 3: return function (a, b, c) {\n return fn.call(that, a, b, c);\n };\n }\n return function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n\n\n/***/ }),\n/* 51 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aFunction = __webpack_require__(15);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\n};\n\n\n/***/ }),\n/* 52 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\nvar bind = __webpack_require__(50);\nvar html = __webpack_require__(47);\nvar createElement = __webpack_require__(21);\nvar IS_IOS = __webpack_require__(53);\n\nvar location = global.location;\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar MessageChannel = global.MessageChannel;\nvar Dispatch = global.Dispatch;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar defer, channel, port;\n\nvar run = function (id) {\n // eslint-disable-next-line no-prototype-builtins\n if (queue.hasOwnProperty(id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(id + '', location.protocol + '//' + location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(fn) {\n var args = [];\n var i = 1;\n while (arguments.length > i) args.push(arguments[i++]);\n queue[++counter] = function () {\n // eslint-disable-next-line no-new-func\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (classof(process) == 'process') {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port, 1);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n\n\n/***/ }),\n/* 53 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar userAgent = __webpack_require__(54);\n\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\n\n\n/***/ }),\n/* 54 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n\n\n/***/ }),\n/* 55 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar isObject = __webpack_require__(7);\nvar newPromiseCapability = __webpack_require__(31);\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n\n\n/***/ }),\n/* 56 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n\n\n/***/ }),\n/* 57 */\n/***/ (function(module, exports, __webpack_require__) {\n\n__webpack_require__(58);\n__webpack_require__(63);\n__webpack_require__(80);\n__webpack_require__(84);\n__webpack_require__(95);\n__webpack_require__(96);\nvar path = __webpack_require__(40);\n\nmodule.exports = path.Promise;\n\n\n/***/ }),\n/* 58 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar redefine = __webpack_require__(10);\nvar toString = __webpack_require__(62);\n\n// `Object.prototype.toString` method\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\n}\n\n\n/***/ }),\n/* 59 */\n/***/ (function(module, exports) {\n\nvar g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n\n\n/***/ }),\n/* 60 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar NATIVE_SYMBOL = __webpack_require__(37);\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n\n\n/***/ }),\n/* 61 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar inspectSource = __webpack_require__(23);\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n\n\n/***/ }),\n/* 62 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\nvar classof = __webpack_require__(38);\n\n// `Object.prototype.toString` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n\n\n/***/ }),\n/* 63 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar charAt = __webpack_require__(64).charAt;\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: String(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return { value: undefined, done: true };\n point = charAt(string, index);\n state.index += point.length;\n return { value: point, done: false };\n});\n\n\n/***/ }),\n/* 64 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n\n\n/***/ }),\n/* 65 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n\n\n/***/ }),\n/* 66 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\nvar classof = __webpack_require__(13);\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n\n\n/***/ }),\n/* 67 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar has = __webpack_require__(3);\nvar ownKeys = __webpack_require__(68);\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\nvar definePropertyModule = __webpack_require__(9);\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n\n\n/***/ }),\n/* 68 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar getBuiltIn = __webpack_require__(11);\nvar getOwnPropertyNamesModule = __webpack_require__(69);\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\nvar anObject = __webpack_require__(2);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n\n\n/***/ }),\n/* 69 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n\n\n/***/ }),\n/* 70 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toIndexedObject = __webpack_require__(18);\nvar toLength = __webpack_require__(42);\nvar toAbsoluteIndex = __webpack_require__(71);\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n\n\n/***/ }),\n/* 71 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar toInteger = __webpack_require__(26);\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n\n\n/***/ }),\n/* 72 */\n/***/ (function(module, exports) {\n\nexports.f = Object.getOwnPropertySymbols;\n\n\n/***/ }),\n/* 73 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\nvar create = __webpack_require__(46);\nvar createPropertyDescriptor = __webpack_require__(22);\nvar setToStringTag = __webpack_require__(30);\nvar Iterators = __webpack_require__(14);\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n\n\n/***/ }),\n/* 74 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar requireObjectCoercible = __webpack_require__(27);\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n\n\n/***/ }),\n/* 75 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar fails = __webpack_require__(5);\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n\n\n/***/ }),\n/* 76 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar DESCRIPTORS = __webpack_require__(8);\nvar definePropertyModule = __webpack_require__(9);\nvar anObject = __webpack_require__(2);\nvar objectKeys = __webpack_require__(77);\n\n// `Object.defineProperties` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\n return O;\n};\n\n\n/***/ }),\n/* 77 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar internalObjectKeys = __webpack_require__(41);\nvar enumBugKeys = __webpack_require__(29);\n\n// `Object.keys` method\n// https://tc39.github.io/ecma262/#sec-object.keys\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n\n\n/***/ }),\n/* 78 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\nvar aPossiblePrototype = __webpack_require__(79);\n\n// `Object.setPrototypeOf` method\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\n setter.call(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter.call(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n\n\n/***/ }),\n/* 79 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar isObject = __webpack_require__(7);\n\nmodule.exports = function (it) {\n if (!isObject(it) && it !== null) {\n throw TypeError(\"Can't set \" + String(it) + ' as a prototype');\n } return it;\n};\n\n\n/***/ }),\n/* 80 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar DOMIterables = __webpack_require__(81);\nvar ArrayIteratorMethods = __webpack_require__(82);\nvar createNonEnumerableProperty = __webpack_require__(6);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nfor (var COLLECTION_NAME in DOMIterables) {\n var Collection = global[COLLECTION_NAME];\n var CollectionPrototype = Collection && Collection.prototype;\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n}\n\n\n/***/ }),\n/* 81 */\n/***/ (function(module, exports) {\n\n// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n\n\n/***/ }),\n/* 82 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar toIndexedObject = __webpack_require__(18);\nvar addToUnscopables = __webpack_require__(83);\nvar Iterators = __webpack_require__(14);\nvar InternalStateModule = __webpack_require__(16);\nvar defineIterator = __webpack_require__(39);\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return { value: undefined, done: true };\n }\n if (kind == 'keys') return { value: index, done: false };\n if (kind == 'values') return { value: target[index], done: false };\n return { value: [index, target[index]], done: false };\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\nIterators.Arguments = Iterators.Array;\n\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n/***/ }),\n/* 83 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar create = __webpack_require__(46);\nvar definePropertyModule = __webpack_require__(9);\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n\n\n/***/ }),\n/* 84 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar global = __webpack_require__(0);\nvar getBuiltIn = __webpack_require__(11);\nvar NativePromise = __webpack_require__(48);\nvar redefine = __webpack_require__(10);\nvar redefineAll = __webpack_require__(85);\nvar setToStringTag = __webpack_require__(30);\nvar setSpecies = __webpack_require__(86);\nvar isObject = __webpack_require__(7);\nvar aFunction = __webpack_require__(15);\nvar anInstance = __webpack_require__(87);\nvar classof = __webpack_require__(13);\nvar inspectSource = __webpack_require__(23);\nvar iterate = __webpack_require__(49);\nvar checkCorrectnessOfIteration = __webpack_require__(91);\nvar speciesConstructor = __webpack_require__(51);\nvar task = __webpack_require__(52).set;\nvar microtask = __webpack_require__(92);\nvar promiseResolve = __webpack_require__(55);\nvar hostReportErrors = __webpack_require__(93);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar InternalStateModule = __webpack_require__(16);\nvar isForced = __webpack_require__(43);\nvar wellKnownSymbol = __webpack_require__(1);\nvar V8_VERSION = __webpack_require__(94);\n\nvar SPECIES = wellKnownSymbol('species');\nvar PROMISE = 'Promise';\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar PromiseConstructor = NativePromise;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar $fetch = getBuiltIn('fetch');\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\nvar IS_NODE = classof(process) == 'process';\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\nvar FORCED = isForced(PROMISE, function () {\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\n if (!GLOBAL_CORE_JS_PROMISE) {\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (V8_VERSION === 66) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\n }\n // We need Promise#finally in the pure version for preventing prototype pollution\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\n // Detect correctness of subclassing with @@species support\n var promise = PromiseConstructor.resolve(1);\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\n});\n\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\n});\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\n};\n\nvar notify = function (promise, state, isReject) {\n if (state.notified) return;\n state.notified = true;\n var chain = state.reactions;\n microtask(function () {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var index = 0;\n // variable length - can't use forEach\n while (chain.length > index) {\n var reaction = chain[index++];\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n then.call(result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n }\n state.reactions = [];\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(promise, state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (handler = global['on' + name]) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (promise, state) {\n task.call(global, function () {\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (promise, state) {\n task.call(global, function () {\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, promise, state, unwrap) {\n return function (value) {\n fn(promise, state, value, unwrap);\n };\n};\n\nvar internalReject = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(promise, state, true);\n};\n\nvar internalResolve = function (promise, state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (promise === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n then.call(value,\n bind(internalResolve, promise, wrapper, state),\n bind(internalReject, promise, wrapper, state)\n );\n } catch (error) {\n internalReject(promise, wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(promise, state, false);\n }\n } catch (error) {\n internalReject(promise, { done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromiseConstructor, PROMISE);\n aFunction(executor);\n Internal.call(this);\n var state = getInternalState(this);\n try {\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\n } catch (error) {\n internalReject(this, state, error);\n }\n };\n // eslint-disable-next-line no-unused-vars\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: [],\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\n // `Promise.prototype.then` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\n then: function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\n reaction.fail = typeof onRejected == 'function' && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n state.parent = true;\n state.reactions.push(reaction);\n if (state.state != PENDING) notify(this, state, false);\n return reaction.promise;\n },\n // `Promise.prototype.catch` method\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n });\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, promise, state);\n this.reject = bind(internalReject, promise, state);\n };\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && typeof NativePromise == 'function') {\n nativeThen = NativePromise.prototype.then;\n\n // wrap native Promise#then for native async functions\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n nativeThen.call(that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n\n // wrap fetch result\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\n // eslint-disable-next-line no-unused-vars\n fetch: function fetch(input /* , init */) {\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\n }\n });\n }\n}\n\n$({ global: true, wrap: true, forced: FORCED }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n\nPromiseWrapper = getBuiltIn(PROMISE);\n\n// statics\n$({ target: PROMISE, stat: true, forced: FORCED }, {\n // `Promise.reject` method\n // https://tc39.github.io/ecma262/#sec-promise.reject\n reject: function reject(r) {\n var capability = newPromiseCapability(this);\n capability.reject.call(undefined, r);\n return capability.promise;\n }\n});\n\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\n // `Promise.resolve` method\n // https://tc39.github.io/ecma262/#sec-promise.resolve\n resolve: function resolve(x) {\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\n }\n});\n\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\n // `Promise.all` method\n // https://tc39.github.io/ecma262/#sec-promise.all\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n $promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n },\n // `Promise.race` method\n // https://tc39.github.io/ecma262/#sec-promise.race\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapability(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aFunction(C.resolve);\n iterate(iterable, function (promise) {\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 85 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar redefine = __webpack_require__(10);\n\nmodule.exports = function (target, src, options) {\n for (var key in src) redefine(target, key, src[key], options);\n return target;\n};\n\n\n/***/ }),\n/* 86 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar getBuiltIn = __webpack_require__(11);\nvar definePropertyModule = __webpack_require__(9);\nvar wellKnownSymbol = __webpack_require__(1);\nvar DESCRIPTORS = __webpack_require__(8);\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n\n\n/***/ }),\n/* 87 */\n/***/ (function(module, exports) {\n\nmodule.exports = function (it, Constructor, name) {\n if (!(it instanceof Constructor)) {\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\n } return it;\n};\n\n\n/***/ }),\n/* 88 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\nvar Iterators = __webpack_require__(14);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n\n\n/***/ }),\n/* 89 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar classof = __webpack_require__(38);\nvar Iterators = __webpack_require__(14);\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (it != undefined) return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n/***/ }),\n/* 90 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar anObject = __webpack_require__(2);\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch (error) {\n var returnMethod = iterator['return'];\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\n throw error;\n }\n};\n\n\n/***/ }),\n/* 91 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar wellKnownSymbol = __webpack_require__(1);\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line no-throw-literal\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n\n\n/***/ }),\n/* 92 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\nvar classof = __webpack_require__(13);\nvar macrotask = __webpack_require__(52).set;\nvar IS_IOS = __webpack_require__(53);\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar process = global.process;\nvar Promise = global.Promise;\nvar IS_NODE = classof(process) == 'process';\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // Node.js\n if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n } else if (MutationObserver && !IS_IOS) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n then = promise.then;\n notify = function () {\n then.call(promise, flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessag\n // - onreadystatechange\n // - setTimeout\n } else {\n notify = function () {\n // strange IE + webpack dev server bug - use .call(global)\n macrotask.call(global, flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n\n\n/***/ }),\n/* 93 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length === 1 ? console.error(a) : console.error(a, b);\n }\n};\n\n\n/***/ }),\n/* 94 */\n/***/ (function(module, exports, __webpack_require__) {\n\nvar global = __webpack_require__(0);\nvar userAgent = __webpack_require__(54);\n\nvar process = global.process;\nvar versions = process && process.versions;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n version = match[0] + match[1];\n} else if (userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = match[1];\n }\n}\n\nmodule.exports = version && +version;\n\n\n/***/ }),\n/* 95 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar aFunction = __webpack_require__(15);\nvar newPromiseCapabilityModule = __webpack_require__(31);\nvar perform = __webpack_require__(56);\nvar iterate = __webpack_require__(49);\n\n// `Promise.allSettled` method\n// https://github.com/tc39/proposal-promise-allSettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aFunction(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n values.push(undefined);\n remaining++;\n promiseResolve.call(C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (e) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: e };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n\n\n/***/ }),\n/* 96 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\"use strict\";\n\nvar $ = __webpack_require__(17);\nvar IS_PURE = __webpack_require__(12);\nvar NativePromise = __webpack_require__(48);\nvar fails = __webpack_require__(5);\nvar getBuiltIn = __webpack_require__(11);\nvar speciesConstructor = __webpack_require__(51);\nvar promiseResolve = __webpack_require__(55);\nvar redefine = __webpack_require__(10);\n\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\nvar NON_GENERIC = !!NativePromise && fails(function () {\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\n});\n\n// `Promise.prototype.finally` method\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\n 'finally': function (onFinally) {\n var C = speciesConstructor(this, getBuiltIn('Promise'));\n var isFunction = typeof onFinally == 'function';\n return this.then(\n isFunction ? function (x) {\n return promiseResolve(C, onFinally()).then(function () { return x; });\n } : onFinally,\n isFunction ? function (e) {\n return promiseResolve(C, onFinally()).then(function () { throw e; });\n } : onFinally\n );\n }\n});\n\n// patch native Promise.prototype for native async functions\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\n}\n\n\n/***/ }),\n/* 97 */\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\n\n\"use strict\";\n// ESM COMPAT FLAG\n__webpack_require__.r(__webpack_exports__);\n\n// EXPORTS\n__webpack_require__.d(__webpack_exports__, \"add\", function() { return /* binding */ add; });\n__webpack_require__.d(__webpack_exports__, \"done\", function() { return /* binding */ done; });\n__webpack_require__.d(__webpack_exports__, \"toJS\", function() { return /* binding */ toJS; });\n__webpack_require__.d(__webpack_exports__, \"load\", function() { return /* binding */ load; });\n__webpack_require__.d(__webpack_exports__, \"search\", function() { return /* binding */ search; });\n\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\n/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nfunction __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nvar __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nfunction __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nfunction __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nfunction __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nfunction __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nfunction __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nfunction __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nfunction __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nfunction __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nfunction __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nfunction __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nfunction __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nfunction __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nfunction __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nfunction __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nfunction __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nfunction __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nfunction __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nfunction __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nfunction __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\nvar lunr = __webpack_require__(4);\n\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--4-0!./node_modules/babel-loader/lib??ref--4-1!./src/services/SearchWorker.worker.ts\n\n\ntry {\n // tslint:disable-next-line\n __webpack_require__(57); // bundle into worker\n}\ncatch (_) { } // nope\n/* just for better typings */\nvar Worker = /** @class */ (function () {\n function Worker() {\n this.add = add;\n this.done = done;\n this.search = search;\n this.toJS = toJS;\n this.load = load;\n }\n return Worker;\n}());\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\"default\"] = (Worker);\nvar store = [];\nvar resolveIndex = function () {\n throw new Error('Should not be called');\n};\nvar index = new Promise(function (resolve) {\n resolveIndex = resolve;\n});\nlunr[\"tokenizer\"].separator = /\\s+/;\nvar builder = new lunr[\"Builder\"]();\nbuilder.field('title');\nbuilder.field('description');\nbuilder.ref('ref');\nbuilder.pipeline.add(lunr[\"trimmer\"], lunr[\"stopWordFilter\"], lunr[\"stemmer\"]);\nvar expandTerm = function (term) { return '*' + lunr[\"stemmer\"](new lunr[\"Token\"](term, {})) + '*'; };\nfunction add(title, description, meta) {\n var ref = store.push(meta) - 1;\n var item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref: ref\n };\n builder.add(item);\n}\nfunction done() {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n resolveIndex(builder.build());\n return [2 /*return*/];\n });\n });\n}\nfunction toJS() {\n return __awaiter(this, void 0, void 0, function () {\n var _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n _a = {\n store: store\n };\n return [4 /*yield*/, index];\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\n _a)];\n }\n });\n });\n}\nfunction load(state) {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n store = state.store;\n resolveIndex(lunr[\"Index\"].load(state.index));\n return [2 /*return*/];\n });\n });\n}\nfunction search(q, limit) {\n if (limit === void 0) { limit = 0; }\n return __awaiter(this, void 0, void 0, function () {\n var searchResults;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (q.trim().length === 0) {\n return [2 /*return*/, []];\n }\n return [4 /*yield*/, index];\n case 1:\n searchResults = (_a.sent()).query(function (t) {\n q.trim().toLowerCase().split(/\\s+/).forEach(function (term) {\n var exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n return [2 /*return*/, searchResults.map(function (res) { return ({\n meta: store[res.ref],\n score: res.score\n }); })];\n }\n });\n });\n}\n\naddEventListener('message', function (e) {var ref = e.data;var type = ref.type;var method = ref.method;var id = ref.id;var params = ref.params;var f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () { return f.apply(__webpack_exports__, params); });} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\n\n/***/ })\n/******/ ]);\n//# sourceMappingURL=fea68db94dba05b54c01.worker.js.map"])), { name: "[hash].worker.js" }) addMethods(w, methods) return w @@ -7535,12 +7535,12 @@ var ErrorBoundary_ErrorBoundary = /** @class */ (function (_super) { external_react_["createElement"]("pre", null, this.state.error.stack))), external_react_["createElement"]("small", null, " ReDoc Version: ", - "20.2.4"), + "20.2.5"), " ", external_react_["createElement"]("br", null), external_react_["createElement"]("small", null, " Commit: ", - "a058429b")); + "41b28ecc")); } return external_react_["Children"].only(this.props.children); }; @@ -12653,7 +12653,7 @@ var ApiBackTo_ApiBackTo = /** @class */ (function (_super) { color: this.state.backTextColor } }, "OT2 services") : external_react_["createElement"]("span", { style: { color: this.state.backTextColor - } }, "OpenText product"))); + } }, "OpenText products"))); }; ApiBackTo = Object(external_tslib_["__decorate"])([ external_mobx_react_["observer"] diff --git a/bundles/redoc.lib.js.map b/bundles/redoc.lib.js.map index a638c583..06c5be0a 100644 --- a/bundles/redoc.lib.js.map +++ b/bundles/redoc.lib.js.map @@ -1 +1 @@ -{"version":3,"sources":["webpack://Redoc/webpack/universalModuleDefinition","webpack://Redoc/webpack/bootstrap","webpack://Redoc/external \"react\"","webpack://Redoc/external \"tslib\"","webpack://Redoc/external \"mobx-react\"","webpack://Redoc/external \"polished\"","webpack://Redoc/external \"mobx\"","webpack://Redoc/external \"url\"","webpack://Redoc/external \"json-pointer\"","webpack://Redoc/external \"lunr\"","webpack://Redoc/external \"decko\"","webpack://Redoc/external \"react-tabs\"","webpack://Redoc/external \"prismjs\"","webpack://Redoc/external \"undefined\"","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/./node_modules/path-browserify/index.js","webpack://Redoc/external \"prop-types\"","webpack://Redoc/external \"marked\"","webpack://Redoc/./node_modules/process/browser.js","webpack://Redoc/./node_modules/reftools/lib/jptr.js","webpack://Redoc/./node_modules/reftools/lib/clone.js","webpack://Redoc/external \"eventemitter3\"","webpack://Redoc/external \"url-template\"","webpack://Redoc/./node_modules/reftools/lib/isref.js","webpack://Redoc/./node_modules/reftools/lib/recurse.js","webpack://Redoc/external \"mark.js\"","webpack://Redoc/external \"openapi-sampler\"","webpack://Redoc/external \"perfect-scrollbar\"","webpack://Redoc/./node_modules/perfect-scrollbar/css/perfect-scrollbar.css","webpack://Redoc/./node_modules/oas-kit-common/index.js","webpack://Redoc/./node_modules/buffer/index.js","webpack://Redoc/./node_modules/stream-http/lib/capability.js","webpack://Redoc/external \"inherits\"","webpack://Redoc/./node_modules/stream-http/lib/response.js","webpack://Redoc/external \"readable-stream\"","webpack://Redoc/./src/services/SearchWorker.worker.ts","webpack://Redoc/external \"slugify\"","webpack://Redoc/external \"styled-components\"","webpack://Redoc/external \"json-schema-ref-parser\"","webpack://Redoc/./node_modules/swagger2openapi/index.js","webpack://Redoc/./node_modules/memoize-one/dist/memoize-one.cjs.js","webpack://Redoc/external \"react-dropdown\"","webpack://Redoc/external \"dompurify\"","webpack://Redoc/external \"classnames\"","webpack://Redoc/external \"call-me-maybe\"","webpack://Redoc/./node_modules/oas-resolver/index.js","webpack://Redoc/./node_modules/reftools/lib/dereference.js","webpack://Redoc/./node_modules/oas-schema-walker/index.js","webpack://Redoc/./node_modules/swagger2openapi/lib/statusCodes.js","webpack://Redoc/./node_modules/stream-http/index.js","webpack://Redoc/./node_modules/stream-http/lib/request.js","webpack://Redoc/external \"base64-js\"","webpack://Redoc/external \"ieee754\"","webpack://Redoc/external \"isarray\"","webpack://Redoc/external \"to-arraybuffer\"","webpack://Redoc/external \"xtend\"","webpack://Redoc/external \"builtin-status-codes\"","webpack://Redoc/external \"prismjs/components/prism-bash.js\"","webpack://Redoc/external \"prismjs/components/prism-c.js\"","webpack://Redoc/external \"prismjs/components/prism-clike.js\"","webpack://Redoc/external \"prismjs/components/prism-coffeescript.js\"","webpack://Redoc/external \"prismjs/components/prism-cpp.js\"","webpack://Redoc/external \"prismjs/components/prism-csharp.js\"","webpack://Redoc/external \"prismjs/components/prism-go.js\"","webpack://Redoc/external \"prismjs/components/prism-http.js\"","webpack://Redoc/external \"prismjs/components/prism-java.js\"","webpack://Redoc/external \"prismjs/components/prism-lua.js\"","webpack://Redoc/external \"prismjs/components/prism-markup-templating.js\"","webpack://Redoc/external \"prismjs/components/prism-markup.js\"","webpack://Redoc/external \"prismjs/components/prism-objectivec.js\"","webpack://Redoc/external \"prismjs/components/prism-perl.js\"","webpack://Redoc/external \"prismjs/components/prism-php.js\"","webpack://Redoc/external \"prismjs/components/prism-python.js\"","webpack://Redoc/external \"prismjs/components/prism-ruby.js\"","webpack://Redoc/external \"prismjs/components/prism-scala.js\"","webpack://Redoc/external \"prismjs/components/prism-sql.js\"","webpack://Redoc/external \"prismjs/components/prism-swift.js\"","webpack://Redoc/./src/services/SearchWorker.worker.ts?2393","webpack://Redoc/../src/rpc-wrapper.js","webpack://Redoc/external \"core-js/es/promise\"","webpack://Redoc/./node_modules/css-loader/dist/runtime/api.js","webpack://Redoc/external \"stickyfill\"","webpack://Redoc/./src/theme.ts","webpack://Redoc/./src/utils/dom.ts","webpack://Redoc/./src/utils/helpers.ts","webpack://Redoc/./src/services/Labels.ts","webpack://Redoc/./src/services/RedocNormalizedOptions.ts","webpack://Redoc/./src/styled-components.ts","webpack://Redoc/./src/components/ErrorBoundary.tsx","webpack://Redoc/./src/components/Loading/Spinner.svg.tsx","webpack://Redoc/./src/components/Loading/Loading.tsx","webpack://Redoc/./src/utils/loadAndBundleSpec.ts","webpack://Redoc/./src/utils/JsonPointer.ts","webpack://Redoc/./src/utils/openapi.ts","webpack://Redoc/./src/utils/highlight.ts","webpack://Redoc/./src/utils/decorators.ts","webpack://Redoc/./src/utils/debug.ts","webpack://Redoc/./src/utils/memoize.ts","webpack://Redoc/./src/utils/index.ts","webpack://Redoc/./src/services/HistoryService.ts","webpack://Redoc/./src/services/MarkerService.ts","webpack://Redoc/./src/services/MarkdownRenderer.ts","webpack://Redoc/./src/services/models/ApiInfo.ts","webpack://Redoc/./src/services/models/SecuritySchemes.ts","webpack://Redoc/./src/services/OpenAPIParser.ts","webpack://Redoc/./src/services/SpecStore.ts","webpack://Redoc/./src/services/models/Group.model.ts","webpack://Redoc/./src/services/models/SecurityRequirement.ts","webpack://Redoc/./src/services/models/Schema.ts","webpack://Redoc/./src/services/models/Field.ts","webpack://Redoc/./src/services/models/Example.ts","webpack://Redoc/./src/services/models/MediaType.ts","webpack://Redoc/./src/services/models/MediaContent.ts","webpack://Redoc/./src/services/models/RequestBody.ts","webpack://Redoc/./src/services/models/Response.ts","webpack://Redoc/./src/services/models/Operation.ts","webpack://Redoc/./src/services/models/index.ts","webpack://Redoc/./src/services/MenuBuilder.ts","webpack://Redoc/./src/services/MenuStore.ts","webpack://Redoc/./src/services/ScrollService.ts","webpack://Redoc/./src/services/SearchStore.ts","webpack://Redoc/./src/common-elements/panels.ts","webpack://Redoc/./src/common-elements/headers.ts","webpack://Redoc/./src/components/StoreBuilder.ts","webpack://Redoc/./src/common-elements/linkify.tsx","webpack://Redoc/./src/common-elements/shelfs.tsx","webpack://Redoc/./src/common-elements/mixins.ts","webpack://Redoc/./src/common-elements/fields-layout.ts","webpack://Redoc/./src/common-elements/schema.ts","webpack://Redoc/./src/common-elements/dropdown.ts","webpack://Redoc/./src/common-elements/tabs.ts","webpack://Redoc/./src/common-elements/PrismDiv.tsx","webpack://Redoc/./src/common-elements/samples.tsx","webpack://Redoc/./src/components/OptionsProvider.ts","webpack://Redoc/./src/common-elements/perfect-scrollbar.tsx","webpack://Redoc/./src/common-elements/index.ts","webpack://Redoc/./src/components/DropdownOrLabel/DropdownOrLabel.tsx","webpack://Redoc/./src/components/Markdown/styled.elements.tsx","webpack://Redoc/./src/components/Markdown/SanitizedMdBlock.tsx","webpack://Redoc/./src/components/Markdown/Markdown.tsx","webpack://Redoc/./src/common-elements/Tooltip.tsx","webpack://Redoc/./src/services/ClipboardService.ts","webpack://Redoc/./src/common-elements/CopyButtonWrapper.tsx","webpack://Redoc/./src/utils/jsonToHtml.ts","webpack://Redoc/./src/components/JsonViewer/style.ts","webpack://Redoc/./src/components/JsonViewer/JsonViewer.tsx","webpack://Redoc/./src/components/SourceCode/SourceCode.tsx","webpack://Redoc/./src/components/PayloadSamples/ExampleValue.tsx","webpack://Redoc/./src/components/PayloadSamples/exernalExampleHook.ts","webpack://Redoc/./src/components/PayloadSamples/Example.tsx","webpack://Redoc/./src/components/PayloadSamples/styled.elements.ts","webpack://Redoc/./src/components/PayloadSamples/MediaTypeSamples.tsx","webpack://Redoc/./src/common-elements/fields.ts","webpack://Redoc/./src/components/ExternalDocumentation/ExternalDocumentation.tsx","webpack://Redoc/./src/components/Fields/EnumValues.tsx","webpack://Redoc/./src/components/Fields/Extensions.tsx","webpack://Redoc/./src/components/Fields/FieldContstraints.tsx","webpack://Redoc/./src/components/Fields/FieldDetail.tsx","webpack://Redoc/./src/components/Fields/FieldDetails.tsx","webpack://Redoc/./src/components/Schema/ArraySchema.tsx","webpack://Redoc/./src/components/Fields/Field.tsx","webpack://Redoc/./src/components/Schema/DiscriminatorDropdown.tsx","webpack://Redoc/./src/components/Schema/ObjectSchema.tsx","webpack://Redoc/./src/components/Schema/OneOfSchema.tsx","webpack://Redoc/./src/components/Schema/Schema.tsx","webpack://Redoc/./src/components/Schema/index.ts","webpack://Redoc/./src/components/SchemaDefinition/SchemaDefinition.tsx","webpack://Redoc/./src/components/SecuritySchemes/SecuritySchemes.tsx","webpack://Redoc/./src/services/AppStore.ts","webpack://Redoc/./src/services/index.ts","webpack://Redoc/./src/components/ApiInfo/styled.elements.ts","webpack://Redoc/./src/components/ApiInfo/ApiInfo.tsx","webpack://Redoc/./src/components/ApiInfo/index.ts","webpack://Redoc/./src/components/ApiBackTo/styled.elements.tsx","webpack://Redoc/./src/components/ApiBackTo/ApiBackTo.tsx","webpack://Redoc/./src/components/SideMenu/styled.elements.ts","webpack://Redoc/./src/components/SideMenu/MenuItems.tsx","webpack://Redoc/./src/components/SideMenu/MenuItem.tsx","webpack://Redoc/./src/components/SearchBox/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/SearchBox.tsx","webpack://Redoc/./src/components/SideMenu/SideMenu.tsx","webpack://Redoc/./src/components/StickySidebar/ChevronSvg.tsx","webpack://Redoc/./src/components/StickySidebar/StickyResponsiveSidebar.tsx","webpack://Redoc/./src/components/Redoc/styled.elements.tsx","webpack://Redoc/./src/components/Redoc/Redoc.tsx","webpack://Redoc/./src/components/RedocStandalone.tsx","webpack://Redoc/./src/components/ApiLogo/styled.elements.tsx","webpack://Redoc/./src/components/ApiLogo/ApiLogo.tsx","webpack://Redoc/./src/components/Markdown/AdvancedMarkdown.tsx","webpack://Redoc/./src/components/SelectOnClick/SelectOnClick.tsx","webpack://Redoc/./src/components/Endpoint/styled.elements.ts","webpack://Redoc/./src/components/Endpoint/Endpoint.tsx","webpack://Redoc/./src/components/MediaTypeSwitch/MediaTypesSwitch.tsx","webpack://Redoc/./src/components/PayloadSamples/PayloadSamples.tsx","webpack://Redoc/./src/components/RequestSamples/RequestSamples.tsx","webpack://Redoc/./src/services/Constants.ts","webpack://Redoc/./src/components/RightPanelContent/ContentPanel.tsx","webpack://Redoc/./src/components/RightPanelContent/OperationPanel.tsx","webpack://Redoc/./src/components/Parameters/ParametersGroup.tsx","webpack://Redoc/./src/components/Parameters/Parameters.tsx","webpack://Redoc/./src/components/Responses/ResponseTitle.tsx","webpack://Redoc/./src/components/Responses/styled.elements.ts","webpack://Redoc/./src/components/Responses/ResponseHeaders.tsx","webpack://Redoc/./src/components/Responses/ResponseDetails.tsx","webpack://Redoc/./src/components/Responses/Response.tsx","webpack://Redoc/./src/components/Responses/ResponsesList.tsx","webpack://Redoc/./src/components/SecurityRequirement/SecurityRequirement.tsx","webpack://Redoc/./src/components/SideMenu/index.ts","webpack://Redoc/./src/components/Operation/Operation.tsx","webpack://Redoc/./src/components/ContentItems/ContentItems.tsx","webpack://Redoc/./src/components/JsonViewer/index.tsx","webpack://Redoc/./src/components/ResponseSamples/ResponseSamples.tsx","webpack://Redoc/./src/components/index.ts","webpack://Redoc/./src/index.ts"],"names":["addMethods","worker","methods","c","callbacks","addEventListener","e","d","data","type","id","f","error","Object","assign","Error","message","result","evt","document","createEvent","initEvent","method","params","dispatchEvent","forEach","Promise","a","b","postMessage"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,kC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,qC;;;;;;ACAA,iC;;;;;;ACAA,gC;;;;;;ACAA,yC;;;;;;ACAA,iC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,oC;;;;;;ACAA,2B;;;;;;ACAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;AC7SA,uC;;;;;;ACAA,mC;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLzB;AAEb;;;;EAIE;AACF,SAAS,QAAQ,CAAC,CAAC;IACf,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;EAIE;AACF,SAAS,UAAU,CAAC,CAAC;IACjB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAA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C5B,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,IAAI;IACV,uBAAuB,EAAE,uBAAuB;IAChD,eAAe,EAAE,eAAe;IAChC,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,WAAW;CAE3B,CAAC;;;;;;;;;ACvIF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,EAAW;AAChC,cAAc,mBAAO,CAAC,EAAS;AAC/B,cAAc,mBAAO,CAAC,EAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACxEA,qC;;;;;;ACAA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,aAAa,mBAAO,CAAC,EAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,wCAAwC,eAAe,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA,KAAK;AACL;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;AACA;AACA;;;;;;;;AC/NA,4C;;;;;;;;;;;;;;;;;;ACA6B;AAE7B,IAAI;IACF,2BAA2B;IAC3B,mBAAO,CAAC,EAAoB,CAAC,CAAC,CAAC,qBAAqB;CAErD;AAAC,OAAO,CAAC,EAAE,GAAE,CAAC,OAAO;AAEtB,6BAA6B;AAG7B;IAAA;QACE,QAAG,GAAe,GAAG,CAAC;QACtB,SAAI,GAAG,IAAI,CAAC;QACZ,WAAM,GAAkB,MAAM,CAAC;QAC/B,SAAI,GAAG,IAAI,CAAC;QACZ,SAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAAD,aAAC;AAAD,CAAC;;AAUD,IAAI,KAAK,GAAU,EAAE,CAAC;AAEtB,IAAI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;AAEA;;AAEA;;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,C;;;;;;;ACpFA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,eAAe,mBAAO,CAAC,EAAY;AACnC,aAAa,mBAAO,CAAC,EAAiB;AACtC,oBAAoB,mBAAO,CAAC,EAAgB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,2CAA2C;AAC3C,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;A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","file":"redoc.lib.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Redoc\"] = factory();\n\telse\n\t\troot[\"Redoc\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 82);\n","module.exports = require(\"react\");","module.exports = require(\"tslib\");","module.exports = require(\"mobx-react\");","module.exports = require(\"polished\");","module.exports = require(\"mobx\");","module.exports = require(\"url\");","module.exports = require(\"json-pointer\");","module.exports = require(\"lunr\");","module.exports = require(\"decko\");","module.exports = require(\"react-tabs\");","module.exports = require(\"prismjs\");","module.exports = undefined;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\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\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","module.exports = require(\"prop-types\");","module.exports = require(\"marked\");","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\n/**\n* escapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to escape\n* @return the escaped string\n*/\nfunction jpescape(s) {\n return s.replace(/\\~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n* unescapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to unescape\n* @return the unescaped string\n*/\nfunction jpunescape(s) {\n return s.replace(/\\~1/g, '/').replace(/~0/g, '~');\n}\n\n// JSON Pointer specification: http://tools.ietf.org/html/rfc6901\n\n/**\n* from obj, return the property with a JSON Pointer prop, optionally setting it\n* to newValue\n* @param obj the object to point into\n* @param prop the JSON Pointer or JSON Reference\n* @param newValue optional value to set the property to\n* @return the found property, or false\n*/\nfunction jptr(obj, prop, newValue) {\n if (typeof obj === 'undefined') return false;\n if (!prop || typeof prop !== 'string' || (prop === '#')) return (typeof newValue !== 'undefined' ? newValue : obj);\n\n if (prop.indexOf('#')>=0) {\n let parts = prop.split('#');\n let uri = parts[0];\n if (uri) return false; // we do internal resolution only\n prop = parts[1];\n prop = decodeURIComponent(prop.slice(1).split('+').join(' '));\n }\n if (prop.startsWith('/')) prop = prop.slice(1);\n\n let components = prop.split('/');\n for (let i=0;i 0) ? components[i-1] : ''; // backtrack to indexed property name\n }\n\n if ((index != -1) || obj.hasOwnProperty(components[i])) {\n if (index >= 0) {\n if (setAndLast) {\n obj[index] = newValue;\n }\n obj = obj[index];\n }\n else if (index === -2) {\n if (setAndLast) {\n if (Array.isArray(obj)) {\n obj.push(newValue);\n }\n return newValue;\n }\n else return undefined;\n }\n else {\n if (setAndLast) {\n obj[components[i]] = newValue;\n }\n obj = obj[components[i]];\n }\n }\n else {\n if ((typeof newValue !== 'undefined') && (typeof obj === 'object') &&\n (!Array.isArray(obj))) {\n obj[components[i]] = (setAndLast ? newValue : ((components[i+1] === '0' || components[i+1] === '-') ? [] : {}));\n obj = obj[components[i]];\n }\n else return false;\n }\n }\n return obj;\n}\n\nmodule.exports = {\n jptr : jptr,\n jpescape : jpescape,\n jpunescape : jpunescape\n};\n","'use strict';\n\n/**\n* a collection of cloning functions\n*/\n\n/**\n* a no-op placeholder which returns the given object unchanged\n* useful for when a clone function needs to be passed but cloning is not\n* required\n* @param obj the input object\n* @return the input object, unchanged\n*/\nfunction nop(obj) {\n return obj;\n}\n\n/**\n* clones the given object using JSON.parse and JSON.stringify\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n* clones the given object's properties shallowly, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction shallowClone(obj) {\n let result = {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p)) {\n result[p] = obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties deeply, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction deepClone(obj) {\n let result = Array.isArray(obj) ? [] : {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p) || Array.isArray(obj)) {\n result[p] = (typeof obj[p] === 'object') ? deepClone(obj[p]) : obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties shallowly, using Object.assign\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction fastClone(obj) {\n return Object.assign({},obj);\n}\n\n/**\n* Source: stackoverflow http://bit.ly/2A1Kha6\n*/\n\nfunction circularClone(obj, hash) {\n if (!hash) hash = new WeakMap();\n // Do not try to clone primitives or functions\n if (Object(obj) !== obj || obj instanceof Function) return obj;\n if (hash.has(obj)) return hash.get(obj); // Cyclic reference\n try { // Try to run constructor (without arguments, as we don't know them)\n var result = new obj.constructor();\n } catch(e) { // Constructor failed, create object without running the constructor\n result = Object.create(Object.getPrototypeOf(obj));\n }\n // Optional: support for some standard constructors (extend as desired)\n /*if (obj instanceof Map)\n Array.from(obj, ([key, val]) => result.set(circularClone(key, hash),\n circularClone(val, hash)) );\n else if (obj instanceof Set)\n Array.from(obj, (key) => result.add(circularClone(key, hash)) );\n */\n // Register in hash\n hash.set(obj, result);\n // Clone and assign enumerable own properties recursively\n return Object.assign(result, ...Object.keys(obj).map (\n key => ({ [key]: circularClone(obj[key], hash) }) ));\n}\n\nmodule.exports = {\n nop : nop,\n clone : clone,\n shallowClone : shallowClone,\n deepClone : deepClone,\n fastClone : fastClone,\n circularClone : circularClone\n};\n\n","module.exports = require(\"eventemitter3\");","module.exports = require(\"url-template\");","'use strict';\n\nfunction isRef(obj,key) {\n return ((key === '$ref') && (!!obj && typeof obj[key] === 'string'));\n}\n\nmodule.exports = {\n isRef: isRef\n};\n\n","'use strict';\n\nconst jpescape = require('./jptr.js').jpescape;\n\nfunction defaultState() {\n return {\n path: '#',\n depth: 0,\n pkey: '',\n parent: {},\n payload: {},\n seen: new WeakMap(),\n identity: false,\n identityDetection: false\n };\n}\n\n/**\n* recurses through the properties of an object, given an optional starting state\n* anything you pass in state.payload is passed to the callback each time\n* @param object the object to recurse through\n* @param state optional starting state, can be set to null or {}\n* @param callback the function which receives object,key,state on each property\n*/\nfunction recurse(object, state, callback) {\n if (!state) state = {depth:0};\n if (!state.depth) {\n state = Object.assign({},defaultState(),state);\n }\n if (typeof object !== 'object') return;\n let oPath = state.path;\n for (let key in object) {\n state.key = key;\n state.path = state.path + '/' + encodeURIComponent(jpescape(key));\n state.identityPath = state.seen.get(object[key]);\n state.identity = (typeof state.identityPath !== 'undefined');\n if (object.hasOwnProperty(key)) {\n callback(object, key, state);\n }\n if ((typeof object[key] === 'object') && (!state.identity)) {\n if (state.identityDetection && !Array.isArray(object[key]) && object[key] !== null) {\n state.seen.set(object[key],state.path);\n }\n let newState = {};\n newState.parent = object;\n newState.path = state.path;\n newState.depth = state.depth ? state.depth+1 : 1;\n newState.pkey = key;\n newState.payload = state.payload;\n newState.seen = state.seen;\n newState.identity = false;\n newState.identityDetection = state.identityDetection;\n recurse(object[key], newState, callback);\n }\n state.path = oPath;\n }\n}\n\nmodule.exports = {\n recurse : recurse\n};\n\n","module.exports = require(\"mark.js\");","module.exports = require(\"openapi-sampler\");","module.exports = require(\"perfect-scrollbar\");","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/*\\n * Container style\\n */\\n.ps {\\n overflow: hidden !important;\\n overflow-anchor: none;\\n -ms-overflow-style: none;\\n touch-action: auto;\\n -ms-touch-action: auto;\\n}\\n\\n/*\\n * Scrollbar rail styles\\n */\\n.ps__rail-x {\\n display: none;\\n opacity: 0;\\n transition: background-color .2s linear, opacity .2s linear;\\n -webkit-transition: background-color .2s linear, opacity .2s linear;\\n height: 15px;\\n /* there must be 'bottom' or 'top' for ps__rail-x */\\n bottom: 0px;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps__rail-y {\\n display: none;\\n opacity: 0;\\n transition: background-color .2s linear, opacity .2s linear;\\n -webkit-transition: background-color .2s linear, opacity .2s linear;\\n width: 15px;\\n /* there must be 'right' or 'left' for ps__rail-y */\\n right: 0;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps--active-x > .ps__rail-x,\\n.ps--active-y > .ps__rail-y {\\n display: block;\\n background-color: transparent;\\n}\\n\\n.ps:hover > .ps__rail-x,\\n.ps:hover > .ps__rail-y,\\n.ps--focus > .ps__rail-x,\\n.ps--focus > .ps__rail-y,\\n.ps--scrolling-x > .ps__rail-x,\\n.ps--scrolling-y > .ps__rail-y {\\n opacity: 0.6;\\n}\\n\\n.ps .ps__rail-x:hover,\\n.ps .ps__rail-y:hover,\\n.ps .ps__rail-x:focus,\\n.ps .ps__rail-y:focus,\\n.ps .ps__rail-x.ps--clicking,\\n.ps .ps__rail-y.ps--clicking {\\n background-color: #eee;\\n opacity: 0.9;\\n}\\n\\n/*\\n * Scrollbar thumb styles\\n */\\n.ps__thumb-x {\\n background-color: #aaa;\\n border-radius: 6px;\\n transition: background-color .2s linear, height .2s ease-in-out;\\n -webkit-transition: background-color .2s linear, height .2s ease-in-out;\\n height: 6px;\\n /* there must be 'bottom' for ps__thumb-x */\\n bottom: 2px;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps__thumb-y {\\n background-color: #aaa;\\n border-radius: 6px;\\n transition: background-color .2s linear, width .2s ease-in-out;\\n -webkit-transition: background-color .2s linear, width .2s ease-in-out;\\n width: 6px;\\n /* there must be 'right' for ps__thumb-y */\\n right: 2px;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps__rail-x:hover > .ps__thumb-x,\\n.ps__rail-x:focus > .ps__thumb-x,\\n.ps__rail-x.ps--clicking .ps__thumb-x {\\n background-color: #999;\\n height: 11px;\\n}\\n\\n.ps__rail-y:hover > .ps__thumb-y,\\n.ps__rail-y:focus > .ps__thumb-y,\\n.ps__rail-y.ps--clicking .ps__thumb-y {\\n background-color: #999;\\n width: 11px;\\n}\\n\\n/* MS supports */\\n@supports (-ms-overflow-style: none) {\\n .ps {\\n overflow: auto !important;\\n }\\n}\\n\\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\\n .ps {\\n overflow: auto !important;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","'use strict';\n\nconst sjs = require('safe-json-stringify');\n\nconst colour = process.env.NODE_DISABLE_COLORS ?\n { red: '', yellow: '', green: '', normal: '' } :\n { red: '\\x1b[31m', yellow: '\\x1b[33;1m', green: '\\x1b[32m', normal: '\\x1b[0m' };\n\nfunction uniqueOnly(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nfunction hasDuplicates(array) {\n return (new Set(array)).size !== array.length;\n}\n\nfunction allSame(array) {\n return (new Set(array)).size <= 1;\n}\n\nfunction deepEquals(obj1, obj2) {\n function _equals(obj1, obj2) {\n return sjs.stringify(obj1) === sjs.stringify(Object.assign({}, obj1, obj2));\n }\n return _equals(obj1, obj2) && _equals(obj2, obj1);\n}\n\nfunction compressArray(arr) {\n let result = [];\n for (let candidate of arr) {\n let dupe = result.find(function(e,i,a){\n return deepEquals(e,candidate);\n });\n if (!dupe) result.push(candidate);\n }\n return result;\n}\n\nfunction distinctArray(arr) {\n return (arr.length === compressArray(arr).length);\n}\n\nfunction firstDupe(arr) {\n return arr.find(function(e,i,a){\n return arr.indexOf(e)\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","module.exports = require(\"inherits\");","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","module.exports = require(\"readable-stream\");","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {} // nope\n\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\n\nlet resolveIndex: (v: lunr.Index) => void = () => {\n throw new Error('Should not be called');\n};\n\nconst index: Promise = new Promise(resolve => {\n resolveIndex = resolve;\n});\nlunr.tokenizer.separator = /\\s+/;\nconst builder = new lunr.Builder();\nbuilder.field('title');\nbuilder.field('description');\nbuilder.ref('ref');\nbuilder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}","module.exports = require(\"slugify\");","module.exports = require(\"styled-components\");","module.exports = require(\"json-schema-ref-parser\");","// @ts-check\n'use strict';\n\nconst fs = require('fs');\nconst url = require('url');\nconst pathlib = require('path');\n\nconst maybe = require('call-me-maybe');\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js');\nconst resolveInternal = jptr.jptr;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst clone = require('reftools/lib/clone.js').clone;\nconst cclone = require('reftools/lib/clone.js').circularClone;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst resolver = require('oas-resolver');\nconst sw = require('oas-schema-walker');\nconst common = require('oas-kit-common');\n\nconst statusCodes = require('./lib/statusCodes.js').statusCodes;\n\nconst ourVersion = require('./package.json').version;\n\n// TODO handle specification-extensions with plugins?\n\nconst targetVersion = '3.0.0';\nlet componentNames; // initialised in main\n\nclass S2OError extends Error {\n constructor(message) {\n super(message);\n this.name = 'S2OError';\n }\n}\n\nfunction throwError(message, options) {\n let err = new S2OError(message);\n err.options = options;\n if (options.promise) {\n options.promise.reject(err);\n }\n else {\n throw err;\n }\n}\n\nfunction throwOrWarn(message, container, options) {\n if (options.warnOnly) {\n container[options.warnProperty||'x-s2o-warning'] = message;\n }\n else {\n throwError(message, options);\n }\n}\n\nfunction fixUpSubSchema(schema,parent,options) {\n if (schema.discriminator && typeof schema.discriminator === 'string') {\n schema.discriminator = { propertyName: schema.discriminator };\n }\n if (schema.items && Array.isArray(schema.items)) {\n if (schema.items.length === 0) {\n schema.items = {};\n }\n else if (schema.items.length === 1) {\n schema.items = schema.items[0];\n }\n else schema.items = { anyOf: schema.items };\n }\n\n if (schema.type && Array.isArray(schema.type)) {\n if (options.patch) {\n if (schema.type.length === 0) {\n delete schema.type;\n }\n else {\n if (!schema.oneOf) schema.oneOf = [];\n for (let type of schema.type) {\n let newSchema = {};\n if (type === 'null') {\n schema.nullable = true;\n }\n else {\n newSchema.type = type;\n for (let prop of common.arrayProperties) {\n if (typeof schema.prop !== 'undefined') {\n newSchema[prop] = schema[prop];\n delete schema[prop];\n }\n }\n }\n if (newSchema.type) {\n schema.oneOf.push(newSchema);\n }\n }\n delete schema.type;\n if (schema.oneOf.length === 0) {\n delete schema.oneOf; // means was just null => nullable\n }\n else if (schema.oneOf.length < 2) {\n schema.type = schema.oneOf[0].type;\n if (Object.keys(schema.oneOf[0]).length > 1) {\n throwOrWarn('Lost properties from oneOf',schema,options);\n }\n delete schema.oneOf;\n }\n }\n // do not else this\n if (schema.type && Array.isArray(schema.type) && schema.type.length === 1) {\n schema.type = schema.type[0];\n }\n }\n else {\n throwError('(Patchable) schema type must not be an array', options);\n }\n }\n\n if (schema.type && schema.type === 'null') {\n delete schema.type;\n schema.nullable = true;\n }\n if ((schema.type === 'array') && (!schema.items)) {\n schema.items = {};\n }\n if (typeof schema.required === 'boolean') {\n if (schema.required && schema.name) {\n if (typeof parent.required === 'undefined') {\n parent.required = [];\n }\n if (Array.isArray(parent.required)) parent.required.push(schema.name);\n }\n delete schema.required;\n }\n\n // TODO if we have a nested properties (object inside an object) and the\n // *parent* type is not set, force it to object\n // TODO if default is set but type is not set, force type to typeof default\n\n if (schema.xml && typeof schema.xml.namespace === 'string') {\n if (!schema.xml.namespace) delete schema.xml.namespace;\n }\n}\n\nfunction fixUpSubSchemaExtensions(schema,parent) {\n if (schema[\"x-required\"] && Array.isArray(schema[\"x-required\"])) {\n if (!schema.required) schema.required = [];\n schema.required = schema.required.concat(schema[\"x-required\"]);\n delete schema[\"x-required\"];\n }\n if (schema[\"x-anyOf\"]) {\n schema.anyOf = schema[\"x-anyOf\"];\n delete schema[\"x-anyOf\"];\n }\n if (schema[\"x-oneOf\"]) {\n schema.oneOf = schema[\"x-oneOf\"];\n delete schema[\"x-oneOf\"];\n }\n if (schema[\"x-not\"]) {\n schema.not = schema[\"x-not\"];\n delete schema[\"x-not\"];\n }\n if (typeof schema[\"x-nullable\"] === 'boolean') {\n schema.nullable = schema[\"x-nullable\"];\n delete schema[\"x-nullable\"];\n }\n if ((typeof schema[\"x-discriminator\"] === 'object') && (typeof schema[\"x-discriminator\"].propertyName === 'string')) {\n schema.discriminator = schema[\"x-discriminator\"];\n delete schema[\"x-discriminator\"];\n for (let entry in schema.discriminator.mapping) {\n let schemaOrRef = schema.discriminator.mapping[entry];\n if (schemaOrRef.startsWith('#/definitions/')) {\n schema.discriminator.mapping[entry] = schemaOrRef.replace('#/definitions/','#/components/schemas/');\n }\n }\n }\n}\n\nfunction fixUpSchema(schema,options) {\n sw.walkSchema(schema,{},{},function(schema,parent,state){\n fixUpSubSchemaExtensions(schema,parent);\n fixUpSubSchema(schema,parent,options);\n });\n}\n\nfunction getMiroComponentName(ref) {\n if (ref.indexOf('#')>=0) {\n ref = ref.split('#')[1].split('/').pop();\n }\n else {\n ref = ref.split('/').pop().split('.')[0];\n }\n return encodeURIComponent(common.sanitise(ref));\n}\n\nfunction fixupRefs(obj, key, state) {\n let options = state.payload.options;\n if (isRef(obj,key)) {\n if (obj[key].startsWith('#/components/')) {\n // no-op\n }\n else if (obj[key] === '#/consumes') {\n // people are *so* creative\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.consumes);\n }\n else if (obj[key] === '#/produces') {\n // and by creative, I mean devious\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.produces);\n }\n else if (obj[key].startsWith('#/definitions/')) {\n //only the first part of a schema component name must be sanitised\n let keys = obj[key].replace('#/definitions/', '').split('/');\n const ref = jptr.jpunescape(keys[0]);\n\n let newKey = componentNames.schemas[decodeURIComponent(ref)]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n else if (obj[key].startsWith('#/parameters/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/parameters/' + common.sanitise(obj[key].replace('#/parameters/', ''));\n }\n else if (obj[key].startsWith('#/responses/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/responses/' + common.sanitise(obj[key].replace('#/responses/', ''));\n }\n else if (obj[key].startsWith('#')) {\n // fixes up direct $refs or those created by resolvers\n let target = clone(jptr.jptr(options.openapi,obj[key]));\n if (target === false) throwOrWarn('direct $ref not found '+obj[key],obj,options)\n else if (options.refmap[obj[key]]) {\n obj[key] = options.refmap[obj[key]];\n }\n else {\n // we use a heuristic to determine what kind of thing is being referenced\n let oldRef = obj[key];\n oldRef = oldRef.replace('/properties/headers/','');\n oldRef = oldRef.replace('/properties/responses/','');\n oldRef = oldRef.replace('/properties/parameters/','');\n oldRef = oldRef.replace('/properties/schemas/','');\n let type = 'schemas';\n let schemaIndex = oldRef.lastIndexOf('/schema');\n type = (oldRef.indexOf('/headers/')>schemaIndex) ? 'headers' :\n ((oldRef.indexOf('/responses/')>schemaIndex) ? 'responses' :\n ((oldRef.indexOf('/example')>schemaIndex) ? 'examples' :\n ((oldRef.indexOf('/x-')>schemaIndex) ? 'extensions' :\n ((oldRef.indexOf('/parameters/')>schemaIndex) ? 'parameters' : 'schemas'))));\n\n // non-body/form parameters have not moved in the overall structure (like responses)\n // but extracting the requestBodies can cause the *number* of parameters to change\n\n if (type === 'schemas') {\n fixUpSchema(target,options);\n }\n\n if ((type !== 'responses') && (type !== 'extensions')) {\n let prefix = type.substr(0,type.length-1);\n if ((prefix === 'parameter') && target.name && (target.name === common.sanitise(target.name))) {\n prefix = encodeURIComponent(target.name);\n }\n\n let suffix = 1;\n if (obj['x-miro']) {\n prefix = getMiroComponentName(obj['x-miro']);\n suffix = '';\n }\n\n while (jptr.jptr(options.openapi,'#/components/'+type+'/'+prefix+suffix)) {\n suffix = (suffix === '' ? 2 : ++suffix);\n }\n\n let newRef = '#/components/'+type+'/'+prefix+suffix;\n let refSuffix = '';\n\n if (type === 'examples') {\n target = { value: target };\n refSuffix = '/value';\n }\n\n jptr.jptr(options.openapi,newRef,target);\n options.refmap[obj[key]] = newRef+refSuffix;\n obj[key] = newRef+refSuffix;\n }\n }\n }\n\n delete obj['x-miro'];\n // do this last - rework cases where $ref object has sibling properties\n if (Object.keys(obj).length > 1) {\n const tmpRef = obj[key];\n const inSchema = state.path.indexOf('/schema') >= 0; // not perfect, but in the absence of a reasonably-sized and complete OAS 2.0 parser...\n if (options.refSiblings === 'preserve') {\n // no-op\n }\n else if (inSchema && (options.refSiblings === 'allOf')) {\n delete obj.$ref;\n state.parent[state.pkey] = { allOf: [ { $ref: tmpRef }, obj ]};\n }\n else { // remove, or not 'preserve' and not in a schema\n state.parent[state.pkey] = { $ref: tmpRef };\n }\n }\n\n }\n if ((key === 'x-ms-odata') && (typeof obj[key] === 'string') && (obj[key].startsWith('#/'))) {\n let keys = obj[key].replace('#/definitions/', '').replace('#/components/schemas/','').split('/');\n let newKey = componentNames.schemas[decodeURIComponent(keys[0])]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n}\n\n/*\n* This has to happen as a separate pass because multiple $refs may point\n* through elements of the same path\n*/\nfunction dedupeRefs(openapi, options) {\n for (let ref in options.refmap) {\n jptr.jptr(openapi,ref,{ $ref: options.refmap[ref] });\n }\n}\n\nfunction processSecurity(securityObject) {\n for (let s in securityObject) {\n for (let k in securityObject[s]) {\n let sname = common.sanitise(k);\n if (k != sname) {\n securityObject[s][sname] = securityObject[s][k];\n delete securityObject[s][k];\n }\n }\n }\n}\n\nfunction processSecurityScheme(scheme, options) {\n if (scheme.type === 'basic') {\n scheme.type = 'http';\n scheme.scheme = 'basic';\n }\n if (scheme.type === 'oauth2') {\n let flow = {};\n let flowName = scheme.flow;\n if (scheme.flow === 'application') flowName = 'clientCredentials';\n if (scheme.flow === 'accessCode') flowName = 'authorizationCode';\n if (typeof scheme.authorizationUrl !== 'undefined') flow.authorizationUrl = scheme.authorizationUrl.split('?')[0].trim() || '/';\n if (typeof scheme.tokenUrl === 'string') flow.tokenUrl = scheme.tokenUrl.split('?')[0].trim() || '/';\n flow.scopes = scheme.scopes || {};\n scheme.flows = {};\n scheme.flows[flowName] = flow;\n delete scheme.flow;\n delete scheme.authorizationUrl;\n delete scheme.tokenUrl;\n delete scheme.scopes;\n if (typeof scheme.name !== 'undefined') {\n if (options.patch) {\n delete scheme.name;\n }\n else {\n throwError('(Patchable) oauth2 securitySchemes should not have name property', options);\n }\n }\n }\n}\n\nfunction keepParameters(value) {\n return (value && !value[\"x-s2o-delete\"]);\n}\n\nfunction processHeader(header, options) {\n if (header.$ref) {\n header.$ref = header.$ref.replace('#/responses/', '#/components/responses/');\n }\n else {\n if (header.type && !header.schema) {\n header.schema = {};\n }\n if (header.type) header.schema.type = header.type;\n if (header.items && header.items.type !== 'array') {\n if (header.items.collectionFormat !== header.collectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', header, options);\n }\n delete header.items.collectionFormat;\n }\n if (header.type === 'array') {\n if (header.collectionFormat === 'ssv') {\n throwOrWarn('collectionFormat:ssv is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'pipes') {\n throwOrWarn('collectionFormat:pipes is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'multi') {\n header.explode = true;\n }\n else if (header.collectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', header, options); // not lossless\n header[\"x-collectionFormat\"] = 'tsv';\n }\n else { // 'csv'\n header.style = 'simple';\n }\n delete header.collectionFormat;\n }\n else if (header.collectionFormat) {\n if (options.patch) {\n delete header.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to header.type array', options);\n }\n }\n delete header.type;\n for (let prop of common.parameterTypeProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n for (let prop of common.arrayProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n }\n}\n\nfunction fixParamRef(param, options) {\n if (param.$ref.indexOf('#/parameters/') >= 0) {\n let refComponents = param.$ref.split('#/parameters/');\n param.$ref = refComponents[0] + '#/components/parameters/' + common.sanitise(refComponents[1]);\n }\n if (param.$ref.indexOf('#/definitions/') >= 0) {\n throwOrWarn('Definition used as parameter', param, options);\n }\n}\n\nfunction attachRequestBody(op,options) {\n let newOp = {};\n for (let key of Object.keys(op)) {\n newOp[key] = op[key];\n if (key === 'parameters') {\n newOp.requestBody = {};\n if (options.rbname) newOp[options.rbname] = '';\n }\n }\n newOp.requestBody = {}; // just in case there are no parameters\n return newOp;\n}\n\n/**\n * @returns op, as it may have changed\n */\nfunction processParameter(param, op, path, method, index, openapi, options) {\n let result = {};\n let singularRequestBody = true;\n let originalType;\n\n if (op && op.consumes && (typeof op.consumes === 'string')) {\n if (options.patch) {\n op.consumes = [op.consumes];\n }\n else {\n return throwError('(Patchable) operation.consumes must be an array', options);\n }\n }\n if (!Array.isArray(openapi.consumes)) delete openapi.consumes;\n let consumes = ((op ? op.consumes : null) || (openapi.consumes || [])).filter(common.uniqueOnly);\n\n if (param && param.$ref && (typeof param.$ref === 'string')) {\n // if we still have a ref here, it must be an internal one\n fixParamRef(param, options);\n let ptr = decodeURIComponent(param.$ref.replace('#/components/parameters/', ''));\n let rbody = false;\n let target = openapi.components.parameters[ptr]; // resolves a $ref, must have been sanitised already\n\n if (((!target) || (target[\"x-s2o-delete\"])) && param.$ref.startsWith('#/')) {\n // if it's gone, chances are it's a requestBody component now unless spec was broken\n param[\"x-s2o-delete\"] = true;\n rbody = true;\n }\n\n // shared formData parameters from swagger or path level could be used in any combination.\n // we dereference all op.requestBody's then hash them and pull out common ones later\n\n if (rbody) {\n let ref = param.$ref;\n let newParam = resolveInternal(openapi, param.$ref);\n if (!newParam && ref.startsWith('#/')) {\n throwOrWarn('Could not resolve reference ' + ref, param, options);\n }\n else {\n if (newParam) param = newParam; // preserve reference\n }\n }\n }\n\n if (param && (param.name || param.in)) { // if it's a real parameter OR we've dereferenced it\n\n if (typeof param['x-deprecated'] === 'boolean') {\n param.deprecated = param['x-deprecated'];\n delete param['x-deprecated'];\n }\n\n if (typeof param['x-example'] !== 'undefined') {\n param.example = param['x-example'];\n delete param['x-example'];\n }\n\n if ((param.in != 'body') && (!param.type)) {\n if (options.patch) {\n param.type = 'string';\n }\n else {\n throwError('(Patchable) parameter.type is mandatory for non-body parameters', options);\n }\n }\n if (param.type && typeof param.type === 'object' && param.type.$ref) {\n // $ref anywhere sensibility\n param.type = resolveInternal(openapi, param.type.$ref);\n }\n if (param.type === 'file') {\n param['x-s2o-originalType'] = param.type;\n originalType = param.type;\n }\n if (param.description && typeof param.description === 'object' && param.description.$ref) {\n // $ref anywhere sensibility\n param.description = resolveInternal(openapi, param.description.$ref);\n }\n if (param.description === null) delete param.description;\n\n let oldCollectionFormat = param.collectionFormat;\n if ((param.type === 'array') && !oldCollectionFormat) {\n oldCollectionFormat = 'csv';\n }\n if (oldCollectionFormat) {\n if (param.type != 'array') {\n if (options.patch) {\n delete param.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to param.type array', options);\n }\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'query') || (param.in === 'cookie'))) {\n param.style = 'form';\n param.explode = false;\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'path') || (param.in === 'header'))) {\n param.style = 'simple';\n }\n if (oldCollectionFormat === 'ssv') {\n if (param.in === 'query') {\n param.style = 'spaceDelimited';\n }\n else {\n throwOrWarn('collectionFormat:ssv is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'pipes') {\n if (param.in === 'query') {\n param.style = 'pipeDelimited';\n }\n else {\n throwOrWarn('collectionFormat:pipes is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'multi') {\n param.explode = true;\n }\n if (oldCollectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', param, options); // not lossless\n param[\"x-collectionFormat\"] = 'tsv';\n }\n delete param.collectionFormat;\n }\n\n if (param.type && (param.type != 'object') && (param.type != 'body') && (param.in != 'formData')) {\n if (param.items && param.schema) {\n throwOrWarn('parameter has array,items and schema', param, options);\n }\n else {\n if ((!param.schema) || (typeof param.schema !== 'object')) param.schema = {};\n param.schema.type = param.type;\n if (param.items) {\n param.schema.items = param.items;\n delete param.items;\n recurse(param.schema.items, null, function (obj, key, state) {\n if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) {\n if (oldCollectionFormat && obj[key] !== oldCollectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', param, options);\n }\n delete obj[key]; // not lossless\n }\n // items in 2.0 was a subset of the JSON-Schema items\n // object, it gets fixed up below\n });\n }\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') param.schema[prop] = param[prop];\n delete param[prop];\n }\n }\n }\n\n if (param.schema) {\n fixUpSchema(param.schema,options);\n }\n\n if (param[\"x-ms-skip-url-encoding\"]) {\n if (param.in === 'query') { // might be in:path, not allowed in OAS3\n param.allowReserved = true;\n delete param[\"x-ms-skip-url-encoding\"];\n }\n }\n }\n\n if (param && param.in === 'formData') {\n // convert to requestBody component\n singularRequestBody = false;\n result.content = {};\n let contentType = 'application/x-www-form-urlencoded';\n if ((consumes.length) && (consumes.indexOf('multipart/form-data') >= 0)) {\n contentType = 'multipart/form-data';\n }\n\n result.content[contentType] = {};\n if (param.schema) {\n result.content[contentType].schema = param.schema;\n if (param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n }\n else {\n result.content[contentType].schema = {};\n result.content[contentType].schema.type = 'object';\n result.content[contentType].schema.properties = {};\n result.content[contentType].schema.properties[param.name] = {};\n let schema = result.content[contentType].schema;\n let target = result.content[contentType].schema.properties[param.name];\n if (param.description) target.description = param.description;\n if (param.example) target.example = param.example;\n if (param.type) target.type = param.type;\n\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') target[prop] = param[prop];\n }\n if (param.required === true) {\n if (!schema.required) schema.required = [];\n schema.required.push(param.name);\n }\n if (typeof param.default !== 'undefined') target.default = param.default;\n if (target.properties) target.properties = param.properties;\n if (param.allOf) target.allOf = param.allOf; // new are anyOf, oneOf, not\n if ((param.type === 'array') && (param.items)) {\n target.items = param.items;\n if (target.items.collectionFormat) delete target.items.collectionFormat;\n }\n if ((originalType === 'file') || (param['x-s2o-originalType'] === 'file')) {\n target.type = 'string';\n target.format = 'binary';\n }\n\n // Copy any extensions on the form param to the target schema property.\n copyExtensions(param, target);\n }\n }\n else if (param && param.type === 'file') {\n // convert to requestBody\n if (param.required) result.required = param.required;\n result.content = {};\n result.content[\"application/octet-stream\"] = {};\n result.content[\"application/octet-stream\"].schema = {};\n result.content[\"application/octet-stream\"].schema.type = 'string';\n result.content[\"application/octet-stream\"].schema.format = 'binary';\n copyExtensions(param, result);\n }\n if (param && param.in === 'body') {\n result.content = {};\n if (param.name) result['x-s2o-name'] = (op && op.operationId ? common.sanitiseAll(op.operationId) : '') + ('_' + param.name).toCamelCase();\n if (param.description) result.description = param.description;\n if (param.required) result.required = param.required;\n\n // Set the \"request body name\" extension on the operation if requested.\n if (op && options.rbname && param.name) {\n op[options.rbname] = param.name;\n }\n if (param.schema && param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n else if (param.schema && (param.schema.type === 'array') && param.schema.items && param.schema.items.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.items.$ref.replace('#/components/schemas/', '')) + 'Array';\n }\n\n if (!consumes.length) {\n consumes.push('application/json'); // TODO verify default\n }\n\n for (let mimetype of consumes) {\n result.content[mimetype] = {};\n result.content[mimetype].schema = clone(param.schema || {});\n fixUpSchema(result.content[mimetype].schema,options);\n }\n\n // Copy any extensions from the original parameter to the new requestBody\n copyExtensions(param, result);\n }\n\n if (Object.keys(result).length > 0) {\n param[\"x-s2o-delete\"] = true;\n // work out where to attach the requestBody\n if (op) {\n if (op.requestBody && singularRequestBody) {\n op.requestBody[\"x-s2o-overloaded\"] = true;\n let opId = op.operationId || index;\n\n throwOrWarn('Operation ' + opId + ' has multiple requestBodies', op, options);\n }\n else {\n if (!op.requestBody) {\n op = path[method] = attachRequestBody(op,options); // make sure we have one\n }\n if ((op.requestBody.content && op.requestBody.content[\"multipart/form-data\"])\n && (op.requestBody.content[\"multipart/form-data\"].schema) && (op.requestBody.content[\"multipart/form-data\"].schema.properties) && (result.content[\"multipart/form-data\"]) && (result.content[\"multipart/form-data\"].schema) && (result.content[\"multipart/form-data\"].schema.properties)) {\n op.requestBody.content[\"multipart/form-data\"].schema.properties =\n Object.assign(op.requestBody.content[\"multipart/form-data\"].schema.properties, result.content[\"multipart/form-data\"].schema.properties);\n op.requestBody.content[\"multipart/form-data\"].schema.required = (op.requestBody.content[\"multipart/form-data\"].schema.required || []).concat(result.content[\"multipart/form-data\"].schema.required||[]);\n if (!op.requestBody.content[\"multipart/form-data\"].schema.required.length) {\n delete op.requestBody.content[\"multipart/form-data\"].schema.required;\n }\n }\n else if ((op.requestBody.content && op.requestBody.content[\"application/x-www-form-urlencoded\"] && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties)\n && result.content[\"application/x-www-form-urlencoded\"] && result.content[\"application/x-www-form-urlencoded\"].schema && result.content[\"application/x-www-form-urlencoded\"].schema.properties) {\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties =\n Object.assign(op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties, result.content[\"application/x-www-form-urlencoded\"].schema.properties);\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required = (op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required || []).concat(result.content[\"application/x-www-form-urlencoded\"].schema.required||[]);\n if (!op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required.length) {\n delete op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required;\n }\n }\n else {\n op.requestBody = Object.assign(op.requestBody, result);\n if (!op.requestBody['x-s2o-name']) {\n if (op.requestBody.schema && op.requestBody.schema.$ref) {\n op.requestBody['x-s2o-name'] = decodeURIComponent(op.requestBody.schema.$ref.replace('#/components/schemas/', '')).split('/').join('');\n }\n else if (op.operationId) {\n op.requestBody['x-s2o-name'] = common.sanitiseAll(op.operationId);\n }\n }\n }\n }\n }\n }\n\n // tidy up\n if (param && !param['x-s2o-delete']) {\n delete param.type;\n for (let prop of common.parameterTypeProperties) {\n delete param[prop];\n }\n\n if ((param.in === 'path') && ((typeof param.required === 'undefined') || (param.required !== true))) {\n if (options.patch) {\n param.required = true;\n }\n else {\n throwError('(Patchable) path parameters must be required:true ['+param.name+' in '+index+']', options);\n }\n }\n }\n\n return op;\n}\n\nfunction copyExtensions(src, tgt) {\n for (let prop in src) {\n if (prop.startsWith('x-') && !prop.startsWith('x-s2o')) {\n tgt[prop] = src[prop];\n }\n }\n}\n\nfunction processResponse(response, name, op, openapi, options) {\n if (!response) return false;\n if (response.$ref && (typeof response.$ref === 'string')) {\n if (response.$ref.indexOf('#/definitions/') >= 0) {\n //response.$ref = '#/components/schemas/'+common.sanitise(response.$ref.replace('#/definitions/',''));\n throwOrWarn('definition used as response: ' + response.$ref, response, options);\n }\n else {\n if (response.$ref.startsWith('#/responses/')) {\n response.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.$ref.replace('#/responses/', '')));\n }\n }\n }\n else {\n if ((typeof response.description === 'undefined') || (response.description === null)\n || ((response.description === '') && options.patch)) {\n if (options.patch) {\n if ((typeof response === 'object') && (!Array.isArray(response))) {\n response.description = (statusCodes[response] || '');\n }\n }\n else {\n throwError('(Patchable) response.description is mandatory', options);\n }\n }\n if (typeof response.schema !== 'undefined') {\n\n fixUpSchema(response.schema,options);\n\n if (response.schema.$ref && (typeof response.schema.$ref === 'string') && response.schema.$ref.startsWith('#/responses/')) {\n response.schema.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.schema.$ref.replace('#/responses/', '')));\n }\n\n if (op && op.produces && (typeof op.produces === 'string')) {\n if (options.patch) {\n op.produces = [op.produces];\n }\n else {\n return throwError('(Patchable) operation.produces must be an array', options);\n }\n }\n if (openapi.produces && !Array.isArray(openapi.produces)) delete openapi.produces;\n\n let produces = ((op ? op.produces : null) || (openapi.produces || [])).filter(common.uniqueOnly);\n if (!produces.length) produces.push('*/*'); // TODO verify default\n\n response.content = {};\n for (let mimetype of produces) {\n response.content[mimetype] = {};\n response.content[mimetype].schema = clone(response.schema);\n if (response.examples && response.examples[mimetype]) {\n let example = {};\n example.value = response.examples[mimetype];\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = example;\n delete response.examples[mimetype];\n }\n if (response.content[mimetype].schema.type === 'file') {\n response.content[mimetype].schema = { type: 'string', format: 'binary' };\n }\n }\n delete response.schema;\n }\n // examples for content-types not listed in produces\n for (let mimetype in response.examples) {\n if (!response.content) response.content = {};\n if (!response.content[mimetype]) response.content[mimetype] = {};\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = {};\n response.content[mimetype].examples.response.value = response.examples[mimetype];\n }\n delete response.examples;\n\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n}\n\nfunction processPaths(container, containerName, options, requestBodyCache, openapi) {\n for (let p in container) {\n let path = container[p];\n // path.$ref is external only\n if (path && (path['x-trace']) && (typeof path['x-trace'] === 'object')) {\n path.trace = path['x-trace'];\n delete path['x-trace'];\n }\n if (path && (path['x-summary']) && (typeof path['x-summary'] === 'string')) {\n path.summary = path['x-summary'];\n delete path['x-summary'];\n }\n if (path && (path['x-description']) && (typeof path['x-description'] === 'string')) {\n path.description = path['x-description'];\n delete path['x-description'];\n }\n if (path && (path['x-servers']) && (Array.isArray(path['x-servers']))) {\n path.servers = path['x-servers'];\n delete path['x-servers'];\n }\n for (let method in path) {\n if ((common.httpMethods.indexOf(method) >= 0) || (method === 'x-amazon-apigateway-any-method')) {\n let op = path[method];\n\n if (op && op.parameters && Array.isArray(op.parameters)) {\n if (path.parameters) {\n for (let param of path.parameters) {\n if (typeof param.$ref === 'string') {\n fixParamRef(param, options);\n param = resolveInternal(openapi, param.$ref);\n }\n let match = op.parameters.find(function (e, i, a) {\n return ((e.name === param.name) && (e.in === param.in));\n });\n\n if (!match && ((param.in === 'formData') || (param.in === 'body') || (param.type === 'file'))) {\n op = processParameter(param, op, path, method, p, openapi, options);\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n }\n }\n }\n for (let param of op.parameters) {\n op = processParameter(param, op, path, method, method + ':' + p, openapi, options);\n }\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n if (!options.debug) {\n op.parameters = op.parameters.filter(keepParameters);\n }\n }\n\n if (op && op.security) processSecurity(op.security);\n\n //don't need to remove requestBody for non-supported ops as they \"SHALL be ignored\"\n\n // responses\n if (typeof op === 'object') {\n if (!op.responses) {\n let defaultResp = {};\n defaultResp.description = 'Default response';\n op.responses = { default: defaultResp };\n }\n for (let r in op.responses) {\n let response = op.responses[r];\n processResponse(response, r, op, openapi, options);\n }\n }\n\n if (op && (op['x-servers']) && (Array.isArray(op['x-servers']))) {\n op.servers = op['x-servers'];\n delete op['x-servers'];\n } else if (op && op.schemes && op.schemes.length) {\n for (let scheme of op.schemes) {\n if ((!openapi.schemes) || (openapi.schemes.indexOf(scheme) < 0)) {\n if (!op.servers) {\n op.servers = [];\n }\n if (Array.isArray(openapi.servers)) {\n for (let server of openapi.servers) {\n let newServer = clone(server);\n let serverUrl = url.parse(newServer.url);\n serverUrl.protocol = scheme;\n newServer.url = serverUrl.format();\n op.servers.push(newServer);\n }\n }\n }\n }\n }\n\n if (options.debug) {\n op[\"x-s2o-consumes\"] = op.consumes || [];\n op[\"x-s2o-produces\"] = op.produces || [];\n }\n if (op) {\n delete op.consumes;\n delete op.produces;\n delete op.schemes;\n\n if (op[\"x-ms-examples\"]) {\n for (let e in op[\"x-ms-examples\"]) {\n let example = op[\"x-ms-examples\"][e];\n let se = common.sanitiseAll(e);\n if (example.parameters) {\n for (let p in example.parameters) {\n let value = example.parameters[p];\n for (let param of (op.parameters||[]).concat(path.parameters||[])) {\n if (param.$ref) {\n param = jptr.jptr(openapi,param.$ref);\n }\n if ((param.name === p) && (!param.example)) {\n if (!param.examples) {\n param.examples = {};\n }\n param.examples[e] = {value: value};\n }\n }\n }\n }\n if (example.responses) {\n for (let r in example.responses) {\n if (example.responses[r].headers) {\n for (let h in example.responses[r].headers) {\n let value = example.responses[r].headers[h];\n for (let rh in op.responses[r].headers) {\n if (rh === h) {\n let header = op.responses[r].headers[rh];\n header.example = value;\n }\n }\n }\n }\n if (example.responses[r].body) {\n openapi.components.examples[se] = { value: clone(example.responses[r].body) };\n if (op.responses[r] && op.responses[r].content) {\n for (let ct in op.responses[r].content) {\n let contentType = op.responses[r].content[ct];\n if (!contentType.examples) {\n contentType.examples = {};\n }\n contentType.examples[e] = { $ref: '#/components/examples/'+se };\n }\n }\n }\n\n }\n }\n }\n delete op[\"x-ms-examples\"];\n }\n\n if (op.parameters && op.parameters.length === 0) delete op.parameters;\n if (op.requestBody) {\n let effectiveOperationId = op.operationId ? common.sanitiseAll(op.operationId) : common.sanitiseAll(method + p).toCamelCase();\n let rbName = common.sanitise(op.requestBody['x-s2o-name'] || effectiveOperationId || '');\n delete op.requestBody['x-s2o-name'];\n let rbStr = JSON.stringify(op.requestBody);\n let rbHash = common.hash(rbStr);\n if (!requestBodyCache[rbHash]) {\n let entry = {};\n entry.name = rbName;\n entry.body = op.requestBody;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n let ptr = '#/'+containerName+'/'+encodeURIComponent(jptr.jpescape(p))+'/'+method+'/requestBody';\n requestBodyCache[rbHash].refs.push(ptr);\n }\n }\n\n }\n }\n if (path && path.parameters) {\n for (let p2 in path.parameters) {\n let param = path.parameters[p2];\n processParameter(param, null, path, null, p, openapi, options); // index here is the path string\n }\n if (!options.debug && Array.isArray(path.parameters)) {\n path.parameters = path.parameters.filter(keepParameters);\n }\n }\n }\n}\n\nfunction main(openapi, options) {\n\n let requestBodyCache = {};\n componentNames = { schemas: {} };\n\n if (openapi.security) processSecurity(openapi.security);\n\n for (let s in openapi.components.securitySchemes) {\n let sname = common.sanitise(s);\n if (s != sname) {\n if (openapi.components.securitySchemes[sname]) {\n throwError('Duplicate sanitised securityScheme name ' + sname, options);\n }\n openapi.components.securitySchemes[sname] = openapi.components.securitySchemes[s];\n delete openapi.components.securitySchemes[s];\n }\n processSecurityScheme(openapi.components.securitySchemes[sname], options);\n }\n\n for (let s in openapi.components.schemas) {\n let sname = common.sanitiseAll(s);\n let suffix = '';\n if (s != sname) {\n while (openapi.components.schemas[sname + suffix]) {\n // @ts-ignore\n suffix = (suffix ? ++suffix : 2);\n }\n openapi.components.schemas[sname + suffix] = openapi.components.schemas[s];\n delete openapi.components.schemas[s];\n }\n componentNames.schemas[s] = sname + suffix;\n fixUpSchema(openapi.components.schemas[sname+suffix],options)\n }\n\n // fix all $refs to their new locations (and potentially new names)\n options.refmap = {};\n recurse(openapi, { payload: { options: options } }, fixupRefs);\n dedupeRefs(openapi,options);\n\n for (let p in openapi.components.parameters) {\n let sname = common.sanitise(p);\n if (p != sname) {\n if (openapi.components.parameters[sname]) {\n throwError('Duplicate sanitised parameter name ' + sname, options);\n }\n openapi.components.parameters[sname] = openapi.components.parameters[p];\n delete openapi.components.parameters[p];\n }\n let param = openapi.components.parameters[sname];\n processParameter(param, null, null, null, sname, openapi, options);\n }\n\n for (let r in openapi.components.responses) {\n let sname = common.sanitise(r);\n if (r != sname) {\n if (openapi.components.responses[sname]) {\n throwError('Duplicate sanitised response name ' + sname, options);\n }\n openapi.components.responses[sname] = openapi.components.responses[r];\n delete openapi.components.responses[r];\n }\n let response = openapi.components.responses[sname];\n processResponse(response, sname, null, openapi, options);\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n\n for (let r in openapi.components.requestBodies) { // converted ones\n let rb = openapi.components.requestBodies[r];\n let rbStr = JSON.stringify(rb);\n let rbHash = common.hash(rbStr);\n let entry = {};\n entry.name = r;\n entry.body = rb;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n\n processPaths(openapi.paths, 'paths', options, requestBodyCache, openapi);\n if (openapi[\"x-ms-paths\"]) {\n processPaths(openapi[\"x-ms-paths\"], 'x-ms-paths', options, requestBodyCache, openapi);\n }\n\n if (!options.debug) {\n for (let p in openapi.components.parameters) {\n let param = openapi.components.parameters[p];\n if (param[\"x-s2o-delete\"]) {\n delete openapi.components.parameters[p];\n }\n }\n }\n\n if (options.debug) {\n openapi[\"x-s2o-consumes\"] = openapi.consumes || [];\n openapi[\"x-s2o-produces\"] = openapi.produces || [];\n }\n delete openapi.consumes;\n delete openapi.produces;\n delete openapi.schemes;\n\n let rbNamesGenerated = [];\n\n openapi.components.requestBodies = {}; // for now as we've dereffed them\n\n if (!options.resolveInternal) {\n let counter = 1;\n for (let e in requestBodyCache) {\n let entry = requestBodyCache[e];\n if (entry.refs.length > 1) {\n // create a shared requestBody\n let suffix = '';\n if (!entry.name) {\n entry.name = 'requestBody';\n // @ts-ignore\n suffix = counter++;\n }\n while (rbNamesGenerated.indexOf(entry.name + suffix) >= 0) {\n // @ts-ignore - this can happen if descriptions are not exactly the same (e.g. bitbucket)\n suffix = (suffix ? ++suffix : 2);\n }\n entry.name = entry.name + suffix;\n rbNamesGenerated.push(entry.name);\n openapi.components.requestBodies[entry.name] = clone(entry.body);\n for (let r in entry.refs) {\n let ref = {};\n ref.$ref = '#/components/requestBodies/' + entry.name;\n jptr.jptr(openapi,entry.refs[r],ref);\n }\n }\n }\n }\n\n if (openapi.components.responses && Object.keys(openapi.components.responses).length === 0) {\n delete openapi.components.responses;\n }\n if (openapi.components.parameters && Object.keys(openapi.components.parameters).length === 0) {\n delete openapi.components.parameters;\n }\n if (openapi.components.examples && Object.keys(openapi.components.examples).length === 0) {\n delete openapi.components.examples;\n }\n if (openapi.components.requestBodies && Object.keys(openapi.components.requestBodies).length === 0) {\n delete openapi.components.requestBodies;\n }\n if (openapi.components.securitySchemes && Object.keys(openapi.components.securitySchemes).length === 0) {\n delete openapi.components.securitySchemes;\n }\n if (openapi.components.headers && Object.keys(openapi.components.headers).length === 0) {\n delete openapi.components.headers;\n }\n if (openapi.components.schemas && Object.keys(openapi.components.schemas).length === 0) {\n delete openapi.components.schemas;\n }\n if (openapi.components && Object.keys(openapi.components).length === 0) {\n delete openapi.components;\n }\n\n return openapi;\n}\n\nfunction extractServerParameters(server) {\n if (!server || !server.url || (typeof server.url !== 'string')) return server;\n server.url = server.url.split('{{').join('{');\n server.url = server.url.split('}}').join('}');\n server.url.replace(/\\{(.+?)\\}/g, function (match, group1) { // TODO extend to :parameters (not port)?\n if (!server.variables) {\n server.variables = {};\n }\n server.variables[group1] = { default: 'unknown' };\n });\n return server;\n}\n\nfunction fixInfo(openapi, options, reject) {\n if ((typeof openapi.info === 'undefined') || (openapi.info === null)) {\n if (options.patch) {\n openapi.info = { version: '', title: '' };\n }\n else {\n return reject(new S2OError('(Patchable) info object is mandatory'));\n }\n }\n if ((typeof openapi.info !== 'object') || (Array.isArray(openapi.info))) {\n return reject(new S2OError('info must be an object'));\n }\n if ((typeof openapi.info.title === 'undefined') || (openapi.info.title === null)) {\n if (options.patch) {\n openapi.info.title = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.title cannot be null'));\n }\n }\n if ((typeof openapi.info.version === 'undefined') || (openapi.info.version === null)) {\n if (options.patch) {\n openapi.info.version = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.version cannot be null'));\n }\n }\n if (typeof openapi.info.version !== 'string') {\n if (options.patch) {\n openapi.info.version = openapi.info.version.toString();\n }\n else {\n return reject(new S2OError('(Patchable) info.version must be a string'));\n }\n }\n if (typeof openapi.info.logo !== 'undefined') {\n if (options.patch) {\n openapi.info['x-logo'] = openapi.info.logo;\n delete openapi.info.logo;\n }\n else return reject(new S2OError('(Patchable) info should not have logo property'));\n }\n if (typeof openapi.info.termsOfService !== 'undefined') {\n if (openapi.info.termsOfService === null) {\n if (options.patch) {\n openapi.info.termsOfService = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.termsOfService cannot be null'));\n }\n }\n if (url.URL && options.whatwg) {\n try {\n url.URL.parse(openapi.info.termsOfService);\n }\n catch (ex) {\n if (options.patch) {\n delete openapi.info.termsOfService;\n }\n else return reject(new S2OError('(Patchable) info.termsOfService must be a URL'));\n }\n }\n }\n}\n\nfunction fixPaths(openapi, options, reject) {\n if (typeof openapi.paths === 'undefined') {\n if (options.patch) {\n openapi.paths = {};\n }\n else {\n return reject(new S2OError('(Patchable) paths object is mandatory'));\n }\n }\n}\n\nfunction convertObj(swagger, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n if (!swagger) swagger = {};\n options.original = swagger;\n if (!options.text) options.text = yaml.stringify(swagger);\n options.externals = [];\n options.externalRefs = {};\n options.rewriteRefs = true; // avoids stack explosions\n options.preserveMiro = true;\n options.promise = {};\n options.promise.resolve = resolve;\n options.promise.reject = reject;\n if (!options.cache) options.cache = {};\n if (options.source) options.cache[options.source] = options.original;\n if (swagger.openapi && (typeof swagger.openapi === 'string') && swagger.openapi.startsWith('3.')) {\n options.openapi = cclone(swagger);\n fixInfo(options.openapi, options, reject);\n fixPaths(options.openapi, options, reject);\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n if (options.direct) {\n return resolve(options.openapi);\n }\n else {\n return resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n return; // we should have resolved or rejected by now\n }\n\n if ((!swagger.swagger) || (swagger.swagger != \"2.0\")) {\n return reject(new S2OError('Unsupported swagger/OpenAPI version: ' + (swagger.openapi ? swagger.openapi : swagger.swagger)));\n }\n\n let openapi = options.openapi = {};\n openapi.openapi = (typeof options.targetVersion === 'string' && options.targetVersion.startsWith('3.')) ? options.targetVersion : targetVersion; // semver\n\n if (options.origin) {\n if (!openapi[\"x-origin\"]) {\n openapi[\"x-origin\"] = [];\n }\n let origin = {};\n origin.url = options.source||options.origin;\n origin.format = 'swagger';\n origin.version = swagger.swagger;\n origin.converter = {};\n origin.converter.url = 'https://github.com/mermade/oas-kit';\n origin.converter.version = ourVersion;\n openapi[\"x-origin\"].push(origin);\n }\n\n // we want the new and existing properties to appear in a sensible order. Not guaranteed\n openapi = Object.assign(openapi, cclone(swagger));\n delete openapi.swagger;\n recurse(openapi, {}, function(obj, key, state){\n if ((obj[key] === null) && (!key.startsWith('x-')) && key !== 'default' && (state.path.indexOf('/example') < 0)) delete obj[key]; // this saves *so* much grief later\n });\n\n if (swagger.host) {\n for (let s of (Array.isArray(swagger.schemes) ? swagger.schemes : [''])) {\n let server = {};\n server.url = (s ? s+':' : '') + '//' + swagger.host + (swagger.basePath ? swagger.basePath : '');\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n }\n else if (swagger.basePath) {\n let server = {};\n server.url = swagger.basePath;\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n delete openapi.host;\n delete openapi.basePath;\n\n if (openapi['x-servers'] && Array.isArray(openapi['x-servers'])) {\n openapi.servers = openapi['x-servers'];\n delete openapi['x-servers'];\n }\n\n // TODO APIMatic extensions (x-server-configuration) ?\n\n if (swagger['x-ms-parameterized-host']) {\n let xMsPHost = swagger['x-ms-parameterized-host'];\n let server = {};\n server.url = xMsPHost.hostTemplate + (swagger.basePath ? swagger.basePath : '');\n server.variables = {};\n for (let msp in xMsPHost.parameters) {\n let param = xMsPHost.parameters[msp];\n if (param.$ref) {\n param = clone(resolveInternal(openapi, param.$ref));\n }\n if (!msp.startsWith('x-')) {\n delete param.required; // all true\n delete param.type; // all strings\n delete param.in; // all 'host'\n if (typeof param.default === 'undefined') {\n if (param.enum) {\n param.default = param.enum[0];\n }\n else {\n param.default = '';\n }\n }\n server.variables[param.name] = param;\n delete param.name;\n }\n }\n if (!openapi.servers) openapi.servers = [];\n if (xMsPHost.useSchemePrefix === false) {\n // The server URL already includes a protocol scheme\n openapi.servers.push(server);\n } else {\n // Define this server once for each given protocol scheme\n swagger.schemes.forEach((scheme) => {\n openapi.servers.push(\n Object.assign({}, server, { url: scheme + '://' + server.url })\n )\n });\n }\n delete openapi['x-ms-parameterized-host'];\n }\n\n fixInfo(openapi, options, reject);\n fixPaths(openapi, options, reject);\n\n if (typeof openapi.consumes === 'string') {\n openapi.consumes = [openapi.consumes];\n }\n if (typeof openapi.produces === 'string') {\n openapi.produces = [openapi.produces];\n }\n\n openapi.components = {};\n if (openapi['x-callbacks']) {\n openapi.components.callbacks = openapi['x-callbacks'];\n delete openapi['x-callbacks'];\n }\n openapi.components.examples = {};\n openapi.components.headers = {};\n if (openapi['x-links']) {\n openapi.components.links = openapi['x-links'];\n delete openapi['x-links'];\n }\n openapi.components.parameters = openapi.parameters || {};\n openapi.components.responses = openapi.responses || {};\n openapi.components.requestBodies = {};\n openapi.components.securitySchemes = openapi.securityDefinitions || {};\n openapi.components.schemas = openapi.definitions || {};\n delete openapi.definitions;\n delete openapi.responses;\n delete openapi.parameters;\n delete openapi.securityDefinitions;\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n main(options.openapi, options);\n if (options.direct) {\n resolve(options.openapi);\n }\n else {\n resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n\n }));\n}\n\nfunction convertStr(str, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let obj = null;\n let error = null;\n try {\n obj = JSON.parse(str);\n options.text = JSON.stringify(obj,null,2);\n }\n catch (ex) {\n error = ex;\n try {\n obj = yaml.parse(str, { schema: 'core', prettyErrors: true });\n options.sourceYaml = true;\n options.text = str;\n }\n catch (ex) {\n error = ex;\n }\n }\n if (obj) {\n convertObj(obj, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n else {\n reject(new S2OError(error ? error.message : 'Could not parse string'));\n }\n }));\n}\n\nfunction convertUrl(url, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n options.origin = true;\n if (!options.source) {\n options.source = url;\n }\n if (options.verbose) {\n console.warn('GET ' + url);\n }\n fetch(url, {agent:options.agent}).then(function (res) {\n if (res.status !== 200) throw new S2OError(`Received status code ${res.status}`);\n return res.text();\n }).then(function (body) {\n convertStr(body, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }).catch(function (err) {\n reject(err);\n });\n }));\n}\n\nfunction convertFile(filename, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n fs.readFile(filename, options.encoding || 'utf8', function (err, s) {\n if (err) {\n reject(err);\n }\n else {\n options.sourceFile = filename;\n convertStr(s, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n });\n }));\n}\n\nfunction convertStream(readable, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let data = '';\n readable.on('data', function (chunk) {\n data += chunk;\n })\n .on('end', function () {\n convertStr(data, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n });\n }));\n}\n\nmodule.exports = {\n S2OError: S2OError,\n targetVersion: targetVersion,\n convert: convertObj,\n convertObj: convertObj,\n convertUrl: convertUrl,\n convertStr: convertStr,\n convertFile: convertFile,\n convertStream: convertStream\n};\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","module.exports = require(\"react-dropdown\");","module.exports = require(\"dompurify\");","module.exports = require(\"classnames\");","module.exports = require(\"call-me-maybe\");","'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst url = require('url');\n\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js').jptr;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst clone = require('reftools/lib/clone.js').clone;\nconst deRef = require('reftools/lib/dereference.js').dereference;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst common = require('oas-kit-common');\n\nfunction unique(arr) {\n return [... new Set(arr)];\n}\n\nfunction readFileAsync(filename, encoding) {\n return new Promise(function (resolve, reject) {\n fs.readFile(filename, encoding, function (err, data) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n });\n}\n\nfunction resolveAllFragment(obj, context, src, parentPath, base, options) {\n\n let attachPoint = options.externalRefs[src+parentPath].paths[0];\n\n let baseUrl = url.parse(base);\n let seen = {}; // seen is indexed by the $ref value and contains path replacements\n let changes = 1;\n while (changes) {\n changes = 0;\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if (isRef(obj, key)) {\n if (obj[key].startsWith('#')) {\n if (!seen[obj[key]] && !obj.$fixed) {\n let target = clone(jptr(context, obj[key]));\n if (options.verbose>1) console.warn((target === false ? common.colour.red : common.colour.green)+'Fragment resolution', obj[key], common.colour.normal);\n /*\n ResolutionCase:A is where there is a local reference in an externally\n referenced document, and we have not seen it before. The reference\n is replaced by a copy of the data pointed to, which may be outside this fragment\n but within the context of the external document\n */\n if (target === false) {\n state.parent[state.pkey] = {}; /* case:A(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Fragment $ref resolution failed '+obj[key]);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n else {\n changes++;\n state.parent[state.pkey] = target;\n seen[obj[key]] = state.path.replace('/%24ref','');\n }\n }\n else {\n if (!obj.$fixed) {\n let newRef = (attachPoint+'/'+seen[obj[key]]).split('/#/').join('/');\n state.parent[state.pkey] = { $ref: newRef, 'x-miro': obj[key], $fixed: true };\n if (options.verbose>1) console.warn('Replacing with',newRef);\n changes++;\n }\n /*\n ResolutionCase:B is where there is a local reference in an externally\n referenced document, and we have seen this reference before and resolved it.\n We create a new object containing the (immutable) $ref string\n */\n }\n }\n else if (baseUrl.protocol) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external url ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key];\n obj[key] = newRef;\n }\n else if (!obj['x-miro']) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key]; // we use x-miro as a flag so we don't do this > once\n obj[key] = newRef;\n }\n }\n });\n }\n\n recurse(obj,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (typeof obj.$fixed !== 'undefined') delete obj.$fixed;\n }\n });\n\n if (options.verbose>1) console.warn('Finished fragment resolution');\n return obj;\n}\n\nfunction filterData(data, options) {\n if (!options.filters || !options.filters.length) return data;\n for (let filter of options.filters) {\n data = filter(data, options);\n }\n return data;\n}\n\nfunction testProtocol(input, backup) {\n if (input && input.length > 2) return input;\n if (backup && backup.length > 2) return backup;\n return 'file:';\n}\n\nfunction resolveExternal(root, pointer, options, callback) {\n var u = url.parse(options.source);\n var base = options.source.split('\\\\').join('/').split('/');\n let doc = base.pop(); // drop the actual filename\n if (!doc) base.pop(); // in case it ended with a /\n let fragment = '';\n let fnComponents = pointer.split('#');\n if (fnComponents.length > 1) {\n fragment = '#' + fnComponents[1];\n pointer = fnComponents[0];\n }\n base = base.join('/');\n\n let u2 = url.parse(pointer);\n let effectiveProtocol = testProtocol(u2.protocol, u.protocol);\n\n let target;\n if (effectiveProtocol === 'file:') {\n target = path.resolve(base ? base + '/' : '', pointer);\n }\n else {\n target = url.resolve(base ? base + '/' : '', pointer);\n }\n\n if (options.cache[target]) {\n if (options.verbose) console.warn('CACHED', target, fragment);\n /*\n resolutionSource:A this is where we have cached the externally-referenced document from a\n file, http or custom handler\n */\n let context = clone(options.cache[target]);\n let data = options.externalRef = context;\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; // case:A(2) where the resolution fails\n if (options.fatal) {\n let ex = new Error('Cached $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n callback(clone(data), target, options);\n return Promise.resolve(data);\n }\n\n if (options.verbose) console.warn('GET', target, fragment);\n\n if (options.handlers && options.handlers[effectiveProtocol]) {\n return options.handlers[effectiveProtocol](base, pointer, fragment, options)\n .then(function (data) {\n options.externalRef = data;\n data = filterData(data, options);\n options.cache[target] = data;\n callback(data, target, options);\n return data;\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n throw(ex);\n });\n }\n else if (effectiveProtocol && effectiveProtocol.startsWith('http')) {\n return fetch(target, { agent: options.agent })\n .then(function (res) {\n if (res.status !== 200) throw new Error(`Received status code ${res.status}`);\n return res.text();\n })\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n options.cache[target] = clone(data);\n /* resolutionSource:B, from the network, data is fresh, but we clone it into the cache */\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:B(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Remote $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function (err) {\n if (options.verbose) console.warn(err);\n options.cache[target] = {};\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n else {\n return readFileAsync(target, options.encoding || 'utf8')\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n /*\n resolutionSource:C from a file, data is fresh but we clone it into the cache\n */\n options.cache[target] = clone(data);\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:C(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('File $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function(err){\n if (options.verbose) console.warn(err);\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n}\n\nfunction scanExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n function inner(obj,key,state){\n if (obj[key] && isRef(obj[key],'$ref')) {\n let $ref = obj[key].$ref;\n if (!$ref.startsWith('#')) { // is external\n\n let $extra = '';\n\n if (!refs[$ref]) {\n let potential = Object.keys(refs).find(function(e,i,a){\n return $ref.startsWith(e+'/');\n });\n if (potential) {\n if (options.verbose) console.warn('Found potential subschema at',potential);\n $extra = '/'+($ref.split('#')[1]||'').replace(potential.split('#')[1]||'');\n $extra = $extra.split('/undefined').join(''); // FIXME\n $ref = potential;\n }\n }\n\n if (!refs[$ref]) {\n refs[$ref] = { resolved: false, paths: [], extras:{}, description: obj[key].description };\n }\n if (refs[$ref].resolved) {\n if (options.rewriteRefs) {\n // we've already seen it\n let newRef = refs[$ref].resolvedAt;\n if (options.verbose>1) console.warn('Rewriting ref', $ref, newRef);\n obj[key]['x-miro'] = $ref;\n obj[key].$ref = newRef+$extra; // resolutionCase:C (new string)\n }\n else {\n obj[key] = clone(refs[$ref].data); // resolutionCase:D (cloned:yes)\n }\n }\n else {\n refs[$ref].paths.push(state.path);\n refs[$ref].extras[state.path] = $extra;\n }\n }\n }\n }\n\n let refs = options.externalRefs;\n\n if ((options.resolver.depth>0) && (options.source === options.resolver.base)) {\n // we only need to do any of this when called directly on pass #1\n return res(refs);\n }\n\n recurse(options.openapi.definitions, {identityDetection: true, path: '#/definitions'}, inner);\n recurse(options.openapi.components, {identityDetection: true, path: '#/components'}, inner);\n recurse(options.openapi, {identityDetection: true}, inner);\n\n res(refs);\n });\n}\n\nfunction findExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n scanExternalRefs(options)\n .then(function (refs) {\n for (let ref in refs) {\n\n if (!refs[ref].resolved) {\n let depth = options.resolver.depth;\n if (depth>0) depth++;\n options.resolver.actions[depth].push(function () {\n return resolveExternal(options.openapi, ref, options, function (data, source, options) {\n if (!refs[ref].resolved) {\n let external = {};\n external.context = refs[ref];\n external.$ref = ref;\n external.original = clone(data);\n external.updated = data;\n external.source = source;\n options.externals.push(external);\n refs[ref].resolved = true;\n }\n\n let localOptions = Object.assign({}, options, { source: '',\n resolver: {actions: options.resolver.actions,\n depth: options.resolver.actions.length-1, base: options.resolver.base } });\n if (options.patch && refs[ref].description && !data.description &&\n (typeof data === 'object')) {\n data.description = refs[ref].description;\n }\n refs[ref].data = data;\n\n // sorting $refs by length causes bugs (due to overlapping regions?)\n let pointers = unique(refs[ref].paths);\n pointers = pointers.sort(function(a,b){\n const aComp = (a.startsWith('#/components/') || a.startsWith('#/definitions/'));\n const bComp = (b.startsWith('#/components/') || b.startsWith('#/definitions/'));\n if (aComp && !bComp) return -1;\n if (bComp && !aComp) return +1;\n return 0;\n });\n\n for (let ptr of pointers) {\n // shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js\n if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {\n if (options.verbose>1) console.warn('Creating pointer to data at', ptr);\n jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt+refs[ref].extras[ptr], 'x-miro': ref+refs[ref].extras[ptr] }); // resolutionCase:E (new object)\n }\n else {\n if (refs[ref].resolvedAt) {\n if (options.verbose>1) console.warn('Avoiding circular reference');\n }\n else {\n refs[ref].resolvedAt = ptr;\n if (options.verbose>1) console.warn('Creating initial clone of data at', ptr);\n }\n let cdata = clone(data);\n jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)\n }\n }\n if (options.resolver.actions[localOptions.resolver.depth].length === 0) {\n //options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });\n options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs\n }\n });\n });\n }\n }\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n\n let result = {options:options};\n result.actions = options.resolver.actions[options.resolver.depth];\n res(result);\n });\n}\n\nconst serial = funcs =>\n funcs.reduce((promise, func) =>\n promise.then(result => func().then(Array.prototype.concat.bind(result))), Promise.resolve([]));\n\nfunction loopReferences(options, res, rej) {\n options.resolver.actions.push([]);\n findExternalRefs(options)\n .then(function (data) {\n serial(data.actions)\n .then(function () {\n if (options.resolver.depth>=options.resolver.actions.length) {\n console.warn('Ran off the end of resolver actions');\n return res(true);\n } else {\n options.resolver.depth++;\n if (options.resolver.actions[options.resolver.depth].length) {\n setTimeout(function () {\n loopReferences(data.options, res, rej);\n }, 0);\n }\n else {\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished external resolution!',common.colour.normal);\n if (options.resolveInternal) {\n if (options.verbose>1) console.warn(common.colour.yellow+'Starting internal resolution!',common.colour.normal);\n options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);\n }\n recurse(options.openapi,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (!options.preserveMiro) delete obj['x-miro'];\n }\n });\n res(options);\n }\n }\n })\n .catch(function (ex) {\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n}\n\nfunction setupOptions(options) {\n if (!options.cache) options.cache = {};\n\n if (options.source) {\n let srcUrl = url.parse(options.source);\n if (!srcUrl.protocol || srcUrl.protocol.length <= 2) { // windows drive-letters\n options.source = path.resolve(options.source);\n }\n }\n\n if (!options.externals) options.externals = [];\n if (!options.externalRefs) options.externalRefs = {};\n options.rewriteRefs = true;\n options.resolver = {};\n options.resolver.depth = 0;\n options.resolver.base = options.source;\n options.resolver.actions = [[]];\n}\n\n/** compatibility function for swagger2openapi */\nfunction optionalResolve(options) {\n setupOptions(options);\n return new Promise(function (res, rej) {\n if (options.resolve)\n loopReferences(options, res, rej)\n else\n res(options);\n });\n}\n\nfunction resolve(openapi,source,options) {\n if (!options) options = {};\n options.openapi = openapi;\n options.source = source;\n options.resolve = true;\n setupOptions(options);\n return new Promise(function (res, rej) {\n loopReferences(options, res, rej)\n });\n}\n\nmodule.exports = {\n optionalResolve: optionalResolve,\n resolve: resolve\n};\n\n","'use strict';\n\nconst recurse = require('./recurse.js').recurse;\nconst clone = require('./clone.js').shallowClone;\nconst jptr = require('./jptr.js').jptr;\nconst isRef = require('./isref.js').isRef;\n\nvar getLogger = function (options) {\n if (options && options.verbose) {\n return {\n warn: function() {\n var args = Array.prototype.slice.call(arguments);\n console.warn.apply(console, args);\n }\n }\n }\n else {\n return {\n warn: function() {\n //nop\n }\n }\n }\n}\n\n/**\n* dereferences the given object\n* @param o the object to dereference\n* @definitions a source of definitions to reference\n* @options optional settings (used recursively)\n* @return the dereferenced object\n*/\nfunction dereference(o,definitions,options) {\n if (!options) options = {};\n if (!options.cache) options.cache = {};\n if (!options.state) options.state = {};\n options.state.identityDetection = true;\n // options.depth allows us to limit cloning to the first invocation\n options.depth = (options.depth ? options.depth+1 : 1);\n let obj = (options.depth > 1 ? o : clone(o));\n let container = { data: obj };\n let defs = (options.depth > 1 ? definitions : clone(definitions));\n // options.master is the top level object, regardless of depth\n if (!options.master) options.master = obj;\n\n let logger = getLogger(options);\n\n let changes = 1;\n while (changes > 0) {\n changes = 0;\n recurse(container,options.state,function(obj,key,state){\n if (isRef(obj,key)) {\n let $ref = obj[key]; // immutable\n changes++;\n if (!options.cache[$ref]) {\n let entry = {};\n entry.path = state.path.split('/$ref')[0];\n entry.key = $ref;\n logger.warn('Dereffing %s at %s',$ref,entry.path);\n entry.source = defs;\n entry.data = jptr(entry.source,entry.key);\n if (entry.data === false) {\n entry.data = jptr(options.master,entry.key);\n entry.source = options.master;\n }\n if (entry.data === false) {\n logger.warn('Missing $ref target',entry.key);\n }\n options.cache[$ref] = entry;\n entry.data = state.parent[state.pkey] = dereference(jptr(entry.source,entry.key),entry.source,options);\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n entry.resolved = true;\n }\n else {\n let entry = options.cache[$ref];\n if (entry.resolved) {\n // we have already seen and resolved this reference\n logger.warn('Patching %s for %s',$ref,entry.path);\n state.parent[state.pkey] = entry.data;\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n }\n else if ($ref === entry.path) {\n // reference to itself, throw\n throw new Error(`Tight circle at ${entry.path}`);\n }\n else {\n // we're dealing with a circular reference here\n logger.warn('Unresolved ref');\n state.parent[state.pkey] = jptr(entry.source,entry.path);\n if (state.parent[state.pkey] === false) {\n state.parent[state.pkey] = jptr(entry.source,entry.key);\n }\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[options.$ref] = $ref;\n }\n }\n }\n });\n }\n return container.data;\n}\n\nmodule.exports = {\n dereference : dereference\n};\n\n","'use strict';\n\n/**\n* functions to walk an OpenAPI schema object and traverse all subschemas\n* calling a callback function on each one\n*/\n\n/**\n* obtains the default starting state for the `state` object used\n* by walkSchema\n* @return the state object suitable for use in walkSchema\n*/\nfunction getDefaultState() {\n return { depth: 0, seen: new WeakMap(), top: true, combine: false, allowRefSiblings: false };\n}\n\n/**\n* begins the walk of a schema object\n* @param parent the parent schema, if any. Use empty object if none\n* @param state the initial starting state of the walker, usually obtained from `getDefaultState`. Use empty object to auto-initialise\n* @param callback a function taking a schema, parent and state to be called on this and all subschemas\n* @return the schema object\n*/\nfunction walkSchema(schema, parent, state, callback) {\n\n if (typeof state.depth === 'undefined') state = getDefaultState();\n if ((schema === null) || (typeof schema === 'undefined')) return schema;\n if (typeof schema.$ref !== 'undefined') {\n let temp = {$ref:schema.$ref};\n if (state.allowRefSiblings && schema.description) {\n temp.description = schema.description;\n }\n callback(temp,parent,state);\n return temp; // all other properties SHALL be ignored\n }\n\n if (state.combine) {\n if (schema.allOf && Array.isArray(schema.allOf) && schema.allOf.length === 1) {\n schema = Object.assign({},schema.allOf[0],schema);\n delete schema.allOf;\n }\n if (schema.anyOf && Array.isArray(schema.anyOf) && schema.anyOf.length === 1) {\n schema = Object.assign({},schema.anyOf[0],schema);\n delete schema.anyOf;\n }\n if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length === 1) {\n schema = Object.assign({},schema.oneOf[0],schema);\n delete schema.oneOf;\n }\n }\n\n callback(schema,parent,state);\n if (state.seen.has(schema)) {\n return schema;\n }\n //else\n if ((typeof schema === 'object') && (schema !== null)) state.seen.set(schema,true);\n state.top = false;\n state.depth++;\n\n if (typeof schema.items !== 'undefined') {\n state.property = 'items';\n walkSchema(schema.items,schema,state,callback);\n }\n if (schema.additionalItems) {\n if (typeof schema.additionalItems === 'object') {\n state.property = 'additionalItems';\n walkSchema(schema.additionalItems,schema,state,callback);\n }\n }\n if (schema.additionalProperties) {\n if (typeof schema.additionalProperties === 'object') {\n state.property = 'additionalProperties';\n walkSchema(schema.additionalProperties,schema,state,callback);\n }\n }\n if (schema.properties) {\n for (let prop in schema.properties) {\n let subSchema = schema.properties[prop];\n state.property = 'properties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.patternProperties) {\n for (let prop in schema.patternProperties) {\n let subSchema = schema.patternProperties[prop];\n state.property = 'patternProperties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.allOf) {\n for (let index in schema.allOf) {\n let subSchema = schema.allOf[index];\n state.property = 'allOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.anyOf) {\n for (let index in schema.anyOf) {\n let subSchema = schema.anyOf[index];\n state.property = 'anyOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.oneOf) {\n for (let index in schema.oneOf) {\n let subSchema = schema.oneOf[index];\n state.property = 'oneOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.not) {\n state.property = 'not';\n walkSchema(schema.not,schema,state,callback);\n }\n state.depth--;\n return schema;\n}\n\nmodule.exports = {\n getDefaultState: getDefaultState,\n walkSchema: walkSchema\n};\n\n","'use strict';\n\nconst http = require('http');\n\nconst ours = {\n \"default\": \"Default response\",\n \"1XX\": \"Informational\",\n \"103\": \"Early hints\", // not in Node < 10\n \"2XX\": \"Successful\",\n \"3XX\": \"Redirection\",\n \"4XX\": \"Client Error\",\n \"5XX\": \"Server Error\",\n \"7XX\": \"Developer Error\" // April fools RFC\n};\n\nmodule.exports = {\n statusCodes: Object.assign({},ours,http.STATUS_CODES)\n};\n\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","module.exports = require(\"to-arraybuffer\");","module.exports = require(\"xtend\");","module.exports = require(\"builtin-status-codes\");","module.exports = require(\"prismjs/components/prism-bash.js\");","module.exports = require(\"prismjs/components/prism-c.js\");","module.exports = require(\"prismjs/components/prism-clike.js\");","module.exports = require(\"prismjs/components/prism-coffeescript.js\");","module.exports = require(\"prismjs/components/prism-cpp.js\");","module.exports = require(\"prismjs/components/prism-csharp.js\");","module.exports = require(\"prismjs/components/prism-go.js\");","module.exports = require(\"prismjs/components/prism-http.js\");","module.exports = require(\"prismjs/components/prism-java.js\");","module.exports = require(\"prismjs/components/prism-lua.js\");","module.exports = require(\"prismjs/components/prism-markup-templating.js\");","module.exports = require(\"prismjs/components/prism-markup.js\");","module.exports = require(\"prismjs/components/prism-objectivec.js\");","module.exports = require(\"prismjs/components/prism-perl.js\");","module.exports = require(\"prismjs/components/prism-php.js\");","module.exports = require(\"prismjs/components/prism-python.js\");","module.exports = require(\"prismjs/components/prism-ruby.js\");","module.exports = require(\"prismjs/components/prism-scala.js\");","module.exports = require(\"prismjs/components/prism-sql.js\");","module.exports = require(\"prismjs/components/prism-swift.js\");","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"add\",\"done\",\"toJS\",\"load\",\"search\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(URL.createObjectURL(new Blob([\"/*!\\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\\n * -------------------------------------------------------------\\n * Version: \\\"20.2.4\\\"\\n * Repo: https://github.com/Redocly/redoc\\n */\\n/******/ (function(modules) { // webpackBootstrap\\n/******/ \\t// The module cache\\n/******/ \\tvar installedModules = {};\\n/******/\\n/******/ \\t// The require function\\n/******/ \\tfunction __webpack_require__(moduleId) {\\n/******/\\n/******/ \\t\\t// Check if module is in cache\\n/******/ \\t\\tif(installedModules[moduleId]) {\\n/******/ \\t\\t\\treturn installedModules[moduleId].exports;\\n/******/ \\t\\t}\\n/******/ \\t\\t// Create a new module (and put it into the cache)\\n/******/ \\t\\tvar module = installedModules[moduleId] = {\\n/******/ \\t\\t\\ti: moduleId,\\n/******/ \\t\\t\\tl: false,\\n/******/ \\t\\t\\texports: {}\\n/******/ \\t\\t};\\n/******/\\n/******/ \\t\\t// Execute the module function\\n/******/ \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n/******/\\n/******/ \\t\\t// Flag the module as loaded\\n/******/ \\t\\tmodule.l = true;\\n/******/\\n/******/ \\t\\t// Return the exports of the module\\n/******/ \\t\\treturn module.exports;\\n/******/ \\t}\\n/******/\\n/******/\\n/******/ \\t// expose the modules object (__webpack_modules__)\\n/******/ \\t__webpack_require__.m = modules;\\n/******/\\n/******/ \\t// expose the module cache\\n/******/ \\t__webpack_require__.c = installedModules;\\n/******/\\n/******/ \\t// define getter function for harmony exports\\n/******/ \\t__webpack_require__.d = function(exports, name, getter) {\\n/******/ \\t\\tif(!__webpack_require__.o(exports, name)) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n/******/ \\t\\t}\\n/******/ \\t};\\n/******/\\n/******/ \\t// define __esModule on exports\\n/******/ \\t__webpack_require__.r = function(exports) {\\n/******/ \\t\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\n/******/ \\t\\t}\\n/******/ \\t\\tObject.defineProperty(exports, '__esModule', { value: true });\\n/******/ \\t};\\n/******/\\n/******/ \\t// create a fake namespace object\\n/******/ \\t// mode & 1: value is a module id, require it\\n/******/ \\t// mode & 2: merge all properties of value into the ns\\n/******/ \\t// mode & 4: return value when already ns object\\n/******/ \\t// mode & 8|1: behave like require\\n/******/ \\t__webpack_require__.t = function(value, mode) {\\n/******/ \\t\\tif(mode & 1) value = __webpack_require__(value);\\n/******/ \\t\\tif(mode & 8) return value;\\n/******/ \\t\\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\\n/******/ \\t\\tvar ns = Object.create(null);\\n/******/ \\t\\t__webpack_require__.r(ns);\\n/******/ \\t\\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\\n/******/ \\t\\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n/******/ \\t\\treturn ns;\\n/******/ \\t};\\n/******/\\n/******/ \\t// getDefaultExport function for compatibility with non-harmony modules\\n/******/ \\t__webpack_require__.n = function(module) {\\n/******/ \\t\\tvar getter = module && module.__esModule ?\\n/******/ \\t\\t\\tfunction getDefault() { return module['default']; } :\\n/******/ \\t\\t\\tfunction getModuleExports() { return module; };\\n/******/ \\t\\t__webpack_require__.d(getter, 'a', getter);\\n/******/ \\t\\treturn getter;\\n/******/ \\t};\\n/******/\\n/******/ \\t// Object.prototype.hasOwnProperty.call\\n/******/ \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n/******/\\n/******/ \\t// __webpack_public_path__\\n/******/ \\t__webpack_require__.p = \\\"\\\";\\n/******/\\n/******/\\n/******/ \\t// Load entry module and return exports\\n/******/ \\treturn __webpack_require__(__webpack_require__.s = 97);\\n/******/ })\\n/************************************************************************/\\n/******/ ([\\n/* 0 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\\n return it && it.Math == Math && it;\\n};\\n\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nmodule.exports =\\n // eslint-disable-next-line no-undef\\n check(typeof globalThis == 'object' && globalThis) ||\\n check(typeof window == 'object' && window) ||\\n check(typeof self == 'object' && self) ||\\n check(typeof global == 'object' && global) ||\\n // eslint-disable-next-line no-new-func\\n Function('return this')();\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\\n\\n/***/ }),\\n/* 1 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar shared = __webpack_require__(32);\\nvar has = __webpack_require__(3);\\nvar uid = __webpack_require__(36);\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\\n\\nvar WellKnownSymbolsStore = shared('wks');\\nvar Symbol = global.Symbol;\\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\\n\\nmodule.exports = function (name) {\\n if (!has(WellKnownSymbolsStore, name)) {\\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\\n } return WellKnownSymbolsStore[name];\\n};\\n\\n\\n/***/ }),\\n/* 2 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it)) {\\n throw TypeError(String(it) + ' is not an object');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 3 */\\n/***/ (function(module, exports) {\\n\\nvar hasOwnProperty = {}.hasOwnProperty;\\n\\nmodule.exports = function (it, key) {\\n return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/***/ }),\\n/* 4 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\\n * Copyright (C) 2019 Oliver Nightingale\\n * @license MIT\\n */\\n\\n;(function(){\\n\\n/**\\n * A convenience function for configuring and constructing\\n * a new lunr Index.\\n *\\n * A lunr.Builder instance is created and the pipeline setup\\n * with a trimmer, stop word filter and stemmer.\\n *\\n * This builder object is yielded to the configuration function\\n * that is passed as a parameter, allowing the list of fields\\n * and other builder parameters to be customised.\\n *\\n * All documents _must_ be added within the passed config function.\\n *\\n * @example\\n * var idx = lunr(function () {\\n * this.field('title')\\n * this.field('body')\\n * this.ref('id')\\n *\\n * documents.forEach(function (doc) {\\n * this.add(doc)\\n * }, this)\\n * })\\n *\\n * @see {@link lunr.Builder}\\n * @see {@link lunr.Pipeline}\\n * @see {@link lunr.trimmer}\\n * @see {@link lunr.stopWordFilter}\\n * @see {@link lunr.stemmer}\\n * @namespace {function} lunr\\n */\\nvar lunr = function (config) {\\n var builder = new lunr.Builder\\n\\n builder.pipeline.add(\\n lunr.trimmer,\\n lunr.stopWordFilter,\\n lunr.stemmer\\n )\\n\\n builder.searchPipeline.add(\\n lunr.stemmer\\n )\\n\\n config.call(builder, builder)\\n return builder.build()\\n}\\n\\nlunr.version = \\\"2.3.8\\\"\\n/*!\\n * lunr.utils\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A namespace containing utils for the rest of the lunr library\\n * @namespace lunr.utils\\n */\\nlunr.utils = {}\\n\\n/**\\n * Print a warning message to the console.\\n *\\n * @param {String} message The message to be printed.\\n * @memberOf lunr.utils\\n * @function\\n */\\nlunr.utils.warn = (function (global) {\\n /* eslint-disable no-console */\\n return function (message) {\\n if (global.console && console.warn) {\\n console.warn(message)\\n }\\n }\\n /* eslint-enable no-console */\\n})(this)\\n\\n/**\\n * Convert an object to a string.\\n *\\n * In the case of `null` and `undefined` the function returns\\n * the empty string, in all other cases the result of calling\\n * `toString` on the passed object is returned.\\n *\\n * @param {Any} obj The object to convert to a string.\\n * @return {String} string representation of the passed object.\\n * @memberOf lunr.utils\\n */\\nlunr.utils.asString = function (obj) {\\n if (obj === void 0 || obj === null) {\\n return \\\"\\\"\\n } else {\\n return obj.toString()\\n }\\n}\\n\\n/**\\n * Clones an object.\\n *\\n * Will create a copy of an existing object such that any mutations\\n * on the copy cannot affect the original.\\n *\\n * Only shallow objects are supported, passing a nested object to this\\n * function will cause a TypeError.\\n *\\n * Objects with primitives, and arrays of primitives are supported.\\n *\\n * @param {Object} obj The object to clone.\\n * @return {Object} a clone of the passed object.\\n * @throws {TypeError} when a nested object is passed.\\n * @memberOf Utils\\n */\\nlunr.utils.clone = function (obj) {\\n if (obj === null || obj === undefined) {\\n return obj\\n }\\n\\n var clone = Object.create(null),\\n keys = Object.keys(obj)\\n\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i],\\n val = obj[key]\\n\\n if (Array.isArray(val)) {\\n clone[key] = val.slice()\\n continue\\n }\\n\\n if (typeof val === 'string' ||\\n typeof val === 'number' ||\\n typeof val === 'boolean') {\\n clone[key] = val\\n continue\\n }\\n\\n throw new TypeError(\\\"clone is not deep and does not support nested objects\\\")\\n }\\n\\n return clone\\n}\\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\\n this.docRef = docRef\\n this.fieldName = fieldName\\n this._stringValue = stringValue\\n}\\n\\nlunr.FieldRef.joiner = \\\"/\\\"\\n\\nlunr.FieldRef.fromString = function (s) {\\n var n = s.indexOf(lunr.FieldRef.joiner)\\n\\n if (n === -1) {\\n throw \\\"malformed field ref string\\\"\\n }\\n\\n var fieldRef = s.slice(0, n),\\n docRef = s.slice(n + 1)\\n\\n return new lunr.FieldRef (docRef, fieldRef, s)\\n}\\n\\nlunr.FieldRef.prototype.toString = function () {\\n if (this._stringValue == undefined) {\\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\\n }\\n\\n return this._stringValue\\n}\\n/*!\\n * lunr.Set\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A lunr set.\\n *\\n * @constructor\\n */\\nlunr.Set = function (elements) {\\n this.elements = Object.create(null)\\n\\n if (elements) {\\n this.length = elements.length\\n\\n for (var i = 0; i < this.length; i++) {\\n this.elements[elements[i]] = true\\n }\\n } else {\\n this.length = 0\\n }\\n}\\n\\n/**\\n * A complete set that contains all elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.complete = {\\n intersect: function (other) {\\n return other\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return true\\n }\\n}\\n\\n/**\\n * An empty set that contains no elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.empty = {\\n intersect: function () {\\n return this\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return false\\n }\\n}\\n\\n/**\\n * Returns true if this set contains the specified object.\\n *\\n * @param {object} object - Object whose presence in this set is to be tested.\\n * @returns {boolean} - True if this set contains the specified object.\\n */\\nlunr.Set.prototype.contains = function (object) {\\n return !!this.elements[object]\\n}\\n\\n/**\\n * Returns a new set containing only the elements that are present in both\\n * this set and the specified set.\\n *\\n * @param {lunr.Set} other - set to intersect with this set.\\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\\n */\\n\\nlunr.Set.prototype.intersect = function (other) {\\n var a, b, elements, intersection = []\\n\\n if (other === lunr.Set.complete) {\\n return this\\n }\\n\\n if (other === lunr.Set.empty) {\\n return other\\n }\\n\\n if (this.length < other.length) {\\n a = this\\n b = other\\n } else {\\n a = other\\n b = this\\n }\\n\\n elements = Object.keys(a.elements)\\n\\n for (var i = 0; i < elements.length; i++) {\\n var element = elements[i]\\n if (element in b.elements) {\\n intersection.push(element)\\n }\\n }\\n\\n return new lunr.Set (intersection)\\n}\\n\\n/**\\n * Returns a new set combining the elements of this and the specified set.\\n *\\n * @param {lunr.Set} other - set to union with this set.\\n * @return {lunr.Set} a new set that is the union of this and the specified set.\\n */\\n\\nlunr.Set.prototype.union = function (other) {\\n if (other === lunr.Set.complete) {\\n return lunr.Set.complete\\n }\\n\\n if (other === lunr.Set.empty) {\\n return this\\n }\\n\\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\\n}\\n/**\\n * A function to calculate the inverse document frequency for\\n * a posting. This is shared between the builder and the index\\n *\\n * @private\\n * @param {object} posting - The posting for a given term\\n * @param {number} documentCount - The total number of documents.\\n */\\nlunr.idf = function (posting, documentCount) {\\n var documentsWithTerm = 0\\n\\n for (var fieldName in posting) {\\n if (fieldName == '_index') continue // Ignore the term index, its not a field\\n documentsWithTerm += Object.keys(posting[fieldName]).length\\n }\\n\\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\\n\\n return Math.log(1 + Math.abs(x))\\n}\\n\\n/**\\n * A token wraps a string representation of a token\\n * as it is passed through the text processing pipeline.\\n *\\n * @constructor\\n * @param {string} [str=''] - The string token being wrapped.\\n * @param {object} [metadata={}] - Metadata associated with this token.\\n */\\nlunr.Token = function (str, metadata) {\\n this.str = str || \\\"\\\"\\n this.metadata = metadata || {}\\n}\\n\\n/**\\n * Returns the token string that is being wrapped by this object.\\n *\\n * @returns {string}\\n */\\nlunr.Token.prototype.toString = function () {\\n return this.str\\n}\\n\\n/**\\n * A token update function is used when updating or optionally\\n * when cloning a token.\\n *\\n * @callback lunr.Token~updateFunction\\n * @param {string} str - The string representation of the token.\\n * @param {Object} metadata - All metadata associated with this token.\\n */\\n\\n/**\\n * Applies the given function to the wrapped string token.\\n *\\n * @example\\n * token.update(function (str, metadata) {\\n * return str.toUpperCase()\\n * })\\n *\\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.update = function (fn) {\\n this.str = fn(this.str, this.metadata)\\n return this\\n}\\n\\n/**\\n * Creates a clone of this token. Optionally a function can be\\n * applied to the cloned token.\\n *\\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.clone = function (fn) {\\n fn = fn || function (s) { return s }\\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\\n}\\n/*!\\n * lunr.tokenizer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A function for splitting a string into tokens ready to be inserted into\\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\\n * the value of this property to change how strings are split into tokens.\\n *\\n * This tokenizer will convert its parameter to a string by calling `toString` and\\n * then will split this string on the character in `lunr.tokenizer.separator`.\\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\\n *\\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\\n * added as metadata to every token that is created from the object to be tokenized.\\n *\\n * @static\\n * @param {?(string|object|object[])} obj - The object to convert into tokens\\n * @param {?object} metadata - Optional metadata to associate with every token\\n * @returns {lunr.Token[]}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.tokenizer = function (obj, metadata) {\\n if (obj == null || obj == undefined) {\\n return []\\n }\\n\\n if (Array.isArray(obj)) {\\n return obj.map(function (t) {\\n return new lunr.Token(\\n lunr.utils.asString(t).toLowerCase(),\\n lunr.utils.clone(metadata)\\n )\\n })\\n }\\n\\n var str = obj.toString().toLowerCase(),\\n len = str.length,\\n tokens = []\\n\\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\\n var char = str.charAt(sliceEnd),\\n sliceLength = sliceEnd - sliceStart\\n\\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\\n\\n if (sliceLength > 0) {\\n var tokenMetadata = lunr.utils.clone(metadata) || {}\\n tokenMetadata[\\\"position\\\"] = [sliceStart, sliceLength]\\n tokenMetadata[\\\"index\\\"] = tokens.length\\n\\n tokens.push(\\n new lunr.Token (\\n str.slice(sliceStart, sliceEnd),\\n tokenMetadata\\n )\\n )\\n }\\n\\n sliceStart = sliceEnd + 1\\n }\\n\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * The separator used to split a string into tokens. Override this property to change the behaviour of\\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\\n *\\n * @static\\n * @see lunr.tokenizer\\n */\\nlunr.tokenizer.separator = /[\\\\s\\\\-]+/\\n/*!\\n * lunr.Pipeline\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\\n * tokens in documents entering the search index and queries being ran against\\n * the index.\\n *\\n * An instance of lunr.Index created with the lunr shortcut will contain a\\n * pipeline with a stop word filter and an English language stemmer. Extra\\n * functions can be added before or after either of these functions or these\\n * default functions can be removed.\\n *\\n * When run the pipeline will call each function in turn, passing a token, the\\n * index of that token in the original list of all tokens and finally a list of\\n * all the original tokens.\\n *\\n * The output of functions in the pipeline will be passed to the next function\\n * in the pipeline. To exclude a token from entering the index the function\\n * should return undefined, the rest of the pipeline will not be called with\\n * this token.\\n *\\n * For serialisation of pipelines to work, all functions used in an instance of\\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\\n * then be loaded. If trying to load a serialised pipeline that uses functions\\n * that are not registered an error will be thrown.\\n *\\n * If not planning on serialising the pipeline then registering pipeline functions\\n * is not necessary.\\n *\\n * @constructor\\n */\\nlunr.Pipeline = function () {\\n this._stack = []\\n}\\n\\nlunr.Pipeline.registeredFunctions = Object.create(null)\\n\\n/**\\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\\n * string as well as all known metadata. A pipeline function can mutate the token string\\n * or mutate (or add) metadata for a given token.\\n *\\n * A pipeline function can indicate that the passed token should be discarded by returning\\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\\n * functions and will not be added to the index.\\n *\\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\\n *\\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\\n *\\n * @interface lunr.PipelineFunction\\n * @param {lunr.Token} token - A token from the document being processed.\\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\\n * @returns {(?lunr.Token|lunr.Token[])}\\n */\\n\\n/**\\n * Register a function with the pipeline.\\n *\\n * Functions that are used in the pipeline should be registered if the pipeline\\n * needs to be serialised, or a serialised pipeline needs to be loaded.\\n *\\n * Registering a function does not add it to a pipeline, functions must still be\\n * added to instances of the pipeline for them to be used when running a pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @param {String} label - The label to register this function with\\n */\\nlunr.Pipeline.registerFunction = function (fn, label) {\\n if (label in this.registeredFunctions) {\\n lunr.utils.warn('Overwriting existing registered function: ' + label)\\n }\\n\\n fn.label = label\\n lunr.Pipeline.registeredFunctions[fn.label] = fn\\n}\\n\\n/**\\n * Warns if the function is not registered as a Pipeline function.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @private\\n */\\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\\n\\n if (!isRegistered) {\\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\\\n', fn)\\n }\\n}\\n\\n/**\\n * Loads a previously serialised pipeline.\\n *\\n * All functions to be loaded must already be registered with lunr.Pipeline.\\n * If any function from the serialised data has not been registered then an\\n * error will be thrown.\\n *\\n * @param {Object} serialised - The serialised pipeline to load.\\n * @returns {lunr.Pipeline}\\n */\\nlunr.Pipeline.load = function (serialised) {\\n var pipeline = new lunr.Pipeline\\n\\n serialised.forEach(function (fnName) {\\n var fn = lunr.Pipeline.registeredFunctions[fnName]\\n\\n if (fn) {\\n pipeline.add(fn)\\n } else {\\n throw new Error('Cannot load unregistered function: ' + fnName)\\n }\\n })\\n\\n return pipeline\\n}\\n\\n/**\\n * Adds new functions to the end of the pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.add = function () {\\n var fns = Array.prototype.slice.call(arguments)\\n\\n fns.forEach(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n this._stack.push(fn)\\n }, this)\\n}\\n\\n/**\\n * Adds a single function after a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n pos = pos + 1\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Adds a single function before a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Removes a function from the pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\\n */\\nlunr.Pipeline.prototype.remove = function (fn) {\\n var pos = this._stack.indexOf(fn)\\n if (pos == -1) {\\n return\\n }\\n\\n this._stack.splice(pos, 1)\\n}\\n\\n/**\\n * Runs the current list of functions that make up the pipeline against the\\n * passed tokens.\\n *\\n * @param {Array} tokens The tokens to run through the pipeline.\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.run = function (tokens) {\\n var stackLength = this._stack.length\\n\\n for (var i = 0; i < stackLength; i++) {\\n var fn = this._stack[i]\\n var memo = []\\n\\n for (var j = 0; j < tokens.length; j++) {\\n var result = fn(tokens[j], j, tokens)\\n\\n if (result === null || result === void 0 || result === '') continue\\n\\n if (Array.isArray(result)) {\\n for (var k = 0; k < result.length; k++) {\\n memo.push(result[k])\\n }\\n } else {\\n memo.push(result)\\n }\\n }\\n\\n tokens = memo\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * Convenience method for passing a string through a pipeline and getting\\n * strings out. This method takes care of wrapping the passed string in a\\n * token and mapping the resulting tokens back to strings.\\n *\\n * @param {string} str - The string to pass through the pipeline.\\n * @param {?object} metadata - Optional metadata to associate with the token\\n * passed to the pipeline.\\n * @returns {string[]}\\n */\\nlunr.Pipeline.prototype.runString = function (str, metadata) {\\n var token = new lunr.Token (str, metadata)\\n\\n return this.run([token]).map(function (t) {\\n return t.toString()\\n })\\n}\\n\\n/**\\n * Resets the pipeline by removing any existing processors.\\n *\\n */\\nlunr.Pipeline.prototype.reset = function () {\\n this._stack = []\\n}\\n\\n/**\\n * Returns a representation of the pipeline ready for serialisation.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.toJSON = function () {\\n return this._stack.map(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n\\n return fn.label\\n })\\n}\\n/*!\\n * lunr.Vector\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A vector is used to construct the vector space of documents and queries. These\\n * vectors support operations to determine the similarity between two documents or\\n * a document and a query.\\n *\\n * Normally no parameters are required for initializing a vector, but in the case of\\n * loading a previously dumped vector the raw elements can be provided to the constructor.\\n *\\n * For performance reasons vectors are implemented with a flat array, where an elements\\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\\n * allows the underlying array to be as sparse as possible and still offer decent\\n * performance when being used for vector calculations.\\n *\\n * @constructor\\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\\n */\\nlunr.Vector = function (elements) {\\n this._magnitude = 0\\n this.elements = elements || []\\n}\\n\\n\\n/**\\n * Calculates the position within the vector to insert a given index.\\n *\\n * This is used internally by insert and upsert. If there are duplicate indexes then\\n * the position is returned as if the value for that index were to be updated, but it\\n * is the callers responsibility to check whether there is a duplicate at that index\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.positionForIndex = function (index) {\\n // For an empty vector the tuple can be inserted at the beginning\\n if (this.elements.length == 0) {\\n return 0\\n }\\n\\n var start = 0,\\n end = this.elements.length / 2,\\n sliceLength = end - start,\\n pivotPoint = Math.floor(sliceLength / 2),\\n pivotIndex = this.elements[pivotPoint * 2]\\n\\n while (sliceLength > 1) {\\n if (pivotIndex < index) {\\n start = pivotPoint\\n }\\n\\n if (pivotIndex > index) {\\n end = pivotPoint\\n }\\n\\n if (pivotIndex == index) {\\n break\\n }\\n\\n sliceLength = end - start\\n pivotPoint = start + Math.floor(sliceLength / 2)\\n pivotIndex = this.elements[pivotPoint * 2]\\n }\\n\\n if (pivotIndex == index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex > index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex < index) {\\n return (pivotPoint + 1) * 2\\n }\\n}\\n\\n/**\\n * Inserts an element at an index within the vector.\\n *\\n * Does not allow duplicates, will throw an error if there is already an entry\\n * for this index.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n */\\nlunr.Vector.prototype.insert = function (insertIdx, val) {\\n this.upsert(insertIdx, val, function () {\\n throw \\\"duplicate index\\\"\\n })\\n}\\n\\n/**\\n * Inserts or updates an existing index within the vector.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n * @param {function} fn - A function that is called for updates, the existing value and the\\n * requested value are passed as arguments\\n */\\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\\n this._magnitude = 0\\n var position = this.positionForIndex(insertIdx)\\n\\n if (this.elements[position] == insertIdx) {\\n this.elements[position + 1] = fn(this.elements[position + 1], val)\\n } else {\\n this.elements.splice(position, 0, insertIdx, val)\\n }\\n}\\n\\n/**\\n * Calculates the magnitude of this vector.\\n *\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.magnitude = function () {\\n if (this._magnitude) return this._magnitude\\n\\n var sumOfSquares = 0,\\n elementsLength = this.elements.length\\n\\n for (var i = 1; i < elementsLength; i += 2) {\\n var val = this.elements[i]\\n sumOfSquares += val * val\\n }\\n\\n return this._magnitude = Math.sqrt(sumOfSquares)\\n}\\n\\n/**\\n * Calculates the dot product of this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.dot = function (otherVector) {\\n var dotProduct = 0,\\n a = this.elements, b = otherVector.elements,\\n aLen = a.length, bLen = b.length,\\n aVal = 0, bVal = 0,\\n i = 0, j = 0\\n\\n while (i < aLen && j < bLen) {\\n aVal = a[i], bVal = b[j]\\n if (aVal < bVal) {\\n i += 2\\n } else if (aVal > bVal) {\\n j += 2\\n } else if (aVal == bVal) {\\n dotProduct += a[i + 1] * b[j + 1]\\n i += 2\\n j += 2\\n }\\n }\\n\\n return dotProduct\\n}\\n\\n/**\\n * Calculates the similarity between this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The other vector to calculate the\\n * similarity with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.similarity = function (otherVector) {\\n return this.dot(otherVector) / this.magnitude() || 0\\n}\\n\\n/**\\n * Converts the vector to an array of the elements within the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toArray = function () {\\n var output = new Array (this.elements.length / 2)\\n\\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\\n output[j] = this.elements[i]\\n }\\n\\n return output\\n}\\n\\n/**\\n * A JSON serializable representation of the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toJSON = function () {\\n return this.elements\\n}\\n/* eslint-disable */\\n/*!\\n * lunr.stemmer\\n * Copyright (C) 2019 Oliver Nightingale\\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\\n */\\n\\n/**\\n * lunr.stemmer is an english language stemmer, this is a JavaScript\\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token - The string to stem\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n * @function\\n */\\nlunr.stemmer = (function(){\\n var step2list = {\\n \\\"ational\\\" : \\\"ate\\\",\\n \\\"tional\\\" : \\\"tion\\\",\\n \\\"enci\\\" : \\\"ence\\\",\\n \\\"anci\\\" : \\\"ance\\\",\\n \\\"izer\\\" : \\\"ize\\\",\\n \\\"bli\\\" : \\\"ble\\\",\\n \\\"alli\\\" : \\\"al\\\",\\n \\\"entli\\\" : \\\"ent\\\",\\n \\\"eli\\\" : \\\"e\\\",\\n \\\"ousli\\\" : \\\"ous\\\",\\n \\\"ization\\\" : \\\"ize\\\",\\n \\\"ation\\\" : \\\"ate\\\",\\n \\\"ator\\\" : \\\"ate\\\",\\n \\\"alism\\\" : \\\"al\\\",\\n \\\"iveness\\\" : \\\"ive\\\",\\n \\\"fulness\\\" : \\\"ful\\\",\\n \\\"ousness\\\" : \\\"ous\\\",\\n \\\"aliti\\\" : \\\"al\\\",\\n \\\"iviti\\\" : \\\"ive\\\",\\n \\\"biliti\\\" : \\\"ble\\\",\\n \\\"logi\\\" : \\\"log\\\"\\n },\\n\\n step3list = {\\n \\\"icate\\\" : \\\"ic\\\",\\n \\\"ative\\\" : \\\"\\\",\\n \\\"alize\\\" : \\\"al\\\",\\n \\\"iciti\\\" : \\\"ic\\\",\\n \\\"ical\\\" : \\\"ic\\\",\\n \\\"ful\\\" : \\\"\\\",\\n \\\"ness\\\" : \\\"\\\"\\n },\\n\\n c = \\\"[^aeiou]\\\", // consonant\\n v = \\\"[aeiouy]\\\", // vowel\\n C = c + \\\"[^aeiouy]*\\\", // consonant sequence\\n V = v + \\\"[aeiou]*\\\", // vowel sequence\\n\\n mgr0 = \\\"^(\\\" + C + \\\")?\\\" + V + C, // [C]VC... is m>0\\n meq1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + \\\"(\\\" + V + \\\")?$\\\", // [C]VC[V] is m=1\\n mgr1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + V + C, // [C]VCVC... is m>1\\n s_v = \\\"^(\\\" + C + \\\")?\\\" + v; // vowel in stem\\n\\n var re_mgr0 = new RegExp(mgr0);\\n var re_mgr1 = new RegExp(mgr1);\\n var re_meq1 = new RegExp(meq1);\\n var re_s_v = new RegExp(s_v);\\n\\n var re_1a = /^(.+?)(ss|i)es$/;\\n var re2_1a = /^(.+?)([^s])s$/;\\n var re_1b = /^(.+?)eed$/;\\n var re2_1b = /^(.+?)(ed|ing)$/;\\n var re_1b_2 = /.$/;\\n var re2_1b_2 = /(at|bl|iz)$/;\\n var re3_1b_2 = new RegExp(\\\"([^aeiouylsz])\\\\\\\\1$\\\");\\n var re4_1b_2 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var re_1c = /^(.+?[^aeiou])y$/;\\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\\n\\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\\n\\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\\n var re2_4 = /^(.+?)(s|t)(ion)$/;\\n\\n var re_5 = /^(.+?)e$/;\\n var re_5_1 = /ll$/;\\n var re3_5 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var porterStemmer = function porterStemmer(w) {\\n var stem,\\n suffix,\\n firstch,\\n re,\\n re2,\\n re3,\\n re4;\\n\\n if (w.length < 3) { return w; }\\n\\n firstch = w.substr(0,1);\\n if (firstch == \\\"y\\\") {\\n w = firstch.toUpperCase() + w.substr(1);\\n }\\n\\n // Step 1a\\n re = re_1a\\n re2 = re2_1a;\\n\\n if (re.test(w)) { w = w.replace(re,\\\"$1$2\\\"); }\\n else if (re2.test(w)) { w = w.replace(re2,\\\"$1$2\\\"); }\\n\\n // Step 1b\\n re = re_1b;\\n re2 = re2_1b;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n re = re_mgr0;\\n if (re.test(fp[1])) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1];\\n re2 = re_s_v;\\n if (re2.test(stem)) {\\n w = stem;\\n re2 = re2_1b_2;\\n re3 = re3_1b_2;\\n re4 = re4_1b_2;\\n if (re2.test(w)) { w = w + \\\"e\\\"; }\\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\\\"\\\"); }\\n else if (re4.test(w)) { w = w + \\\"e\\\"; }\\n }\\n }\\n\\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\\n re = re_1c;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n w = stem + \\\"i\\\";\\n }\\n\\n // Step 2\\n re = re_2;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step2list[suffix];\\n }\\n }\\n\\n // Step 3\\n re = re_3;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step3list[suffix];\\n }\\n }\\n\\n // Step 4\\n re = re_4;\\n re2 = re2_4;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n if (re.test(stem)) {\\n w = stem;\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1] + fp[2];\\n re2 = re_mgr1;\\n if (re2.test(stem)) {\\n w = stem;\\n }\\n }\\n\\n // Step 5\\n re = re_5;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n re2 = re_meq1;\\n re3 = re3_5;\\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\\n w = stem;\\n }\\n }\\n\\n re = re_5_1;\\n re2 = re_mgr1;\\n if (re.test(w) && re2.test(w)) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n\\n // and turn initial Y back to y\\n\\n if (firstch == \\\"y\\\") {\\n w = firstch.toLowerCase() + w.substr(1);\\n }\\n\\n return w;\\n };\\n\\n return function (token) {\\n return token.update(porterStemmer);\\n }\\n})();\\n\\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\\n/*!\\n * lunr.stopWordFilter\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\\n * list of stop words.\\n *\\n * The built in lunr.stopWordFilter is built using this generator and can be used\\n * to generate custom stopWordFilters for applications or non English languages.\\n *\\n * @function\\n * @param {Array} token The token to pass through the filter\\n * @returns {lunr.PipelineFunction}\\n * @see lunr.Pipeline\\n * @see lunr.stopWordFilter\\n */\\nlunr.generateStopWordFilter = function (stopWords) {\\n var words = stopWords.reduce(function (memo, stopWord) {\\n memo[stopWord] = stopWord\\n return memo\\n }, {})\\n\\n return function (token) {\\n if (token && words[token.toString()] !== token.toString()) return token\\n }\\n}\\n\\n/**\\n * lunr.stopWordFilter is an English language stop word list filter, any words\\n * contained in the list will not be passed through the filter.\\n *\\n * This is intended to be used in the Pipeline. If the token does not pass the\\n * filter then undefined will be returned.\\n *\\n * @function\\n * @implements {lunr.PipelineFunction}\\n * @params {lunr.Token} token - A token to check for being a stop word.\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.stopWordFilter = lunr.generateStopWordFilter([\\n 'a',\\n 'able',\\n 'about',\\n 'across',\\n 'after',\\n 'all',\\n 'almost',\\n 'also',\\n 'am',\\n 'among',\\n 'an',\\n 'and',\\n 'any',\\n 'are',\\n 'as',\\n 'at',\\n 'be',\\n 'because',\\n 'been',\\n 'but',\\n 'by',\\n 'can',\\n 'cannot',\\n 'could',\\n 'dear',\\n 'did',\\n 'do',\\n 'does',\\n 'either',\\n 'else',\\n 'ever',\\n 'every',\\n 'for',\\n 'from',\\n 'get',\\n 'got',\\n 'had',\\n 'has',\\n 'have',\\n 'he',\\n 'her',\\n 'hers',\\n 'him',\\n 'his',\\n 'how',\\n 'however',\\n 'i',\\n 'if',\\n 'in',\\n 'into',\\n 'is',\\n 'it',\\n 'its',\\n 'just',\\n 'least',\\n 'let',\\n 'like',\\n 'likely',\\n 'may',\\n 'me',\\n 'might',\\n 'most',\\n 'must',\\n 'my',\\n 'neither',\\n 'no',\\n 'nor',\\n 'not',\\n 'of',\\n 'off',\\n 'often',\\n 'on',\\n 'only',\\n 'or',\\n 'other',\\n 'our',\\n 'own',\\n 'rather',\\n 'said',\\n 'say',\\n 'says',\\n 'she',\\n 'should',\\n 'since',\\n 'so',\\n 'some',\\n 'than',\\n 'that',\\n 'the',\\n 'their',\\n 'them',\\n 'then',\\n 'there',\\n 'these',\\n 'they',\\n 'this',\\n 'tis',\\n 'to',\\n 'too',\\n 'twas',\\n 'us',\\n 'wants',\\n 'was',\\n 'we',\\n 'were',\\n 'what',\\n 'when',\\n 'where',\\n 'which',\\n 'while',\\n 'who',\\n 'whom',\\n 'why',\\n 'will',\\n 'with',\\n 'would',\\n 'yet',\\n 'you',\\n 'your'\\n])\\n\\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\\n/*!\\n * lunr.trimmer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.trimmer is a pipeline function for trimming non word\\n * characters from the beginning and end of tokens before they\\n * enter the index.\\n *\\n * This implementation may not work correctly for non latin\\n * characters and should either be removed or adapted for use\\n * with languages with non-latin characters.\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token The token to pass through the filter\\n * @returns {lunr.Token}\\n * @see lunr.Pipeline\\n */\\nlunr.trimmer = function (token) {\\n return token.update(function (s) {\\n return s.replace(/^\\\\W+/, '').replace(/\\\\W+$/, '')\\n })\\n}\\n\\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\\n/*!\\n * lunr.TokenSet\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A token set is used to store the unique list of all tokens\\n * within an index. Token sets are also used to represent an\\n * incoming query to the index, this query token set and index\\n * token set are then intersected to find which tokens to look\\n * up in the inverted index.\\n *\\n * A token set can hold multiple tokens, as in the case of the\\n * index token set, or it can hold a single token as in the\\n * case of a simple query token set.\\n *\\n * Additionally token sets are used to perform wildcard matching.\\n * Leading, contained and trailing wildcards are supported, and\\n * from this edit distance matching can also be provided.\\n *\\n * Token sets are implemented as a minimal finite state automata,\\n * where both common prefixes and suffixes are shared between tokens.\\n * This helps to reduce the space used for storing the token set.\\n *\\n * @constructor\\n */\\nlunr.TokenSet = function () {\\n this.final = false\\n this.edges = {}\\n this.id = lunr.TokenSet._nextId\\n lunr.TokenSet._nextId += 1\\n}\\n\\n/**\\n * Keeps track of the next, auto increment, identifier to assign\\n * to a new tokenSet.\\n *\\n * TokenSets require a unique identifier to be correctly minimised.\\n *\\n * @private\\n */\\nlunr.TokenSet._nextId = 1\\n\\n/**\\n * Creates a TokenSet instance from the given sorted array of words.\\n *\\n * @param {String[]} arr - A sorted array of strings to create the set from.\\n * @returns {lunr.TokenSet}\\n * @throws Will throw an error if the input array is not sorted.\\n */\\nlunr.TokenSet.fromArray = function (arr) {\\n var builder = new lunr.TokenSet.Builder\\n\\n for (var i = 0, len = arr.length; i < len; i++) {\\n builder.insert(arr[i])\\n }\\n\\n builder.finish()\\n return builder.root\\n}\\n\\n/**\\n * Creates a token set from a query clause.\\n *\\n * @private\\n * @param {Object} clause - A single clause from lunr.Query.\\n * @param {string} clause.term - The query clause term.\\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromClause = function (clause) {\\n if ('editDistance' in clause) {\\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\\n } else {\\n return lunr.TokenSet.fromString(clause.term)\\n }\\n}\\n\\n/**\\n * Creates a token set representing a single string with a specified\\n * edit distance.\\n *\\n * Insertions, deletions, substitutions and transpositions are each\\n * treated as an edit distance of 1.\\n *\\n * Increasing the allowed edit distance will have a dramatic impact\\n * on the performance of both creating and intersecting these TokenSets.\\n * It is advised to keep the edit distance less than 3.\\n *\\n * @param {string} str - The string to create the token set from.\\n * @param {number} editDistance - The allowed edit distance to match.\\n * @returns {lunr.Vector}\\n */\\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\\n var root = new lunr.TokenSet\\n\\n var stack = [{\\n node: root,\\n editsRemaining: editDistance,\\n str: str\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop()\\n\\n // no edit\\n if (frame.str.length > 0) {\\n var char = frame.str.charAt(0),\\n noEditNode\\n\\n if (char in frame.node.edges) {\\n noEditNode = frame.node.edges[char]\\n } else {\\n noEditNode = new lunr.TokenSet\\n frame.node.edges[char] = noEditNode\\n }\\n\\n if (frame.str.length == 1) {\\n noEditNode.final = true\\n }\\n\\n stack.push({\\n node: noEditNode,\\n editsRemaining: frame.editsRemaining,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n if (frame.editsRemaining == 0) {\\n continue\\n }\\n\\n // insertion\\n if (\\\"*\\\" in frame.node.edges) {\\n var insertionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var insertionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = insertionNode\\n }\\n\\n if (frame.str.length == 0) {\\n insertionNode.final = true\\n }\\n\\n stack.push({\\n node: insertionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str\\n })\\n\\n // deletion\\n // can only do a deletion if we have enough edits remaining\\n // and if there are characters left to delete in the string\\n if (frame.str.length > 1) {\\n stack.push({\\n node: frame.node,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // deletion\\n // just removing the last character from the str\\n if (frame.str.length == 1) {\\n frame.node.final = true\\n }\\n\\n // substitution\\n // can only do a substitution if we have enough edits remaining\\n // and if there are characters left to substitute\\n if (frame.str.length >= 1) {\\n if (\\\"*\\\" in frame.node.edges) {\\n var substitutionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var substitutionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = substitutionNode\\n }\\n\\n if (frame.str.length == 1) {\\n substitutionNode.final = true\\n }\\n\\n stack.push({\\n node: substitutionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // transposition\\n // can only do a transposition if there are edits remaining\\n // and there are enough characters to transpose\\n if (frame.str.length > 1) {\\n var charA = frame.str.charAt(0),\\n charB = frame.str.charAt(1),\\n transposeNode\\n\\n if (charB in frame.node.edges) {\\n transposeNode = frame.node.edges[charB]\\n } else {\\n transposeNode = new lunr.TokenSet\\n frame.node.edges[charB] = transposeNode\\n }\\n\\n if (frame.str.length == 1) {\\n transposeNode.final = true\\n }\\n\\n stack.push({\\n node: transposeNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: charA + frame.str.slice(2)\\n })\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Creates a TokenSet from a string.\\n *\\n * The string may contain one or more wildcard characters (*)\\n * that will allow wildcard matching when intersecting with\\n * another TokenSet.\\n *\\n * @param {string} str - The string to create a TokenSet from.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromString = function (str) {\\n var node = new lunr.TokenSet,\\n root = node\\n\\n /*\\n * Iterates through all characters within the passed string\\n * appending a node for each character.\\n *\\n * When a wildcard character is found then a self\\n * referencing edge is introduced to continually match\\n * any number of any characters.\\n */\\n for (var i = 0, len = str.length; i < len; i++) {\\n var char = str[i],\\n final = (i == len - 1)\\n\\n if (char == \\\"*\\\") {\\n node.edges[char] = node\\n node.final = final\\n\\n } else {\\n var next = new lunr.TokenSet\\n next.final = final\\n\\n node.edges[char] = next\\n node = next\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Converts this TokenSet into an array of strings\\n * contained within the TokenSet.\\n *\\n * This is not intended to be used on a TokenSet that\\n * contains wildcards, in these cases the results are\\n * undefined and are likely to cause an infinite loop.\\n *\\n * @returns {string[]}\\n */\\nlunr.TokenSet.prototype.toArray = function () {\\n var words = []\\n\\n var stack = [{\\n prefix: \\\"\\\",\\n node: this\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop(),\\n edges = Object.keys(frame.node.edges),\\n len = edges.length\\n\\n if (frame.node.final) {\\n /* In Safari, at this point the prefix is sometimes corrupted, see:\\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\\n * String.prototype method forces Safari to \\\"cast\\\" this string to what\\n * it's supposed to be, fixing the bug. */\\n frame.prefix.charAt(0)\\n words.push(frame.prefix)\\n }\\n\\n for (var i = 0; i < len; i++) {\\n var edge = edges[i]\\n\\n stack.push({\\n prefix: frame.prefix.concat(edge),\\n node: frame.node.edges[edge]\\n })\\n }\\n }\\n\\n return words\\n}\\n\\n/**\\n * Generates a string representation of a TokenSet.\\n *\\n * This is intended to allow TokenSets to be used as keys\\n * in objects, largely to aid the construction and minimisation\\n * of a TokenSet. As such it is not designed to be a human\\n * friendly representation of the TokenSet.\\n *\\n * @returns {string}\\n */\\nlunr.TokenSet.prototype.toString = function () {\\n // NOTE: Using Object.keys here as this.edges is very likely\\n // to enter 'hash-mode' with many keys being added\\n //\\n // avoiding a for-in loop here as it leads to the function\\n // being de-optimised (at least in V8). From some simple\\n // benchmarks the performance is comparable, but allowing\\n // V8 to optimize may mean easy performance wins in the future.\\n\\n if (this._str) {\\n return this._str\\n }\\n\\n var str = this.final ? '1' : '0',\\n labels = Object.keys(this.edges).sort(),\\n len = labels.length\\n\\n for (var i = 0; i < len; i++) {\\n var label = labels[i],\\n node = this.edges[label]\\n\\n str = str + label + node.id\\n }\\n\\n return str\\n}\\n\\n/**\\n * Returns a new TokenSet that is the intersection of\\n * this TokenSet and the passed TokenSet.\\n *\\n * This intersection will take into account any wildcards\\n * contained within the TokenSet.\\n *\\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.prototype.intersect = function (b) {\\n var output = new lunr.TokenSet,\\n frame = undefined\\n\\n var stack = [{\\n qNode: b,\\n output: output,\\n node: this\\n }]\\n\\n while (stack.length) {\\n frame = stack.pop()\\n\\n // NOTE: As with the #toString method, we are using\\n // Object.keys and a for loop instead of a for-in loop\\n // as both of these objects enter 'hash' mode, causing\\n // the function to be de-optimised in V8\\n var qEdges = Object.keys(frame.qNode.edges),\\n qLen = qEdges.length,\\n nEdges = Object.keys(frame.node.edges),\\n nLen = nEdges.length\\n\\n for (var q = 0; q < qLen; q++) {\\n var qEdge = qEdges[q]\\n\\n for (var n = 0; n < nLen; n++) {\\n var nEdge = nEdges[n]\\n\\n if (nEdge == qEdge || qEdge == '*') {\\n var node = frame.node.edges[nEdge],\\n qNode = frame.qNode.edges[qEdge],\\n final = node.final && qNode.final,\\n next = undefined\\n\\n if (nEdge in frame.output.edges) {\\n // an edge already exists for this character\\n // no need to create a new node, just set the finality\\n // bit unless this node is already final\\n next = frame.output.edges[nEdge]\\n next.final = next.final || final\\n\\n } else {\\n // no edge exists yet, must create one\\n // set the finality bit and insert it\\n // into the output\\n next = new lunr.TokenSet\\n next.final = final\\n frame.output.edges[nEdge] = next\\n }\\n\\n stack.push({\\n qNode: qNode,\\n output: next,\\n node: node\\n })\\n }\\n }\\n }\\n }\\n\\n return output\\n}\\nlunr.TokenSet.Builder = function () {\\n this.previousWord = \\\"\\\"\\n this.root = new lunr.TokenSet\\n this.uncheckedNodes = []\\n this.minimizedNodes = {}\\n}\\n\\nlunr.TokenSet.Builder.prototype.insert = function (word) {\\n var node,\\n commonPrefix = 0\\n\\n if (word < this.previousWord) {\\n throw new Error (\\\"Out of order word insertion\\\")\\n }\\n\\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\\n if (word[i] != this.previousWord[i]) break\\n commonPrefix++\\n }\\n\\n this.minimize(commonPrefix)\\n\\n if (this.uncheckedNodes.length == 0) {\\n node = this.root\\n } else {\\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\\n }\\n\\n for (var i = commonPrefix; i < word.length; i++) {\\n var nextNode = new lunr.TokenSet,\\n char = word[i]\\n\\n node.edges[char] = nextNode\\n\\n this.uncheckedNodes.push({\\n parent: node,\\n char: char,\\n child: nextNode\\n })\\n\\n node = nextNode\\n }\\n\\n node.final = true\\n this.previousWord = word\\n}\\n\\nlunr.TokenSet.Builder.prototype.finish = function () {\\n this.minimize(0)\\n}\\n\\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\\n var node = this.uncheckedNodes[i],\\n childKey = node.child.toString()\\n\\n if (childKey in this.minimizedNodes) {\\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\\n } else {\\n // Cache the key for this node since\\n // we know it can't change anymore\\n node.child._str = childKey\\n\\n this.minimizedNodes[childKey] = node.child\\n }\\n\\n this.uncheckedNodes.pop()\\n }\\n}\\n/*!\\n * lunr.Index\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * An index contains the built index of all documents and provides a query interface\\n * to the index.\\n *\\n * Usually instances of lunr.Index will not be created using this constructor, instead\\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\\n * used to load previously built and serialized indexes.\\n *\\n * @constructor\\n * @param {Object} attrs - The attributes of the built search index.\\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\\n * @param {Object} attrs.fieldVectors - Field vectors\\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\\n * @param {string[]} attrs.fields - The names of indexed document fields.\\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\\n */\\nlunr.Index = function (attrs) {\\n this.invertedIndex = attrs.invertedIndex\\n this.fieldVectors = attrs.fieldVectors\\n this.tokenSet = attrs.tokenSet\\n this.fields = attrs.fields\\n this.pipeline = attrs.pipeline\\n}\\n\\n/**\\n * A result contains details of a document matching a search query.\\n * @typedef {Object} lunr.Index~Result\\n * @property {string} ref - The reference of the document this result represents.\\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\\n */\\n\\n/**\\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\\n * query language which itself is parsed into an instance of lunr.Query.\\n *\\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\\n * is best used for human entered text rather than program generated text.\\n *\\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\\n * or 'world', though those that contain both will rank higher in the results.\\n *\\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\\n * wildcards will increase the number of documents that will be found but can also have a negative\\n * impact on query performance, especially with wildcards at the beginning of a term.\\n *\\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\\n * hello in the title field will match this query. Using a field not present in the index will lead\\n * to an error being thrown.\\n *\\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\\n * Avoid large values for edit distance to improve query performance.\\n *\\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\\n *\\n * To escape special characters the backslash character '\\\\' can be used, this allows searches to include\\n * characters that would normally be considered modifiers, e.g. `foo\\\\~2` will search for a term \\\"foo~2\\\" instead\\n * of attempting to apply a boost of 2 to the search term \\\"foo\\\".\\n *\\n * @typedef {string} lunr.Index~QueryString\\n * @example Simple single term query\\n * hello\\n * @example Multiple term query\\n * hello world\\n * @example term scoped to a field\\n * title:hello\\n * @example term with a boost of 10\\n * hello^10\\n * @example term with an edit distance of 2\\n * hello~2\\n * @example terms with presence modifiers\\n * -foo +bar baz\\n */\\n\\n/**\\n * Performs a search against the index using lunr query syntax.\\n *\\n * Results will be returned sorted by their score, the most relevant results\\n * will be returned first. For details on how the score is calculated, please see\\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\\n *\\n * For more programmatic querying use lunr.Index#query.\\n *\\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.search = function (queryString) {\\n return this.query(function (query) {\\n var parser = new lunr.QueryParser(queryString, query)\\n parser.parse()\\n })\\n}\\n\\n/**\\n * A query builder callback provides a query object to be used to express\\n * the query to perform on the index.\\n *\\n * @callback lunr.Index~queryBuilder\\n * @param {lunr.Query} query - The query object to build up.\\n * @this lunr.Query\\n */\\n\\n/**\\n * Performs a query against the index using the yielded lunr.Query object.\\n *\\n * If performing programmatic queries against the index, this method is preferred\\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\\n *\\n * A query object is yielded to the supplied function which should be used to\\n * express the query to be run against the index.\\n *\\n * Note that although this function takes a callback parameter it is _not_ an\\n * asynchronous operation, the callback is just yielded a query object to be\\n * customized.\\n *\\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.query = function (fn) {\\n // for each query clause\\n // * process terms\\n // * expand terms from token set\\n // * find matching documents and metadata\\n // * get document vectors\\n // * score documents\\n\\n var query = new lunr.Query(this.fields),\\n matchingFields = Object.create(null),\\n queryVectors = Object.create(null),\\n termFieldCache = Object.create(null),\\n requiredMatches = Object.create(null),\\n prohibitedMatches = Object.create(null)\\n\\n /*\\n * To support field level boosts a query vector is created per\\n * field. An empty vector is eagerly created to support negated\\n * queries.\\n */\\n for (var i = 0; i < this.fields.length; i++) {\\n queryVectors[this.fields[i]] = new lunr.Vector\\n }\\n\\n fn.call(query, query)\\n\\n for (var i = 0; i < query.clauses.length; i++) {\\n /*\\n * Unless the pipeline has been disabled for this term, which is\\n * the case for terms with wildcards, we need to pass the clause\\n * term through the search pipeline. A pipeline returns an array\\n * of processed terms. Pipeline functions may expand the passed\\n * term, which means we may end up performing multiple index lookups\\n * for a single query term.\\n */\\n var clause = query.clauses[i],\\n terms = null,\\n clauseMatches = lunr.Set.complete\\n\\n if (clause.usePipeline) {\\n terms = this.pipeline.runString(clause.term, {\\n fields: clause.fields\\n })\\n } else {\\n terms = [clause.term]\\n }\\n\\n for (var m = 0; m < terms.length; m++) {\\n var term = terms[m]\\n\\n /*\\n * Each term returned from the pipeline needs to use the same query\\n * clause object, e.g. the same boost and or edit distance. The\\n * simplest way to do this is to re-use the clause object but mutate\\n * its term property.\\n */\\n clause.term = term\\n\\n /*\\n * From the term in the clause we create a token set which will then\\n * be used to intersect the indexes token set to get a list of terms\\n * to lookup in the inverted index\\n */\\n var termTokenSet = lunr.TokenSet.fromClause(clause),\\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\\n\\n /*\\n * If a term marked as required does not exist in the tokenSet it is\\n * impossible for the search to return any matches. We set all the field\\n * scoped required matches set to empty and stop examining any further\\n * clauses.\\n */\\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = lunr.Set.empty\\n }\\n\\n break\\n }\\n\\n for (var j = 0; j < expandedTerms.length; j++) {\\n /*\\n * For each term get the posting and termIndex, this is required for\\n * building the query vector.\\n */\\n var expandedTerm = expandedTerms[j],\\n posting = this.invertedIndex[expandedTerm],\\n termIndex = posting._index\\n\\n for (var k = 0; k < clause.fields.length; k++) {\\n /*\\n * For each field that this query term is scoped by (by default\\n * all fields are in scope) we need to get all the document refs\\n * that have this term in that field.\\n *\\n * The posting is the entry in the invertedIndex for the matching\\n * term from above.\\n */\\n var field = clause.fields[k],\\n fieldPosting = posting[field],\\n matchingDocumentRefs = Object.keys(fieldPosting),\\n termField = expandedTerm + \\\"/\\\" + field,\\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\\n\\n /*\\n * if the presence of this term is required ensure that the matching\\n * documents are added to the set of required matches for this clause.\\n *\\n */\\n if (clause.presence == lunr.Query.presence.REQUIRED) {\\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\\n\\n if (requiredMatches[field] === undefined) {\\n requiredMatches[field] = lunr.Set.complete\\n }\\n }\\n\\n /*\\n * if the presence of this term is prohibited ensure that the matching\\n * documents are added to the set of prohibited matches for this field,\\n * creating that set if it does not yet exist.\\n */\\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\\n if (prohibitedMatches[field] === undefined) {\\n prohibitedMatches[field] = lunr.Set.empty\\n }\\n\\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\\n\\n /*\\n * Prohibited matches should not be part of the query vector used for\\n * similarity scoring and no metadata should be extracted so we continue\\n * to the next field\\n */\\n continue\\n }\\n\\n /*\\n * The query field vector is populated using the termIndex found for\\n * the term and a unit value with the appropriate boost applied.\\n * Using upsert because there could already be an entry in the vector\\n * for the term we are working with. In that case we just add the scores\\n * together.\\n */\\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\\n\\n /**\\n * If we've already seen this term, field combo then we've already collected\\n * the matching documents and metadata, no need to go through all that again\\n */\\n if (termFieldCache[termField]) {\\n continue\\n }\\n\\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\\n /*\\n * All metadata for this term/field/document triple\\n * are then extracted and collected into an instance\\n * of lunr.MatchData ready to be returned in the query\\n * results\\n */\\n var matchingDocumentRef = matchingDocumentRefs[l],\\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\\n metadata = fieldPosting[matchingDocumentRef],\\n fieldMatch\\n\\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\\n } else {\\n fieldMatch.add(expandedTerm, field, metadata)\\n }\\n\\n }\\n\\n termFieldCache[termField] = true\\n }\\n }\\n }\\n\\n /**\\n * If the presence was required we need to update the requiredMatches field sets.\\n * We do this after all fields for the term have collected their matches because\\n * the clause terms presence is required in _any_ of the fields not _all_ of the\\n * fields.\\n */\\n if (clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\\n }\\n }\\n }\\n\\n /**\\n * Need to combine the field scoped required and prohibited\\n * matching documents into a global set of required and prohibited\\n * matches\\n */\\n var allRequiredMatches = lunr.Set.complete,\\n allProhibitedMatches = lunr.Set.empty\\n\\n for (var i = 0; i < this.fields.length; i++) {\\n var field = this.fields[i]\\n\\n if (requiredMatches[field]) {\\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\\n }\\n\\n if (prohibitedMatches[field]) {\\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\\n }\\n }\\n\\n var matchingFieldRefs = Object.keys(matchingFields),\\n results = [],\\n matches = Object.create(null)\\n\\n /*\\n * If the query is negated (contains only prohibited terms)\\n * we need to get _all_ fieldRefs currently existing in the\\n * index. This is only done when we know that the query is\\n * entirely prohibited terms to avoid any cost of getting all\\n * fieldRefs unnecessarily.\\n *\\n * Additionally, blank MatchData must be created to correctly\\n * populate the results.\\n */\\n if (query.isNegated()) {\\n matchingFieldRefs = Object.keys(this.fieldVectors)\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n var matchingFieldRef = matchingFieldRefs[i]\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\\n matchingFields[matchingFieldRef] = new lunr.MatchData\\n }\\n }\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n /*\\n * Currently we have document fields that match the query, but we\\n * need to return documents. The matchData and scores are combined\\n * from multiple fields belonging to the same document.\\n *\\n * Scores are calculated by field, using the query vectors created\\n * above, and combined into a final document score using addition.\\n */\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\\n docRef = fieldRef.docRef\\n\\n if (!allRequiredMatches.contains(docRef)) {\\n continue\\n }\\n\\n if (allProhibitedMatches.contains(docRef)) {\\n continue\\n }\\n\\n var fieldVector = this.fieldVectors[fieldRef],\\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\\n docMatch\\n\\n if ((docMatch = matches[docRef]) !== undefined) {\\n docMatch.score += score\\n docMatch.matchData.combine(matchingFields[fieldRef])\\n } else {\\n var match = {\\n ref: docRef,\\n score: score,\\n matchData: matchingFields[fieldRef]\\n }\\n matches[docRef] = match\\n results.push(match)\\n }\\n }\\n\\n /*\\n * Sort the results objects by score, highest first.\\n */\\n return results.sort(function (a, b) {\\n return b.score - a.score\\n })\\n}\\n\\n/**\\n * Prepares the index for JSON serialization.\\n *\\n * The schema for this JSON blob will be described in a\\n * separate JSON schema file.\\n *\\n * @returns {Object}\\n */\\nlunr.Index.prototype.toJSON = function () {\\n var invertedIndex = Object.keys(this.invertedIndex)\\n .sort()\\n .map(function (term) {\\n return [term, this.invertedIndex[term]]\\n }, this)\\n\\n var fieldVectors = Object.keys(this.fieldVectors)\\n .map(function (ref) {\\n return [ref, this.fieldVectors[ref].toJSON()]\\n }, this)\\n\\n return {\\n version: lunr.version,\\n fields: this.fields,\\n fieldVectors: fieldVectors,\\n invertedIndex: invertedIndex,\\n pipeline: this.pipeline.toJSON()\\n }\\n}\\n\\n/**\\n * Loads a previously serialized lunr.Index\\n *\\n * @param {Object} serializedIndex - A previously serialized lunr.Index\\n * @returns {lunr.Index}\\n */\\nlunr.Index.load = function (serializedIndex) {\\n var attrs = {},\\n fieldVectors = {},\\n serializedVectors = serializedIndex.fieldVectors,\\n invertedIndex = Object.create(null),\\n serializedInvertedIndex = serializedIndex.invertedIndex,\\n tokenSetBuilder = new lunr.TokenSet.Builder,\\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\\n\\n if (serializedIndex.version != lunr.version) {\\n lunr.utils.warn(\\\"Version mismatch when loading serialised index. Current version of lunr '\\\" + lunr.version + \\\"' does not match serialized index '\\\" + serializedIndex.version + \\\"'\\\")\\n }\\n\\n for (var i = 0; i < serializedVectors.length; i++) {\\n var tuple = serializedVectors[i],\\n ref = tuple[0],\\n elements = tuple[1]\\n\\n fieldVectors[ref] = new lunr.Vector(elements)\\n }\\n\\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\\n var tuple = serializedInvertedIndex[i],\\n term = tuple[0],\\n posting = tuple[1]\\n\\n tokenSetBuilder.insert(term)\\n invertedIndex[term] = posting\\n }\\n\\n tokenSetBuilder.finish()\\n\\n attrs.fields = serializedIndex.fields\\n\\n attrs.fieldVectors = fieldVectors\\n attrs.invertedIndex = invertedIndex\\n attrs.tokenSet = tokenSetBuilder.root\\n attrs.pipeline = pipeline\\n\\n return new lunr.Index(attrs)\\n}\\n/*!\\n * lunr.Builder\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Builder performs indexing on a set of documents and\\n * returns instances of lunr.Index ready for querying.\\n *\\n * All configuration of the index is done via the builder, the\\n * fields to index, the document reference, the text processing\\n * pipeline and document scoring parameters are all set on the\\n * builder before indexing.\\n *\\n * @constructor\\n * @property {string} _ref - Internal reference to the document reference field.\\n * @property {string[]} _fields - Internal reference to the document fields to index.\\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\\n */\\nlunr.Builder = function () {\\n this._ref = \\\"id\\\"\\n this._fields = Object.create(null)\\n this._documents = Object.create(null)\\n this.invertedIndex = Object.create(null)\\n this.fieldTermFrequencies = {}\\n this.fieldLengths = {}\\n this.tokenizer = lunr.tokenizer\\n this.pipeline = new lunr.Pipeline\\n this.searchPipeline = new lunr.Pipeline\\n this.documentCount = 0\\n this._b = 0.75\\n this._k1 = 1.2\\n this.termIndex = 0\\n this.metadataWhitelist = []\\n}\\n\\n/**\\n * Sets the document field used as the document reference. Every document must have this field.\\n * The type of this field in the document should be a string, if it is not a string it will be\\n * coerced into a string by calling toString.\\n *\\n * The default ref is 'id'.\\n *\\n * The ref should _not_ be changed during indexing, it should be set before any documents are\\n * added to the index. Changing it during indexing can lead to inconsistent results.\\n *\\n * @param {string} ref - The name of the reference field in the document.\\n */\\nlunr.Builder.prototype.ref = function (ref) {\\n this._ref = ref\\n}\\n\\n/**\\n * A function that is used to extract a field from a document.\\n *\\n * Lunr expects a field to be at the top level of a document, if however the field\\n * is deeply nested within a document an extractor function can be used to extract\\n * the right field for indexing.\\n *\\n * @callback fieldExtractor\\n * @param {object} doc - The document being added to the index.\\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\\n * @example Extracting a nested field\\n * function (doc) { return doc.nested.field }\\n */\\n\\n/**\\n * Adds a field to the list of document fields that will be indexed. Every document being\\n * indexed should have this field. Null values for this field in indexed documents will\\n * not cause errors but will limit the chance of that document being retrieved by searches.\\n *\\n * All fields should be added before adding documents to the index. Adding fields after\\n * a document has been indexed will have no effect on already indexed documents.\\n *\\n * Fields can be boosted at build time. This allows terms within that field to have more\\n * importance when ranking search results. Use a field boost to specify that matches within\\n * one field are more important than other fields.\\n *\\n * @param {string} fieldName - The name of a field to index in all documents.\\n * @param {object} attributes - Optional attributes associated with this field.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\\n */\\nlunr.Builder.prototype.field = function (fieldName, attributes) {\\n if (/\\\\//.test(fieldName)) {\\n throw new RangeError (\\\"Field '\\\" + fieldName + \\\"' contains illegal character '/'\\\")\\n }\\n\\n this._fields[fieldName] = attributes || {}\\n}\\n\\n/**\\n * A parameter to tune the amount of field length normalisation that is applied when\\n * calculating relevance scores. A value of 0 will completely disable any normalisation\\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\\n * will be clamped to the range 0 - 1.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.b = function (number) {\\n if (number < 0) {\\n this._b = 0\\n } else if (number > 1) {\\n this._b = 1\\n } else {\\n this._b = number\\n }\\n}\\n\\n/**\\n * A parameter that controls the speed at which a rise in term frequency results in term\\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\\n * slower saturation levels, a lower value will result in quicker saturation.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.k1 = function (number) {\\n this._k1 = number\\n}\\n\\n/**\\n * Adds a document to the index.\\n *\\n * Before adding fields to the index the index should have been fully setup, with the document\\n * ref and all fields to index already having been specified.\\n *\\n * The document must have a field name as specified by the ref (by default this is 'id') and\\n * it should have all fields defined for indexing, though null or undefined values will not\\n * cause errors.\\n *\\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\\n * this document should rank higher in search results than other documents.\\n *\\n * @param {object} doc - The document to add to the index.\\n * @param {object} attributes - Optional attributes associated with this document.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\\n */\\nlunr.Builder.prototype.add = function (doc, attributes) {\\n var docRef = doc[this._ref],\\n fields = Object.keys(this._fields)\\n\\n this._documents[docRef] = attributes || {}\\n this.documentCount += 1\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i],\\n extractor = this._fields[fieldName].extractor,\\n field = extractor ? extractor(doc) : doc[fieldName],\\n tokens = this.tokenizer(field, {\\n fields: [fieldName]\\n }),\\n terms = this.pipeline.run(tokens),\\n fieldRef = new lunr.FieldRef (docRef, fieldName),\\n fieldTerms = Object.create(null)\\n\\n this.fieldTermFrequencies[fieldRef] = fieldTerms\\n this.fieldLengths[fieldRef] = 0\\n\\n // store the length of this field for this document\\n this.fieldLengths[fieldRef] += terms.length\\n\\n // calculate term frequencies for this field\\n for (var j = 0; j < terms.length; j++) {\\n var term = terms[j]\\n\\n if (fieldTerms[term] == undefined) {\\n fieldTerms[term] = 0\\n }\\n\\n fieldTerms[term] += 1\\n\\n // add to inverted index\\n // create an initial posting if one doesn't exist\\n if (this.invertedIndex[term] == undefined) {\\n var posting = Object.create(null)\\n posting[\\\"_index\\\"] = this.termIndex\\n this.termIndex += 1\\n\\n for (var k = 0; k < fields.length; k++) {\\n posting[fields[k]] = Object.create(null)\\n }\\n\\n this.invertedIndex[term] = posting\\n }\\n\\n // add an entry for this term/fieldName/docRef to the invertedIndex\\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\\n }\\n\\n // store all whitelisted metadata about this token in the\\n // inverted index\\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\\n var metadataKey = this.metadataWhitelist[l],\\n metadata = term.metadata[metadataKey]\\n\\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\\n }\\n\\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\\n }\\n }\\n\\n }\\n}\\n\\n/**\\n * Calculates the average document length for this index\\n *\\n * @private\\n */\\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\\n\\n var fieldRefs = Object.keys(this.fieldLengths),\\n numberOfFields = fieldRefs.length,\\n accumulator = {},\\n documentsWithField = {}\\n\\n for (var i = 0; i < numberOfFields; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n field = fieldRef.fieldName\\n\\n documentsWithField[field] || (documentsWithField[field] = 0)\\n documentsWithField[field] += 1\\n\\n accumulator[field] || (accumulator[field] = 0)\\n accumulator[field] += this.fieldLengths[fieldRef]\\n }\\n\\n var fields = Object.keys(this._fields)\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i]\\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\\n }\\n\\n this.averageFieldLength = accumulator\\n}\\n\\n/**\\n * Builds a vector space model of every document using lunr.Vector\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createFieldVectors = function () {\\n var fieldVectors = {},\\n fieldRefs = Object.keys(this.fieldTermFrequencies),\\n fieldRefsLength = fieldRefs.length,\\n termIdfCache = Object.create(null)\\n\\n for (var i = 0; i < fieldRefsLength; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n fieldName = fieldRef.fieldName,\\n fieldLength = this.fieldLengths[fieldRef],\\n fieldVector = new lunr.Vector,\\n termFrequencies = this.fieldTermFrequencies[fieldRef],\\n terms = Object.keys(termFrequencies),\\n termsLength = terms.length\\n\\n\\n var fieldBoost = this._fields[fieldName].boost || 1,\\n docBoost = this._documents[fieldRef.docRef].boost || 1\\n\\n for (var j = 0; j < termsLength; j++) {\\n var term = terms[j],\\n tf = termFrequencies[term],\\n termIndex = this.invertedIndex[term]._index,\\n idf, score, scoreWithPrecision\\n\\n if (termIdfCache[term] === undefined) {\\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\\n termIdfCache[term] = idf\\n } else {\\n idf = termIdfCache[term]\\n }\\n\\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\\n score *= fieldBoost\\n score *= docBoost\\n scoreWithPrecision = Math.round(score * 1000) / 1000\\n // Converts 1.23456789 to 1.234.\\n // Reducing the precision so that the vectors take up less\\n // space when serialised. Doing it now so that they behave\\n // the same before and after serialisation. Also, this is\\n // the fastest approach to reducing a number's precision in\\n // JavaScript.\\n\\n fieldVector.insert(termIndex, scoreWithPrecision)\\n }\\n\\n fieldVectors[fieldRef] = fieldVector\\n }\\n\\n this.fieldVectors = fieldVectors\\n}\\n\\n/**\\n * Creates a token set of all tokens in the index using lunr.TokenSet\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createTokenSet = function () {\\n this.tokenSet = lunr.TokenSet.fromArray(\\n Object.keys(this.invertedIndex).sort()\\n )\\n}\\n\\n/**\\n * Builds the index, creating an instance of lunr.Index.\\n *\\n * This completes the indexing process and should only be called\\n * once all documents have been added to the index.\\n *\\n * @returns {lunr.Index}\\n */\\nlunr.Builder.prototype.build = function () {\\n this.calculateAverageFieldLengths()\\n this.createFieldVectors()\\n this.createTokenSet()\\n\\n return new lunr.Index({\\n invertedIndex: this.invertedIndex,\\n fieldVectors: this.fieldVectors,\\n tokenSet: this.tokenSet,\\n fields: Object.keys(this._fields),\\n pipeline: this.searchPipeline\\n })\\n}\\n\\n/**\\n * Applies a plugin to the index builder.\\n *\\n * A plugin is a function that is called with the index builder as its context.\\n * Plugins can be used to customise or extend the behaviour of the index\\n * in some way. A plugin is just a function, that encapsulated the custom\\n * behaviour that should be applied when building the index.\\n *\\n * The plugin function will be called with the index builder as its argument, additional\\n * arguments can also be passed when calling use. The function will be called\\n * with the index builder as its context.\\n *\\n * @param {Function} plugin The plugin to apply.\\n */\\nlunr.Builder.prototype.use = function (fn) {\\n var args = Array.prototype.slice.call(arguments, 1)\\n args.unshift(this)\\n fn.apply(this, args)\\n}\\n/**\\n * Contains and collects metadata about a matching document.\\n * A single instance of lunr.MatchData is returned as part of every\\n * lunr.Index~Result.\\n *\\n * @constructor\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n * @property {object} metadata - A cloned collection of metadata associated with this document.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData = function (term, field, metadata) {\\n var clonedMetadata = Object.create(null),\\n metadataKeys = Object.keys(metadata || {})\\n\\n // Cloning the metadata to prevent the original\\n // being mutated during match data combination.\\n // Metadata is kept in an array within the inverted\\n // index so cloning the data can be done with\\n // Array#slice\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n clonedMetadata[key] = metadata[key].slice()\\n }\\n\\n this.metadata = Object.create(null)\\n\\n if (term !== undefined) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = clonedMetadata\\n }\\n}\\n\\n/**\\n * An instance of lunr.MatchData will be created for every term that matches a\\n * document. However only one instance is required in a lunr.Index~Result. This\\n * method combines metadata from another instance of lunr.MatchData with this\\n * objects metadata.\\n *\\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData.prototype.combine = function (otherMatchData) {\\n var terms = Object.keys(otherMatchData.metadata)\\n\\n for (var i = 0; i < terms.length; i++) {\\n var term = terms[i],\\n fields = Object.keys(otherMatchData.metadata[term])\\n\\n if (this.metadata[term] == undefined) {\\n this.metadata[term] = Object.create(null)\\n }\\n\\n for (var j = 0; j < fields.length; j++) {\\n var field = fields[j],\\n keys = Object.keys(otherMatchData.metadata[term][field])\\n\\n if (this.metadata[term][field] == undefined) {\\n this.metadata[term][field] = Object.create(null)\\n }\\n\\n for (var k = 0; k < keys.length; k++) {\\n var key = keys[k]\\n\\n if (this.metadata[term][field][key] == undefined) {\\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\\n } else {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\\n }\\n\\n }\\n }\\n }\\n}\\n\\n/**\\n * Add metadata for a term/field pair to this instance of match data.\\n *\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n */\\nlunr.MatchData.prototype.add = function (term, field, metadata) {\\n if (!(term in this.metadata)) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n if (!(field in this.metadata[term])) {\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n var metadataKeys = Object.keys(metadata)\\n\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n\\n if (key in this.metadata[term][field]) {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\\n } else {\\n this.metadata[term][field][key] = metadata[key]\\n }\\n }\\n}\\n/**\\n * A lunr.Query provides a programmatic way of defining queries to be performed\\n * against a {@link lunr.Index}.\\n *\\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\\n * so the query object is pre-initialized with the right index fields.\\n *\\n * @constructor\\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\\n */\\nlunr.Query = function (allFields) {\\n this.clauses = []\\n this.allFields = allFields\\n}\\n\\n/**\\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\\n *\\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\\n * concatenation.\\n *\\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\\n *\\n * @constant\\n * @default\\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with trailing wildcard\\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\\n * @example query term with leading and trailing wildcard\\n * query.term('foo', {\\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\\n * })\\n */\\n\\nlunr.Query.wildcard = new String (\\\"*\\\")\\nlunr.Query.wildcard.NONE = 0\\nlunr.Query.wildcard.LEADING = 1\\nlunr.Query.wildcard.TRAILING = 2\\n\\n/**\\n * Constants for indicating what kind of presence a term must have in matching documents.\\n *\\n * @constant\\n * @enum {number}\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with required presence\\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\\n */\\nlunr.Query.presence = {\\n /**\\n * Term's presence in a document is optional, this is the default value.\\n */\\n OPTIONAL: 1,\\n\\n /**\\n * Term's presence in a document is required, documents that do not contain\\n * this term will not be returned.\\n */\\n REQUIRED: 2,\\n\\n /**\\n * Term's presence in a document is prohibited, documents that do contain\\n * this term will not be returned.\\n */\\n PROHIBITED: 3\\n}\\n\\n/**\\n * A single clause in a {@link lunr.Query} contains a term and details on how to\\n * match that term against a {@link lunr.Index}.\\n *\\n * @typedef {Object} lunr.Query~Clause\\n * @property {string[]} fields - The fields in an index this clause should be matched against.\\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\\n */\\n\\n/**\\n * Adds a {@link lunr.Query~Clause} to this query.\\n *\\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\\n * a default boost of 1 is applied to the clause.\\n *\\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\\n * @see lunr.Query~Clause\\n * @returns {lunr.Query}\\n */\\nlunr.Query.prototype.clause = function (clause) {\\n if (!('fields' in clause)) {\\n clause.fields = this.allFields\\n }\\n\\n if (!('boost' in clause)) {\\n clause.boost = 1\\n }\\n\\n if (!('usePipeline' in clause)) {\\n clause.usePipeline = true\\n }\\n\\n if (!('wildcard' in clause)) {\\n clause.wildcard = lunr.Query.wildcard.NONE\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\\n clause.term = \\\"*\\\" + clause.term\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\\n clause.term = \\\"\\\" + clause.term + \\\"*\\\"\\n }\\n\\n if (!('presence' in clause)) {\\n clause.presence = lunr.Query.presence.OPTIONAL\\n }\\n\\n this.clauses.push(clause)\\n\\n return this\\n}\\n\\n/**\\n * A negated query is one in which every clause has a presence of\\n * prohibited. These queries require some special processing to return\\n * the expected results.\\n *\\n * @returns boolean\\n */\\nlunr.Query.prototype.isNegated = function () {\\n for (var i = 0; i < this.clauses.length; i++) {\\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\\n return false\\n }\\n }\\n\\n return true\\n}\\n\\n/**\\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\\n * to the list of clauses that make up this query.\\n *\\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\\n * to a token or token-like string should be done before calling this method.\\n *\\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\\n * array, each term in the array will share the same options.\\n *\\n * @param {object|object[]} term - The term(s) to add to the query.\\n * @param {object} [options] - Any additional properties to add to the query clause.\\n * @returns {lunr.Query}\\n * @see lunr.Query#clause\\n * @see lunr.Query~Clause\\n * @example adding a single term to a query\\n * query.term(\\\"foo\\\")\\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\\n * query.term(\\\"foo\\\", {\\n * fields: [\\\"title\\\"],\\n * boost: 10,\\n * wildcard: lunr.Query.wildcard.TRAILING\\n * })\\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\\n * query.term(lunr.tokenizer(\\\"foo bar\\\"))\\n */\\nlunr.Query.prototype.term = function (term, options) {\\n if (Array.isArray(term)) {\\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\\n return this\\n }\\n\\n var clause = options || {}\\n clause.term = term.toString()\\n\\n this.clause(clause)\\n\\n return this\\n}\\nlunr.QueryParseError = function (message, start, end) {\\n this.name = \\\"QueryParseError\\\"\\n this.message = message\\n this.start = start\\n this.end = end\\n}\\n\\nlunr.QueryParseError.prototype = new Error\\nlunr.QueryLexer = function (str) {\\n this.lexemes = []\\n this.str = str\\n this.length = str.length\\n this.pos = 0\\n this.start = 0\\n this.escapeCharPositions = []\\n}\\n\\nlunr.QueryLexer.prototype.run = function () {\\n var state = lunr.QueryLexer.lexText\\n\\n while (state) {\\n state = state(this)\\n }\\n}\\n\\nlunr.QueryLexer.prototype.sliceString = function () {\\n var subSlices = [],\\n sliceStart = this.start,\\n sliceEnd = this.pos\\n\\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\\n sliceEnd = this.escapeCharPositions[i]\\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\\n sliceStart = sliceEnd + 1\\n }\\n\\n subSlices.push(this.str.slice(sliceStart, this.pos))\\n this.escapeCharPositions.length = 0\\n\\n return subSlices.join('')\\n}\\n\\nlunr.QueryLexer.prototype.emit = function (type) {\\n this.lexemes.push({\\n type: type,\\n str: this.sliceString(),\\n start: this.start,\\n end: this.pos\\n })\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.escapeCharacter = function () {\\n this.escapeCharPositions.push(this.pos - 1)\\n this.pos += 1\\n}\\n\\nlunr.QueryLexer.prototype.next = function () {\\n if (this.pos >= this.length) {\\n return lunr.QueryLexer.EOS\\n }\\n\\n var char = this.str.charAt(this.pos)\\n this.pos += 1\\n return char\\n}\\n\\nlunr.QueryLexer.prototype.width = function () {\\n return this.pos - this.start\\n}\\n\\nlunr.QueryLexer.prototype.ignore = function () {\\n if (this.start == this.pos) {\\n this.pos += 1\\n }\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.backup = function () {\\n this.pos -= 1\\n}\\n\\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\\n var char, charCode\\n\\n do {\\n char = this.next()\\n charCode = char.charCodeAt(0)\\n } while (charCode > 47 && charCode < 58)\\n\\n if (char != lunr.QueryLexer.EOS) {\\n this.backup()\\n }\\n}\\n\\nlunr.QueryLexer.prototype.more = function () {\\n return this.pos < this.length\\n}\\n\\nlunr.QueryLexer.EOS = 'EOS'\\nlunr.QueryLexer.FIELD = 'FIELD'\\nlunr.QueryLexer.TERM = 'TERM'\\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\\nlunr.QueryLexer.BOOST = 'BOOST'\\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\\n\\nlunr.QueryLexer.lexField = function (lexer) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.FIELD)\\n lexer.ignore()\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexTerm = function (lexer) {\\n if (lexer.width() > 1) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n\\n lexer.ignore()\\n\\n if (lexer.more()) {\\n return lunr.QueryLexer.lexText\\n }\\n}\\n\\nlunr.QueryLexer.lexEditDistance = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexBoost = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.BOOST)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexEOS = function (lexer) {\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n}\\n\\n// This matches the separator used when tokenising fields\\n// within a document. These should match otherwise it is\\n// not possible to search for some tokens within a document.\\n//\\n// It is possible for the user to change the separator on the\\n// tokenizer so it _might_ clash with any other of the special\\n// characters already used within the search string, e.g. :.\\n//\\n// This means that it is possible to change the separator in\\n// such a way that makes some words unsearchable using a search\\n// string.\\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\\n\\nlunr.QueryLexer.lexText = function (lexer) {\\n while (true) {\\n var char = lexer.next()\\n\\n if (char == lunr.QueryLexer.EOS) {\\n return lunr.QueryLexer.lexEOS\\n }\\n\\n // Escape character is '\\\\'\\n if (char.charCodeAt(0) == 92) {\\n lexer.escapeCharacter()\\n continue\\n }\\n\\n if (char == \\\":\\\") {\\n return lunr.QueryLexer.lexField\\n }\\n\\n if (char == \\\"~\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexEditDistance\\n }\\n\\n if (char == \\\"^\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexBoost\\n }\\n\\n // \\\"+\\\" indicates term presence is required\\n // checking for length to ensure that only\\n // leading \\\"+\\\" are considered\\n if (char == \\\"+\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n // \\\"-\\\" indicates term presence is prohibited\\n // checking for length to ensure that only\\n // leading \\\"-\\\" are considered\\n if (char == \\\"-\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n if (char.match(lunr.QueryLexer.termSeparator)) {\\n return lunr.QueryLexer.lexTerm\\n }\\n }\\n}\\n\\nlunr.QueryParser = function (str, query) {\\n this.lexer = new lunr.QueryLexer (str)\\n this.query = query\\n this.currentClause = {}\\n this.lexemeIdx = 0\\n}\\n\\nlunr.QueryParser.prototype.parse = function () {\\n this.lexer.run()\\n this.lexemes = this.lexer.lexemes\\n\\n var state = lunr.QueryParser.parseClause\\n\\n while (state) {\\n state = state(this)\\n }\\n\\n return this.query\\n}\\n\\nlunr.QueryParser.prototype.peekLexeme = function () {\\n return this.lexemes[this.lexemeIdx]\\n}\\n\\nlunr.QueryParser.prototype.consumeLexeme = function () {\\n var lexeme = this.peekLexeme()\\n this.lexemeIdx += 1\\n return lexeme\\n}\\n\\nlunr.QueryParser.prototype.nextClause = function () {\\n var completedClause = this.currentClause\\n this.query.clause(completedClause)\\n this.currentClause = {}\\n}\\n\\nlunr.QueryParser.parseClause = function (parser) {\\n var lexeme = parser.peekLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.type) {\\n case lunr.QueryLexer.PRESENCE:\\n return lunr.QueryParser.parsePresence\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expected either a field or a term, found \\\" + lexeme.type\\n\\n if (lexeme.str.length >= 1) {\\n errorMessage += \\\" with value '\\\" + lexeme.str + \\\"'\\\"\\n }\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parsePresence = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.str) {\\n case \\\"-\\\":\\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\\n break\\n case \\\"+\\\":\\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\\n break\\n default:\\n var errorMessage = \\\"unrecognised presence operator'\\\" + lexeme.str + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term or field, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term or field, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseField = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\\n var possibleFields = parser.query.allFields.map(function (f) { return \\\"'\\\" + f + \\\"'\\\" }).join(', '),\\n errorMessage = \\\"unrecognised field '\\\" + lexeme.str + \\\"', possible fields: \\\" + possibleFields\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.fields = [lexeme.str]\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseTerm = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n parser.currentClause.term = lexeme.str.toLowerCase()\\n\\n if (lexeme.str.indexOf(\\\"*\\\") != -1) {\\n parser.currentClause.usePipeline = false\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseEditDistance = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var editDistance = parseInt(lexeme.str, 10)\\n\\n if (isNaN(editDistance)) {\\n var errorMessage = \\\"edit distance must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.editDistance = editDistance\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseBoost = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var boost = parseInt(lexeme.str, 10)\\n\\n if (isNaN(boost)) {\\n var errorMessage = \\\"boost must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.boost = boost\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\n /**\\n * export the module via AMD, CommonJS or as a browser global\\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\\n */\\n ;(function (root, factory) {\\n if (true) {\\n // AMD. Register as an anonymous module.\\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\\n\\t\\t\\t\\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_FACTORY__),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\\n } else {}\\n }(this, function () {\\n /**\\n * Just return a value to define the module export.\\n * This example returns an object, but the module\\n * can return a function as the exported value.\\n */\\n return lunr\\n }))\\n})();\\n\\n\\n/***/ }),\\n/* 5 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return !!exec();\\n } catch (error) {\\n return true;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 6 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar createPropertyDescriptor = __webpack_require__(22);\\n\\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\\n} : function (object, key, value) {\\n object[key] = value;\\n return object;\\n};\\n\\n\\n/***/ }),\\n/* 7 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n return typeof it === 'object' ? it !== null : typeof it === 'function';\\n};\\n\\n\\n/***/ }),\\n/* 8 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !fails(function () {\\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\\n});\\n\\n\\n/***/ }),\\n/* 9 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\nvar anObject = __webpack_require__(2);\\nvar toPrimitive = __webpack_require__(35);\\n\\nvar nativeDefineProperty = Object.defineProperty;\\n\\n// `Object.defineProperty` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\\n anObject(O);\\n P = toPrimitive(P, true);\\n anObject(Attributes);\\n if (IE8_DOM_DEFINE) try {\\n return nativeDefineProperty(O, P, Attributes);\\n } catch (error) { /* empty */ }\\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\\n if ('value' in Attributes) O[P] = Attributes.value;\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 10 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar setGlobal = __webpack_require__(20);\\nvar inspectSource = __webpack_require__(23);\\nvar InternalStateModule = __webpack_require__(16);\\n\\nvar getInternalState = InternalStateModule.get;\\nvar enforceInternalState = InternalStateModule.enforce;\\nvar TEMPLATE = String(String).split('String');\\n\\n(module.exports = function (O, key, value, options) {\\n var unsafe = options ? !!options.unsafe : false;\\n var simple = options ? !!options.enumerable : false;\\n var noTargetGet = options ? !!options.noTargetGet : false;\\n if (typeof value == 'function') {\\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\\n }\\n if (O === global) {\\n if (simple) O[key] = value;\\n else setGlobal(key, value);\\n return;\\n } else if (!unsafe) {\\n delete O[key];\\n } else if (!noTargetGet && O[key]) {\\n simple = true;\\n }\\n if (simple) O[key] = value;\\n else createNonEnumerableProperty(O, key, value);\\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\\n})(Function.prototype, 'toString', function toString() {\\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\\n});\\n\\n\\n/***/ }),\\n/* 11 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar path = __webpack_require__(40);\\nvar global = __webpack_require__(0);\\n\\nvar aFunction = function (variable) {\\n return typeof variable == 'function' ? variable : undefined;\\n};\\n\\nmodule.exports = function (namespace, method) {\\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\\n};\\n\\n\\n/***/ }),\\n/* 12 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = false;\\n\\n\\n/***/ }),\\n/* 13 */\\n/***/ (function(module, exports) {\\n\\nvar toString = {}.toString;\\n\\nmodule.exports = function (it) {\\n return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/***/ }),\\n/* 14 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 15 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n if (typeof it != 'function') {\\n throw TypeError(String(it) + ' is not a function');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 16 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar objectHas = __webpack_require__(3);\\nvar sharedKey = __webpack_require__(24);\\nvar hiddenKeys = __webpack_require__(25);\\n\\nvar WeakMap = global.WeakMap;\\nvar set, get, has;\\n\\nvar enforce = function (it) {\\n return has(it) ? get(it) : set(it, {});\\n};\\n\\nvar getterFor = function (TYPE) {\\n return function (it) {\\n var state;\\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\\n } return state;\\n };\\n};\\n\\nif (NATIVE_WEAK_MAP) {\\n var store = new WeakMap();\\n var wmget = store.get;\\n var wmhas = store.has;\\n var wmset = store.set;\\n set = function (it, metadata) {\\n wmset.call(store, it, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return wmget.call(store, it) || {};\\n };\\n has = function (it) {\\n return wmhas.call(store, it);\\n };\\n} else {\\n var STATE = sharedKey('state');\\n hiddenKeys[STATE] = true;\\n set = function (it, metadata) {\\n createNonEnumerableProperty(it, STATE, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return objectHas(it, STATE) ? it[STATE] : {};\\n };\\n has = function (it) {\\n return objectHas(it, STATE);\\n };\\n}\\n\\nmodule.exports = {\\n set: set,\\n get: get,\\n has: has,\\n enforce: enforce,\\n getterFor: getterFor\\n};\\n\\n\\n/***/ }),\\n/* 17 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar setGlobal = __webpack_require__(20);\\nvar copyConstructorProperties = __webpack_require__(67);\\nvar isForced = __webpack_require__(43);\\n\\n/*\\n options.target - name of the target object\\n options.global - target is the global object\\n options.stat - export as static methods of target\\n options.proto - export as prototype methods of target\\n options.real - real prototype method for the `pure` version\\n options.forced - export even if the native feature is available\\n options.bind - bind methods to the target, required for the `pure` version\\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\\n options.sham - add a flag to not completely full polyfills\\n options.enumerable - export as enumerable property\\n options.noTargetGet - prevent calling a getter on target\\n*/\\nmodule.exports = function (options, source) {\\n var TARGET = options.target;\\n var GLOBAL = options.global;\\n var STATIC = options.stat;\\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\\n if (GLOBAL) {\\n target = global;\\n } else if (STATIC) {\\n target = global[TARGET] || setGlobal(TARGET, {});\\n } else {\\n target = (global[TARGET] || {}).prototype;\\n }\\n if (target) for (key in source) {\\n sourceProperty = source[key];\\n if (options.noTargetGet) {\\n descriptor = getOwnPropertyDescriptor(target, key);\\n targetProperty = descriptor && descriptor.value;\\n } else targetProperty = target[key];\\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\\n // contained in target\\n if (!FORCED && targetProperty !== undefined) {\\n if (typeof sourceProperty === typeof targetProperty) continue;\\n copyConstructorProperties(sourceProperty, targetProperty);\\n }\\n // add a flag to not completely full polyfills\\n if (options.sham || (targetProperty && targetProperty.sham)) {\\n createNonEnumerableProperty(sourceProperty, 'sham', true);\\n }\\n // extend global\\n redefine(target, key, sourceProperty, options);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 18 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n// toObject with fallback for non-array-like ES3 strings\\nvar IndexedObject = __webpack_require__(66);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\nmodule.exports = function (it) {\\n return IndexedObject(requireObjectCoercible(it));\\n};\\n\\n\\n/***/ }),\\n/* 19 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar test = {};\\n\\ntest[TO_STRING_TAG] = 'z';\\n\\nmodule.exports = String(test) === '[object z]';\\n\\n\\n/***/ }),\\n/* 20 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\n\\nmodule.exports = function (key, value) {\\n try {\\n createNonEnumerableProperty(global, key, value);\\n } catch (error) {\\n global[key] = value;\\n } return value;\\n};\\n\\n\\n/***/ }),\\n/* 21 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\n\\nvar document = global.document;\\n// typeof document.createElement is 'object' in old IE\\nvar EXISTS = isObject(document) && isObject(document.createElement);\\n\\nmodule.exports = function (it) {\\n return EXISTS ? document.createElement(it) : {};\\n};\\n\\n\\n/***/ }),\\n/* 22 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (bitmap, value) {\\n return {\\n enumerable: !(bitmap & 1),\\n configurable: !(bitmap & 2),\\n writable: !(bitmap & 4),\\n value: value\\n };\\n};\\n\\n\\n/***/ }),\\n/* 23 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar store = __webpack_require__(33);\\n\\nvar functionToString = Function.toString;\\n\\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\\nif (typeof store.inspectSource != 'function') {\\n store.inspectSource = function (it) {\\n return functionToString.call(it);\\n };\\n}\\n\\nmodule.exports = store.inspectSource;\\n\\n\\n/***/ }),\\n/* 24 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar shared = __webpack_require__(32);\\nvar uid = __webpack_require__(36);\\n\\nvar keys = shared('keys');\\n\\nmodule.exports = function (key) {\\n return keys[key] || (keys[key] = uid(key));\\n};\\n\\n\\n/***/ }),\\n/* 25 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 26 */\\n/***/ (function(module, exports) {\\n\\nvar ceil = Math.ceil;\\nvar floor = Math.floor;\\n\\n// `ToInteger` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tointeger\\nmodule.exports = function (argument) {\\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\\n};\\n\\n\\n/***/ }),\\n/* 27 */\\n/***/ (function(module, exports) {\\n\\n// `RequireObjectCoercible` abstract operation\\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\\nmodule.exports = function (it) {\\n if (it == undefined) throw TypeError(\\\"Can't call method on \\\" + it);\\n return it;\\n};\\n\\n\\n/***/ }),\\n/* 28 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar propertyIsEnumerableModule = __webpack_require__(65);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar toIndexedObject = __webpack_require__(18);\\nvar toPrimitive = __webpack_require__(35);\\nvar has = __webpack_require__(3);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\n\\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// `Object.getOwnPropertyDescriptor` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\\n O = toIndexedObject(O);\\n P = toPrimitive(P, true);\\n if (IE8_DOM_DEFINE) try {\\n return nativeGetOwnPropertyDescriptor(O, P);\\n } catch (error) { /* empty */ }\\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\\n};\\n\\n\\n/***/ }),\\n/* 29 */\\n/***/ (function(module, exports) {\\n\\n// IE8- don't enum bug keys\\nmodule.exports = [\\n 'constructor',\\n 'hasOwnProperty',\\n 'isPrototypeOf',\\n 'propertyIsEnumerable',\\n 'toLocaleString',\\n 'toString',\\n 'valueOf'\\n];\\n\\n\\n/***/ }),\\n/* 30 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar defineProperty = __webpack_require__(9).f;\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n\\nmodule.exports = function (it, TAG, STATIC) {\\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 31 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar aFunction = __webpack_require__(15);\\n\\nvar PromiseCapability = function (C) {\\n var resolve, reject;\\n this.promise = new C(function ($$resolve, $$reject) {\\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\\n resolve = $$resolve;\\n reject = $$reject;\\n });\\n this.resolve = aFunction(resolve);\\n this.reject = aFunction(reject);\\n};\\n\\n// 25.4.1.5 NewPromiseCapability(C)\\nmodule.exports.f = function (C) {\\n return new PromiseCapability(C);\\n};\\n\\n\\n/***/ }),\\n/* 32 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar IS_PURE = __webpack_require__(12);\\nvar store = __webpack_require__(33);\\n\\n(module.exports = function (key, value) {\\n return store[key] || (store[key] = value !== undefined ? value : {});\\n})('versions', []).push({\\n version: '3.6.4',\\n mode: IS_PURE ? 'pure' : 'global',\\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\\n});\\n\\n\\n/***/ }),\\n/* 33 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar setGlobal = __webpack_require__(20);\\n\\nvar SHARED = '__core-js_shared__';\\nvar store = global[SHARED] || setGlobal(SHARED, {});\\n\\nmodule.exports = store;\\n\\n\\n/***/ }),\\n/* 34 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar fails = __webpack_require__(5);\\nvar createElement = __webpack_require__(21);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !DESCRIPTORS && !fails(function () {\\n return Object.defineProperty(createElement('div'), 'a', {\\n get: function () { return 7; }\\n }).a != 7;\\n});\\n\\n\\n/***/ }),\\n/* 35 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\n// `ToPrimitive` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toprimitive\\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\\n// and the second argument - flag - preferred type is a string\\nmodule.exports = function (input, PREFERRED_STRING) {\\n if (!isObject(input)) return input;\\n var fn, val;\\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n throw TypeError(\\\"Can't convert object to primitive value\\\");\\n};\\n\\n\\n/***/ }),\\n/* 36 */\\n/***/ (function(module, exports) {\\n\\nvar id = 0;\\nvar postfix = Math.random();\\n\\nmodule.exports = function (key) {\\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\\n};\\n\\n\\n/***/ }),\\n/* 37 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\\n // Chrome 38 Symbol has incorrect toString conversion\\n // eslint-disable-next-line no-undef\\n return !String(Symbol());\\n});\\n\\n\\n/***/ }),\\n/* 38 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classofRaw = __webpack_require__(13);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n// ES3 wrong here\\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\\n\\n// fallback for IE11 Script Access Denied error\\nvar tryGet = function (it, key) {\\n try {\\n return it[key];\\n } catch (error) { /* empty */ }\\n};\\n\\n// getting tag from ES6+ `Object.prototype.toString`\\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\\n var O, tag, result;\\n return it === undefined ? 'Undefined' : it === null ? 'Null'\\n // @@toStringTag case\\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\\n // builtinTag case\\n : CORRECT_ARGUMENTS ? classofRaw(O)\\n // ES3 arguments fallback\\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\\n};\\n\\n\\n/***/ }),\\n/* 39 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar createIteratorConstructor = __webpack_require__(73);\\nvar getPrototypeOf = __webpack_require__(45);\\nvar setPrototypeOf = __webpack_require__(78);\\nvar setToStringTag = __webpack_require__(30);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\nvar Iterators = __webpack_require__(14);\\nvar IteratorsCore = __webpack_require__(44);\\n\\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar KEYS = 'keys';\\nvar VALUES = 'values';\\nvar ENTRIES = 'entries';\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\\n createIteratorConstructor(IteratorConstructor, NAME, next);\\n\\n var getIterationMethod = function (KIND) {\\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\\n switch (KIND) {\\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\\n } return function () { return new IteratorConstructor(this); };\\n };\\n\\n var TO_STRING_TAG = NAME + ' Iterator';\\n var INCORRECT_VALUES_NAME = false;\\n var IterablePrototype = Iterable.prototype;\\n var nativeIterator = IterablePrototype[ITERATOR]\\n || IterablePrototype['@@iterator']\\n || DEFAULT && IterablePrototype[DEFAULT];\\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\\n var CurrentIteratorPrototype, methods, KEY;\\n\\n // fix native\\n if (anyNativeIterator) {\\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\\n if (setPrototypeOf) {\\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\\n }\\n }\\n // Set @@toStringTag to native iterators\\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\\n }\\n }\\n\\n // fix Array#{values, @@iterator}.name in V8 / FF\\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\\n INCORRECT_VALUES_NAME = true;\\n defaultIterator = function values() { return nativeIterator.call(this); };\\n }\\n\\n // define iterator\\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\\n }\\n Iterators[NAME] = defaultIterator;\\n\\n // export additional methods\\n if (DEFAULT) {\\n methods = {\\n values: getIterationMethod(VALUES),\\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\\n entries: getIterationMethod(ENTRIES)\\n };\\n if (FORCED) for (KEY in methods) {\\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\\n redefine(IterablePrototype, KEY, methods[KEY]);\\n }\\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\\n }\\n\\n return methods;\\n};\\n\\n\\n/***/ }),\\n/* 40 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global;\\n\\n\\n/***/ }),\\n/* 41 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toIndexedObject = __webpack_require__(18);\\nvar indexOf = __webpack_require__(70).indexOf;\\nvar hiddenKeys = __webpack_require__(25);\\n\\nmodule.exports = function (object, names) {\\n var O = toIndexedObject(object);\\n var i = 0;\\n var result = [];\\n var key;\\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\\n // Don't enum bug & hidden keys\\n while (names.length > i) if (has(O, key = names[i++])) {\\n ~indexOf(result, key) || result.push(key);\\n }\\n return result;\\n};\\n\\n\\n/***/ }),\\n/* 42 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar min = Math.min;\\n\\n// `ToLength` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tolength\\nmodule.exports = function (argument) {\\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\\n};\\n\\n\\n/***/ }),\\n/* 43 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nvar replacement = /#|\\\\.prototype\\\\./;\\n\\nvar isForced = function (feature, detection) {\\n var value = data[normalize(feature)];\\n return value == POLYFILL ? true\\n : value == NATIVE ? false\\n : typeof detection == 'function' ? fails(detection)\\n : !!detection;\\n};\\n\\nvar normalize = isForced.normalize = function (string) {\\n return String(string).replace(replacement, '.').toLowerCase();\\n};\\n\\nvar data = isForced.data = {};\\nvar NATIVE = isForced.NATIVE = 'N';\\nvar POLYFILL = isForced.POLYFILL = 'P';\\n\\nmodule.exports = isForced;\\n\\n\\n/***/ }),\\n/* 44 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getPrototypeOf = __webpack_require__(45);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar BUGGY_SAFARI_ITERATORS = false;\\n\\nvar returnThis = function () { return this; };\\n\\n// `%IteratorPrototype%` object\\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\\n\\nif ([].keys) {\\n arrayIterator = [].keys();\\n // Safari 8 has buggy iterators w/o `next`\\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\\n else {\\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\\n }\\n}\\n\\nif (IteratorPrototype == undefined) IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\\n}\\n\\nmodule.exports = {\\n IteratorPrototype: IteratorPrototype,\\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\\n};\\n\\n\\n/***/ }),\\n/* 45 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toObject = __webpack_require__(74);\\nvar sharedKey = __webpack_require__(24);\\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\\n\\nvar IE_PROTO = sharedKey('IE_PROTO');\\nvar ObjectPrototype = Object.prototype;\\n\\n// `Object.getPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\\n O = toObject(O);\\n if (has(O, IE_PROTO)) return O[IE_PROTO];\\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\\n return O.constructor.prototype;\\n } return O instanceof Object ? ObjectPrototype : null;\\n};\\n\\n\\n/***/ }),\\n/* 46 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar defineProperties = __webpack_require__(76);\\nvar enumBugKeys = __webpack_require__(29);\\nvar hiddenKeys = __webpack_require__(25);\\nvar html = __webpack_require__(47);\\nvar documentCreateElement = __webpack_require__(21);\\nvar sharedKey = __webpack_require__(24);\\n\\nvar GT = '>';\\nvar LT = '<';\\nvar PROTOTYPE = 'prototype';\\nvar SCRIPT = 'script';\\nvar IE_PROTO = sharedKey('IE_PROTO');\\n\\nvar EmptyConstructor = function () { /* empty */ };\\n\\nvar scriptTag = function (content) {\\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\\n};\\n\\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\\n activeXDocument.write(scriptTag(''));\\n activeXDocument.close();\\n var temp = activeXDocument.parentWindow.Object;\\n activeXDocument = null; // avoid memory leak\\n return temp;\\n};\\n\\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\\nvar NullProtoObjectViaIFrame = function () {\\n // Thrash, waste and sodomy: IE GC bug\\n var iframe = documentCreateElement('iframe');\\n var JS = 'java' + SCRIPT + ':';\\n var iframeDocument;\\n iframe.style.display = 'none';\\n html.appendChild(iframe);\\n // https://github.com/zloirock/core-js/issues/475\\n iframe.src = String(JS);\\n iframeDocument = iframe.contentWindow.document;\\n iframeDocument.open();\\n iframeDocument.write(scriptTag('document.F=Object'));\\n iframeDocument.close();\\n return iframeDocument.F;\\n};\\n\\n// Check for document.domain and active x support\\n// No need to use active x approach when document.domain is not set\\n// see https://github.com/es-shims/es5-shim/issues/150\\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\\n// avoid IE GC bug\\nvar activeXDocument;\\nvar NullProtoObject = function () {\\n try {\\n /* global ActiveXObject */\\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\\n } catch (error) { /* ignore */ }\\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\\n var length = enumBugKeys.length;\\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\\n return NullProtoObject();\\n};\\n\\nhiddenKeys[IE_PROTO] = true;\\n\\n// `Object.create` method\\n// https://tc39.github.io/ecma262/#sec-object.create\\nmodule.exports = Object.create || function create(O, Properties) {\\n var result;\\n if (O !== null) {\\n EmptyConstructor[PROTOTYPE] = anObject(O);\\n result = new EmptyConstructor();\\n EmptyConstructor[PROTOTYPE] = null;\\n // add \\\"__proto__\\\" for Object.getPrototypeOf polyfill\\n result[IE_PROTO] = O;\\n } else result = NullProtoObject();\\n return Properties === undefined ? result : defineProperties(result, Properties);\\n};\\n\\n\\n/***/ }),\\n/* 47 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('document', 'documentElement');\\n\\n\\n/***/ }),\\n/* 48 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global.Promise;\\n\\n\\n/***/ }),\\n/* 49 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isArrayIteratorMethod = __webpack_require__(88);\\nvar toLength = __webpack_require__(42);\\nvar bind = __webpack_require__(50);\\nvar getIteratorMethod = __webpack_require__(89);\\nvar callWithSafeIterationClosing = __webpack_require__(90);\\n\\nvar Result = function (stopped, result) {\\n this.stopped = stopped;\\n this.result = result;\\n};\\n\\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\\n var iterator, iterFn, index, length, result, next, step;\\n\\n if (IS_ITERATOR) {\\n iterator = iterable;\\n } else {\\n iterFn = getIteratorMethod(iterable);\\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\\n // optimisation for array iterators\\n if (isArrayIteratorMethod(iterFn)) {\\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\\n result = AS_ENTRIES\\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\\n : boundFunction(iterable[index]);\\n if (result && result instanceof Result) return result;\\n } return new Result(false);\\n }\\n iterator = iterFn.call(iterable);\\n }\\n\\n next = iterator.next;\\n while (!(step = next.call(iterator)).done) {\\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\\n if (typeof result == 'object' && result && result instanceof Result) return result;\\n } return new Result(false);\\n};\\n\\niterate.stop = function (result) {\\n return new Result(true, result);\\n};\\n\\n\\n/***/ }),\\n/* 50 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar aFunction = __webpack_require__(15);\\n\\n// optional / simple context binding\\nmodule.exports = function (fn, that, length) {\\n aFunction(fn);\\n if (that === undefined) return fn;\\n switch (length) {\\n case 0: return function () {\\n return fn.call(that);\\n };\\n case 1: return function (a) {\\n return fn.call(that, a);\\n };\\n case 2: return function (a, b) {\\n return fn.call(that, a, b);\\n };\\n case 3: return function (a, b, c) {\\n return fn.call(that, a, b, c);\\n };\\n }\\n return function (/* ...args */) {\\n return fn.apply(that, arguments);\\n };\\n};\\n\\n\\n/***/ }),\\n/* 51 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aFunction = __webpack_require__(15);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\n// `SpeciesConstructor` abstract operation\\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\\nmodule.exports = function (O, defaultConstructor) {\\n var C = anObject(O).constructor;\\n var S;\\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\\n};\\n\\n\\n/***/ }),\\n/* 52 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\nvar bind = __webpack_require__(50);\\nvar html = __webpack_require__(47);\\nvar createElement = __webpack_require__(21);\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar location = global.location;\\nvar set = global.setImmediate;\\nvar clear = global.clearImmediate;\\nvar process = global.process;\\nvar MessageChannel = global.MessageChannel;\\nvar Dispatch = global.Dispatch;\\nvar counter = 0;\\nvar queue = {};\\nvar ONREADYSTATECHANGE = 'onreadystatechange';\\nvar defer, channel, port;\\n\\nvar run = function (id) {\\n // eslint-disable-next-line no-prototype-builtins\\n if (queue.hasOwnProperty(id)) {\\n var fn = queue[id];\\n delete queue[id];\\n fn();\\n }\\n};\\n\\nvar runner = function (id) {\\n return function () {\\n run(id);\\n };\\n};\\n\\nvar listener = function (event) {\\n run(event.data);\\n};\\n\\nvar post = function (id) {\\n // old engines have not location.origin\\n global.postMessage(id + '', location.protocol + '//' + location.host);\\n};\\n\\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\\nif (!set || !clear) {\\n set = function setImmediate(fn) {\\n var args = [];\\n var i = 1;\\n while (arguments.length > i) args.push(arguments[i++]);\\n queue[++counter] = function () {\\n // eslint-disable-next-line no-new-func\\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\\n };\\n defer(counter);\\n return counter;\\n };\\n clear = function clearImmediate(id) {\\n delete queue[id];\\n };\\n // Node.js 0.8-\\n if (classof(process) == 'process') {\\n defer = function (id) {\\n process.nextTick(runner(id));\\n };\\n // Sphere (JS game engine) Dispatch API\\n } else if (Dispatch && Dispatch.now) {\\n defer = function (id) {\\n Dispatch.now(runner(id));\\n };\\n // Browsers with MessageChannel, includes WebWorkers\\n // except iOS - https://github.com/zloirock/core-js/issues/624\\n } else if (MessageChannel && !IS_IOS) {\\n channel = new MessageChannel();\\n port = channel.port2;\\n channel.port1.onmessage = listener;\\n defer = bind(port.postMessage, port, 1);\\n // Browsers with postMessage, skip WebWorkers\\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\\n defer = post;\\n global.addEventListener('message', listener, false);\\n // IE8-\\n } else if (ONREADYSTATECHANGE in createElement('script')) {\\n defer = function (id) {\\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\\n html.removeChild(this);\\n run(id);\\n };\\n };\\n // Rest old browsers\\n } else {\\n defer = function (id) {\\n setTimeout(runner(id), 0);\\n };\\n }\\n}\\n\\nmodule.exports = {\\n set: set,\\n clear: clear\\n};\\n\\n\\n/***/ }),\\n/* 53 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar userAgent = __webpack_require__(54);\\n\\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\\n\\n\\n/***/ }),\\n/* 54 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\\n\\n\\n/***/ }),\\n/* 55 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isObject = __webpack_require__(7);\\nvar newPromiseCapability = __webpack_require__(31);\\n\\nmodule.exports = function (C, x) {\\n anObject(C);\\n if (isObject(x) && x.constructor === C) return x;\\n var promiseCapability = newPromiseCapability.f(C);\\n var resolve = promiseCapability.resolve;\\n resolve(x);\\n return promiseCapability.promise;\\n};\\n\\n\\n/***/ }),\\n/* 56 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return { error: false, value: exec() };\\n } catch (error) {\\n return { error: true, value: error };\\n }\\n};\\n\\n\\n/***/ }),\\n/* 57 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n__webpack_require__(58);\\n__webpack_require__(63);\\n__webpack_require__(80);\\n__webpack_require__(84);\\n__webpack_require__(95);\\n__webpack_require__(96);\\nvar path = __webpack_require__(40);\\n\\nmodule.exports = path.Promise;\\n\\n\\n/***/ }),\\n/* 58 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar redefine = __webpack_require__(10);\\nvar toString = __webpack_require__(62);\\n\\n// `Object.prototype.toString` method\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nif (!TO_STRING_TAG_SUPPORT) {\\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\\n}\\n\\n\\n/***/ }),\\n/* 59 */\\n/***/ (function(module, exports) {\\n\\nvar g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n/***/ }),\\n/* 60 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\n\\nmodule.exports = NATIVE_SYMBOL\\n // eslint-disable-next-line no-undef\\n && !Symbol.sham\\n // eslint-disable-next-line no-undef\\n && typeof Symbol.iterator == 'symbol';\\n\\n\\n/***/ }),\\n/* 61 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar inspectSource = __webpack_require__(23);\\n\\nvar WeakMap = global.WeakMap;\\n\\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\\n\\n\\n/***/ }),\\n/* 62 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classof = __webpack_require__(38);\\n\\n// `Object.prototype.toString` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\\n return '[object ' + classof(this) + ']';\\n};\\n\\n\\n/***/ }),\\n/* 63 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar charAt = __webpack_require__(64).charAt;\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar STRING_ITERATOR = 'String Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\\n\\n// `String.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\\ndefineIterator(String, 'String', function (iterated) {\\n setInternalState(this, {\\n type: STRING_ITERATOR,\\n string: String(iterated),\\n index: 0\\n });\\n// `%StringIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\\n}, function next() {\\n var state = getInternalState(this);\\n var string = state.string;\\n var index = state.index;\\n var point;\\n if (index >= string.length) return { value: undefined, done: true };\\n point = charAt(string, index);\\n state.index += point.length;\\n return { value: point, done: false };\\n});\\n\\n\\n/***/ }),\\n/* 64 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `String.prototype.{ codePointAt, at }` methods implementation\\nvar createMethod = function (CONVERT_TO_STRING) {\\n return function ($this, pos) {\\n var S = String(requireObjectCoercible($this));\\n var position = toInteger(pos);\\n var size = S.length;\\n var first, second;\\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\\n first = S.charCodeAt(position);\\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\\n ? CONVERT_TO_STRING ? S.charAt(position) : first\\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\\n };\\n};\\n\\nmodule.exports = {\\n // `String.prototype.codePointAt` method\\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\\n codeAt: createMethod(false),\\n // `String.prototype.at` method\\n // https://github.com/mathiasbynens/String.prototype.at\\n charAt: createMethod(true)\\n};\\n\\n\\n/***/ }),\\n/* 65 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// Nashorn ~ JDK8 bug\\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\\n\\n// `Object.prototype.propertyIsEnumerable` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\\n var descriptor = getOwnPropertyDescriptor(this, V);\\n return !!descriptor && descriptor.enumerable;\\n} : nativePropertyIsEnumerable;\\n\\n\\n/***/ }),\\n/* 66 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\n\\nvar split = ''.split;\\n\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nmodule.exports = fails(function () {\\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\\n // eslint-disable-next-line no-prototype-builtins\\n return !Object('z').propertyIsEnumerable(0);\\n}) ? function (it) {\\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\\n} : Object;\\n\\n\\n/***/ }),\\n/* 67 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar ownKeys = __webpack_require__(68);\\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nmodule.exports = function (target, source) {\\n var keys = ownKeys(source);\\n var defineProperty = definePropertyModule.f;\\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i];\\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\\n }\\n};\\n\\n\\n/***/ }),\\n/* 68 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar getOwnPropertyNamesModule = __webpack_require__(69);\\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\\nvar anObject = __webpack_require__(2);\\n\\n// all object keys, includes non-enumerable and symbols\\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\\n var keys = getOwnPropertyNamesModule.f(anObject(it));\\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\\n};\\n\\n\\n/***/ }),\\n/* 69 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\\n\\n// `Object.getOwnPropertyNames` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\\n return internalObjectKeys(O, hiddenKeys);\\n};\\n\\n\\n/***/ }),\\n/* 70 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar toLength = __webpack_require__(42);\\nvar toAbsoluteIndex = __webpack_require__(71);\\n\\n// `Array.prototype.{ indexOf, includes }` methods implementation\\nvar createMethod = function (IS_INCLUDES) {\\n return function ($this, el, fromIndex) {\\n var O = toIndexedObject($this);\\n var length = toLength(O.length);\\n var index = toAbsoluteIndex(fromIndex, length);\\n var value;\\n // Array#includes uses SameValueZero equality algorithm\\n // eslint-disable-next-line no-self-compare\\n if (IS_INCLUDES && el != el) while (length > index) {\\n value = O[index++];\\n // eslint-disable-next-line no-self-compare\\n if (value != value) return true;\\n // Array#indexOf ignores holes, Array#includes - not\\n } else for (;length > index; index++) {\\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\\n } return !IS_INCLUDES && -1;\\n };\\n};\\n\\nmodule.exports = {\\n // `Array.prototype.includes` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\\n includes: createMethod(true),\\n // `Array.prototype.indexOf` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\\n indexOf: createMethod(false)\\n};\\n\\n\\n/***/ }),\\n/* 71 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar max = Math.max;\\nvar min = Math.min;\\n\\n// Helper for a popular repeating case of the spec:\\n// Let integer be ? ToInteger(index).\\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\\nmodule.exports = function (index, length) {\\n var integer = toInteger(index);\\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\\n};\\n\\n\\n/***/ }),\\n/* 72 */\\n/***/ (function(module, exports) {\\n\\nexports.f = Object.getOwnPropertySymbols;\\n\\n\\n/***/ }),\\n/* 73 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\\nvar create = __webpack_require__(46);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar setToStringTag = __webpack_require__(30);\\nvar Iterators = __webpack_require__(14);\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (IteratorConstructor, NAME, next) {\\n var TO_STRING_TAG = NAME + ' Iterator';\\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\\n Iterators[TO_STRING_TAG] = returnThis;\\n return IteratorConstructor;\\n};\\n\\n\\n/***/ }),\\n/* 74 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `ToObject` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toobject\\nmodule.exports = function (argument) {\\n return Object(requireObjectCoercible(argument));\\n};\\n\\n\\n/***/ }),\\n/* 75 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !fails(function () {\\n function F() { /* empty */ }\\n F.prototype.constructor = null;\\n return Object.getPrototypeOf(new F()) !== F.prototype;\\n});\\n\\n\\n/***/ }),\\n/* 76 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar anObject = __webpack_require__(2);\\nvar objectKeys = __webpack_require__(77);\\n\\n// `Object.defineProperties` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\\n anObject(O);\\n var keys = objectKeys(Properties);\\n var length = keys.length;\\n var index = 0;\\n var key;\\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 77 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\n// `Object.keys` method\\n// https://tc39.github.io/ecma262/#sec-object.keys\\nmodule.exports = Object.keys || function keys(O) {\\n return internalObjectKeys(O, enumBugKeys);\\n};\\n\\n\\n/***/ }),\\n/* 78 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aPossiblePrototype = __webpack_require__(79);\\n\\n// `Object.setPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\\n// Works with __proto__ only. Old v8 can't work with null proto objects.\\n/* eslint-disable no-proto */\\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\\n var CORRECT_SETTER = false;\\n var test = {};\\n var setter;\\n try {\\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\\n setter.call(test, []);\\n CORRECT_SETTER = test instanceof Array;\\n } catch (error) { /* empty */ }\\n return function setPrototypeOf(O, proto) {\\n anObject(O);\\n aPossiblePrototype(proto);\\n if (CORRECT_SETTER) setter.call(O, proto);\\n else O.__proto__ = proto;\\n return O;\\n };\\n}() : undefined);\\n\\n\\n/***/ }),\\n/* 79 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it) && it !== null) {\\n throw TypeError(\\\"Can't set \\\" + String(it) + ' as a prototype');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 80 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar DOMIterables = __webpack_require__(81);\\nvar ArrayIteratorMethods = __webpack_require__(82);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar ArrayValues = ArrayIteratorMethods.values;\\n\\nfor (var COLLECTION_NAME in DOMIterables) {\\n var Collection = global[COLLECTION_NAME];\\n var CollectionPrototype = Collection && Collection.prototype;\\n if (CollectionPrototype) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\\n } catch (error) {\\n CollectionPrototype[ITERATOR] = ArrayValues;\\n }\\n if (!CollectionPrototype[TO_STRING_TAG]) {\\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\\n }\\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\\n } catch (error) {\\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\\n }\\n }\\n }\\n}\\n\\n\\n/***/ }),\\n/* 81 */\\n/***/ (function(module, exports) {\\n\\n// iterable DOM collections\\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\\nmodule.exports = {\\n CSSRuleList: 0,\\n CSSStyleDeclaration: 0,\\n CSSValueList: 0,\\n ClientRectList: 0,\\n DOMRectList: 0,\\n DOMStringList: 0,\\n DOMTokenList: 1,\\n DataTransferItemList: 0,\\n FileList: 0,\\n HTMLAllCollection: 0,\\n HTMLCollection: 0,\\n HTMLFormElement: 0,\\n HTMLSelectElement: 0,\\n MediaList: 0,\\n MimeTypeArray: 0,\\n NamedNodeMap: 0,\\n NodeList: 1,\\n PaintRequestList: 0,\\n Plugin: 0,\\n PluginArray: 0,\\n SVGLengthList: 0,\\n SVGNumberList: 0,\\n SVGPathSegList: 0,\\n SVGPointList: 0,\\n SVGStringList: 0,\\n SVGTransformList: 0,\\n SourceBufferList: 0,\\n StyleSheetList: 0,\\n TextTrackCueList: 0,\\n TextTrackList: 0,\\n TouchList: 0\\n};\\n\\n\\n/***/ }),\\n/* 82 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar addToUnscopables = __webpack_require__(83);\\nvar Iterators = __webpack_require__(14);\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar ARRAY_ITERATOR = 'Array Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\\n\\n// `Array.prototype.entries` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\\n// `Array.prototype.keys` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\\n// `Array.prototype.values` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\\n// `Array.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\\n// `CreateArrayIterator` internal method\\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\\n setInternalState(this, {\\n type: ARRAY_ITERATOR,\\n target: toIndexedObject(iterated), // target\\n index: 0, // next index\\n kind: kind // kind\\n });\\n// `%ArrayIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\\n}, function () {\\n var state = getInternalState(this);\\n var target = state.target;\\n var kind = state.kind;\\n var index = state.index++;\\n if (!target || index >= target.length) {\\n state.target = undefined;\\n return { value: undefined, done: true };\\n }\\n if (kind == 'keys') return { value: index, done: false };\\n if (kind == 'values') return { value: target[index], done: false };\\n return { value: [index, target[index]], done: false };\\n}, 'values');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values%\\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\\nIterators.Arguments = Iterators.Array;\\n\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\naddToUnscopables('keys');\\naddToUnscopables('values');\\naddToUnscopables('entries');\\n\\n\\n/***/ }),\\n/* 83 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar create = __webpack_require__(46);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\\nvar ArrayPrototype = Array.prototype;\\n\\n// Array.prototype[@@unscopables]\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\\n configurable: true,\\n value: create(null)\\n });\\n}\\n\\n// add a key to Array.prototype[@@unscopables]\\nmodule.exports = function (key) {\\n ArrayPrototype[UNSCOPABLES][key] = true;\\n};\\n\\n\\n/***/ }),\\n/* 84 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar global = __webpack_require__(0);\\nvar getBuiltIn = __webpack_require__(11);\\nvar NativePromise = __webpack_require__(48);\\nvar redefine = __webpack_require__(10);\\nvar redefineAll = __webpack_require__(85);\\nvar setToStringTag = __webpack_require__(30);\\nvar setSpecies = __webpack_require__(86);\\nvar isObject = __webpack_require__(7);\\nvar aFunction = __webpack_require__(15);\\nvar anInstance = __webpack_require__(87);\\nvar classof = __webpack_require__(13);\\nvar inspectSource = __webpack_require__(23);\\nvar iterate = __webpack_require__(49);\\nvar checkCorrectnessOfIteration = __webpack_require__(91);\\nvar speciesConstructor = __webpack_require__(51);\\nvar task = __webpack_require__(52).set;\\nvar microtask = __webpack_require__(92);\\nvar promiseResolve = __webpack_require__(55);\\nvar hostReportErrors = __webpack_require__(93);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar InternalStateModule = __webpack_require__(16);\\nvar isForced = __webpack_require__(43);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar V8_VERSION = __webpack_require__(94);\\n\\nvar SPECIES = wellKnownSymbol('species');\\nvar PROMISE = 'Promise';\\nvar getInternalState = InternalStateModule.get;\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\\nvar PromiseConstructor = NativePromise;\\nvar TypeError = global.TypeError;\\nvar document = global.document;\\nvar process = global.process;\\nvar $fetch = getBuiltIn('fetch');\\nvar newPromiseCapability = newPromiseCapabilityModule.f;\\nvar newGenericPromiseCapability = newPromiseCapability;\\nvar IS_NODE = classof(process) == 'process';\\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\\nvar UNHANDLED_REJECTION = 'unhandledrejection';\\nvar REJECTION_HANDLED = 'rejectionhandled';\\nvar PENDING = 0;\\nvar FULFILLED = 1;\\nvar REJECTED = 2;\\nvar HANDLED = 1;\\nvar UNHANDLED = 2;\\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\\n\\nvar FORCED = isForced(PROMISE, function () {\\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\\n if (!GLOBAL_CORE_JS_PROMISE) {\\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\\n // We can't detect it synchronously, so just check versions\\n if (V8_VERSION === 66) return true;\\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\\n }\\n // We need Promise#finally in the pure version for preventing prototype pollution\\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\\n // We can't use @@species feature detection in V8 since it causes\\n // deoptimization and performance degradation\\n // https://github.com/zloirock/core-js/issues/679\\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\\n // Detect correctness of subclassing with @@species support\\n var promise = PromiseConstructor.resolve(1);\\n var FakePromise = function (exec) {\\n exec(function () { /* empty */ }, function () { /* empty */ });\\n };\\n var constructor = promise.constructor = {};\\n constructor[SPECIES] = FakePromise;\\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\\n});\\n\\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\\n});\\n\\n// helpers\\nvar isThenable = function (it) {\\n var then;\\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\\n};\\n\\nvar notify = function (promise, state, isReject) {\\n if (state.notified) return;\\n state.notified = true;\\n var chain = state.reactions;\\n microtask(function () {\\n var value = state.value;\\n var ok = state.state == FULFILLED;\\n var index = 0;\\n // variable length - can't use forEach\\n while (chain.length > index) {\\n var reaction = chain[index++];\\n var handler = ok ? reaction.ok : reaction.fail;\\n var resolve = reaction.resolve;\\n var reject = reaction.reject;\\n var domain = reaction.domain;\\n var result, then, exited;\\n try {\\n if (handler) {\\n if (!ok) {\\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\\n state.rejection = HANDLED;\\n }\\n if (handler === true) result = value;\\n else {\\n if (domain) domain.enter();\\n result = handler(value); // can throw\\n if (domain) {\\n domain.exit();\\n exited = true;\\n }\\n }\\n if (result === reaction.promise) {\\n reject(TypeError('Promise-chain cycle'));\\n } else if (then = isThenable(result)) {\\n then.call(result, resolve, reject);\\n } else resolve(result);\\n } else reject(value);\\n } catch (error) {\\n if (domain && !exited) domain.exit();\\n reject(error);\\n }\\n }\\n state.reactions = [];\\n state.notified = false;\\n if (isReject && !state.rejection) onUnhandled(promise, state);\\n });\\n};\\n\\nvar dispatchEvent = function (name, promise, reason) {\\n var event, handler;\\n if (DISPATCH_EVENT) {\\n event = document.createEvent('Event');\\n event.promise = promise;\\n event.reason = reason;\\n event.initEvent(name, false, true);\\n global.dispatchEvent(event);\\n } else event = { promise: promise, reason: reason };\\n if (handler = global['on' + name]) handler(event);\\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\\n};\\n\\nvar onUnhandled = function (promise, state) {\\n task.call(global, function () {\\n var value = state.value;\\n var IS_UNHANDLED = isUnhandled(state);\\n var result;\\n if (IS_UNHANDLED) {\\n result = perform(function () {\\n if (IS_NODE) {\\n process.emit('unhandledRejection', value, promise);\\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\\n });\\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\\n if (result.error) throw result.value;\\n }\\n });\\n};\\n\\nvar isUnhandled = function (state) {\\n return state.rejection !== HANDLED && !state.parent;\\n};\\n\\nvar onHandleUnhandled = function (promise, state) {\\n task.call(global, function () {\\n if (IS_NODE) {\\n process.emit('rejectionHandled', promise);\\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\\n });\\n};\\n\\nvar bind = function (fn, promise, state, unwrap) {\\n return function (value) {\\n fn(promise, state, value, unwrap);\\n };\\n};\\n\\nvar internalReject = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n state.value = value;\\n state.state = REJECTED;\\n notify(promise, state, true);\\n};\\n\\nvar internalResolve = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n try {\\n if (promise === value) throw TypeError(\\\"Promise can't be resolved itself\\\");\\n var then = isThenable(value);\\n if (then) {\\n microtask(function () {\\n var wrapper = { done: false };\\n try {\\n then.call(value,\\n bind(internalResolve, promise, wrapper, state),\\n bind(internalReject, promise, wrapper, state)\\n );\\n } catch (error) {\\n internalReject(promise, wrapper, error, state);\\n }\\n });\\n } else {\\n state.value = value;\\n state.state = FULFILLED;\\n notify(promise, state, false);\\n }\\n } catch (error) {\\n internalReject(promise, { done: false }, error, state);\\n }\\n};\\n\\n// constructor polyfill\\nif (FORCED) {\\n // 25.4.3.1 Promise(executor)\\n PromiseConstructor = function Promise(executor) {\\n anInstance(this, PromiseConstructor, PROMISE);\\n aFunction(executor);\\n Internal.call(this);\\n var state = getInternalState(this);\\n try {\\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\\n } catch (error) {\\n internalReject(this, state, error);\\n }\\n };\\n // eslint-disable-next-line no-unused-vars\\n Internal = function Promise(executor) {\\n setInternalState(this, {\\n type: PROMISE,\\n done: false,\\n notified: false,\\n parent: false,\\n reactions: [],\\n rejection: false,\\n state: PENDING,\\n value: undefined\\n });\\n };\\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\\n // `Promise.prototype.then` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\\n then: function then(onFulfilled, onRejected) {\\n var state = getInternalPromiseState(this);\\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\\n reaction.fail = typeof onRejected == 'function' && onRejected;\\n reaction.domain = IS_NODE ? process.domain : undefined;\\n state.parent = true;\\n state.reactions.push(reaction);\\n if (state.state != PENDING) notify(this, state, false);\\n return reaction.promise;\\n },\\n // `Promise.prototype.catch` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\\n 'catch': function (onRejected) {\\n return this.then(undefined, onRejected);\\n }\\n });\\n OwnPromiseCapability = function () {\\n var promise = new Internal();\\n var state = getInternalState(promise);\\n this.promise = promise;\\n this.resolve = bind(internalResolve, promise, state);\\n this.reject = bind(internalReject, promise, state);\\n };\\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\\n return C === PromiseConstructor || C === PromiseWrapper\\n ? new OwnPromiseCapability(C)\\n : newGenericPromiseCapability(C);\\n };\\n\\n if (!IS_PURE && typeof NativePromise == 'function') {\\n nativeThen = NativePromise.prototype.then;\\n\\n // wrap native Promise#then for native async functions\\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\\n var that = this;\\n return new PromiseConstructor(function (resolve, reject) {\\n nativeThen.call(that, resolve, reject);\\n }).then(onFulfilled, onRejected);\\n // https://github.com/zloirock/core-js/issues/640\\n }, { unsafe: true });\\n\\n // wrap fetch result\\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\\n // eslint-disable-next-line no-unused-vars\\n fetch: function fetch(input /* , init */) {\\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\\n }\\n });\\n }\\n}\\n\\n$({ global: true, wrap: true, forced: FORCED }, {\\n Promise: PromiseConstructor\\n});\\n\\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\\nsetSpecies(PROMISE);\\n\\nPromiseWrapper = getBuiltIn(PROMISE);\\n\\n// statics\\n$({ target: PROMISE, stat: true, forced: FORCED }, {\\n // `Promise.reject` method\\n // https://tc39.github.io/ecma262/#sec-promise.reject\\n reject: function reject(r) {\\n var capability = newPromiseCapability(this);\\n capability.reject.call(undefined, r);\\n return capability.promise;\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\\n // `Promise.resolve` method\\n // https://tc39.github.io/ecma262/#sec-promise.resolve\\n resolve: function resolve(x) {\\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\\n // `Promise.all` method\\n // https://tc39.github.io/ecma262/#sec-promise.all\\n all: function all(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n $promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = value;\\n --remaining || resolve(values);\\n }, reject);\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n },\\n // `Promise.race` method\\n // https://tc39.github.io/ecma262/#sec-promise.race\\n race: function race(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n iterate(iterable, function (promise) {\\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\\n });\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 85 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar redefine = __webpack_require__(10);\\n\\nmodule.exports = function (target, src, options) {\\n for (var key in src) redefine(target, key, src[key], options);\\n return target;\\n};\\n\\n\\n/***/ }),\\n/* 86 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar definePropertyModule = __webpack_require__(9);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar DESCRIPTORS = __webpack_require__(8);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\nmodule.exports = function (CONSTRUCTOR_NAME) {\\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\\n var defineProperty = definePropertyModule.f;\\n\\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\\n defineProperty(Constructor, SPECIES, {\\n configurable: true,\\n get: function () { return this; }\\n });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 87 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it, Constructor, name) {\\n if (!(it instanceof Constructor)) {\\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 88 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar Iterators = __webpack_require__(14);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar ArrayPrototype = Array.prototype;\\n\\n// check on default Array iterator\\nmodule.exports = function (it) {\\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\\n};\\n\\n\\n/***/ }),\\n/* 89 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar classof = __webpack_require__(38);\\nvar Iterators = __webpack_require__(14);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\n\\nmodule.exports = function (it) {\\n if (it != undefined) return it[ITERATOR]\\n || it['@@iterator']\\n || Iterators[classof(it)];\\n};\\n\\n\\n/***/ }),\\n/* 90 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\n\\n// call something on iterator step with safe closing on error\\nmodule.exports = function (iterator, fn, value, ENTRIES) {\\n try {\\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\\n // 7.4.6 IteratorClose(iterator, completion)\\n } catch (error) {\\n var returnMethod = iterator['return'];\\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\\n throw error;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 91 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar SAFE_CLOSING = false;\\n\\ntry {\\n var called = 0;\\n var iteratorWithReturn = {\\n next: function () {\\n return { done: !!called++ };\\n },\\n 'return': function () {\\n SAFE_CLOSING = true;\\n }\\n };\\n iteratorWithReturn[ITERATOR] = function () {\\n return this;\\n };\\n // eslint-disable-next-line no-throw-literal\\n Array.from(iteratorWithReturn, function () { throw 2; });\\n} catch (error) { /* empty */ }\\n\\nmodule.exports = function (exec, SKIP_CLOSING) {\\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\\n var ITERATION_SUPPORT = false;\\n try {\\n var object = {};\\n object[ITERATOR] = function () {\\n return {\\n next: function () {\\n return { done: ITERATION_SUPPORT = true };\\n }\\n };\\n };\\n exec(object);\\n } catch (error) { /* empty */ }\\n return ITERATION_SUPPORT;\\n};\\n\\n\\n/***/ }),\\n/* 92 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar classof = __webpack_require__(13);\\nvar macrotask = __webpack_require__(52).set;\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\\nvar process = global.process;\\nvar Promise = global.Promise;\\nvar IS_NODE = classof(process) == 'process';\\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\\n\\nvar flush, head, last, notify, toggle, node, promise, then;\\n\\n// modern engines have queueMicrotask method\\nif (!queueMicrotask) {\\n flush = function () {\\n var parent, fn;\\n if (IS_NODE && (parent = process.domain)) parent.exit();\\n while (head) {\\n fn = head.fn;\\n head = head.next;\\n try {\\n fn();\\n } catch (error) {\\n if (head) notify();\\n else last = undefined;\\n throw error;\\n }\\n } last = undefined;\\n if (parent) parent.enter();\\n };\\n\\n // Node.js\\n if (IS_NODE) {\\n notify = function () {\\n process.nextTick(flush);\\n };\\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\\n } else if (MutationObserver && !IS_IOS) {\\n toggle = true;\\n node = document.createTextNode('');\\n new MutationObserver(flush).observe(node, { characterData: true });\\n notify = function () {\\n node.data = toggle = !toggle;\\n };\\n // environments with maybe non-completely correct, but existent Promise\\n } else if (Promise && Promise.resolve) {\\n // Promise.resolve without an argument throws an error in LG WebOS 2\\n promise = Promise.resolve(undefined);\\n then = promise.then;\\n notify = function () {\\n then.call(promise, flush);\\n };\\n // for other environments - macrotask based on:\\n // - setImmediate\\n // - MessageChannel\\n // - window.postMessag\\n // - onreadystatechange\\n // - setTimeout\\n } else {\\n notify = function () {\\n // strange IE + webpack dev server bug - use .call(global)\\n macrotask.call(global, flush);\\n };\\n }\\n}\\n\\nmodule.exports = queueMicrotask || function (fn) {\\n var task = { fn: fn, next: undefined };\\n if (last) last.next = task;\\n if (!head) {\\n head = task;\\n notify();\\n } last = task;\\n};\\n\\n\\n/***/ }),\\n/* 93 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = function (a, b) {\\n var console = global.console;\\n if (console && console.error) {\\n arguments.length === 1 ? console.error(a) : console.error(a, b);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 94 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar userAgent = __webpack_require__(54);\\n\\nvar process = global.process;\\nvar versions = process && process.versions;\\nvar v8 = versions && versions.v8;\\nvar match, version;\\n\\nif (v8) {\\n match = v8.split('.');\\n version = match[0] + match[1];\\n} else if (userAgent) {\\n match = userAgent.match(/Edge\\\\/(\\\\d+)/);\\n if (!match || match[1] >= 74) {\\n match = userAgent.match(/Chrome\\\\/(\\\\d+)/);\\n if (match) version = match[1];\\n }\\n}\\n\\nmodule.exports = version && +version;\\n\\n\\n/***/ }),\\n/* 95 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar aFunction = __webpack_require__(15);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar iterate = __webpack_require__(49);\\n\\n// `Promise.allSettled` method\\n// https://github.com/tc39/proposal-promise-allSettled\\n$({ target: 'Promise', stat: true }, {\\n allSettled: function allSettled(iterable) {\\n var C = this;\\n var capability = newPromiseCapabilityModule.f(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'fulfilled', value: value };\\n --remaining || resolve(values);\\n }, function (e) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'rejected', reason: e };\\n --remaining || resolve(values);\\n });\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 96 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar NativePromise = __webpack_require__(48);\\nvar fails = __webpack_require__(5);\\nvar getBuiltIn = __webpack_require__(11);\\nvar speciesConstructor = __webpack_require__(51);\\nvar promiseResolve = __webpack_require__(55);\\nvar redefine = __webpack_require__(10);\\n\\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\\nvar NON_GENERIC = !!NativePromise && fails(function () {\\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\\n});\\n\\n// `Promise.prototype.finally` method\\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\\n 'finally': function (onFinally) {\\n var C = speciesConstructor(this, getBuiltIn('Promise'));\\n var isFunction = typeof onFinally == 'function';\\n return this.then(\\n isFunction ? function (x) {\\n return promiseResolve(C, onFinally()).then(function () { return x; });\\n } : onFinally,\\n isFunction ? function (e) {\\n return promiseResolve(C, onFinally()).then(function () { throw e; });\\n } : onFinally\\n );\\n }\\n});\\n\\n// patch native Promise.prototype for native async functions\\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\\n}\\n\\n\\n/***/ }),\\n/* 97 */\\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n// ESM COMPAT FLAG\\n__webpack_require__.r(__webpack_exports__);\\n\\n// EXPORTS\\n__webpack_require__.d(__webpack_exports__, \\\"add\\\", function() { return /* binding */ add; });\\n__webpack_require__.d(__webpack_exports__, \\\"done\\\", function() { return /* binding */ done; });\\n__webpack_require__.d(__webpack_exports__, \\\"toJS\\\", function() { return /* binding */ toJS; });\\n__webpack_require__.d(__webpack_exports__, \\\"load\\\", function() { return /* binding */ load; });\\n__webpack_require__.d(__webpack_exports__, \\\"search\\\", function() { return /* binding */ search; });\\n\\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\\n/*! *****************************************************************************\\r\\nCopyright (c) Microsoft Corporation. All rights reserved.\\r\\nLicensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use\\r\\nthis file except in compliance with the License. You may obtain a copy of the\\r\\nLicense at http://www.apache.org/licenses/LICENSE-2.0\\r\\n\\r\\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\r\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\r\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\\r\\nMERCHANTABLITY OR NON-INFRINGEMENT.\\r\\n\\r\\nSee the Apache Version 2.0 License for specific language governing permissions\\r\\nand limitations under the License.\\r\\n***************************************************************************** */\\r\\n/* global Reflect, Promise */\\r\\n\\r\\nvar extendStatics = function(d, b) {\\r\\n extendStatics = Object.setPrototypeOf ||\\r\\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\r\\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\r\\n return extendStatics(d, b);\\r\\n};\\r\\n\\r\\nfunction __extends(d, b) {\\r\\n extendStatics(d, b);\\r\\n function __() { this.constructor = d; }\\r\\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\r\\n}\\r\\n\\r\\nvar __assign = function() {\\r\\n __assign = Object.assign || function __assign(t) {\\r\\n for (var s, i = 1, n = arguments.length; i < n; i++) {\\r\\n s = arguments[i];\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\\r\\n }\\r\\n return t;\\r\\n }\\r\\n return __assign.apply(this, arguments);\\r\\n}\\r\\n\\r\\nfunction __rest(s, e) {\\r\\n var t = {};\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\r\\n t[p] = s[p];\\r\\n if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\r\\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\r\\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\r\\n t[p[i]] = s[p[i]];\\r\\n }\\r\\n return t;\\r\\n}\\r\\n\\r\\nfunction __decorate(decorators, target, key, desc) {\\r\\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.decorate === \\\"function\\\") r = Reflect.decorate(decorators, target, key, desc);\\r\\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\r\\n return c > 3 && r && Object.defineProperty(target, key, r), r;\\r\\n}\\r\\n\\r\\nfunction __param(paramIndex, decorator) {\\r\\n return function (target, key) { decorator(target, key, paramIndex); }\\r\\n}\\r\\n\\r\\nfunction __metadata(metadataKey, metadataValue) {\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.metadata === \\\"function\\\") return Reflect.metadata(metadataKey, metadataValue);\\r\\n}\\r\\n\\r\\nfunction __awaiter(thisArg, _arguments, P, generator) {\\r\\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\r\\n return new (P || (P = Promise))(function (resolve, reject) {\\r\\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\r\\n function rejected(value) { try { step(generator[\\\"throw\\\"](value)); } catch (e) { reject(e); } }\\r\\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\r\\n step((generator = generator.apply(thisArg, _arguments || [])).next());\\r\\n });\\r\\n}\\r\\n\\r\\nfunction __generator(thisArg, body) {\\r\\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\r\\n return g = { next: verb(0), \\\"throw\\\": verb(1), \\\"return\\\": verb(2) }, typeof Symbol === \\\"function\\\" && (g[Symbol.iterator] = function() { return this; }), g;\\r\\n function verb(n) { return function (v) { return step([n, v]); }; }\\r\\n function step(op) {\\r\\n if (f) throw new TypeError(\\\"Generator is already executing.\\\");\\r\\n while (_) try {\\r\\n if (f = 1, y && (t = op[0] & 2 ? y[\\\"return\\\"] : op[0] ? y[\\\"throw\\\"] || ((t = y[\\\"return\\\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\r\\n if (y = 0, t) op = [op[0] & 2, t.value];\\r\\n switch (op[0]) {\\r\\n case 0: case 1: t = op; break;\\r\\n case 4: _.label++; return { value: op[1], done: false };\\r\\n case 5: _.label++; y = op[1]; op = [0]; continue;\\r\\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\\r\\n default:\\r\\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\r\\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\r\\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\r\\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\r\\n if (t[2]) _.ops.pop();\\r\\n _.trys.pop(); continue;\\r\\n }\\r\\n op = body.call(thisArg, _);\\r\\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\r\\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\r\\n }\\r\\n}\\r\\n\\r\\nfunction __exportStar(m, exports) {\\r\\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\\r\\n}\\r\\n\\r\\nfunction __values(o) {\\r\\n var s = typeof Symbol === \\\"function\\\" && Symbol.iterator, m = s && o[s], i = 0;\\r\\n if (m) return m.call(o);\\r\\n if (o && typeof o.length === \\\"number\\\") return {\\r\\n next: function () {\\r\\n if (o && i >= o.length) o = void 0;\\r\\n return { value: o && o[i++], done: !o };\\r\\n }\\r\\n };\\r\\n throw new TypeError(s ? \\\"Object is not iterable.\\\" : \\\"Symbol.iterator is not defined.\\\");\\r\\n}\\r\\n\\r\\nfunction __read(o, n) {\\r\\n var m = typeof Symbol === \\\"function\\\" && o[Symbol.iterator];\\r\\n if (!m) return o;\\r\\n var i = m.call(o), r, ar = [], e;\\r\\n try {\\r\\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\r\\n }\\r\\n catch (error) { e = { error: error }; }\\r\\n finally {\\r\\n try {\\r\\n if (r && !r.done && (m = i[\\\"return\\\"])) m.call(i);\\r\\n }\\r\\n finally { if (e) throw e.error; }\\r\\n }\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spread() {\\r\\n for (var ar = [], i = 0; i < arguments.length; i++)\\r\\n ar = ar.concat(__read(arguments[i]));\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spreadArrays() {\\r\\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\r\\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\\r\\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\r\\n r[k] = a[j];\\r\\n return r;\\r\\n};\\r\\n\\r\\nfunction __await(v) {\\r\\n return this instanceof __await ? (this.v = v, this) : new __await(v);\\r\\n}\\r\\n\\r\\nfunction __asyncGenerator(thisArg, _arguments, generator) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\r\\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\r\\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\r\\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\r\\n function fulfill(value) { resume(\\\"next\\\", value); }\\r\\n function reject(value) { resume(\\\"throw\\\", value); }\\r\\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\r\\n}\\r\\n\\r\\nfunction __asyncDelegator(o) {\\r\\n var i, p;\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\", function (e) { throw e; }), verb(\\\"return\\\"), i[Symbol.iterator] = function () { return this; }, i;\\r\\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \\\"return\\\" } : f ? f(v) : v; } : f; }\\r\\n}\\r\\n\\r\\nfunction __asyncValues(o) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var m = o[Symbol.asyncIterator], i;\\r\\n return m ? m.call(o) : (o = typeof __values === \\\"function\\\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\r\\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\r\\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\r\\n}\\r\\n\\r\\nfunction __makeTemplateObject(cooked, raw) {\\r\\n if (Object.defineProperty) { Object.defineProperty(cooked, \\\"raw\\\", { value: raw }); } else { cooked.raw = raw; }\\r\\n return cooked;\\r\\n};\\r\\n\\r\\nfunction __importStar(mod) {\\r\\n if (mod && mod.__esModule) return mod;\\r\\n var result = {};\\r\\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\\r\\n result.default = mod;\\r\\n return result;\\r\\n}\\r\\n\\r\\nfunction __importDefault(mod) {\\r\\n return (mod && mod.__esModule) ? mod : { default: mod };\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldGet(receiver, privateMap) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to get private field on non-instance\\\");\\r\\n }\\r\\n return privateMap.get(receiver);\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to set private field on non-instance\\\");\\r\\n }\\r\\n privateMap.set(receiver, value);\\r\\n return value;\\r\\n}\\r\\n\\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\\nvar lunr = __webpack_require__(4);\\n\\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--4-0!./node_modules/babel-loader/lib??ref--4-1!./src/services/SearchWorker.worker.ts\\n\\n\\ntry {\\n // tslint:disable-next-line\\n __webpack_require__(57); // bundle into worker\\n}\\ncatch (_) { } // nope\\n/* just for better typings */\\nvar Worker = /** @class */ (function () {\\n function Worker() {\\n this.add = add;\\n this.done = done;\\n this.search = search;\\n this.toJS = toJS;\\n this.load = load;\\n }\\n return Worker;\\n}());\\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\\\"default\\\"] = (Worker);\\nvar store = [];\\nvar resolveIndex = function () {\\n throw new Error('Should not be called');\\n};\\nvar index = new Promise(function (resolve) {\\n resolveIndex = resolve;\\n});\\nlunr[\\\"tokenizer\\\"].separator = /\\\\s+/;\\nvar builder = new lunr[\\\"Builder\\\"]();\\nbuilder.field('title');\\nbuilder.field('description');\\nbuilder.ref('ref');\\nbuilder.pipeline.add(lunr[\\\"trimmer\\\"], lunr[\\\"stopWordFilter\\\"], lunr[\\\"stemmer\\\"]);\\nvar expandTerm = function (term) { return '*' + lunr[\\\"stemmer\\\"](new lunr[\\\"Token\\\"](term, {})) + '*'; };\\nfunction add(title, description, meta) {\\n var ref = store.push(meta) - 1;\\n var item = {\\n title: title.toLowerCase(),\\n description: description.toLowerCase(),\\n ref: ref\\n };\\n builder.add(item);\\n}\\nfunction done() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n resolveIndex(builder.build());\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction toJS() {\\n return __awaiter(this, void 0, void 0, function () {\\n var _a;\\n return __generator(this, function (_b) {\\n switch (_b.label) {\\n case 0:\\n _a = {\\n store: store\\n };\\n return [4 /*yield*/, index];\\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\\n _a)];\\n }\\n });\\n });\\n}\\nfunction load(state) {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = state.store;\\n resolveIndex(lunr[\\\"Index\\\"].load(state.index));\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction search(q, limit) {\\n if (limit === void 0) { limit = 0; }\\n return __awaiter(this, void 0, void 0, function () {\\n var searchResults;\\n return __generator(this, function (_a) {\\n switch (_a.label) {\\n case 0:\\n if (q.trim().length === 0) {\\n return [2 /*return*/, []];\\n }\\n return [4 /*yield*/, index];\\n case 1:\\n searchResults = (_a.sent()).query(function (t) {\\n q.trim().toLowerCase().split(/\\\\s+/).forEach(function (term) {\\n var exp = expandTerm(term);\\n t.term(exp, {});\\n });\\n });\\n if (limit > 0) {\\n searchResults = searchResults.slice(0, limit);\\n }\\n return [2 /*return*/, searchResults.map(function (res) { return ({\\n meta: store[res.ref],\\n score: res.score\\n }); })];\\n }\\n });\\n });\\n}\\n\\naddEventListener('message', function (e) {var ref = e.data;var type = ref.type;var method = ref.method;var id = ref.id;var params = ref.params;var f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () { return f.apply(__webpack_exports__, params); });} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\\n\\n/***/ })\\n/******/ ]);\\n//# sourceMappingURL=fea68db94dba05b54c01.worker.js.map\"])), { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n","module.exports = require(\"core-js/es/promise\");","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","module.exports = require(\"stickyfill\");","import { darken, desaturate, lighten, readableColor, transparentize } from 'polished';\nconst defaultTheme: ThemeInterface = {\n spacing: {\n unit: 5,\n sectionHorizontal: ({\n spacing\n }) => spacing.unit * 8,\n sectionVertical: ({\n spacing\n }) => spacing.unit * 8\n },\n breakpoints: {\n small: '50rem',\n medium: '85rem',\n large: '105rem'\n },\n colors: {\n tonalOffset: 0.3,\n primary: {\n main: '#232E72',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.primary.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.primary.main),\n contrastText: ({\n colors\n }) => readableColor(colors.primary.main)\n },\n success: {\n main: '#00aa13',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.success.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.success.main),\n contrastText: ({\n colors\n }) => readableColor(colors.success.main)\n },\n warning: {\n main: '#d4ad03',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.warning.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.warning.main),\n contrastText: '#ffffff'\n },\n error: {\n main: '#e53935',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.error.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.error.main),\n contrastText: ({\n colors\n }) => readableColor(colors.error.main)\n },\n text: {\n primary: '#333333',\n secondary: ({\n colors\n }) => lighten(colors.tonalOffset, colors.text.primary)\n },\n border: {\n dark: 'rgba(0,0,0, 0.1)',\n light: '#ffffff'\n },\n responses: {\n success: {\n color: ({\n colors\n }) => colors.success.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.success.main)\n },\n error: {\n color: ({\n colors\n }) => colors.error.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.error.main)\n },\n redirect: {\n color: '#ffa500',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.redirect.color)\n },\n info: {\n color: '#87ceeb',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.info.color)\n }\n },\n http: {\n get: '#078db3',\n post: '#006353',\n put: '#eeb111',\n options: '#7e929f',\n patch: '#8cc53e',\n delete: '#f05822',\n basic: '#999',\n link: '#31bbb6',\n head: '#725ea6'\n }\n },\n schema: {\n linesColor: theme => lighten(theme.colors.tonalOffset, desaturate(theme.colors.tonalOffset, theme.colors.primary.main)),\n defaultDetailsWidth: '75%',\n typeNameColor: theme => theme.colors.text.secondary,\n typeTitleColor: theme => theme.schema.typeNameColor,\n requireLabelColor: theme => theme.colors.error.main,\n labelsTextSize: '0.9em',\n nestingSpacing: '1em',\n nestedBackground: '#fafafa',\n arrow: {\n size: '1.1em',\n color: theme => theme.colors.text.secondary\n }\n },\n typography: {\n fontSize: '14px',\n lineHeight: '1.5em',\n fontWeightRegular: '400',\n fontWeightBold: '600',\n fontWeightLight: '300',\n fontFamily: resolveFontFamily(),\n smoothing: 'antialiased',\n optimizeSpeed: true,\n headings: {\n fontFamily: resolveFontFamily(),\n fontWeight: '400',\n lineHeight: '1.6em'\n },\n code: {\n fontSize: '13px',\n fontFamily: 'Courier, monospace',\n lineHeight: ({\n typography\n }) => typography.lineHeight,\n fontWeight: ({\n typography\n }) => typography.fontWeightRegular,\n color: '#e53935',\n backgroundColor: 'rgba(38, 50, 56, 0.05)',\n wrap: false\n },\n links: {\n color: ({\n colors\n }) => colors.primary.main,\n visited: ({\n typography\n }) => typography.links.color,\n hover: ({\n typography\n }) => lighten(0.2, typography.links.color)\n }\n },\n menu: {\n width: '260px',\n backgroundColor: '#FFFFFF',\n textColor: '#232E72',\n activeTextColor: theme => theme.menu.textColor !== defaultTheme.menu!.textColor ? theme.menu.textColor : theme.colors.primary.main,\n groupItems: {\n textTransform: 'uppercase'\n },\n level1Items: {\n textTransform: 'none'\n },\n arrow: {\n size: '1.5em',\n color: theme => theme.menu.textColor\n }\n },\n logo: {\n maxHeight: ({\n menu\n }) => menu.width,\n maxWidth: ({\n menu\n }) => menu.width,\n gutter: '2px'\n },\n rightPanel: {\n backgroundColor: '#3C3C3C',\n width: '40%',\n textColor: '#ffffff'\n },\n codeSample: {\n backgroundColor: ({\n rightPanel\n }) => darken(0.1, rightPanel.backgroundColor)\n }\n};\n\nfunction resolveFontFamily() {\n return '' + '\"OTSans\", ' + '-apple-system, ' + 'system-ui, ' + 'BlinkMacSystemFont, ' + '\"Segoe UI\", Roboto, ' + '\"Helvetica Neue\", ' + 'Arial, ' + 'sans-serif';\n}\n\nexport default defaultTheme;\nexport function resolveTheme(theme: ThemeInterface): ResolvedThemeInterface {\n const resolvedValues = {};\n let counter = 0;\n\n const setProxy = (obj, path: string) => {\n Object.keys(obj).forEach(k => {\n const currentPath = (path ? path + '.' : '') + k;\n const val = obj[k];\n\n if (typeof val === 'function') {\n Object.defineProperty(obj, k, {\n get() {\n if (!resolvedValues[currentPath]) {\n counter++;\n\n if (counter > 1000) {\n throw new Error(`Theme probably contains circular dependency at ${currentPath}: ${val.toString()}`);\n }\n\n resolvedValues[currentPath] = val(theme);\n }\n\n return resolvedValues[currentPath];\n },\n\n enumerable: true\n });\n } else if (typeof val === 'object') {\n setProxy(val, currentPath);\n }\n });\n };\n\n setProxy(theme, '');\n return JSON.parse(JSON.stringify(theme));\n}\nexport interface ColorSetting {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\nexport interface HTTPResponseColos {\n color: string;\n backgroundColor: string;\n}\nexport interface FontSettings {\n fontSize: string;\n fontWeight: string;\n fontFamily: string;\n lineHeight: string;\n color: string;\n}\nexport interface ResolvedThemeInterface {\n spacing: {\n unit: number;\n sectionHorizontal: number;\n sectionVertical: number;\n };\n breakpoints: {\n small: string;\n medium: string;\n large: string;\n };\n colors: {\n tonalOffset: number;\n primary: ColorSetting;\n success: ColorSetting;\n warning: ColorSetting;\n error: ColorSetting;\n border: {\n light: string;\n dark: string;\n };\n text: {\n primary: string;\n secondary: string;\n };\n responses: {\n success: HTTPResponseColos;\n error: HTTPResponseColos;\n redirect: HTTPResponseColos;\n info: HTTPResponseColos;\n };\n http: {\n get: string;\n post: string;\n put: string;\n options: string;\n patch: string;\n delete: string;\n basic: string;\n link: string;\n head: string;\n };\n };\n schema: {\n linesColor: string;\n defaultDetailsWidth: string;\n typeNameColor: string;\n typeTitleColor: string;\n requireLabelColor: string;\n labelsTextSize: string;\n nestingSpacing: string;\n nestedBackground: string;\n arrow: {\n size: string;\n color: string;\n };\n };\n typography: {\n fontSize: string;\n lineHeight: string;\n fontWeightLight: string;\n fontWeightRegular: string;\n fontWeightBold: string;\n fontFamily: string;\n smoothing: string;\n optimizeSpeed: boolean;\n code: FontSettings & {\n backgroundColor: string;\n wrap: boolean;\n };\n headings: {\n fontFamily: string;\n fontWeight: string;\n lineHeight: string;\n };\n links: {\n color: string;\n visited: string;\n hover: string;\n };\n };\n menu: {\n width: string;\n backgroundColor: string;\n textColor: string;\n activeTextColor: string;\n groupItems: {\n textTransform: string;\n };\n level1Items: {\n textTransform: string;\n };\n arrow: {\n size: string;\n color: string;\n };\n };\n logo: {\n maxHeight: string;\n maxWidth: string;\n gutter: string;\n };\n rightPanel: {\n backgroundColor: string;\n textColor: string;\n width: string;\n };\n codeSample: {\n backgroundColor: string;\n };\n extensionsHook?: (name: string, props: any) => string;\n}\nexport type primitive = string | number | boolean | undefined | null;\nexport type AdvancedThemeDeep = T extends primitive ? T | ((theme: ResolvedThemeInterface) => T) : AdvancedThemeObject;\nexport type AdvancedThemeObject = { [P in keyof T]?: AdvancedThemeDeep };\nexport type ThemeInterface = AdvancedThemeObject;","export const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nexport function querySelector(selector: string): Element | null {\n if (typeof document !== 'undefined') {\n return document.querySelector(selector);\n }\n\n return null;\n}\n/**\n * Drop everything inside <...> (i.e., tags/elements), and keep the text.\n * Unlike browser innerText, this removes newlines; it also doesn't handle\n * un-encoded `<` or `>` characters very well, so don't feed it malformed HTML\n */\n\nexport function html2Str(html: string): string {\n return html.split(/<[^>]+>/).map(chunk => {\n return chunk.trim();\n }).filter(trimmedChunk => {\n return trimmedChunk.length > 0;\n }).join(' ');\n} // scrollIntoViewIfNeeded polyfill\n\nif (typeof Element !== 'undefined' && !(Element as any).prototype.scrollIntoViewIfNeeded) {\n (Element as any).prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {\n centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;\n const parent = this.parentNode;\n const parentComputedStyle = window.getComputedStyle(parent, undefined);\n const parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width'), 10);\n const parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width'), 10);\n const overTop = this.offsetTop - parent.offsetTop < parent.scrollTop;\n const overBottom = this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight;\n const overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft;\n const overRight = this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth;\n const alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n this.scrollIntoView(alignWithTop);\n }\n };\n}","import slugify from 'slugify';\nimport { format, parse } from 'url';\n/**\n * Maps over array passing `isLast` bool to iterator as the second argument\n */\n\nexport function mapWithLast(array: T[], iteratee: (item: T, isLast: boolean) => P) {\n const res: P[] = [];\n\n for (let i = 0; i < array.length - 1; i++) {\n res.push(iteratee(array[i], false));\n }\n\n if (array.length !== 0) {\n res.push(iteratee(array[array.length - 1], true));\n }\n\n return res;\n}\n/**\n * Creates an object with the same keys as object and values generated by running each\n * own enumerable string keyed property of object thru iteratee.\n * The iteratee is invoked with three arguments: (value, key, object).\n *\n * @param object the object to iterate over\n * @param iteratee the function invoked per iteration.\n */\n\nexport function mapValues(object: Dict, iteratee: (val: T, key: string, obj: Dict) => P): Dict

{\n const res: {\n [key: string]: P;\n } = {};\n\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n res[key] = iteratee(object[key], key, object);\n }\n }\n\n return res;\n}\n/**\n * flattens collection using `prop` field as a children\n * @param collectionItems collection items\n * @param prop item property with child elements\n */\n\nexport function flattenByProp(collectionItems: T[], prop: P): T[] {\n const res: T[] = [];\n\n const iterate = (items: T[]) => {\n for (const item of items) {\n res.push(item);\n\n if (item[prop]) {\n iterate(((item[prop] as any) as T[]));\n }\n }\n };\n\n iterate(collectionItems);\n return res;\n}\nexport function stripTrailingSlash(path: string): string {\n if (path.endsWith('/')) {\n return path.substring(0, path.length - 1);\n }\n\n return path;\n}\nexport function isNumeric(n: any): n is number {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nexport function appendToMdHeading(md: string, heading: string, content: string) {\n // if heading is already in md and append to the end of it\n const testRegex = new RegExp(`(^|\\\\n)#\\\\s?${heading}\\\\s*\\\\n`, 'i');\n const replaceRegex = new RegExp(`((\\\\n|^)#\\\\s*${heading}\\\\s*(\\\\n|$)(?:.|\\\\n)*?)(\\\\n#|$)`, 'i');\n\n if (testRegex.test(md)) {\n return md.replace(replaceRegex, `$1\\n\\n${content}\\n$4`);\n } else {\n // else append heading itself\n const br = md === '' || md.endsWith('\\n\\n') ? '' : md.endsWith('\\n') ? '\\n' : '\\n\\n';\n return `${md}${br}# ${heading}\\n\\n${content}`;\n }\n} // credits https://stackoverflow.com/a/46973278/1749888\n\nexport const mergeObjects = (target: any, ...sources: any[]): any => {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (source === undefined) {\n return target;\n }\n\n if (isMergebleObject(target) && isMergebleObject(source)) {\n Object.keys(source).forEach((key: string) => {\n if (isMergebleObject(source[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n\n mergeObjects(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n });\n }\n\n return mergeObjects(target, ...sources);\n};\n\nconst isObject = (item: any): boolean => {\n return item !== null && typeof item === 'object';\n};\n\nconst isMergebleObject = (item): boolean => {\n return isObject(item) && !Array.isArray(item);\n};\n/**\n * slugify() returns empty string when failed to slugify.\n * so try to return minimum slugified-string with failed one which keeps original value\n * the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286\n */\n\n\nexport function safeSlugify(value: string): string {\n return slugify(value) || value.toString().toLowerCase().replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/\\--+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n}\nexport function isAbsoluteUrl(url: string) {\n return /(?:^[a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url);\n}\n/**\n * simple resolve URL which doesn't break on strings with url fragments\n * e.g. resolveUrl('http://test.com:{port}', 'path') results in http://test.com:{port}/path\n */\n\nexport function resolveUrl(url: string, to: string) {\n let res;\n\n if (to.startsWith('//')) {\n const {\n protocol: specProtocol\n } = parse(url);\n res = `${specProtocol || 'https:'}${to}`;\n } else if (isAbsoluteUrl(to)) {\n res = to;\n } else if (!to.startsWith('/')) {\n res = stripTrailingSlash(url) + '/' + to;\n } else {\n const urlObj = parse(url);\n res = format({ ...urlObj,\n pathname: to\n });\n }\n\n return stripTrailingSlash(res);\n}\nexport function getBasePath(serverUrl: string): string {\n try {\n return parseURL(serverUrl).pathname;\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\nexport function titleize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\nexport function removeQueryString(serverUrl: string): string {\n try {\n const url = parseURL(serverUrl);\n url.search = '';\n return url.toString();\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\n\nfunction parseURL(url: string) {\n if (typeof URL === 'undefined') {\n // node\n return new (require('url').URL)(url);\n } else {\n return new URL(url);\n }\n}\n\nexport function unescapeHTMLChars(str: string): string {\n return str.replace(/&#(\\d+);/g, (_m, code) => String.fromCharCode(parseInt(code, 10)));\n}","export interface LabelsConfig {\n enum: string;\n enumSingleValue: string;\n enumArray: string;\n default: string;\n deprecated: string;\n example: string;\n nullable: string;\n recursive: string;\n arrayOf: string;\n}\nexport type LabelsConfigRaw = Partial;\nconst labels: LabelsConfig = {\n enum: 'Enum',\n enumSingleValue: 'Value',\n enumArray: 'Items',\n default: 'Default',\n deprecated: 'Deprecated',\n example: 'Example',\n nullable: 'Nullable',\n recursive: 'Recursive',\n arrayOf: 'Array of '\n};\nexport function setRedocLabels(_labels?: LabelsConfigRaw) {\n Object.assign(labels, _labels);\n}\nexport function l(key: keyof LabelsConfig, idx?: number): string {\n const label = labels[key];\n\n if (idx !== undefined) {\n return label[idx];\n }\n\n return label;\n}","import defaultTheme, { ResolvedThemeInterface, resolveTheme, ThemeInterface } from '../theme';\nimport { querySelector } from '../utils/dom';\nimport { isNumeric, mergeObjects } from '../utils/helpers';\nimport { LabelsConfigRaw, setRedocLabels } from './Labels';\nimport { MDXComponentMeta } from './MarkdownRenderer';\nexport interface RedocRawOptions {\n theme?: ThemeInterface;\n scrollYOffset?: number | string | (() => number);\n hideHostname?: boolean | string;\n expandResponses?: string | 'all';\n requiredPropsFirst?: boolean | string;\n sortPropsAlphabetically?: boolean | string;\n noAutoAuth?: boolean | string;\n nativeScrollbars?: boolean | string;\n pathInMiddlePanel?: boolean | string;\n untrustedSpec?: boolean | string;\n hideLoading?: boolean | string;\n hideDownloadButton?: boolean | string;\n disableSearch?: boolean | string;\n onlyRequiredInSamples?: boolean | string;\n showExtensions?: boolean | string | string[];\n isOt2?: boolean;\n hasAdditionalDoc?: boolean;\n additionalDocUrl?: string;\n hideSingleRequestSampleTab?: boolean | string;\n menuToggle?: boolean | string;\n jsonSampleExpandLevel?: number | string | 'all';\n hideSchemaTitles?: boolean | string;\n payloadSampleIdx?: number;\n expandSingleSchemaField?: boolean | string;\n unstable_ignoreMimeParameters?: boolean;\n allowedMdComponents?: Dict;\n labels?: LabelsConfigRaw;\n enumSkipQuotes?: boolean | string;\n expandDefaultServerVariables?: boolean;\n}\n\nfunction argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean {\n if (val === undefined) {\n return defaultValue || false;\n }\n\n if (typeof val === 'string') {\n return val === 'false' ? false : true;\n }\n\n return val;\n}\n\nfunction argValueToString(val?: string | undefined, defaultValue?: string): string | undefined {\n if (val === undefined) {\n return defaultValue || '';\n }\n\n if (typeof val === 'string') {\n return val;\n }\n}\n\nexport class RedocNormalizedOptions {\n static normalizeExpandResponses(value: RedocRawOptions['expandResponses']) {\n if (value === 'all') {\n return 'all';\n }\n\n if (typeof value === 'string') {\n const res = {};\n value.split(',').forEach(code => {\n res[code.trim()] = true;\n });\n return res;\n } else if (value !== undefined) {\n console.warn(`expandResponses must be a string but received value \"${value}\" of type ${typeof value}`);\n }\n\n return {};\n }\n\n static normalizeHideHostname(value: RedocRawOptions['hideHostname']): boolean {\n return !!value;\n }\n\n static normalizeScrollYOffset(value: RedocRawOptions['scrollYOffset']): () => number {\n // just number is not valid selector and leads to crash so checking if isNumeric here\n if (typeof value === 'string' && !isNumeric(value)) {\n const el = querySelector(value);\n\n if (!el) {\n console.warn('scrollYOffset value is a selector to non-existing element. Using offset 0 by default');\n }\n\n const bottom = el && el.getBoundingClientRect().bottom || 0;\n return () => bottom;\n } else if (typeof value === 'number' || isNumeric(value)) {\n return () => typeof value === 'number' ? value : parseFloat(value);\n } else if (typeof value === 'function') {\n return () => {\n const res = value();\n\n if (typeof res !== 'number') {\n console.warn(`scrollYOffset should return number but returned value \"${res}\" of type ${typeof res}`);\n }\n\n return res;\n };\n } else if (value !== undefined) {\n console.warn('Wrong value for scrollYOffset ReDoc option: should be string, number or function');\n }\n\n return () => 0;\n }\n\n static normalizeShowExtensions(value: RedocRawOptions['showExtensions']): string[] | boolean {\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (value === '') {\n return true;\n }\n\n if (typeof value === 'string') {\n return value.split(',').map(ext => ext.trim());\n }\n\n return value;\n }\n\n static normalizePayloadSampleIdx(value: RedocRawOptions['payloadSampleIdx']): number {\n if (typeof value === 'number') {\n return Math.max(0, value); // always greater or equal than 0\n }\n\n if (typeof value === 'string') {\n return isFinite(value) ? parseInt(value, 10) : 0;\n }\n\n return 0;\n }\n\n private static normalizeJsonSampleExpandLevel(level?: number | string | 'all'): number {\n if (level === 'all') {\n return +Infinity;\n }\n\n if (!isNaN(Number(level))) {\n return Math.ceil(Number(level));\n }\n\n return 2;\n }\n\n theme: ResolvedThemeInterface;\n scrollYOffset: () => number;\n hideHostname: boolean;\n expandResponses: {\n [code: string]: boolean;\n } | 'all';\n requiredPropsFirst: boolean;\n sortPropsAlphabetically: boolean;\n noAutoAuth: boolean;\n nativeScrollbars: boolean;\n pathInMiddlePanel: boolean;\n untrustedSpec: boolean;\n hideDownloadButton: boolean;\n disableSearch: boolean;\n onlyRequiredInSamples: boolean;\n showExtensions: boolean | string[];\n isOt2: boolean;\n hasAdditionalDoc: boolean;\n additionalDocUrl: string | undefined;\n hideSingleRequestSampleTab: boolean;\n menuToggle: boolean;\n jsonSampleExpandLevel: number;\n enumSkipQuotes: boolean;\n hideSchemaTitles: boolean;\n payloadSampleIdx: number;\n expandSingleSchemaField: boolean;\n /* tslint:disable-next-line */\n\n unstable_ignoreMimeParameters: boolean;\n allowedMdComponents: Dict;\n expandDefaultServerVariables: boolean;\n\n constructor(raw: RedocRawOptions, defaults: RedocRawOptions = {}) {\n raw = { ...defaults,\n ...raw\n };\n const hook = raw.theme && raw.theme.extensionsHook;\n this.theme = resolveTheme(mergeObjects(({} as any), defaultTheme, { ...raw.theme,\n extensionsHook: undefined\n }));\n this.theme.extensionsHook = (hook as any); // do not support dynamic labels changes. Labels should be configured before\n\n setRedocLabels(raw.labels);\n this.scrollYOffset = RedocNormalizedOptions.normalizeScrollYOffset(raw.scrollYOffset);\n this.hideHostname = RedocNormalizedOptions.normalizeHideHostname(raw.hideHostname);\n this.expandResponses = RedocNormalizedOptions.normalizeExpandResponses(raw.expandResponses);\n this.requiredPropsFirst = argValueToBoolean(raw.requiredPropsFirst);\n this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically);\n this.noAutoAuth = argValueToBoolean(raw.noAutoAuth);\n this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);\n this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);\n this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);\n this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton);\n this.disableSearch = argValueToBoolean(raw.disableSearch);\n this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples);\n this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions);\n this.isOt2 = argValueToBoolean(raw.isOt2);\n this.hasAdditionalDoc = argValueToBoolean(raw.hasAdditionalDoc);\n this.additionalDocUrl = argValueToString(raw.additionalDocUrl);\n this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab);\n this.menuToggle = argValueToBoolean(raw.menuToggle, true);\n this.jsonSampleExpandLevel = RedocNormalizedOptions.normalizeJsonSampleExpandLevel(raw.jsonSampleExpandLevel);\n this.enumSkipQuotes = argValueToBoolean(raw.enumSkipQuotes);\n this.hideSchemaTitles = argValueToBoolean(raw.hideSchemaTitles);\n this.payloadSampleIdx = RedocNormalizedOptions.normalizePayloadSampleIdx(raw.payloadSampleIdx);\n this.expandSingleSchemaField = argValueToBoolean(raw.expandSingleSchemaField); // eslint-disable-next-line @typescript-eslint/camelcase\n\n this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);\n this.allowedMdComponents = raw.allowedMdComponents || {};\n this.expandDefaultServerVariables = argValueToBoolean(raw.expandDefaultServerVariables);\n }\n\n}","import * as styledComponents from 'styled-components';\nimport { ResolvedThemeInterface } from './theme';\nexport { ResolvedThemeInterface };\nconst {\n default: styled,\n css,\n createGlobalStyle,\n keyframes,\n ThemeProvider\n} = ((styledComponents as any) as styledComponents.ThemedStyledComponentsModule);\nexport const media = {\n lessThan(breakpoint, print?: boolean) {\n return (...args) => css`\n @media ${print ? 'print, ' : ''} screen and (max-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n greaterThan(breakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n between(firstBreakpoint, secondBreakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[firstBreakpoint]}) and (max-width: ${props => props.theme.breakpoints[secondBreakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n }\n\n};\nexport { css, createGlobalStyle, keyframes, ThemeProvider };\nexport default styled;\nexport function extensionsHook(styledName: string) {\n return props => {\n if (!props.theme.extensionsHook) {\n return;\n }\n\n return props.theme.extensionsHook(styledName, props);\n };\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst ErrorWrapper = styled.div`\n padding: 20px;\n color: red;\n`;\nexport class ErrorBoundary extends React.Component<{}, {\n error?: Error;\n}> {\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n\n componentDidCatch(error) {\n this.setState({\n error\n });\n return false;\n }\n\n render() {\n if (this.state.error) {\n return \n

Something went wrong...

\n {this.state.error.message} \n

\n

\n Stack trace\n
{this.state.error.stack}
\n
\n

\n ReDoc Version: {__REDOC_VERSION__}
\n Commit: {__REDOC_REVISION__}\n ;\n }\n\n return React.Children.only(this.props.children);\n }\n\n}","import * as React from 'react';\nimport styled, { keyframes } from '../../styled-components';\n\nconst _Spinner = (props: {\n className?: string;\n color: string;\n}) => \n \n \n ;\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n`;\nexport const Spinner = styled(_Spinner)`\n animation: 1.5s ${rotate} linear infinite;\n width: 42px;\n height: 42px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path:not(#rotator) {\n fill: ${props => props.color};\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { Spinner } from './Spinner.svg';\nconst LoadingMessage = styled.div<{\n color: string;\n}>`\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ${props => props.color};\n`;\nexport interface LoadingProps {\n color: string;\n}\nexport class Loading extends React.PureComponent {\n render() {\n return
\n \n \n
;\n }\n\n}","import * as JsonSchemaRefParser from 'json-schema-ref-parser';\n/* tslint:disable-next-line:no-implicit-dependencies */\n\nimport { convertObj } from 'swagger2openapi';\nimport { OpenAPISpec } from '../types';\nexport async function loadAndBundleSpec(specUrlOrObject: object | string): Promise {\n const parser = new JsonSchemaRefParser();\n const spec = (await parser.bundle(specUrlOrObject, ({\n resolve: {\n http: {\n withCredentials: false\n }\n }\n } as object)) as any);\n\n if (spec.swagger !== undefined) {\n return convertSwagger2OpenAPI(spec);\n } else {\n return spec;\n }\n}\nexport function convertSwagger2OpenAPI(spec: any): Promise {\n console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0');\n return new Promise((resolve, reject) => convertObj(spec, {\n patch: true,\n warnOnly: true,\n text: '{}'\n }, (err, res) => {\n // TODO: log any warnings\n if (err) {\n return reject(err);\n }\n\n resolve(res && (res.openapi as any));\n }));\n}","'use strict';\n\nimport * as JsonPointerLib from 'json-pointer';\nconst origParse = JsonPointerLib.parse;\n/**\n * Wrapper for JsonPointer. Provides common operations\n */\n\nexport class JsonPointer {\n /**\n * returns last JsonPointer token\n * if level > 1 returns levels last (second last/third last)\n * @example\n * // returns subpath\n * JsonPointerHelper.baseName('/path/0/subpath')\n * // returns foo\n * JsonPointerHelper.baseName('/path/foo/subpath', 2)\n */\n static baseName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return tokens[tokens.length - level];\n }\n /**\n * returns dirname of pointer\n * if level > 1 returns corresponding dirname in the hierarchy\n * @example\n * // returns /path/0\n * JsonPointerHelper.dirName('/path/0/subpath')\n * // returns /path\n * JsonPointerHelper.dirName('/path/foo/subpath', 2)\n */\n\n\n static dirName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return JsonPointerLib.compile(tokens.slice(0, tokens.length - level));\n }\n /**\n * returns relative path tokens\n * @example\n * // returns ['subpath']\n * JsonPointerHelper.relative('/path/0', '/path/0/subpath')\n * // returns ['foo', 'subpath']\n * JsonPointerHelper.relative('/path', '/path/foo/subpath')\n */\n\n\n static relative(from, to): string[] {\n const fromTokens = JsonPointer.parse(from);\n const toTokens = JsonPointer.parse(to);\n return toTokens.slice(fromTokens.length);\n }\n /**\n * overridden JsonPointer original parse to take care of prefixing '#' symbol\n * that is not valid JsonPointer\n */\n\n\n static parse(pointer) {\n let ptr = pointer;\n\n if (ptr.charAt(0) === '#') {\n ptr = ptr.substring(1);\n }\n\n return origParse(ptr);\n }\n /**\n * Creates a JSON pointer path, by joining one or more tokens to a base path.\n *\n * @param {string} base - The base path\n * @param {string|string[]} tokens - The token(s) to append (e.g. [\"name\", \"first\"])\n * @returns {string}\n */\n\n\n static join(base, tokens) {\n // TODO: optimize\n const baseTokens = JsonPointer.parse(base);\n const resTokens = baseTokens.concat(tokens);\n return JsonPointerLib.compile(resTokens);\n }\n\n static get(object: object, pointer: string) {\n return JsonPointerLib.get(object, pointer);\n }\n\n static compile(tokens: string[]) {\n return JsonPointerLib.compile(tokens);\n }\n\n static escape(pointer: string) {\n return JsonPointerLib.escape(pointer);\n }\n\n}\n(JsonPointerLib as any).parse = JsonPointer.parse;\nObject.assign(JsonPointer, JsonPointerLib);\nexport default JsonPointer;","import { dirname } from 'path';\nimport * as URLtemplate from 'url-template';\nimport { FieldModel } from '../services/models';\nimport { OpenAPIParser } from '../services/OpenAPIParser';\nimport { OpenAPIEncoding, OpenAPIMediaType, OpenAPIOperation, OpenAPIParameter, OpenAPIParameterStyle, OpenAPISchema, OpenAPIServer, Referenced } from '../types';\nimport { IS_BROWSER } from './dom';\nimport { isNumeric, removeQueryString, resolveUrl } from './helpers';\n\nfunction isWildcardStatusCode(statusCode: string | number): statusCode is string {\n return typeof statusCode === 'string' && /\\dxx/i.test(statusCode);\n}\n\nexport function isStatusCode(statusCode: string) {\n return statusCode === 'default' || isNumeric(statusCode) || isWildcardStatusCode(statusCode);\n}\nexport function getStatusCodeType(statusCode: string | number, defaultAsError = false): string {\n if (statusCode === 'default') {\n return defaultAsError ? 'error' : 'success';\n }\n\n let code = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode;\n\n if (isWildcardStatusCode(statusCode)) {\n code *= 100; // parseInt('2xx') parses to 2\n }\n\n if (code < 100 || code > 599) {\n throw new Error('invalid HTTP code');\n }\n\n let res = 'success';\n\n if (code >= 300 && code < 400) {\n res = 'redirect';\n } else if (code >= 400) {\n res = 'error';\n } else if (code < 200) {\n res = 'info';\n }\n\n return res;\n}\nconst operationNames = {\n get: true,\n post: true,\n put: true,\n head: true,\n patch: true,\n delete: true,\n options: true\n};\nexport function isOperationName(key: string): boolean {\n return key in operationNames;\n}\nexport function getOperationSummary(operation: OpenAPIOperation): string {\n return operation.summary || operation.operationId || operation.description && operation.description.substring(0, 50) || '';\n}\nconst schemaKeywordTypes = {\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n additionalProperties: 'object',\n properties: 'object'\n};\nexport function detectType(schema: OpenAPISchema): string {\n if (schema.type !== undefined) {\n return schema.type;\n }\n\n const keywords = Object.keys(schemaKeywordTypes);\n\n for (const keyword of keywords) {\n const type = schemaKeywordTypes[keyword];\n\n if (schema[keyword] !== undefined) {\n return type;\n }\n }\n\n return 'any';\n}\nexport function isPrimitiveType(schema: OpenAPISchema, type: string | undefined = schema.type) {\n if (schema.oneOf !== undefined || schema.anyOf !== undefined) {\n return false;\n }\n\n if (type === 'object') {\n return schema.properties !== undefined ? Object.keys(schema.properties).length === 0 : schema.additionalProperties === undefined;\n }\n\n if (type === 'array') {\n if (schema.items === undefined) {\n return true;\n }\n\n return false;\n }\n\n return true;\n}\nexport function isJsonLike(contentType: string): boolean {\n return contentType.search(/json/i) !== -1;\n}\nexport function isFormUrlEncoded(contentType: string): boolean {\n return contentType === 'application/x-www-form-urlencoded';\n}\n\nfunction delimitedEncodeField(fieldVal: any, fieldName: string, delimiter: string): string {\n if (Array.isArray(fieldVal)) {\n return fieldVal.map(v => v.toString()).join(delimiter);\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${k}${delimiter}${fieldVal[k]}`).join(delimiter);\n } else {\n return fieldName + '=' + fieldVal.toString();\n }\n}\n\nfunction deepObjectEncodeField(fieldVal: any, fieldName: string): string {\n if (Array.isArray(fieldVal)) {\n console.warn('deepObject style cannot be used with array value:' + fieldVal.toString());\n return '';\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${fieldName}[${k}]=${fieldVal[k]}`).join('&');\n } else {\n console.warn('deepObject style cannot be used with non-object value:' + fieldVal.toString());\n return '';\n }\n}\n\nfunction serializeFormValue(name: string, explode: boolean, value: any) {\n // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n const safeName = '__redoc_param_name__';\n const suffix = explode ? '*' : '';\n const template = URLtemplate.parse(`{?${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).substring(1).replace(/__redoc_param_name__/g, name);\n}\n/*\n * Should be used only for url-form-encoded body payloads\n * To be used for parameters should be extended with other style values\n */\n\n\nexport function urlFormEncodePayload(payload: object, encoding: {\n [field: string]: OpenAPIEncoding;\n} = {}) {\n if (Array.isArray(payload)) {\n throw new Error('Payload must have fields: ' + payload.toString());\n } else {\n return Object.keys(payload).map(fieldName => {\n const fieldVal = payload[fieldName];\n const {\n style = 'form',\n explode = true\n } = encoding[fieldName] || {};\n\n switch (style) {\n case 'form':\n return serializeFormValue(fieldName, explode, fieldVal);\n\n case 'spaceDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '%20');\n\n case 'pipeDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '|');\n\n case 'deepObject':\n return deepObjectEncodeField(fieldVal, fieldName);\n\n default:\n // TODO implement rest of styles for path parameters\n console.warn('Incorrect or unsupported encoding style: ' + style);\n return '';\n }\n }).join('&');\n }\n}\n\nfunction serializePathParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n const suffix = explode ? '*' : '';\n let prefix = '';\n\n if (style === 'label') {\n prefix = '.';\n } else if (style === 'matrix') {\n prefix = ';';\n } // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n\n\n const safeName = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${prefix}${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).replace(/__redoc_param_name__/g, name);\n}\n\nfunction serializeQueryParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n case 'spaceDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style spaceDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('%20')}`;\n\n case 'pipeDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style pipeDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('|')}`;\n\n case 'deepObject':\n if (!explode || Array.isArray(value) || typeof value !== 'object') {\n console.warn('The style deepObject is only applicable for objects with explode=true');\n return '';\n }\n\n return deepObjectEncodeField(value, name);\n\n default:\n console.warn('Unexpected style for query: ' + style);\n return '';\n }\n}\n\nfunction serializeHeaderParameter(style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'simple':\n const suffix = explode ? '*' : ''; // name is not important here, so use RFC6570 safe name ([a-zA-Z0-9_])\n\n const name = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${name}${suffix}}`);\n return decodeURIComponent(template.expand({\n [name]: value\n }));\n\n default:\n console.warn('Unexpected style for header: ' + style);\n return '';\n }\n}\n\nfunction serializeCookieParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n default:\n console.warn('Unexpected style for cookie: ' + style);\n return '';\n }\n}\n\nexport function serializeParameterValueWithMime(value: any, mime: string): string {\n if (isJsonLike(mime)) {\n return JSON.stringify(value);\n } else {\n console.warn(`Parameter serialization as ${mime} is not supported`);\n return '';\n }\n}\nexport function serializeParameterValue(parameter: OpenAPIParameter & {\n serializationMime?: string;\n}, value: any): string {\n const {\n name,\n style,\n explode = false,\n serializationMime\n } = parameter;\n\n if (serializationMime) {\n switch (parameter.in) {\n case 'path':\n case 'header':\n return serializeParameterValueWithMime(value, serializationMime);\n\n case 'cookie':\n case 'query':\n return `${name}=${serializeParameterValueWithMime(value, serializationMime)}`;\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n }\n\n if (!style) {\n console.warn(`Missing style attribute or content for parameter ${name}`);\n return '';\n }\n\n switch (parameter.in) {\n case 'path':\n return serializePathParameter(name, style, explode, value);\n\n case 'query':\n return serializeQueryParameter(name, style, explode, value);\n\n case 'header':\n return serializeHeaderParameter(style, explode, value);\n\n case 'cookie':\n return serializeCookieParameter(name, style, explode, value);\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n}\nexport function langFromMime(contentType: string): string {\n if (contentType.search(/xml/i) !== -1) {\n return 'xml';\n }\n\n return 'clike';\n}\nexport function isNamedDefinition(pointer?: string): boolean {\n return /^#\\/components\\/schemas\\/[^\\/]+$/.test(pointer || '');\n}\n\nfunction humanizeMultipleOfConstraint(multipleOf: number | undefined): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n\n const strigifiedMultipleOf = multipleOf.toString(10);\n\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n}\n\nfunction humanizeRangeConstraint(description: string, min: number | undefined, max: number | undefined): string | undefined {\n let stringRange;\n\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n\n return stringRange;\n}\n\nexport function humanizeConstraints(schema: OpenAPISchema): string[] {\n const res: string[] = [];\n const stringRange = humanizeRangeConstraint('characters', schema.minLength, schema.maxLength);\n\n if (stringRange !== undefined) {\n res.push(stringRange);\n }\n\n const arrayRange = humanizeRangeConstraint('items', schema.minItems, schema.maxItems);\n\n if (arrayRange !== undefined) {\n res.push(arrayRange);\n }\n\n const multipleOfConstraint = humanizeMultipleOfConstraint(schema.multipleOf);\n\n if (multipleOfConstraint !== undefined) {\n res.push(multipleOfConstraint);\n }\n\n let numberRange;\n\n if (schema.minimum !== undefined && schema.maximum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '( ' : '[ ';\n numberRange += schema.minimum;\n numberRange += ' .. ';\n numberRange += schema.maximum;\n numberRange += schema.exclusiveMaximum ? ' )' : ' ]';\n } else if (schema.maximum !== undefined) {\n numberRange = schema.exclusiveMaximum ? '< ' : '<= ';\n numberRange += schema.maximum;\n } else if (schema.minimum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '> ' : '>= ';\n numberRange += schema.minimum;\n }\n\n if (numberRange !== undefined) {\n res.push(numberRange);\n }\n\n return res;\n}\nexport function sortByRequired(fields: FieldModel[], order: string[] = []) {\n const unrequiredFields: FieldModel[] = [];\n const orderedFields: FieldModel[] = [];\n const unorderedFields: FieldModel[] = [];\n fields.forEach(field => {\n if (field.required) {\n order.includes(field.name) ? orderedFields.push(field) : unorderedFields.push(field);\n } else {\n unrequiredFields.push(field);\n }\n });\n orderedFields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n return [...orderedFields, ...unorderedFields, ...unrequiredFields];\n}\nexport function sortByField(fields: FieldModel[], param: keyof Pick) {\n return [...fields].sort((a, b) => {\n return a[param].localeCompare(b[param]);\n });\n}\nexport function mergeParams(parser: OpenAPIParser, pathParams: Array> = [], operationParams: Array> = []): Array> {\n const operationParamNames = {};\n operationParams.forEach(param => {\n param = parser.shalowDeref(param);\n operationParamNames[param.name + '_' + param.in] = true;\n }); // filter out path params overridden by operation ones with the same name\n\n pathParams = pathParams.filter(param => {\n param = parser.shalowDeref(param);\n return !operationParamNames[param.name + '_' + param.in];\n });\n return pathParams.concat(operationParams);\n}\nexport function mergeSimilarMediaTypes(types: Dict): Dict {\n const mergedTypes = {};\n Object.keys(types).forEach(name => {\n const mime = types[name]; // ignore content type parameters (e.g. charset) and merge\n\n const normalizedMimeName = name.split(';')[0].trim();\n\n if (!mergedTypes[normalizedMimeName]) {\n mergedTypes[normalizedMimeName] = mime;\n return;\n }\n\n mergedTypes[normalizedMimeName] = { ...mergedTypes[normalizedMimeName],\n ...mime\n };\n });\n return mergedTypes;\n}\nexport function expandDefaultServerVariables(url: string, variables: object = {}) {\n return url.replace(/(?:{)(\\w+)(?:})/g, (match, name) => variables[name] && variables[name].default || match);\n}\nexport function normalizeServers(specUrl: string | undefined, servers: OpenAPIServer[]): OpenAPIServer[] {\n const getHref = () => {\n if (!IS_BROWSER) {\n return '';\n }\n\n const href = window.location.href;\n return href.endsWith('.html') ? dirname(href) : href;\n };\n\n const baseUrl = specUrl === undefined ? removeQueryString(getHref()) : dirname(specUrl);\n\n if (servers.length === 0) {\n // Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object\n servers = [{\n url: '/'\n }];\n }\n\n function normalizeUrl(url: string): string {\n return resolveUrl(baseUrl, url);\n }\n\n return servers.map(server => {\n return { ...server,\n url: normalizeUrl(server.url),\n description: server.description || ''\n };\n });\n}\nexport const SECURITY_DEFINITIONS_COMPONENT_NAME = 'security-definitions';\nexport const SECURITY_DEFINITIONS_JSX_NAME = 'SecurityDefinitions';\nexport const SCHEMA_DEFINITION_JSX_NAME = 'SchemaDefinition';\nexport let SECURITY_SCHEMES_SECTION_PREFIX = 'section/Authentication/';\nexport function setSecuritySchemePrefix(prefix: string) {\n SECURITY_SCHEMES_SECTION_PREFIX = prefix;\n}\nexport const shortenHTTPVerb = verb => ({\n delete: 'del',\n options: 'opts'\n})[verb] || verb;\nexport function isRedocExtension(key: string): boolean {\n const redocExtensions = {\n 'x-circular-ref': true,\n 'x-code-samples': true,\n 'x-displayName': true,\n 'x-examples': true,\n 'x-ignoredHeaderParameters': true,\n 'x-logo': true,\n 'x-nullable': true,\n 'x-servers': true,\n 'x-tagGroups': true,\n 'x-traitTag': true,\n 'x-additionalPropertiesName': true\n };\n return key in redocExtensions;\n}\nexport function extractExtensions(obj: object, showExtensions: string[] | true): Dict {\n return Object.keys(obj).filter(key => {\n if (showExtensions === true) {\n return key.startsWith('x-') && !isRedocExtension(key);\n }\n\n return key.startsWith('x-') && showExtensions.indexOf(key) > -1;\n }).reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n}\nexport function pluralizeType(displayType: string): string {\n return displayType.split(' or ').map(type => type.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/, '$1s$2')).join(' or ');\n}","import * as Prism from 'prismjs';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-c.js';\nimport 'prismjs/components/prism-clike.js';\nimport 'prismjs/components/prism-coffeescript.js';\nimport 'prismjs/components/prism-cpp.js';\nimport 'prismjs/components/prism-csharp.js';\nimport 'prismjs/components/prism-go.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/components/prism-java.js';\nimport 'prismjs/components/prism-lua.js';\nimport 'prismjs/components/prism-markup-templating.js'; // dep of php\n\nimport 'prismjs/components/prism-markup.js'; // xml\n\nimport 'prismjs/components/prism-objectivec.js';\nimport 'prismjs/components/prism-perl.js';\nimport 'prismjs/components/prism-php.js';\nimport 'prismjs/components/prism-python.js';\nimport 'prismjs/components/prism-ruby.js';\nimport 'prismjs/components/prism-scala.js';\nimport 'prismjs/components/prism-sql.js';\nimport 'prismjs/components/prism-swift.js';\nconst DEFAULT_LANG = 'clike';\nPrism.languages.insertBefore('javascript', 'string', ({\n 'property string': {\n pattern: /([{,]\\s*)\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,\n lookbehind: true\n }\n} as any), (undefined as any));\nPrism.languages.insertBefore('javascript', 'punctuation', {\n property: {\n pattern: /([{,]\\s*)[a-z]\\w*(?=\\s*:)/i,\n lookbehind: true\n }\n}, (undefined as any));\n/**\n * map language names to Prism.js names\n */\n\nexport function mapLang(lang: string): string {\n return {\n json: 'js',\n 'c++': 'cpp',\n 'c#': 'csharp',\n 'objective-c': 'objectivec',\n shell: 'bash',\n viml: 'vim'\n }[lang] || DEFAULT_LANG;\n}\n/**\n * Highlight source code string using Prism.js\n * @param source source code to highlight\n * @param lang highlight language\n * @return highlighted source code as **html string**\n */\n\nexport function highlight(source: string, lang: string = DEFAULT_LANG): string {\n lang = lang.toLowerCase();\n let grammar = Prism.languages[lang];\n\n if (!grammar) {\n grammar = Prism.languages[mapLang(lang)];\n }\n\n return Prism.highlight(source, grammar, lang);\n}","function throttle(func, wait) {\n let context;\n let args;\n let result;\n let timeout: any = null;\n let previous = 0;\n\n const later = () => {\n previous = new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n return function () {\n const now = new Date().getTime();\n const remaining = wait - (now - previous);\n context = this; // eslint-disable-next-line prefer-rest-params\n\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nexport function Throttle(delay: number) {\n return (_, _2, desc: PropertyDescriptor) => {\n desc.value = throttle(desc.value, delay);\n };\n}","export function debugTime(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.time(label);\n }\n}\nexport function debugTimeEnd(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.timeEnd(label);\n }\n}","// source: https://github.com/andreypopp/memoize-decorator\nconst SENTINEL = {};\nexport function memoize(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (typeof descriptor.value === 'function') {\n return ((_memoizeMethod(target, name, descriptor) as any) as TypedPropertyDescriptor);\n } else if (typeof descriptor.get === 'function') {\n return (_memoizeGetter(target, name, descriptor) as TypedPropertyDescriptor);\n } else {\n throw new Error('@memoize decorator can be applied to methods or getters, got ' + String(descriptor.value) + ' instead');\n }\n}\n\nfunction _memoizeGetter(target: any, name: string, descriptor: PropertyDescriptor) {\n const memoizedName = `_memoized_${name}`;\n const get = descriptor.get!;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n get() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = get.call(this);\n }\n\n return this[memoizedName];\n }\n\n };\n}\n\nfunction _memoizeMethod(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (!descriptor.value || (descriptor.value as any).length > 0) {\n throw new Error('@memoize decorator can only be applied to methods of zero arguments');\n }\n\n const memoizedName = `_memoized_${name}`;\n const value = descriptor.value;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n value() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = (value as any).call(this);\n }\n\n return (this[memoizedName] as any);\n }\n\n };\n}","export * from './JsonPointer';\nexport * from './openapi';\nexport * from './helpers';\nexport * from './highlight';\nexport * from './loadAndBundleSpec';\nexport * from './dom';\nexport * from './decorators';\nexport * from './debug';\nexport * from './memoize';","import { bind, debounce } from 'decko';\nimport { EventEmitter } from 'eventemitter3';\nimport { IS_BROWSER } from '../utils/';\nconst EVENT = 'hashchange';\nexport class HistoryService {\n private _emiter;\n\n constructor() {\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n get currentId(): string {\n return IS_BROWSER ? decodeURIComponent(window.location.hash.substring(1)) : '';\n }\n\n linkForId(id: string) {\n if (!id) {\n return '';\n }\n\n return '#' + id;\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n emit = () => {\n this._emiter.emit(EVENT, this.currentId);\n };\n\n bind() {\n if (IS_BROWSER) {\n window.addEventListener('hashchange', this.emit, false);\n }\n }\n\n dispose() {\n if (IS_BROWSER) {\n window.removeEventListener('hashchange', this.emit);\n }\n }\n\n @bind\n @debounce\n replace(id: string | null, rewriteHistory: boolean = false) {\n if (!IS_BROWSER) {\n return;\n }\n\n if (id == null || id === this.currentId) {\n return;\n }\n\n if (rewriteHistory) {\n window.history.replaceState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n return;\n }\n\n window.history.pushState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n this.emit();\n }\n\n}\nexport const history = new HistoryService();\n\nif (module.hot) {\n module.hot.dispose(() => {\n history.dispose();\n });\n}","import * as Mark from 'mark.js';\nexport class MarkerService {\n map: Map = new Map();\n private prevTerm: string = '';\n\n add(el: HTMLElement) {\n this.map.set(el, new Mark(el));\n }\n\n delete(el: Element) {\n this.map.delete(el);\n }\n\n addOnly(elements: Element[]) {\n this.map.forEach((inst, elem) => {\n if (elements.indexOf(elem) === -1) {\n inst.unmark();\n this.map.delete(elem);\n }\n });\n\n for (const el of elements) {\n if (!this.map.has(el)) {\n this.map.set(el, new Mark((el as HTMLElement)));\n }\n }\n }\n\n clearAll() {\n this.unmark();\n this.map.clear();\n }\n\n mark(term?: string) {\n if (!term && !this.prevTerm) {\n return;\n }\n\n this.map.forEach(val => {\n val.unmark();\n val.mark(term || this.prevTerm);\n });\n this.prevTerm = term || this.prevTerm;\n }\n\n unmark() {\n this.map.forEach(val => val.unmark());\n this.prevTerm = '';\n }\n\n}","import * as marked from 'marked';\nimport { highlight, safeSlugify, unescapeHTMLChars } from '../utils';\nimport { AppStore } from './AppStore';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst renderer = new marked.Renderer();\nmarked.setOptions({\n renderer,\n highlight: (str, lang) => {\n return highlight(str, lang);\n }\n});\nexport const LEGACY_REGEXP = '^ {0,3}\\\\s*$'; // prettier-ignore\n\nexport const MDX_COMPONENT_REGEXP = '(?:^ {0,3}<({component})([\\\\s\\\\S]*?)>([\\\\s\\\\S]*?)' // with children\n+ '|^ {0,3}<({component})([\\\\s\\\\S]*?)(?:/>|\\\\n{2,}))'; // self-closing\n\nexport const COMPONENT_REGEXP = '(?:' + LEGACY_REGEXP + '|' + MDX_COMPONENT_REGEXP + ')';\nexport interface MDXComponentMeta {\n component: React.ComponentType;\n propsSelector: (store?: AppStore) => any;\n props?: object;\n}\nexport interface MarkdownHeading {\n id: string;\n name: string;\n level: number;\n items?: MarkdownHeading[];\n description?: string;\n}\nexport function buildComponentComment(name: string) {\n return ``;\n}\nexport class MarkdownRenderer {\n static containsComponent(rawText: string, componentName: string) {\n const compRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, componentName), 'gmi');\n return compRegexp.test(rawText);\n }\n\n static getTextBeforeHading(md: string, heading: string): string {\n const headingLinePos = md.search(new RegExp(`^##?\\\\s+${heading}`, 'm'));\n\n if (headingLinePos > -1) {\n return md.substring(0, headingLinePos);\n }\n\n return md;\n }\n\n headings: MarkdownHeading[] = [];\n currentTopHeading: MarkdownHeading;\n private headingEnhanceRenderer: marked.Renderer;\n private originalHeadingRule: typeof marked.Renderer.prototype.heading;\n\n constructor(public options?: RedocNormalizedOptions) {\n this.headingEnhanceRenderer = new marked.Renderer();\n this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(this.headingEnhanceRenderer);\n this.headingEnhanceRenderer.heading = this.headingRule;\n }\n\n saveHeading(name: string, level: number, container: MarkdownHeading[] = this.headings, parentId?: string): MarkdownHeading {\n name = unescapeHTMLChars(name);\n const item = {\n id: parentId ? `${parentId}/${safeSlugify(name)}` : `section/${safeSlugify(name)}`,\n name,\n level,\n items: []\n };\n container.push(item);\n return item;\n }\n\n flattenHeadings(container?: MarkdownHeading[]): MarkdownHeading[] {\n if (container === undefined) {\n return [];\n }\n\n const res: MarkdownHeading[] = [];\n\n for (const heading of container) {\n res.push(heading);\n res.push(...this.flattenHeadings(heading.items));\n }\n\n return res;\n }\n\n attachHeadingsDescriptions(rawText: string) {\n const buildRegexp = (heading: MarkdownHeading) => {\n return new RegExp(`##?\\\\s+${heading.name.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')}`);\n };\n\n const flatHeadings = this.flattenHeadings(this.headings);\n\n if (flatHeadings.length < 1) {\n return;\n }\n\n let prevHeading = flatHeadings[0];\n let prevRegexp = buildRegexp(prevHeading);\n let prevPos = rawText.search(prevRegexp);\n\n for (let i = 1; i < flatHeadings.length; i++) {\n const heading = flatHeadings[i];\n const regexp = buildRegexp(heading);\n const currentPos = rawText.substr(prevPos + 1).search(regexp) + prevPos + 1;\n prevHeading.description = rawText.substring(prevPos, currentPos).replace(prevRegexp, '').trim();\n prevHeading = heading;\n prevRegexp = regexp;\n prevPos = currentPos;\n }\n\n prevHeading.description = rawText.substring(prevPos).replace(prevRegexp, '').trim();\n }\n\n headingRule = (text: string, level: 1 | 2 | 3 | 4 | 5 | 6, raw: string, slugger: marked.Slugger) => {\n if (level === 1) {\n this.currentTopHeading = this.saveHeading(text, level);\n } else if (level === 2) {\n this.saveHeading(text, level, this.currentTopHeading && this.currentTopHeading.items, this.currentTopHeading && this.currentTopHeading.id);\n }\n\n return this.originalHeadingRule(text, level, raw, slugger);\n };\n\n renderMd(rawText: string, extractHeadings: boolean = false): string {\n const opts = extractHeadings ? {\n renderer: this.headingEnhanceRenderer\n } : undefined;\n const res = marked(rawText.toString(), opts);\n return res;\n }\n\n extractHeadings(rawText: string): MarkdownHeading[] {\n this.renderMd(rawText, true);\n this.attachHeadingsDescriptions(rawText);\n const res = this.headings;\n this.headings = [];\n return res;\n } // regexp-based 👎: remark is slow and too big so for now using marked + regexps soup\n\n\n renderMdWithComponents(rawText: string): Array {\n const components = this.options && this.options.allowedMdComponents;\n\n if (!components || Object.keys(components).length === 0) {\n return [this.renderMd(rawText)];\n }\n\n const names = Object.keys(components).join('|');\n const componentsRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, names), 'mig');\n const htmlParts: string[] = [];\n const componentDefs: MDXComponentMeta[] = [];\n let match = componentsRegexp.exec(rawText);\n let lasxtIdx = 0;\n\n while (match) {\n htmlParts.push(rawText.substring(lasxtIdx, match.index));\n lasxtIdx = componentsRegexp.lastIndex;\n const compName = match[1] || match[2] || match[5];\n const componentMeta = components[compName];\n const props = match[3] || match[6];\n const children = match[4];\n\n if (componentMeta) {\n componentDefs.push({\n component: componentMeta.component,\n propsSelector: componentMeta.propsSelector,\n props: { ...parseProps(props),\n ...componentMeta.props,\n children\n }\n });\n }\n\n match = componentsRegexp.exec(rawText);\n }\n\n htmlParts.push(rawText.substring(lasxtIdx));\n const res: any[] = [];\n\n for (let i = 0; i < htmlParts.length; i++) {\n const htmlPart = htmlParts[i];\n\n if (htmlPart) {\n res.push(this.renderMd(htmlPart));\n }\n\n if (componentDefs[i]) {\n res.push(componentDefs[i]);\n }\n }\n\n return res;\n }\n\n}\n\nfunction parseProps(props: string): object {\n if (!props) {\n return {};\n }\n\n const regex = /([\\w-]+)\\s*=\\s*(?:{([^}]+?)}|\"([^\"]+?)\")/gim;\n const parsed = {};\n let match; // tslint:disable-next-line\n\n while ((match = regex.exec(props)) !== null) {\n if (match[3]) {\n // string prop match (in double quotes)\n parsed[match[1]] = match[3];\n } else if (match[2]) {\n // jsx prop match (in curly braces)\n let val;\n\n try {\n val = JSON.parse(match[2]);\n } catch (e) {\n /* noop */\n }\n\n parsed[match[1]] = val;\n }\n }\n\n return parsed;\n}","import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';\nimport { IS_BROWSER } from '../../utils/';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class ApiInfoModel implements OpenAPIInfo {\n title: string;\n version: string;\n description: string;\n termsOfService?: string;\n contact?: OpenAPIContact;\n license?: OpenAPILicense;\n downloadLink?: string;\n downloadFileName?: string;\n\n constructor(private parser: OpenAPIParser) {\n Object.assign(this, parser.spec.info);\n this.description = parser.spec.info.description || '';\n const firstHeadingLinePos = this.description.search(/^##?\\s+/m);\n\n if (firstHeadingLinePos > -1) {\n this.description = this.description.substring(0, firstHeadingLinePos);\n }\n\n this.downloadLink = this.getDownloadLink();\n this.downloadFileName = this.getDownloadFileName();\n }\n\n private getDownloadLink(): string | undefined {\n if (this.parser.specUrl) {\n return this.parser.specUrl;\n }\n\n if (IS_BROWSER && window.Blob && window.URL && window.URL.createObjectURL) {\n const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {\n type: 'application/json'\n });\n return window.URL.createObjectURL(blob);\n }\n }\n\n private getDownloadFileName(): string | undefined {\n if (!this.parser.specUrl) {\n return 'swagger.json';\n }\n\n return undefined;\n }\n\n}","import { OpenAPISecurityScheme, Referenced } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class SecuritySchemeModel {\n id: string;\n sectionId: string;\n type: OpenAPISecurityScheme['type'];\n description: string;\n apiKey?: {\n name: string;\n in: OpenAPISecurityScheme['in'];\n };\n http?: {\n scheme: string;\n bearerFormat?: string;\n };\n flows: OpenAPISecurityScheme['flows'];\n openId?: {\n connectUrl: string;\n };\n\n constructor(parser: OpenAPIParser, id: string, scheme: Referenced) {\n const info = parser.deref(scheme);\n this.id = id;\n this.sectionId = SECURITY_SCHEMES_SECTION_PREFIX + id;\n this.type = info.type;\n this.description = info.description || '';\n\n if (info.type === 'apiKey') {\n this.apiKey = {\n name: info.name!,\n in: info.in\n };\n }\n\n if (info.type === 'http') {\n this.http = {\n scheme: info.scheme!,\n bearerFormat: info.bearerFormat\n };\n }\n\n if (info.type === 'openIdConnect') {\n this.openId = {\n connectUrl: info.openIdConnectUrl!\n };\n }\n\n if (info.type === 'oauth2' && info.flows) {\n this.flows = info.flows;\n }\n }\n\n}\nexport class SecuritySchemesModel {\n schemes: SecuritySchemeModel[];\n\n constructor(parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = Object.keys(schemes).map(name => new SecuritySchemeModel(parser, name, schemes[name]));\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIRef, OpenAPISchema, OpenAPISpec, Referenced } from '../types';\nimport { appendToMdHeading, IS_BROWSER } from '../utils/';\nimport { JsonPointer } from '../utils/JsonPointer';\nimport { isNamedDefinition, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { buildComponentComment, MarkdownRenderer } from './MarkdownRenderer';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type MergedOpenAPISchema = OpenAPISchema & {\n parentRefs?: string[];\n};\n/**\n * Helper class to keep track of visited references to avoid\n * endless recursion because of circular refs\n */\n\nclass RefCounter {\n _counter = {};\n\n reset(): void {\n this._counter = {};\n }\n\n visit(ref: string): void {\n this._counter[ref] = this._counter[ref] ? this._counter[ref] + 1 : 1;\n }\n\n exit(ref: string): void {\n this._counter[ref] = this._counter[ref] && this._counter[ref] - 1;\n }\n\n visited(ref: string): boolean {\n return !!this._counter[ref];\n }\n\n}\n/**\n * Loads and keeps spec. Provides raw spec operations\n */\n\n\nexport class OpenAPIParser {\n specUrl?: string;\n spec: OpenAPISpec;\n mergeRefs: Set;\n private _refCounter: RefCounter = new RefCounter();\n\n constructor(spec: OpenAPISpec, specUrl?: string, private options: RedocNormalizedOptions = new RedocNormalizedOptions({})) {\n this.validate(spec);\n this.preprocess(spec);\n this.spec = spec;\n this.mergeRefs = new Set();\n const href = IS_BROWSER ? window.location.href : '';\n\n if (typeof specUrl === 'string') {\n this.specUrl = urlResolve(href, specUrl);\n }\n }\n\n validate(spec: any) {\n if (spec.openapi === undefined) {\n throw new Error('Document must be valid OpenAPI 3.0.0 definition');\n }\n }\n\n preprocess(spec: OpenAPISpec) {\n if (!this.options.noAutoAuth && spec.info && spec.components && spec.components.securitySchemes) {\n // Automatically inject Authentication section with SecurityDefinitions component\n const description = spec.info.description || '';\n\n if (!MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_COMPONENT_NAME) && !MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_JSX_NAME)) {\n const comment = buildComponentComment(SECURITY_DEFINITIONS_COMPONENT_NAME);\n spec.info.description = appendToMdHeading(description, 'Authentication', comment);\n }\n }\n }\n /**\n * get spec part by JsonPointer ($ref)\n */\n\n\n byRef = (ref: string): T | undefined => {\n let res;\n\n if (!this.spec) {\n return;\n }\n\n if (ref.charAt(0) !== '#') {\n ref = '#' + ref;\n }\n\n ref = decodeURIComponent(ref);\n\n try {\n res = JsonPointer.get(this.spec, ref);\n } catch (e) {// do nothing\n }\n\n return res || {};\n };\n /**\n * checks if the object is OpenAPI reference (contains $ref property)\n */\n\n isRef(obj: any): obj is OpenAPIRef {\n if (!obj) {\n return false;\n }\n\n return obj.$ref !== undefined && obj.$ref !== null;\n }\n /**\n * resets visited endpoints. should be run after\n */\n\n\n resetVisited() {\n if (process.env.NODE_ENV !== 'production') {\n // check in dev mode\n for (const k in this._refCounter._counter) {\n if (this._refCounter._counter[k] > 0) {\n console.warn('Not exited reference: ' + k);\n }\n }\n }\n\n this._refCounter = new RefCounter();\n }\n\n exitRef(ref: Referenced) {\n if (!this.isRef(ref)) {\n return;\n }\n\n this._refCounter.exit(ref.$ref);\n }\n /**\n * Resolve given reference object or return as is if it is not a reference\n * @param obj object to dereference\n * @param forceCircular whether to dereference even if it is circular ref\n */\n\n\n deref(obj: OpenAPIRef | T, forceCircular = false): T {\n if (this.isRef(obj)) {\n const resolved = this.byRef(obj.$ref)!;\n\n const visited = this._refCounter.visited(obj.$ref);\n\n this._refCounter.visit(obj.$ref);\n\n if (visited && !forceCircular) {\n // circular reference detected\n // tslint:disable-next-line\n return Object.assign({}, resolved, {\n 'x-circular-ref': true\n });\n } // deref again in case one more $ref is here\n\n\n if (this.isRef(resolved)) {\n const res = this.deref(resolved);\n this.exitRef(resolved);\n return res;\n }\n\n return resolved;\n }\n\n return obj;\n }\n\n shalowDeref(obj: OpenAPIRef | T): T {\n if (this.isRef(obj)) {\n return this.byRef(obj.$ref)!;\n }\n\n return obj;\n }\n /**\n * Merge allOf constraints.\n * @param schema schema with allOF\n * @param $ref pointer of the schema\n * @param forceCircular whether to dereference children even if it is a circular ref\n */\n\n\n mergeAllOf(schema: OpenAPISchema, $ref?: string, forceCircular: boolean = false, used$Refs = new Set()): MergedOpenAPISchema {\n if ($ref) {\n used$Refs.add($ref);\n }\n\n schema = this.hoistOneOfs(schema);\n\n if (schema.allOf === undefined) {\n return schema;\n }\n\n let receiver: MergedOpenAPISchema = { ...schema,\n allOf: undefined,\n parentRefs: [],\n title: schema.title || (isNamedDefinition($ref) ? JsonPointer.baseName($ref) : undefined)\n }; // avoid mutating inner objects\n\n if (receiver.properties !== undefined && typeof receiver.properties === 'object') {\n receiver.properties = { ...receiver.properties\n };\n }\n\n if (receiver.items !== undefined && typeof receiver.items === 'object') {\n receiver.items = { ...receiver.items\n };\n }\n\n const allOfSchemas = (schema.allOf.map(subSchema => {\n if (subSchema && subSchema.$ref && used$Refs.has(subSchema.$ref)) {\n return undefined;\n }\n\n const resolved = this.deref(subSchema, forceCircular);\n const subRef = subSchema.$ref || undefined;\n const subMerged = this.mergeAllOf(resolved, subRef, forceCircular, used$Refs);\n receiver.parentRefs!.push(...(subMerged.parentRefs || []));\n return {\n $ref: subRef,\n schema: subMerged\n };\n }).filter(child => child !== undefined) as Array<{\n $ref: string | undefined;\n schema: MergedOpenAPISchema;\n }>);\n\n for (const {\n $ref: subSchemaRef,\n schema: subSchema\n } of allOfSchemas) {\n if (receiver.type !== subSchema.type && receiver.type !== undefined && subSchema.type !== undefined) {\n throw new Error(`Incompatible types in allOf at \"${$ref}\"`);\n }\n\n if (subSchema.type !== undefined) {\n receiver.type = subSchema.type;\n }\n\n if (subSchema.properties !== undefined) {\n receiver.properties = receiver.properties || {};\n\n for (const prop in subSchema.properties) {\n if (!receiver.properties[prop]) {\n receiver.properties[prop] = subSchema.properties[prop];\n } else {\n // merge inner properties\n receiver.properties[prop] = this.mergeAllOf({\n allOf: [receiver.properties[prop], subSchema.properties[prop]]\n }, $ref + '/properties/' + prop);\n }\n }\n }\n\n if (subSchema.items !== undefined) {\n receiver.items = receiver.items || {}; // merge inner properties\n\n receiver.items = this.mergeAllOf({\n allOf: [receiver.items, subSchema.items]\n }, $ref + '/items');\n }\n\n if (subSchema.required !== undefined) {\n receiver.required = (receiver.required || []).concat(subSchema.required);\n } // merge rest of constraints\n // TODO: do more intelligent merge\n\n\n receiver = { ...subSchema,\n ...receiver\n };\n\n if (subSchemaRef) {\n receiver.parentRefs!.push(subSchemaRef);\n\n if (receiver.title === undefined && isNamedDefinition(subSchemaRef)) {// this is not so correct behaviour. commented out for now\n // ref: https://github.com/Redocly/redoc/issues/601\n // receiver.title = JsonPointer.baseName(subSchemaRef);\n }\n }\n }\n\n return receiver;\n }\n /**\n * Find all derived definitions among #/components/schemas from any of $refs\n * returns map of definition pointer to definition name\n * @param $refs array of references to find derived from\n */\n\n\n findDerived($refs: string[]): Dict {\n const res: Dict = {};\n const schemas = this.spec.components && this.spec.components.schemas || {};\n\n for (const defName in schemas) {\n const def = this.deref(schemas[defName]);\n\n if (def.allOf !== undefined && def.allOf.find(obj => obj.$ref !== undefined && $refs.indexOf(obj.$ref) > -1)) {\n res['#/components/schemas/' + defName] = [def['x-discriminator-value'] || defName];\n }\n }\n\n return res;\n }\n\n exitParents(shema: MergedOpenAPISchema) {\n for (const parent$ref of shema.parentRefs || []) {\n this.exitRef({\n $ref: parent$ref\n });\n }\n }\n\n private hoistOneOfs(schema: OpenAPISchema) {\n if (schema.allOf === undefined) {\n return schema;\n }\n\n const allOf = schema.allOf;\n\n for (let i = 0; i < allOf.length; i++) {\n const sub = allOf[i];\n\n if (Array.isArray(sub.oneOf)) {\n const beforeAllOf = allOf.slice(0, i);\n const afterAllOf = allOf.slice(i + 1);\n return {\n oneOf: sub.oneOf.map(part => {\n const merged = this.mergeAllOf({\n allOf: [...beforeAllOf, part, ...afterAllOf]\n }); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n this.exitParents(merged);\n return merged;\n })\n };\n }\n }\n\n return schema;\n }\n\n}","import { OpenAPIExternalDocumentation, OpenAPISpec } from '../types';\nimport { ContentItemModel, MenuBuilder } from './MenuBuilder';\nimport { ApiInfoModel } from './models/ApiInfo';\nimport { SecuritySchemesModel } from './models/SecuritySchemes';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\n/**\n * Store that contains all the specification related information in the form of tree\n */\n\nexport class SpecStore {\n parser: OpenAPIParser;\n info: ApiInfoModel;\n externalDocs?: OpenAPIExternalDocumentation;\n contentItems: ContentItemModel[];\n securitySchemes: SecuritySchemesModel;\n\n constructor(spec: OpenAPISpec, specUrl: string | undefined, private options: RedocNormalizedOptions) {\n this.parser = new OpenAPIParser(spec, specUrl, options);\n this.info = new ApiInfoModel(this.parser);\n this.externalDocs = this.parser.spec.externalDocs;\n this.contentItems = MenuBuilder.buildStructure(this.parser, this.options);\n this.securitySchemes = new SecuritySchemesModel(this.parser);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPITag } from '../../types';\nimport { safeSlugify } from '../../utils';\nimport { MarkdownHeading, MarkdownRenderer } from '../MarkdownRenderer';\nimport { ContentItemModel } from '../MenuBuilder';\nimport { IMenuItem, MenuItemGroupType } from '../MenuStore';\n/**\n * Operations Group model ready to be used by components\n */\n\nexport class GroupModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type: MenuItemGroupType;\n items: ContentItemModel[] = [];\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number; //#endregion\n\n constructor(type: MenuItemGroupType, tagOrGroup: OpenAPITag | MarkdownHeading, parent?: GroupModel) {\n // markdown headings already have ids calculated as they are needed for heading anchors\n this.id = (tagOrGroup as MarkdownHeading).id || type + '/' + safeSlugify(tagOrGroup.name);\n this.type = type;\n this.name = tagOrGroup['x-displayName'] || tagOrGroup.name;\n this.level = (tagOrGroup as MarkdownHeading).level || 1; // remove sections from markdown, same as in ApiInfo\n\n this.description = tagOrGroup.description || '';\n const items = (tagOrGroup as MarkdownHeading).items;\n\n if (items && items.length) {\n this.description = MarkdownRenderer.getTextBeforeHading(this.description, items[0].name);\n }\n\n this.parent = parent;\n this.externalDocs = (tagOrGroup as OpenAPITag).externalDocs; // groups are active (expanded) by default\n\n if (this.type === 'group') {\n this.expanded = true;\n }\n }\n\n @action\n activate() {\n this.active = true;\n }\n\n @action\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n\n this.expanded = true;\n }\n\n @action\n collapse() {\n // disallow collapsing groups\n if (this.type === 'group') {\n return;\n }\n\n this.expanded = false;\n }\n\n @action\n deactivate() {\n this.active = false;\n }\n\n}","import { OpenAPISecurityRequirement, OpenAPISecurityScheme } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport interface SecurityScheme extends OpenAPISecurityScheme {\n id: string;\n sectionId: string;\n scopes: string[];\n}\nexport class SecurityRequirementModel {\n schemes: SecurityScheme[];\n\n constructor(requirement: OpenAPISecurityRequirement, parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = (Object.keys(requirement || {}).map(id => {\n const scheme = parser.deref(schemes[id]);\n const scopes = requirement[id] || [];\n\n if (!scheme) {\n console.warn(`Non existing security scheme referenced: ${id}. Skipping`);\n return undefined;\n }\n\n return { ...scheme,\n id,\n sectionId: SECURITY_SCHEMES_SECTION_PREFIX + id,\n scopes\n };\n }).filter(scheme => scheme !== undefined) as SecurityScheme[]);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPISchema, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MergedOpenAPISchema } from '../';\nimport { detectType, extractExtensions, humanizeConstraints, isNamedDefinition, isPrimitiveType, JsonPointer, pluralizeType, sortByField, sortByRequired } from '../../utils/';\nimport { l } from '../Labels'; // TODO: refactor this model, maybe use getters instead of copying all the values\n\nexport class SchemaModel {\n pointer: string;\n type: string;\n displayType: string;\n typePrefix: string = '';\n title: string;\n description: string;\n externalDocs?: OpenAPIExternalDocumentation;\n isPrimitive: boolean;\n isCircular: boolean = false;\n format?: string;\n displayFormat?: string;\n nullable: boolean;\n deprecated: boolean;\n pattern?: string;\n example?: any;\n enum: any[];\n default?: any;\n readOnly: boolean;\n writeOnly: boolean;\n constraints: string[];\n fields?: FieldModel[];\n items?: SchemaModel;\n oneOf?: SchemaModel[];\n oneOfType: string;\n discriminatorProp: string;\n @observable\n activeOneOf: number = 0;\n rawSchema: OpenAPISchema;\n schema: MergedOpenAPISchema;\n extensions?: Dict;\n /**\n * @param isChild if schema discriminator Child\n * When true forces dereferencing in allOfs even if circular\n */\n\n constructor(parser: OpenAPIParser, schemaOrRef: Referenced, pointer: string, private options: RedocNormalizedOptions, isChild: boolean = false) {\n this.pointer = schemaOrRef.$ref || pointer || '';\n this.rawSchema = parser.deref(schemaOrRef);\n this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild);\n this.init(parser, isChild);\n parser.exitRef(schemaOrRef);\n parser.exitParents(this.schema);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(this.schema, options.showExtensions);\n }\n }\n /**\n * Set specified alternative schema as active\n * @param idx oneOf index\n */\n\n\n @action\n activateOneOf(idx: number) {\n this.activeOneOf = idx;\n }\n\n init(parser: OpenAPIParser, isChild: boolean) {\n const schema = this.schema;\n this.isCircular = schema['x-circular-ref'];\n this.title = schema.title || isNamedDefinition(this.pointer) && JsonPointer.baseName(this.pointer) || '';\n this.description = schema.description || '';\n this.type = schema.type || detectType(schema);\n this.format = schema.format;\n this.nullable = !!schema.nullable;\n this.enum = schema.enum || [];\n this.example = schema.example;\n this.deprecated = !!schema.deprecated;\n this.pattern = schema.pattern;\n this.externalDocs = schema.externalDocs;\n this.constraints = humanizeConstraints(schema);\n this.displayType = this.type;\n this.displayFormat = this.format;\n this.isPrimitive = isPrimitiveType(schema, this.type);\n this.default = schema.default;\n this.readOnly = !!schema.readOnly;\n this.writeOnly = !!schema.writeOnly;\n\n if (this.isCircular) {\n return;\n }\n\n if (!isChild && getDiscriminator(schema) !== undefined) {\n this.initDiscriminator(schema, parser);\n return;\n } else if (isChild && Array.isArray(schema.oneOf) && schema.oneOf.find(s => s.$ref === this.pointer)) {\n // we hit allOf of the schema with the parent discriminator\n delete schema.oneOf;\n }\n\n if (schema.oneOf !== undefined) {\n this.initOneOf(schema.oneOf, parser);\n this.oneOfType = 'One of';\n\n if (schema.anyOf !== undefined) {\n console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${this.pointer}`);\n }\n\n return;\n }\n\n if (schema.anyOf !== undefined) {\n this.initOneOf(schema.anyOf, parser);\n this.oneOfType = 'Any of';\n return;\n }\n\n if (this.type === 'object') {\n this.fields = buildFields(parser, schema, this.pointer, this.options);\n } else if (this.type === 'array' && schema.items) {\n this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options);\n this.displayType = pluralizeType(this.items.displayType);\n this.displayFormat = this.items.format;\n this.typePrefix = this.items.typePrefix + l('arrayOf');\n this.title = this.title || this.items.title;\n this.isPrimitive = this.items.isPrimitive;\n\n if (this.example === undefined && this.items.example !== undefined) {\n this.example = [this.items.example];\n }\n\n if (this.items.isPrimitive) {\n this.enum = this.items.enum;\n }\n }\n }\n\n private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser) {\n this.oneOf = oneOf!.map((variant, idx) => {\n const derefVariant = parser.deref(variant);\n const merged = parser.mergeAllOf(derefVariant, this.pointer + '/oneOf/' + idx); // try to infer title\n\n const title = isNamedDefinition(variant.$ref) && !merged.title ? JsonPointer.baseName(variant.$ref) : merged.title;\n const schema = new SchemaModel(parser, ( // merge base schema into each of oneOf's subschemas\n { // variant may already have allOf so merge it to not get overwritten\n ...merged,\n title,\n allOf: [{ ...this.schema,\n oneOf: undefined,\n anyOf: undefined\n }]\n } as OpenAPISchema), this.pointer + '/oneOf/' + idx, this.options);\n parser.exitRef(variant); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n parser.exitParents(merged);\n return schema;\n });\n this.displayType = this.oneOf.map(schema => {\n let name = schema.typePrefix + (schema.title ? `${schema.title} (${schema.displayType})` : schema.displayType);\n\n if (name.indexOf(' or ') > -1) {\n name = `(${name})`;\n }\n\n return name;\n }).join(' or ');\n }\n\n private initDiscriminator(schema: OpenAPISchema & {\n parentRefs?: string[];\n }, parser: OpenAPIParser) {\n const discriminator = getDiscriminator(schema)!;\n this.discriminatorProp = discriminator.propertyName;\n const implicitInversedMapping = parser.findDerived([...(schema.parentRefs || []), this.pointer]);\n\n if (schema.oneOf) {\n for (const variant of schema.oneOf) {\n if (variant.$ref === undefined) {\n continue;\n }\n\n const name = JsonPointer.baseName(variant.$ref);\n implicitInversedMapping[variant.$ref] = name;\n }\n }\n\n const mapping = discriminator.mapping || {};\n const explicitInversedMapping = {};\n\n for (const name in mapping) {\n const $ref = mapping[name];\n\n if (Array.isArray(explicitInversedMapping[$ref])) {\n explicitInversedMapping[$ref].push(name);\n } else {\n // overrides implicit mapping here\n explicitInversedMapping[$ref] = [name];\n }\n }\n\n const inversedMapping = { ...implicitInversedMapping,\n ...explicitInversedMapping\n };\n const refs: Array<{\n $ref;\n name;\n }> = [];\n\n for (const $ref of Object.keys(inversedMapping)) {\n const names = inversedMapping[$ref];\n\n if (Array.isArray(names)) {\n for (const name of names) {\n refs.push({\n $ref,\n name\n });\n }\n } else {\n refs.push({\n $ref,\n name: names\n });\n }\n }\n\n this.oneOf = refs.map(({\n $ref,\n name\n }) => {\n const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true);\n innerSchema.title = name;\n return innerSchema;\n });\n }\n\n}\n\nfunction buildFields(parser: OpenAPIParser, schema: OpenAPISchema, $ref: string, options: RedocNormalizedOptions): FieldModel[] {\n const props = schema.properties || {};\n const additionalProps = schema.additionalProperties;\n const defaults = schema.default || {};\n let fields = Object.keys(props || []).map(fieldName => {\n let field = props[fieldName];\n\n if (!field) {\n console.warn(`Field \"${fieldName}\" is invalid, skipping.\\n Field must be an object but got ${typeof field} at \"${$ref}\"`);\n field = {};\n }\n\n const required = schema.required === undefined ? false : schema.required.indexOf(fieldName) > -1;\n return new FieldModel(parser, {\n name: fieldName,\n required,\n schema: { ...field,\n default: field.default === undefined ? defaults[fieldName] : field.default\n }\n }, $ref + '/properties/' + fieldName, options);\n });\n\n if (options.sortPropsAlphabetically) {\n fields = sortByField(fields, 'name');\n }\n\n if (options.requiredPropsFirst) {\n // if not sort alphabetically sort in the order from required keyword\n fields = sortByRequired(fields, !options.sortPropsAlphabetically ? schema.required : undefined);\n }\n\n if (typeof additionalProps === 'object' || additionalProps === true) {\n fields.push(new FieldModel(parser, {\n name: (typeof additionalProps === 'object' ? additionalProps['x-additionalPropertiesName'] || 'property name' : 'property name').concat('*'),\n required: false,\n schema: additionalProps === true ? {} : additionalProps,\n kind: 'additionalProperties'\n }, $ref + '/additionalProperties', options));\n }\n\n return fields;\n}\n\nfunction getDiscriminator(schema: OpenAPISchema): OpenAPISchema['discriminator'] {\n return schema.discriminator || schema['x-discriminator'];\n}","import { action, observable } from 'mobx';\nimport { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle, Referenced } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { extractExtensions } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { SchemaModel } from './Schema';\n\nfunction getDefaultStyleValue(parameterLocation: OpenAPIParameterLocation): OpenAPIParameterStyle {\n switch (parameterLocation) {\n case 'header':\n return 'simple';\n\n case 'query':\n return 'form';\n\n case 'path':\n return 'simple';\n\n default:\n return 'form';\n }\n}\n/**\n * Field or Parameter model ready to be used by components\n */\n\n\nexport class FieldModel {\n @observable\n expanded: boolean | undefined;\n schema: SchemaModel;\n name: string;\n required: boolean;\n description: string;\n example?: string;\n deprecated: boolean;\n in?: OpenAPIParameterLocation;\n kind: string;\n extensions?: Dict;\n explode: boolean;\n style?: OpenAPIParameterStyle;\n serializationMime?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced & {\n name?: string;\n kind?: string;\n }, pointer: string, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.kind = infoOrRef.kind || 'field';\n this.name = infoOrRef.name || info.name;\n this.in = info.in;\n this.required = !!info.required;\n let fieldSchema = info.schema;\n let serializationMime = '';\n\n if (!fieldSchema && info.in && info.content) {\n serializationMime = Object.keys(info.content)[0];\n fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema;\n }\n\n this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options);\n this.description = info.description === undefined ? this.schema.description || '' : info.description;\n this.example = info.example || this.schema.example;\n\n if (serializationMime) {\n this.serializationMime = serializationMime;\n } else if (info.style) {\n this.style = info.style;\n } else if (this.in) {\n this.style = getDefaultStyleValue(this.in);\n }\n\n this.explode = !!info.explode;\n this.deprecated = info.deprecated === undefined ? !!this.schema.deprecated : info.deprecated;\n parser.exitRef(infoOrRef);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(info, options.showExtensions);\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIEncoding, OpenAPIExample, Referenced } from '../../types';\nimport { isFormUrlEncoded, isJsonLike, urlFormEncodePayload } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nconst externalExamplesCache: {\n [url: string]: Promise;\n} = {};\nexport class ExampleModel {\n value: any;\n summary?: string;\n description?: string;\n externalValueUrl?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, public mime: string, encoding?: {\n [field: string]: OpenAPIEncoding;\n }) {\n const example = parser.deref(infoOrRef);\n this.value = example.value;\n this.summary = example.summary;\n this.description = example.description;\n\n if (example.externalValue) {\n this.externalValueUrl = urlResolve(parser.specUrl || '', example.externalValue);\n }\n\n parser.exitRef(infoOrRef);\n\n if (isFormUrlEncoded(mime) && this.value && typeof this.value === 'object') {\n this.value = urlFormEncodePayload(this.value, encoding);\n }\n }\n\n getExternalValue(mimeType: string): Promise {\n if (!this.externalValueUrl) {\n return Promise.resolve(undefined);\n }\n\n if (externalExamplesCache[this.externalValueUrl]) {\n return externalExamplesCache[this.externalValueUrl];\n }\n\n externalExamplesCache[this.externalValueUrl] = fetch(this.externalValueUrl).then(res => {\n return res.text().then(txt => {\n if (!res.ok) {\n return Promise.reject(new Error(txt));\n }\n\n if (isJsonLike(mimeType)) {\n try {\n return JSON.parse(txt);\n } catch (e) {\n return txt;\n }\n } else {\n return txt;\n }\n });\n });\n return externalExamplesCache[this.externalValueUrl];\n }\n\n}","import * as Sampler from 'openapi-sampler';\nimport { OpenAPIMediaType } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nimport { isJsonLike, mapValues } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { ExampleModel } from './Example';\nexport class MediaTypeModel {\n examples?: {\n [name: string]: ExampleModel;\n };\n schema?: SchemaModel;\n name: string;\n isRequestType: boolean;\n onlyRequiredInSamples: boolean;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: RedocNormalizedOptions) {\n this.name = name;\n this.isRequestType = isRequestType;\n this.schema = info.schema && new SchemaModel(parser, info.schema, '', options);\n this.onlyRequiredInSamples = options.onlyRequiredInSamples;\n\n if (info.examples !== undefined) {\n this.examples = mapValues(info.examples, example => new ExampleModel(parser, example, name, info.encoding));\n } else if (info.example !== undefined) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: parser.shalowDeref(info.example)\n }, name, info.encoding)\n };\n } else if (isJsonLike(name)) {\n this.generateExample(parser, info);\n }\n }\n\n generateExample(parser: OpenAPIParser, info: OpenAPIMediaType) {\n const samplerOptions = {\n skipReadOnly: this.isRequestType,\n skipNonRequired: this.isRequestType && this.onlyRequiredInSamples,\n skipWriteOnly: !this.isRequestType\n };\n\n if (this.schema && this.schema.oneOf) {\n this.examples = {};\n\n for (const subSchema of this.schema.oneOf) {\n const sample = Sampler.sample(subSchema.rawSchema, samplerOptions, parser.spec);\n\n if (this.schema.discriminatorProp && typeof sample === 'object' && sample) {\n sample[this.schema.discriminatorProp] = subSchema.title;\n }\n\n this.examples[subSchema.title] = new ExampleModel(parser, {\n value: sample\n }, this.name, info.encoding);\n }\n } else if (this.schema) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: Sampler.sample(info.schema, samplerOptions, parser.spec)\n }, this.name, info.encoding)\n };\n }\n }\n\n}","import { action, computed, observable } from 'mobx';\nimport { OpenAPIMediaType } from '../../types';\nimport { MediaTypeModel } from './MediaType';\nimport { mergeSimilarMediaTypes } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\n/**\n * MediaContent model ready to be sued by React components\n * Contains multiple MediaTypes and keeps track of the currently active one\n */\n\nexport class MediaContentModel {\n mediaTypes: MediaTypeModel[];\n @observable\n activeMimeIdx = 0;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, info: Dict, public isRequestType: boolean, options: RedocNormalizedOptions) {\n if (options.unstable_ignoreMimeParameters) {\n info = mergeSimilarMediaTypes(info);\n }\n\n this.mediaTypes = Object.keys(info).map(name => {\n const mime = info[name]; // reset deref cache just in case something is left there\n\n parser.resetVisited();\n return new MediaTypeModel(parser, name, isRequestType, mime, options);\n });\n }\n /**\n * Set active media type by index\n * @param idx media type index\n */\n\n\n @action\n activate(idx: number) {\n this.activeMimeIdx = idx;\n }\n\n @computed\n get active() {\n return this.mediaTypes[this.activeMimeIdx];\n }\n\n get hasSample(): boolean {\n return this.mediaTypes.filter(mime => !!mime.examples).length > 0;\n }\n\n}","import { OpenAPIRequestBody, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { MediaContentModel } from './MediaContent';\nexport class RequestBodyModel {\n description: string;\n required: boolean;\n content?: MediaContentModel;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.description = info.description || '';\n this.required = !!info.required;\n parser.exitRef(infoOrRef);\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, true, options);\n }\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIResponse, Referenced } from '../../types';\nimport { getStatusCodeType } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nexport class ResponseModel {\n @observable\n expanded: boolean;\n content?: MediaContentModel;\n code: string;\n summary: string;\n description: string;\n type: string;\n headers: FieldModel[] = [];\n\n constructor(parser: OpenAPIParser, code: string, defaultAsError: boolean, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n this.expanded = options.expandResponses === 'all' || options.expandResponses[code];\n const info = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n this.code = code;\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, false, options);\n }\n\n if (info['x-summary'] !== undefined) {\n this.summary = info['x-summary'];\n this.description = info.description || '';\n } else {\n this.summary = info.description || '';\n this.description = '';\n }\n\n this.type = getStatusCodeType(code, defaultAsError);\n const headers = info.headers;\n\n if (headers !== undefined) {\n this.headers = Object.keys(headers).map(name => {\n const header = headers[name];\n return new FieldModel(parser, { ...header,\n name\n }, '', options);\n });\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { IMenuItem } from '../MenuStore';\nimport { GroupModel } from './Group.model';\nimport { SecurityRequirementModel } from './SecurityRequirement';\nimport { OpenAPIExternalDocumentation, OpenAPIPath, OpenAPIServer, OpenAPIXCodeSample } from '../../types';\nimport { extractExtensions, getOperationSummary, getStatusCodeType, isStatusCode, JsonPointer, memoize, mergeParams, normalizeServers, sortByField, sortByRequired } from '../../utils';\nimport { ContentItemModel, ExtendedOpenAPIOperation } from '../MenuBuilder';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nimport { RequestBodyModel } from './RequestBody';\nimport { ResponseModel } from './Response';\ninterface XPayloadSample {\n lang: 'payload';\n label: string;\n requestBodyContent: MediaContentModel;\n source: string;\n}\nexport function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample): sample is XPayloadSample {\n return sample.lang === 'payload' && (sample as any).requestBodyContent;\n}\n/**\n * Operation model ready to be used by components\n */\n\nexport class OperationModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('operation' as 'operation');\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n items: ContentItemModel[] = [];\n depth: number;\n @observable\n ready?: boolean = true;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false; //#endregion\n\n pointer: string;\n operationId?: string;\n httpVerb: string;\n deprecated: boolean;\n path: string;\n servers: OpenAPIServer[];\n security: SecurityRequirementModel[];\n extensions: Dict;\n\n constructor(private parser: OpenAPIParser, private operationSpec: ExtendedOpenAPIOperation, parent: GroupModel | undefined, private options: RedocNormalizedOptions) {\n this.pointer = JsonPointer.compile(['paths', operationSpec.pathName, operationSpec.httpVerb]);\n this.id = operationSpec.operationId !== undefined ? 'operation/' + operationSpec.operationId : parent !== undefined ? parent.id + this.pointer : this.pointer;\n this.name = getOperationSummary(operationSpec);\n this.description = operationSpec.description;\n this.parent = parent;\n this.externalDocs = operationSpec.externalDocs;\n this.deprecated = !!operationSpec.deprecated;\n this.httpVerb = operationSpec.httpVerb;\n this.deprecated = !!operationSpec.deprecated;\n this.operationId = operationSpec.operationId;\n this.path = operationSpec.pathName;\n const pathInfo = parser.byRef(JsonPointer.compile(['paths', operationSpec.pathName]));\n this.servers = normalizeServers(parser.specUrl, operationSpec.servers || pathInfo && pathInfo.servers || parser.spec.servers || []);\n this.security = (operationSpec.security || parser.spec.security || []).map(security => new SecurityRequirementModel(security, parser));\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(operationSpec, options.showExtensions);\n }\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n @memoize\n get requestBody() {\n return this.operationSpec.requestBody && new RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options);\n }\n\n @memoize\n get codeSamples() {\n let samples: Array = this.operationSpec['x-code-samples'] || [];\n const requestBodyContent = this.requestBody && this.requestBody.content;\n\n if (requestBodyContent && requestBodyContent.hasSample) {\n const insertInx = Math.min(samples.length, this.options.payloadSampleIdx);\n samples = [...samples.slice(0, insertInx), {\n lang: 'payload',\n label: 'Payload',\n source: '',\n requestBodyContent\n }, ...samples.slice(insertInx)];\n }\n\n return samples;\n }\n\n @memoize\n get parameters() {\n const _parameters = mergeParams(this.parser, this.operationSpec.pathParameters, this.operationSpec.parameters // TODO: fix pointer\n ).map(paramOrRef => new FieldModel(this.parser, paramOrRef, this.pointer, this.options));\n\n if (this.options.sortPropsAlphabetically) {\n return sortByField(_parameters, 'name');\n }\n\n if (this.options.requiredPropsFirst) {\n return sortByRequired(_parameters);\n }\n\n return _parameters;\n }\n\n @memoize\n get responses() {\n let hasSuccessResponses = false;\n return Object.keys(this.operationSpec.responses || []).filter(code => {\n if (code === 'default') {\n return true;\n }\n\n if (getStatusCodeType(code) === 'success') {\n hasSuccessResponses = true;\n }\n\n return isStatusCode(code);\n }) // filter out other props (e.g. x-props)\n .map(code => {\n return new ResponseModel(this.parser, code, hasSuccessResponses, this.operationSpec.responses[code], this.options);\n });\n }\n\n}","export * from '../SpecStore';\nexport * from './Group.model';\nexport * from './Operation';\nexport * from './RequestBody';\nexport * from './Example';\nexport * from './MediaContent';\nexport * from './MediaType';\nexport * from './Response';\nexport * from './Schema';\nexport * from './Field';\nexport * from './ApiInfo';\nexport * from './SecuritySchemes';","import { OpenAPIOperation, OpenAPIParameter, OpenAPISpec, OpenAPITag, Referenced } from '../types';\nimport { isOperationName, SECURITY_DEFINITIONS_COMPONENT_NAME, setSecuritySchemePrefix } from '../utils';\nimport { MarkdownRenderer } from './MarkdownRenderer';\nimport { GroupModel, OperationModel } from './models';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type TagInfo = OpenAPITag & {\n operations: ExtendedOpenAPIOperation[];\n used?: boolean;\n};\nexport type ExtendedOpenAPIOperation = {\n pathName: string;\n httpVerb: string;\n pathParameters: Array>;\n} & OpenAPIOperation;\nexport type TagsInfoMap = Dict;\nexport interface TagGroup {\n name: string;\n tags: string[];\n}\nexport const GROUP_DEPTH = 0;\nexport type ContentItemModel = GroupModel | OperationModel;\nexport class MenuBuilder {\n /**\n * Builds page content structure based on tags\n */\n static buildStructure(parser: OpenAPIParser, options: RedocNormalizedOptions): ContentItemModel[] {\n const spec = parser.spec;\n const items: ContentItemModel[] = [];\n const tagsMap = MenuBuilder.getTagsWithOperations(spec);\n items.push(...MenuBuilder.addMarkdownItems(spec.info.description || '', undefined, 1, options));\n\n if (spec['x-tagGroups'] && spec['x-tagGroups'].length > 0) {\n items.push(...MenuBuilder.getTagGroupsItems(parser, undefined, spec['x-tagGroups'], tagsMap, options));\n } else {\n items.push(...MenuBuilder.getTagsItems(parser, tagsMap, undefined, undefined, options));\n }\n\n return items;\n }\n /**\n * extracts items from markdown description\n * @param description - markdown source\n */\n\n\n static addMarkdownItems(description: string, parent: GroupModel | undefined, initialDepth: number, options: RedocNormalizedOptions): ContentItemModel[] {\n const renderer = new MarkdownRenderer(options);\n const headings = renderer.extractHeadings(description || '');\n\n if (headings.length && parent && parent.description) {\n parent.description = MarkdownRenderer.getTextBeforeHading(parent.description, headings[0].name);\n }\n\n const mapHeadingsDeep = (_parent, items, depth = 1) => items.map(heading => {\n const group = new GroupModel('section', heading, _parent);\n group.depth = depth;\n\n if (heading.items) {\n group.items = mapHeadingsDeep(group, heading.items, depth + 1);\n }\n\n if (MarkdownRenderer.containsComponent(group.description || '', SECURITY_DEFINITIONS_COMPONENT_NAME)) {\n setSecuritySchemePrefix(group.id + '/');\n }\n\n return group;\n });\n\n return mapHeadingsDeep(parent, headings, initialDepth);\n }\n /**\n * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension)\n * @param tags value of `x-tagGroups` vendor extension\n */\n\n\n static getTagGroupsItems(parser: OpenAPIParser, parent: GroupModel | undefined, groups: TagGroup[], tags: TagsInfoMap, options: RedocNormalizedOptions): GroupModel[] {\n const res: GroupModel[] = [];\n\n for (const group of groups) {\n const item = new GroupModel('group', group, parent);\n item.depth = GROUP_DEPTH;\n item.items = MenuBuilder.getTagsItems(parser, tags, item, group, options);\n res.push(item);\n } // TODO checkAllTagsUsedInGroups\n\n\n return res;\n }\n /**\n * Returns array of OperationsGroup items for the tags of the group or for all tags\n * @param tagsMap tags info returned from `getTagsWithOperations`\n * @param parent parent item\n * @param group group which this tag belongs to. if not provided gets all tags\n */\n\n\n static getTagsItems(parser: OpenAPIParser, tagsMap: TagsInfoMap, parent: GroupModel | undefined, group: TagGroup | undefined, options: RedocNormalizedOptions): ContentItemModel[] {\n let tagNames;\n\n if (group === undefined) {\n tagNames = Object.keys(tagsMap); // all tags\n } else {\n tagNames = group.tags;\n }\n\n const tags = tagNames.map(tagName => {\n if (!tagsMap[tagName]) {\n console.warn(`Non-existing tag \"${tagName}\" is added to the group \"${group!.name}\"`);\n return null;\n }\n\n tagsMap[tagName].used = true;\n return tagsMap[tagName];\n });\n const res: Array = [];\n\n for (const tag of tags) {\n if (!tag) {\n continue;\n }\n\n const item = new GroupModel('tag', tag, parent);\n item.depth = GROUP_DEPTH + 1; // don't put empty tag into content, instead put its operations\n\n if (tag.name === '') {\n const items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, undefined, tag, item.depth + 1, options)];\n res.push(...items);\n continue;\n }\n\n item.items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, item, tag, item.depth + 1, options)];\n res.push(item);\n }\n\n return res;\n }\n /**\n * Returns array of Operation items for the tag\n * @param parent parent OperationsGroup\n * @param tag tag info returned from `getTagsWithOperations`\n * @param depth items depth\n */\n\n\n static getOperationsItems(parser: OpenAPIParser, parent: GroupModel | undefined, tag: TagInfo, depth: number, options: RedocNormalizedOptions): OperationModel[] {\n if (tag.operations.length === 0) {\n return [];\n }\n\n const res: OperationModel[] = [];\n\n for (const operationInfo of tag.operations) {\n const operation = new OperationModel(parser, operationInfo, parent, options);\n operation.depth = depth;\n res.push(operation);\n }\n\n return res;\n }\n /**\n * collects tags and maps each tag to list of operations belonging to this tag\n */\n\n\n static getTagsWithOperations(spec: OpenAPISpec): TagsInfoMap {\n const tags: TagsInfoMap = {};\n\n for (const tag of spec.tags || []) {\n tags[tag.name] = { ...tag,\n operations: []\n };\n }\n\n const paths = spec.paths;\n\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n let operationTags = operationInfo.tags;\n\n if (!operationTags || !operationTags.length) {\n // empty tag\n operationTags = [''];\n }\n\n for (const tagName of operationTags) {\n let tag = tags[tagName];\n\n if (tag === undefined) {\n tag = {\n name: tagName,\n operations: []\n };\n tags[tagName] = tag;\n }\n\n if (tag['x-traitTag']) {\n continue;\n }\n\n tag.operations.push({ ...operationInfo,\n pathName,\n httpVerb: operationName,\n pathParameters: path.parameters || []\n });\n }\n }\n }\n\n return tags;\n }\n\n}","import { action, observable } from 'mobx';\nimport { querySelector } from '../utils/dom';\nimport { SpecStore } from './models';\nimport { history as historyInst, HistoryService } from './HistoryService';\nimport { ScrollService } from './ScrollService';\nimport { flattenByProp, SECURITY_SCHEMES_SECTION_PREFIX } from '../utils';\nimport { GROUP_DEPTH } from './MenuBuilder';\nexport type MenuItemGroupType = 'group' | 'tag' | 'section';\nexport type MenuItemType = MenuItemGroupType | 'operation';\n/** Generic interface for MenuItems */\n\nexport interface IMenuItem {\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n depth: number;\n active: boolean;\n expanded: boolean;\n items: IMenuItem[];\n parent?: IMenuItem;\n deprecated?: boolean;\n type: MenuItemType;\n deactivate(): void;\n activate(): void;\n collapse(): void;\n expand(): void;\n}\nexport const SECTION_ATTR = 'data-section-id';\n/**\n * Stores all side-menu related information\n */\n\nexport class MenuStore {\n /**\n * Statically try update scroll position\n * Used before hydrating from server-side rendered html to scroll page faster\n */\n static updateOnHistory(id: string = historyInst.currentId, scroll: ScrollService) {\n if (!id) {\n return;\n }\n\n scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n /**\n * active item absolute index (when flattened). -1 means nothing is selected\n */\n\n\n @observable\n activeItemIdx: number = -1;\n /**\n * whether sidebar with menu is opened or not\n */\n\n @observable\n sideBarOpened: boolean = false;\n items: IMenuItem[];\n flatItems: IMenuItem[];\n /**\n * cached flattened menu items to support absolute indexing\n */\n\n private _unsubscribe: () => void;\n private _hashUnsubscribe: () => void;\n /**\n *\n * @param spec [SpecStore](#SpecStore) which contains page content structure\n * @param scroll scroll service instance used by this menu\n */\n\n constructor(spec: SpecStore, public scroll: ScrollService, public history: HistoryService) {\n this.items = spec.contentItems;\n this.flatItems = flattenByProp(this.items || [], 'items');\n this.flatItems.forEach((item, idx) => item.absoluteIdx = idx);\n this.subscribe();\n }\n\n subscribe() {\n this._unsubscribe = this.scroll.subscribe(this.updateOnScroll);\n this._hashUnsubscribe = this.history.subscribe(this.updateOnHistory);\n }\n\n @action\n toggleSidebar() {\n this.sideBarOpened = this.sideBarOpened ? false : true;\n }\n\n @action\n closeSidebar() {\n this.sideBarOpened = false;\n }\n /**\n * update active items on scroll\n * @param isScrolledDown whether last scroll was downside\n */\n\n\n updateOnScroll = (isScrolledDown: boolean): void => {\n const step = isScrolledDown ? 1 : -1;\n let itemIdx = this.activeItemIdx;\n\n while (true) {\n if (itemIdx === -1 && !isScrolledDown) {\n break;\n }\n\n if (itemIdx >= this.flatItems.length - 1 && isScrolledDown) {\n break;\n }\n\n if (isScrolledDown) {\n const el = this.getElementAtOrFirstChild(itemIdx + 1);\n\n if (this.scroll.isElementBellow(el)) {\n break;\n }\n } else {\n const el = this.getElementAt(itemIdx);\n\n if (this.scroll.isElementAbove(el)) {\n break;\n }\n }\n\n itemIdx += step;\n }\n\n this.activate(this.flatItems[itemIdx], true, true);\n };\n /**\n * update active items on hash change\n * @param id current hash\n */\n\n updateOnHistory = (id: string = this.history.currentId) => {\n if (!id) {\n return;\n }\n\n let item: IMenuItem | undefined;\n item = this.flatItems.find(i => i.id === id);\n\n if (item) {\n this.activateAndScroll(item, false);\n } else {\n if (id.startsWith(SECURITY_SCHEMES_SECTION_PREFIX)) {\n item = this.flatItems.find(i => SECURITY_SCHEMES_SECTION_PREFIX.startsWith(i.id));\n this.activate(item);\n }\n\n this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n };\n /**\n * get section/operation DOM Node related to the item or null if it doesn't exist\n * @param idx item absolute index\n */\n\n getElementAt(idx: number): Element | null {\n const item = this.flatItems[idx];\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * get section/operation DOM Node related to the item or if it is group item, returns first item of the group\n * @param idx item absolute index\n */\n\n\n getElementAtOrFirstChild(idx: number): Element | null {\n let item = this.flatItems[idx];\n\n if (item && item.type === 'group') {\n item = item.items[0];\n }\n\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * current active item\n */\n\n\n get activeItem(): IMenuItem {\n return this.flatItems[this.activeItemIdx] || undefined;\n }\n\n getItemById = (id: string) => {\n return this.flatItems.find(item => item.id === id);\n };\n /**\n * activate menu item\n * @param item item to activate\n * @param updateLocation [true] whether to update location\n * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry)\n */\n\n @action\n activate(item: IMenuItem | undefined, updateLocation: boolean = true, rewriteHistory: boolean = false) {\n if ((this.activeItem && this.activeItem.id) === (item && item.id)) {\n return;\n }\n\n if (item && item.type === 'group') {\n return;\n }\n\n this.deactivate(this.activeItem);\n\n if (!item) {\n this.history.replace('', rewriteHistory);\n return;\n } // do not allow activating group items\n // TODO: control over options\n\n\n if (item.depth <= GROUP_DEPTH) {\n return;\n }\n\n this.activeItemIdx = item.absoluteIdx!;\n\n if (updateLocation) {\n this.history.replace(item.id, rewriteHistory);\n }\n\n item.activate();\n item.expand();\n }\n /**\n * makes item and all the parents not active\n * @param item item to deactivate\n */\n\n\n deactivate(item: IMenuItem | undefined) {\n if (item === undefined) {\n return;\n }\n\n item.deactivate();\n\n while (item !== undefined) {\n item.collapse();\n item = item.parent;\n }\n }\n /**\n * activate menu item and scroll to it\n * @see MenuStore.activate\n */\n\n\n @action.bound\n activateAndScroll(item: IMenuItem | undefined, updateLocation?: boolean, rewriteHistory?: boolean) {\n // item here can be a copy from search results so find corresponding item from menu\n const menuItem = item && this.getItemById(item.id) || item;\n this.activate(menuItem, updateLocation, rewriteHistory);\n this.scrollToActive();\n\n if (!menuItem || !menuItem.items.length) {\n this.closeSidebar();\n }\n }\n /**\n * scrolls to active section\n */\n\n\n scrollToActive(): void {\n this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx));\n }\n\n dispose() {\n this._unsubscribe();\n\n this._hashUnsubscribe();\n }\n\n}","import { bind } from 'decko';\nimport * as EventEmitter from 'eventemitter3';\nimport { IS_BROWSER, querySelector, Throttle } from '../utils';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst EVENT = 'scroll';\nexport class ScrollService {\n private _scrollParent: Window | HTMLElement | undefined;\n private _emiter: EventEmitter;\n private _prevOffsetY = 0;\n\n constructor(private options: RedocNormalizedOptions) {\n this._scrollParent = IS_BROWSER ? window : undefined;\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n bind() {\n this._prevOffsetY = this.scrollY();\n\n if (this._scrollParent) {\n this._scrollParent.addEventListener('scroll', this.handleScroll);\n }\n }\n\n dispose() {\n if (this._scrollParent) {\n this._scrollParent.removeEventListener('scroll', this.handleScroll);\n }\n\n this._emiter.removeAllListeners(EVENT);\n }\n\n scrollY(): number {\n if (typeof HTMLElement !== 'undefined' && this._scrollParent instanceof HTMLElement) {\n return this._scrollParent.scrollTop;\n } else if (this._scrollParent !== undefined) {\n return (this._scrollParent as Window).pageYOffset;\n } else {\n return 0;\n }\n }\n\n isElementBellow(el: Element | null) {\n if (el === null) {\n return;\n }\n\n return el.getBoundingClientRect().top > this.options.scrollYOffset();\n }\n\n isElementAbove(el: Element | null) {\n if (el === null) {\n return;\n }\n\n const top = el.getBoundingClientRect().top;\n return (top > 0 ? Math.floor(top) : Math.ceil(top)) <= this.options.scrollYOffset();\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n scrollIntoView(element: Element | null) {\n if (element === null) {\n return;\n }\n\n element.scrollIntoView();\n\n if (this._scrollParent && this._scrollParent.scrollBy) {\n // adding 1 account rounding errors in case scrollYOffset is float-number\n (this._scrollParent.scrollBy as any)(0, -this.options.scrollYOffset() + 1);\n }\n }\n\n scrollIntoViewBySelector(selector: string) {\n const element = querySelector(selector);\n this.scrollIntoView(element);\n }\n\n @bind\n @Throttle(100)\n handleScroll() {\n const scrollY = this.scrollY();\n const isScrolledDown = scrollY - this._prevOffsetY > 0;\n this._prevOffsetY = this.scrollY();\n\n this._emiter.emit(EVENT, isScrolledDown);\n }\n\n}","import { IS_BROWSER } from '../utils/';\nimport { IMenuItem } from './MenuStore';\nimport { OperationModel } from './models';\nimport Worker from './SearchWorker.worker';\n\nfunction getWorker() {\n let worker: new () => Worker;\n\n if (IS_BROWSER) {\n try {\n // tslint:disable-next-line\n worker = require('workerize-loader?inline&fallback=false!./SearchWorker.worker');\n } catch (e) {\n worker = require('./SearchWorker.worker').default;\n }\n } else {\n worker = require('./SearchWorker.worker').default;\n }\n\n return new worker();\n}\n\nexport class SearchStore {\n searchWorker = getWorker();\n\n indexItems(groups: Array) {\n const recurse = items => {\n items.forEach(group => {\n if (group.type !== 'group') {\n this.add(group.name, group.description || '', group.id);\n }\n\n recurse(group.items);\n });\n };\n\n recurse(groups);\n this.searchWorker.done();\n }\n\n add(title: string, body: string, meta?: T) {\n this.searchWorker.add(title, body, meta);\n }\n\n dispose() {\n (this.searchWorker as any).terminate();\n }\n\n search(q: string) {\n return this.searchWorker.search(q);\n }\n\n async toJS() {\n return this.searchWorker.toJS();\n }\n\n load(state: any) {\n this.searchWorker.load(state);\n }\n\n}","import { SECTION_ATTR } from '../services/MenuStore';\nimport styled, { media } from '../styled-components';\nexport const MiddlePanel = styled.div<{\n compact?: boolean;\n}>`\n width: calc(100% - ${props => props.theme.rightPanel.width});\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${({\n compact,\n theme\n}) => media.lessThan('medium', true)`\n width: 100%;\n padding: ${`${compact ? 0 : theme.spacing.sectionVertical}px ${theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const Section = styled.div.attrs(props => ({\n [SECTION_ATTR]: props.id\n}))<{\n underlined?: boolean;\n}>`\n padding: ${props => props.theme.spacing.sectionVertical}px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ${media.lessThan('medium', true)`\n padding: 0;\n `}\n ${(props: any) => props.underlined && `\n position: relative;\n\n &:not(:last-of-type):after {\n position: absolute;\n bottom: 0;\n width: 100%;\n display: block;\n content: '';\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n }\n ` || ''}\n`;\nexport const RightPanel = styled.div`\n width: ${props => props.theme.rightPanel.width};\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${media.lessThan('medium', true)`\n width: 100%;\n padding: ${props => `${props.theme.spacing.sectionVertical}px ${props.theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const DarkRightPanel = styled(RightPanel)`\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n`;\nexport const Row = styled.div`\n display: flex;\n width: 100%;\n padding: 0;\n\n ${media.lessThan('medium', true)`\n flex-direction: column;\n `};\n`;","import styled, { css, extensionsHook } from '../styled-components';\nconst headerFontSize = {\n 1: '1.85714em',\n 2: '1.57143em',\n 3: '1.27em'\n};\nexport const headerCommonMixin = level => css`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-weight: ${({\n theme\n}) => theme.typography.headings.fontWeight};\n font-size: ${headerFontSize[level]};\n line-height: ${({\n theme\n}) => theme.typography.headings.lineHeight};\n`;\nexport const H1 = styled.h1`\n ${headerCommonMixin(1)};\n color: ${({\n theme\n}) => theme.colors.primary.main};\n\n ${extensionsHook('H1')};\n`;\nexport const H2 = styled.h2`\n ${headerCommonMixin(2)};\n color: black;\n\n ${extensionsHook('H2')};\n`;\nexport const H3 = styled.h2`\n ${headerCommonMixin(3)};\n color: black;\n\n ${extensionsHook('H3')};\n`;\nexport const RightPanelHeader = styled.h3`\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n\n ${extensionsHook('RightPanelHeader')};\n`;\nexport const UnderlinedHeader = styled.h5`\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ${extensionsHook('UnderlinedHeader')};\n`;","import * as memoize from 'memoize-one/dist/memoize-one.cjs'; // fixme: https://github.com/alexreardon/memoize-one/issues/37\n\nimport { Component, createContext } from 'react';\nimport { AppStore } from '../services/';\nimport { RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { loadAndBundleSpec } from '../utils';\nexport interface StoreBuilderProps {\n specUrl?: string;\n spec?: object;\n store?: AppStore;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => void;\n children: (props: {\n loading: boolean;\n store?: AppStore;\n }) => any;\n}\nexport interface StoreBuilderState {\n error?: Error;\n loading: boolean;\n resolvedSpec?: any;\n prevSpec?: any;\n prevSpecUrl?: string;\n}\nconst {\n Provider,\n Consumer\n} = createContext(undefined);\nexport { Provider as StoreProvider, Consumer as StoreConsumer };\nexport class StoreBuilder extends Component {\n static getDerivedStateFromProps(nextProps: StoreBuilderProps, prevState: StoreBuilderState) {\n if (nextProps.specUrl !== prevState.prevSpecUrl || nextProps.spec !== prevState.prevSpec) {\n return {\n loading: true,\n resolvedSpec: null,\n prevSpec: nextProps.spec,\n prevSpecUrl: nextProps.specUrl\n };\n }\n\n return null;\n }\n\n state: StoreBuilderState = {\n loading: true,\n resolvedSpec: null\n };\n\n @memoize\n makeStore(spec, specUrl, options) {\n if (!spec) {\n return undefined;\n }\n\n try {\n return new AppStore(spec, specUrl, options);\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n throw e;\n }\n }\n\n componentDidMount() {\n this.load();\n }\n\n componentDidUpdate() {\n if (this.state.resolvedSpec === null) {\n this.load();\n } else if (!this.state.loading && this.props.onLoaded) {\n // may run multiple time\n this.props.onLoaded();\n }\n }\n\n async load() {\n const {\n specUrl,\n spec\n } = this.props;\n\n try {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl!);\n this.setState({\n resolvedSpec,\n loading: false\n });\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n this.setState({\n error: e\n });\n }\n }\n\n render() {\n if (this.state.error) {\n throw this.state.error;\n }\n\n const {\n specUrl,\n options\n } = this.props;\n const {\n loading,\n resolvedSpec\n } = this.state;\n return this.props.children({\n loading,\n store: this.makeStore(resolvedSpec, specUrl, options)\n });\n }\n\n}","import * as React from 'react';\nimport { StoreConsumer } from '../components/StoreBuilder';\nimport styled, { css } from '../styled-components';\nimport { HistoryService } from '../services';\nexport const StyledLink = styled.a`\n text-decoration: none;\n`; // tslint:disable-next-line\n\nexport const linkifyMixin = className => css`\n ${className} {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n }\n ${className}:before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ${className}::before, h2:hover > ${className}::before, ${className}:hover::before {\n visibility: visible;\n }\n`;\n\nconst isModifiedEvent = event => !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n\nexport class Link extends React.Component<{\n to: string;\n className?: string;\n children?: any;\n}> {\n navigate = (history: HistoryService, event) => {\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n history.replace(this.props.to);\n }\n };\n\n render() {\n return \n {store => \n {this.props.children}\n }\n ;\n }\n\n}\nconst StyledShareLink = styled(Link)`\n ${linkifyMixin('&')};\n`;\nexport function ShareLink(props: {\n to: string;\n}) {\n return ;\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst directionMap = {\n left: '90deg',\n right: '-90deg',\n up: '-180deg',\n down: '0'\n};\n\nclass IntShelfIcon extends React.PureComponent<{\n className?: string;\n float?: 'left' | 'right';\n size?: string;\n color?: string;\n direction: 'left' | 'right' | 'up' | 'down';\n style?: React.CSSProperties;\n}> {\n render() {\n return \n \n ;\n }\n\n}\n\nexport const ShelfIcon = styled(IntShelfIcon)`\n height: ${props => props.size || '18px'};\n width: ${props => props.size || '18px'};\n vertical-align: middle;\n float: ${props => props.float || ''};\n transition: transform 0.2s ease-out;\n transform: rotateZ(${props => directionMap[props.direction || 'down']});\n\n polygon {\n fill: ${props => props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main || props.color};\n }\n`;\nexport const Badge = styled.span<{\n type: string;\n}>`\n display: inline-block;\n padding: 0 5px;\n margin: 0;\n background-color: ${props => props.theme.colors[props.type].main};\n color: ${props => props.theme.colors[props.type].contrastText};\n font-size: ${props => props.theme.typography.code.fontSize};\n vertical-align: text-top;\n`;","import { css } from '../styled-components';\nexport const deprecatedCss = css`\n text-decoration: line-through;\n color: #bdccd3;\n`;","// import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { deprecatedCss } from './mixins';\nexport const PropertiesTableCaption = styled.caption`\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ${props => props.theme.colors.text.secondary};\n`;\nexport const PropertyCell = styled.td<{\n kind?: string;\n}>`\n border-left: 1px solid ${props => props.theme.schema.linesColor};\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ${props => props.theme.schema.linesColor} 22px,\n ${props => props.theme.schema.linesColor} 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ${props => props.theme.schema.linesColor} 0%,\n ${props => props.theme.schema.linesColor} 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n`;\nexport const PropertyCellWithInner = styled(PropertyCell)`\n padding: 0;\n`;\nexport const PropertyNameCell = styled(PropertyCell)`\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 0.929em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n\n &.deprecated {\n ${deprecatedCss};\n }\n\n ${({\n kind\n}) => kind !== 'field' ? 'font-style: italic' : ''};\n\n ${extensionsHook('PropertyNameCell')};\n`;\nexport const PropertyDetailsCell = styled.td`\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ${props => props.theme.schema.defaultDetailsWidth};\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n`;\nexport const PropertyBullet = styled.span`\n color: ${props => props.theme.schema.linesColor};\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ${props => props.theme.schema.linesColor};\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ${props => props.theme.schema.linesColor};\n height: 7px;\n }\n`;\nexport const InnerPropertiesWrap = styled.div`\n padding: ${({\n theme\n}) => theme.schema.nestingSpacing};\n`;\nexport const PropertiesTable = styled.table`\n border-collapse: separate;\n border-radius: 3px;\n font-size: ${props => props.theme.typography.fontSize};\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n margin: ${({\n theme\n}) => theme.schema.nestingSpacing};\n margin-right: 0;\n background: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n background: #ffffff;\n }\n`;","import styled from '../styled-components';\nexport const OneOfList = styled.ul`\n margin: 0 0 3px 0;\n padding: 0;\n list-style: none;\n display: inline-block;\n`;\nexport const OneOfLabel = styled.span`\n font-size: 0.9em;\n margin-right: 10px;\n color: ${props => props.theme.colors.primary.main};\n font-family: ${props => props.theme.typography.headings.fontFamily};\n}\n`;\nexport const OneOfButton = styled.li<{\n active: boolean;\n}>`\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ${props => props.theme.colors.primary.main};\n padding: 2px 10px;\n\n ${props => {\n if (props.active) {\n return `\n color: white;\n background-color: ${props.theme.colors.primary.main};\n `;\n } else {\n return `\n color: ${props.theme.colors.primary.main};\n background-color: white;\n `;\n }\n}}\n`;\nexport const ArrayOpenningLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ' [';\n }\n`;\nexport const ArrayClosingLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ']';\n }\n`;","import Dropdown from 'react-dropdown';\nimport styled from '../styled-components';\nexport interface DropdownOption {\n label: string;\n value: string;\n}\nexport interface DropdownProps {\n options: DropdownOption[];\n value: DropdownOption;\n onChange: (val: DropdownOption) => void;\n}\nexport const StyledDropdown = styled(Dropdown)`\n min-width: 100px;\n display: inline-block;\n position: relative;\n width: auto;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n\n .Dropdown-control {\n font-family: ${props => props.theme.typography.headings.fontFamily};\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1.5em;\n vertical-align: middle;\n cursor: pointer;\n border-color: rgba(38, 50, 56, 0.5);\n color: #263238;\n outline: none;\n padding: 0.15em 1.5em 0.2em 0.5em;\n border-radius: 2px;\n border-width: 1px;\n border-style: solid;\n margin-top: 5px;\n background: white;\n\n box-sizing: border-box;\n\n &:hover {\n border-color: ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12);\n }\n }\n\n .Dropdown-arrow {\n border-color: ${props => props.theme.colors.primary.main} transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n content: ' ';\n display: block;\n height: 0;\n position: absolute;\n right: 0.3em;\n top: 50%;\n margin-top: -0.125em;\n width: 0;\n }\n\n .Dropdown-menu {\n position: absolute;\n margin-top: 2px;\n left: 0;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .Dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &.is-selected {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n`;\nexport const SimpleDropdown = styled(StyledDropdown)`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n .Dropdown-control {\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover {\n color: ${props => props.theme.colors.primary.main};\n box-shadow: none;\n }\n }\n`;\nexport const MimeLabel = styled.span`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n`;","import { darken } from 'polished';\nimport { Tabs as ReactTabs } from 'react-tabs';\nimport styled from '../styled-components';\nexport { Tab, TabList, TabPanel } from 'react-tabs';\nexport const Tabs = styled(ReactTabs)`\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ${({\n theme\n}) => theme.codeSample.backgroundColor};\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n margin: 0\n ${({\n theme\n}) => `${theme.spacing.unit}px ${theme.spacing.unit}px ${theme.spacing.unit}px`};\n border: 1px solid ${({\n theme\n}) => darken(0.05, theme.codeSample.backgroundColor)};\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ${props => props.theme.colors.text.primary};\n background: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ${props => props.theme.colors.responses.success.color};\n }\n\n &.tab-redirect {\n color: ${props => props.theme.colors.responses.redirect.color};\n }\n\n &.tab-info {\n color: ${props => props.theme.colors.responses.info.color};\n }\n\n &.tab-error {\n color: ${props => props.theme.colors.responses.error.color};\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ${({\n theme\n}) => theme.codeSample.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n`;\nexport const SmallTabs = styled(Tabs)`\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 2}px 0;\n }\n }\n`;","import styled, { extensionsHook } from '../styled-components';\nexport const PrismDiv = styled.div`\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n /* .property.token.string {\n color: white;\n } */\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ${extensionsHook('Prism')};\n`;","import styled from '../styled-components';\nimport { PrismDiv } from './PrismDiv';\nexport const SampleControls = styled.div`\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n\n > span {\n display: inline-block;\n padding: 2px 10px;\n cursor: pointer;\n\n :hover {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\nexport const SampleControlsWrap = styled.div`\n &:hover ${SampleControls} {\n opacity: 1;\n }\n`;\nexport const StyledPre = styled(PrismDiv.withComponent('pre'))`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n overflow-x: auto;\n margin: 0;\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n`;","import * as React from 'react';\nimport { RedocNormalizedOptions } from '../services/RedocNormalizedOptions';\nexport const OptionsContext = React.createContext(new RedocNormalizedOptions({}));\nexport const OptionsProvider = OptionsContext.Provider;\nexport const OptionsConsumer = OptionsContext.Consumer;","import * as React from 'react';\nimport PerfectScrollbarType, * as PerfectScrollbarNamespace from 'perfect-scrollbar';\nimport psStyles from 'perfect-scrollbar/css/perfect-scrollbar.css';\nimport { OptionsContext } from '../components/OptionsProvider';\nimport styled, { createGlobalStyle } from '../styled-components';\n/*\n * perfect scrollbar umd bundle uses exports assignment while module uses default export\n * so when bundled with webpack default export works but with jest it crashes\n * That's why the following ugly fix is required\n */\n\nconst PerfectScrollbarConstructor = PerfectScrollbarNamespace.default || ((PerfectScrollbarNamespace as any) as PerfectScrollbarType);\nconst PSStyling = createGlobalStyle`${psStyles && psStyles.toString()}`;\nconst StyledScrollWrapper = styled.div`\n position: relative;\n`;\nexport interface PerfectScrollbarProps {\n options?: PerfectScrollbarType.Options;\n className?: string;\n updateFn?: (fn) => void;\n}\nexport class PerfectScrollbar extends React.Component {\n private _container: HTMLElement;\n private inst: PerfectScrollbarType;\n\n componentDidMount() {\n const offset = this._container.parentElement && this._container.parentElement.scrollTop || 0;\n this.inst = new PerfectScrollbarConstructor(this._container, this.props.options || {});\n\n if (this._container.scrollTo) {\n this._container.scrollTo(0, offset);\n }\n }\n\n componentDidUpdate() {\n this.inst.update();\n }\n\n componentWillUnmount() {\n this.inst.destroy();\n }\n\n handleRef = ref => {\n this._container = ref;\n };\n\n render() {\n const {\n children,\n className,\n updateFn\n } = this.props;\n\n if (updateFn) {\n updateFn(this.componentDidUpdate.bind(this));\n }\n\n return <>\n \n \n {children}\n \n ;\n }\n\n}\nexport function PerfectScrollbarWrap(props: PerfectScrollbarProps & {\n children: JSX.Element[] | JSX.Element;\n}) {\n return \n {options => !options.nativeScrollbars ? {props.children} :
\n {props.children}\n
}\n
;\n}","export * from './panels';\nexport * from './headers';\nexport * from './linkify';\nexport * from './shelfs';\nexport * from './fields-layout';\nexport * from './schema';\nexport * from './dropdown';\nexport * from './mixins';\nexport * from './tabs';\nexport * from './samples';\nexport * from './perfect-scrollbar';","import * as React from 'react';\nimport { DropdownProps, MimeLabel, SimpleDropdown } from '../../common-elements/dropdown';\nexport interface DropdownOrLabelProps extends DropdownProps {\n Label?: React.ComponentClass;\n Dropdown?: React.ComponentClass;\n}\nexport function DropdownOrLabel(props: DropdownOrLabelProps): JSX.Element {\n const {\n Label = MimeLabel,\n Dropdown = SimpleDropdown\n } = props;\n\n if (props.options.length === 1) {\n return ;\n }\n\n return ;\n}","import { headerCommonMixin, linkifyMixin } from '../../common-elements';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport styled, { css, extensionsHook, ResolvedThemeInterface } from '../../styled-components';\nimport { StyledComponent } from 'styled-components';\nexport const linksCss = css`\n a {\n text-decoration: none;\n color: ${props => props.theme.typography.links.color};\n\n &:visited {\n color: ${props => props.theme.typography.links.visited};\n }\n\n &:hover {\n color: ${props => props.theme.typography.links.hover};\n }\n }\n`;\nexport const StyledMarkdownBlock = styled((PrismDiv as StyledComponent<'div', ResolvedThemeInterface, {\n compact?: boolean;\n inline?: boolean;\n}>))`\n\n font-family: ${props => props.theme.typography.fontFamily};\n font-weight: ${props => props.theme.typography.fontWeightRegular};\n line-height: ${props => props.theme.typography.lineHeight};\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${({\n compact\n}) => compact && `\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n `}\n\n ${({\n inline\n}) => inline && ` p {\n display: inline-block;\n }`}\n\n h1 {\n ${headerCommonMixin(1)};\n color: ${props => props.theme.colors.primary.main};\n margin-top: 0;\n }\n\n h2 {\n ${headerCommonMixin(2)};\n color: ${props => props.theme.colors.text.primary};\n }\n\n code {\n color: ${({\n theme\n}) => theme.typography.code.color};\n background-color: ${({\n theme\n}) => theme.typography.code.backgroundColor};\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ${({\n theme\n}) => theme.spacing.unit}px;\n font-size: ${props => props.theme.typography.code.fontSize};\n font-weight: ${({\n theme\n}) => theme.typography.code.fontWeight};\n\n word-break: break-word;\n }\n\n pre {\n font-family: ${props => props.theme.typography.code.fontFamily};\n white-space:${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n background-color: #263238;\n color: white;\n padding: ${props => props.theme.spacing.unit * 4}px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ${linkifyMixin('.share-link')};\n\n ${linksCss}\n\n ${extensionsHook('Markdown')};\n`;","import * as DOMPurify from 'dompurify';\nimport * as React from 'react';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StylingMarkdownProps } from './Markdown';\nimport { StyledMarkdownBlock } from './styled.elements';\nconst StyledMarkdownSpan = StyledMarkdownBlock.withComponent('span');\n\nconst sanitize = (untrustedSpec, html) => untrustedSpec ? DOMPurify.sanitize(html) : html;\n\nexport function SanitizedMarkdownHTML(props: StylingMarkdownProps & {\n html: string;\n className?: string;\n 'data-role'?: string;\n}) {\n const Wrap = props.inline ? StyledMarkdownSpan : StyledMarkdownBlock;\n return \n {options => }\n ;\n}","import * as React from 'react';\nimport { MarkdownRenderer } from '../../services';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nexport interface StylingMarkdownProps {\n compact?: boolean;\n inline?: boolean;\n}\nexport interface BaseMarkdownProps {\n sanitize?: boolean;\n source: string;\n}\nexport type MarkdownProps = BaseMarkdownProps & StylingMarkdownProps & {\n source: string;\n className?: string;\n 'data-role'?: string;\n};\nexport class Markdown extends React.Component {\n render() {\n const {\n source,\n inline,\n compact,\n className,\n 'data-role': dataRole\n } = this.props;\n const renderer = new MarkdownRenderer();\n return ;\n }\n\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Tip = styled.div`\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n`;\nconst Content = styled.div`\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n`;\nconst Arrow = styled.div`\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n`;\nconst Gap = styled.div`\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n`;\nexport interface TooltipProps {\n open: boolean;\n title: string;\n}\nexport class Tooltip extends React.Component {\n render() {\n const {\n open,\n title,\n children\n } = this.props;\n return \n {children}\n {open && \n {title}\n \n \n }\n ;\n }\n\n}","const isSupported = typeof document !== 'undefined' && document.queryCommandSupported && document.queryCommandSupported('copy');\nexport class ClipboardService {\n static isSupported(): boolean {\n return isSupported;\n }\n\n static selectElement(element: any): void {\n let range;\n let selection;\n\n if ((document.body as any).createTextRange) {\n range = (document.body as any).createTextRange();\n range.moveToElementText(element);\n range.select();\n } else if (document.createRange && window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n static deselect(): void {\n if ((document as any).selection) {\n (document as any).selection.empty();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n }\n }\n }\n\n static copySelected(): boolean {\n let result;\n\n try {\n result = document.execCommand('copy');\n } catch (err) {\n result = false;\n }\n\n return result;\n }\n\n static copyElement(element: any): boolean {\n ClipboardService.selectElement(element);\n const res = ClipboardService.copySelected();\n\n if (res) {\n ClipboardService.deselect();\n }\n\n return res;\n }\n\n static copyCustom(text: string): boolean {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.top = '0';\n textArea.style.left = '0'; // Ensure it has a small width and height. Setting to 1px / 1em\n // doesn't work as this gives a negative w/h on some browsers.\n\n textArea.style.width = '2em';\n textArea.style.height = '2em'; // We don't need padding, reducing the size if it does flash render.\n\n textArea.style.padding = '0'; // Clean up any borders.\n\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none'; // Avoid flash of white box if rendered for any reason.\n\n textArea.style.background = 'transparent';\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n const res = ClipboardService.copySelected();\n document.body.removeChild(textArea);\n return res;\n }\n\n}","import * as React from 'react';\nimport { Tooltip } from '../common-elements/Tooltip';\nimport { ClipboardService } from '../services/ClipboardService';\nexport interface CopyButtonWrapperProps {\n data: any;\n children: (props: {\n renderCopyButton: () => React.ReactNode;\n }) => React.ReactNode;\n}\nexport class CopyButtonWrapper extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n tooltipShown: false\n };\n }\n\n render() {\n return this.props.children({\n renderCopyButton: this.renderCopyButton\n });\n }\n\n copy = () => {\n const content = typeof this.props.data === 'string' ? this.props.data : JSON.stringify(this.props.data, null, 2);\n ClipboardService.copyCustom(content);\n this.showTooltip();\n };\n renderCopyButton = () => {\n return \n \n Copy\n \n ;\n };\n\n showTooltip() {\n this.setState({\n tooltipShown: true\n });\n setTimeout(() => {\n this.setState({\n tooltipShown: false\n });\n }, 1500);\n }\n\n}","let level = 1;\nexport function jsonToHTML(json, maxExpandLevel) {\n level = 1;\n let output = '';\n output += '
';\n output += '';\n output += valueToHTML(json, maxExpandLevel);\n output += '';\n output += '
';\n return output;\n}\n\nfunction htmlEncode(t) {\n return t !== undefined ? t.toString().replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>') : '';\n}\n\nfunction stringifyStringLiteral(str: string) {\n return JSON.stringify(str).slice(1, -1);\n}\n\nfunction decorateWithSpan(value, className) {\n return '' + htmlEncode(value) + '';\n}\n\nfunction punctuation(val) {\n return '' + val + '';\n}\n\nfunction valueToHTML(value, maxExpandLevel: number) {\n const valueType = typeof value;\n let output = '';\n\n if (value === undefined || value === null) {\n output += decorateWithSpan('null', 'token keyword');\n } else if (value && value.constructor === Array) {\n level++;\n output += arrayToHTML(value, maxExpandLevel);\n level--;\n } else if (value && value.constructor === Date) {\n output += decorateWithSpan('\"' + value.toISOString() + '\"', 'token string');\n } else if (valueType === 'object') {\n level++;\n output += objectToHTML(value, maxExpandLevel);\n level--;\n } else if (valueType === 'number') {\n output += decorateWithSpan(value, 'token number');\n } else if (valueType === 'string') {\n if (/^(http|https):\\/\\/[^\\s]+$/.test(value)) {\n output += decorateWithSpan('\"', 'token string') + '' + htmlEncode(stringifyStringLiteral(value)) + '' + decorateWithSpan('\"', 'token string');\n } else {\n output += decorateWithSpan('\"' + stringifyStringLiteral(value) + '\"', 'token string');\n }\n } else if (valueType === 'boolean') {\n output += decorateWithSpan(value, 'token boolean');\n }\n\n return output;\n}\n\nfunction arrayToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n let output = `
${punctuation('[')}
    `;\n let hasContents = false;\n const length = json.length;\n\n for (let i = 0; i < length; i++) {\n hasContents = true;\n output += '
  • ';\n output += valueToHTML(json[i], maxExpandLevel);\n\n if (i < length - 1) {\n output += ',';\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation(']')}`;\n\n if (!hasContents) {\n output = punctuation('[ ]');\n }\n\n return output;\n}\n\nfunction objectToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n const keys = Object.keys(json);\n const length = keys.length;\n let output = `
${punctuation('{')}
    `;\n let hasContents = false;\n\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n hasContents = true;\n output += '
  • ';\n output += '\"' + htmlEncode(key) + '\": ';\n output += valueToHTML(json[key], maxExpandLevel);\n\n if (i < length - 1) {\n output += punctuation(',');\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation('}')}`;\n\n if (!hasContents) {\n output = punctuation('{ }');\n }\n\n return output;\n}","import { css } from '../../styled-components';\nexport const jsonStyles = css`\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' … ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { SampleControls } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport { jsonToHTML } from '../../utils/jsonToHtml';\nimport { OptionsContext } from '../OptionsProvider';\nimport { jsonStyles } from './style';\nexport interface JsonProps {\n data: any;\n className?: string;\n}\nconst JsonViewerWrap = styled.div`\n &:hover > ${SampleControls} {\n opacity: 1;\n }\n`;\n\nclass Json extends React.PureComponent {\n node: HTMLDivElement;\n\n render() {\n return {this.renderInner};\n }\n\n renderInner = ({\n renderCopyButton\n }) => \n \n {renderCopyButton()}\n Expand all \n Collapse all \n \n \n {options => this.node = node!} dangerouslySetInnerHTML={{\n __html: jsonToHTML(this.props.data, options.jsonSampleExpandLevel)\n }} />}\n \n ;\n expandAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const collapsed of Array.prototype.slice.call(elements)) {\n (collapsed.parentNode as Element)!.classList.remove('collapsed');\n }\n };\n collapseAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const expanded of Array.prototype.slice.call(elements)) {\n // const collapsed = elements[i];\n if ((expanded.parentNode as Element)!.classList.contains('redoc-json')) {\n continue;\n }\n\n (expanded.parentNode as Element)!.classList.add('collapsed');\n }\n };\n clickListener = (event: MouseEvent) => {\n let collapsed;\n const target = (event.target as HTMLElement);\n\n if (target.className === 'collapser') {\n collapsed = target.parentElement!.getElementsByClassName('collapsible')[0];\n\n if (collapsed.parentElement.classList.contains('collapsed')) {\n collapsed.parentElement.classList.remove('collapsed');\n } else {\n collapsed.parentElement.classList.add('collapsed');\n }\n }\n };\n\n componentDidMount() {\n this.node!.addEventListener('click', this.clickListener);\n }\n\n componentWillUnmount() {\n this.node!.removeEventListener('click', this.clickListener);\n }\n\n}\n\nexport const JsonViewer = styled(Json)`\n ${jsonStyles};\n`;","import * as React from 'react';\nimport { highlight } from '../../utils';\nimport { SampleControls, SampleControlsWrap, StyledPre } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nexport interface SourceCodeProps {\n source: string;\n lang: string;\n}\nexport class SourceCode extends React.PureComponent {\n render() {\n const {\n source,\n lang\n } = this.props;\n return ;\n }\n\n}\nexport class SourceCodeWithCopy extends React.PureComponent {\n render() {\n return \n {({\n renderCopyButton\n }) => \n {renderCopyButton()}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { isJsonLike, langFromMime } from '../../utils/openapi';\nimport { JsonViewer } from '../JsonViewer/JsonViewer';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nexport interface ExampleValueProps {\n value: any;\n mimeType: string;\n}\nexport function ExampleValue({\n value,\n mimeType\n}: ExampleValueProps) {\n if (isJsonLike(mimeType)) {\n return ;\n } else {\n if (typeof value === 'object') {\n // just in case example was cached as json but used as non-json\n value = JSON.stringify(value, null, 2);\n }\n\n return ;\n }\n}","import { useEffect, useRef, useState } from 'react';\nimport { ExampleModel } from '../../services/models/Example';\nexport function useExternalExample(example: ExampleModel, mimeType: string) {\n const [, setIsLoading] = useState(true); // to trigger component reload\n\n const value = useRef(undefined);\n const prevRef = useRef(undefined);\n\n if (prevRef.current !== example) {\n value.current = undefined;\n }\n\n prevRef.current = example;\n useEffect(() => {\n const load = async () => {\n setIsLoading(true);\n\n try {\n value.current = await example.getExternalValue(mimeType);\n } catch (e) {\n value.current = e;\n }\n\n setIsLoading(false);\n };\n\n load();\n }, [example, mimeType]);\n return value.current;\n}","import * as React from 'react';\nimport { StyledPre } from '../../common-elements/samples';\nimport { ExampleModel } from '../../services/models';\nimport { ExampleValue } from './ExampleValue';\nimport { useExternalExample } from './exernalExampleHook';\nexport interface ExampleProps {\n example: ExampleModel;\n mimeType: string;\n}\nexport function Example({\n example,\n mimeType\n}: ExampleProps) {\n if (example.value === undefined && example.externalValueUrl) {\n return ;\n } else {\n return ;\n }\n}\nexport function ExternalExample({\n example,\n mimeType\n}: ExampleProps) {\n const value = useExternalExample(example, mimeType);\n\n if (value === undefined) {\n return Loading...;\n }\n\n if (value instanceof Error) {\n return \n Error loading external example:
\n \n {example.externalValueUrl}\n \n
;\n }\n\n return ;\n}","// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport ReactDropdown from 'react-dropdown';\nimport { transparentize } from 'polished';\nimport styled from '../../styled-components';\nimport { StyledDropdown } from '../../common-elements';\nexport const MimeLabel = styled.div`\n padding: 12px;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n margin: 0 0 10px 0;\n display: block;\n`;\nexport const DropdownLabel = styled.span`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.textColor)};\n`;\nexport const DropdownWrapper = styled.div`\n position: relative;\n`;\nexport const InvertedSimpleDropdown = styled(StyledDropdown)`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n .Dropdown-control {\n margin-top: 0;\n }\n .Dropdown-control,\n .Dropdown-control:hover {\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n background: transparent;\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n box-shadow: none;\n\n .Dropdown-arrow {\n border-top-color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n }\n .Dropdown-menu {\n margin: 0;\n margin-top: 2px;\n }\n`;\nexport const NoSampleLabel = styled.div`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: 12px;\n color: #ee807f;\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { MediaTypeModel } from '../../services/models';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Example } from './Example';\nimport { DropdownLabel, DropdownWrapper, NoSampleLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n mediaType: MediaTypeModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\ninterface MediaTypeSamplesState {\n activeIdx: number;\n}\nexport class MediaTypeSamples extends React.Component {\n state = {\n activeIdx: 0\n };\n switchMedia = ({\n value\n }) => {\n this.setState({\n activeIdx: parseInt(value, 10)\n });\n };\n\n render() {\n const {\n activeIdx\n } = this.state;\n const examples = this.props.mediaType.examples || {};\n const mimeType = this.props.mediaType.name;\n const noSample = No sample;\n const examplesNames = Object.keys(examples);\n\n if (examplesNames.length === 0) {\n return noSample;\n }\n\n if (examplesNames.length > 1) {\n const options = examplesNames.map((name, idx) => {\n return {\n label: examples[name].summary || name,\n value: idx.toString()\n };\n });\n const example = examples[examplesNames[activeIdx]];\n const description = example.description;\n return \n \n Example\n {this.props.renderDropdown({\n value: options[activeIdx],\n options,\n onChange: this.switchMedia\n })}\n \n
\n {description && }\n \n
\n
;\n } else {\n const example = examples[examplesNames[0]];\n return \n {example.description && }\n \n ;\n }\n }\n\n}\nconst SamplesWrapper = styled.div`\n margin-top: 15px;\n`;","import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { PropertyNameCell } from './fields-layout';\nimport { ShelfIcon } from './shelfs';\nexport const ClickablePropertyNameCell = styled(PropertyNameCell)`\n cursor: pointer;\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.schema.arrow.size};\n width: ${({\n theme\n}) => theme.schema.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.schema.arrow.color};\n }\n }\n`;\nexport const FieldLabel = styled.span`\n vertical-align: middle;\n font-size: ${({\n theme\n}) => theme.typography.code.fontSize};\n line-height: 20px;\n`;\nexport const TypePrefix = styled(FieldLabel)`\n color: ${props => transparentize(0.2, props.theme.schema.typeNameColor)};\n`;\nexport const TypeName = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeNameColor};\n`;\nexport const TypeTitle = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeTitleColor};\n word-break: break-word;\n`;\nexport const TypeFormat = TypeName;\nexport const RequiredLabel = styled(FieldLabel.withComponent('div'))`\n color: ${props => props.theme.schema.requireLabelColor};\n font-size: ${props => props.theme.schema.labelsTextSize};\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n`;\nexport const RecursiveLabel = styled(FieldLabel)`\n color: ${({\n theme\n}) => theme.colors.warning.main};\n font-size: 13px;\n`;\nexport const NullableLabel = styled(FieldLabel)`\n color: #3195a6;\n font-size: 13px;\n`;\nexport const PatternLabel = styled(FieldLabel)`\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n`;\nexport const ExampleValue = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.text.primary)};\n color: ${transparentize(0.1, theme.colors.text.primary)};\n\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.text.primary)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ExampleValue')};\n`;\nexport const ExtensionValue = styled(ExampleValue)``;\nexport const ConstraintItem = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.primary.light)};\n color: ${transparentize(0.1, theme.colors.primary.main)};\n\n margin: 0 ${theme.spacing.unit}px;\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.primary.main)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ConstraintItem')};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { linksCss } from '../Markdown/styled.elements';\nconst LinkWrap = styled.div<{\n compact?: boolean;\n}>`\n ${linksCss};\n ${({\n compact\n}) => !compact ? 'margin: 1em 0' : ''}\n`;\n@observer\nexport class ExternalDocumentation extends React.Component<{\n externalDocs: OpenAPIExternalDocumentation;\n compact?: boolean;\n}> {\n render() {\n const {\n externalDocs\n } = this.props;\n\n if (!externalDocs || !externalDocs.url) {\n return null;\n }\n\n return \n {externalDocs.description || externalDocs.url}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface EnumValuesProps {\n values: string[];\n type: string;\n}\nexport class EnumValues extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n values,\n type\n } = this.props;\n const {\n enumSkipQuotes\n } = this.context;\n\n if (!values.length) {\n return null;\n }\n\n return
\n \n {type === 'array' ? l('enumArray') : ''}{' '}\n {values.length === 1 ? l('enumSingleValue') : l('enum')}:\n {' '}\n {values.map((value, idx) => {\n const exampleValue = enumSkipQuotes ? value : JSON.stringify(value);\n return \n {exampleValue}{' '}\n ;\n })}\n
;\n }\n\n}","import * as React from 'react';\nimport { ExtensionValue, FieldLabel } from '../../common-elements/fields';\nimport styled from '../../styled-components';\nimport { OptionsContext } from '../OptionsProvider';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst Extension = styled(StyledMarkdownBlock)`\n margin: 2px 0;\n`;\nexport interface ExtensionsProps {\n extensions: {\n [k: string]: any;\n };\n}\nexport class Extensions extends React.PureComponent {\n render() {\n const exts = this.props.extensions;\n return \n {options => <>\n {options.showExtensions && Object.keys(exts).map(key => \n {key.substring(2)}: {' '}\n \n {typeof exts[key] === 'string' ? exts[key] : JSON.stringify(exts[key])}\n \n )}\n }\n ;\n }\n\n}","import * as React from 'react';\nimport { ConstraintItem } from '../../common-elements/fields';\nexport interface ConstraintsViewProps {\n constraints: string[];\n}\nexport class ConstraintsView extends React.PureComponent {\n render() {\n if (this.props.constraints.length === 0) {\n return null;\n }\n\n return \n {' '}\n {this.props.constraints.map(constraint => {constraint} )}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nexport interface FieldDetailProps {\n value?: any;\n label: string;\n raw?: boolean;\n}\nexport class FieldDetail extends React.PureComponent {\n render() {\n if (this.props.value === undefined) {\n return null;\n }\n\n const value = this.props.raw ? this.props.value : JSON.stringify(this.props.value);\n return
\n {this.props.label} {value}\n
;\n }\n\n}","import * as React from 'react';\nimport { NullableLabel, PatternLabel, RecursiveLabel, TypeFormat, TypeName, TypePrefix, TypeTitle } from '../../common-elements/fields';\nimport { serializeParameterValue } from '../../utils/openapi';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { EnumValues } from './EnumValues';\nimport { Extensions } from './Extensions';\nimport { FieldProps } from './Field';\nimport { ConstraintsView } from './FieldContstraints';\nimport { FieldDetail } from './FieldDetail';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport class FieldDetails extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n showExamples,\n field,\n renderDiscriminatorSwitch\n } = this.props;\n const {\n enumSkipQuotes,\n hideSchemaTitles\n } = this.context;\n const {\n schema,\n description,\n example,\n deprecated\n } = field;\n const rawDefault = !!enumSkipQuotes || field.in === 'header'; // having quotes around header field default values is confusing and inappropriate\n\n let exampleField: JSX.Element | null = null;\n\n if (showExamples && example !== undefined) {\n const label = l('example') + ':';\n\n if (field.in && (field.style || field.serializationMime)) {\n // decode for better readability in examples: see https://github.com/Redocly/redoc/issues/1138\n const serializedValue = decodeURIComponent(serializeParameterValue(field, example));\n exampleField = ;\n } else {\n exampleField = ;\n }\n }\n\n return
\n
\n {schema.typePrefix}\n {schema.displayType}\n {schema.displayFormat && \n {' '}\n <\n {schema.displayFormat}\n >{' '}\n }\n {schema.title && !hideSchemaTitles && ({schema.title}) }\n \n {schema.nullable && {l('nullable')} }\n {schema.pattern && {schema.pattern} }\n {schema.isCircular && {l('recursive')} }\n
\n {deprecated &&
\n {l('deprecated')} \n
}\n \n {!renderDiscriminatorSwitch && }{' '}\n {exampleField}\n {}\n
\n \n
\n {schema.externalDocs && }\n {renderDiscriminatorSwitch && renderDiscriminatorSwitch(this.props) || null}\n
;\n }\n\n}","import * as React from 'react';\nimport { Schema, SchemaProps } from './Schema';\nimport { ArrayClosingLabel, ArrayOpenningLabel } from '../../common-elements';\nimport styled from '../../styled-components';\nconst PaddedSchema = styled.div`\n padding-left: ${({\n theme\n}) => theme.spacing.unit * 2}px;\n`;\nexport class ArraySchema extends React.PureComponent {\n render() {\n const itemsSchema = this.props.schema.items!;\n return
\n Array \n \n \n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ClickablePropertyNameCell, RequiredLabel } from '../../common-elements/fields';\nimport { FieldDetails } from './FieldDetails';\nimport { InnerPropertiesWrap, PropertyBullet, PropertyCellWithInner, PropertyDetailsCell, PropertyNameCell } from '../../common-elements/fields-layout';\nimport { ShelfIcon } from '../../common-elements/';\nimport { FieldModel } from '../../services/models';\nimport { Schema, SchemaOptions } from '../Schema/Schema';\nexport interface FieldProps extends SchemaOptions {\n className?: string;\n isLast?: boolean;\n showExamples?: boolean;\n field: FieldModel;\n expandByDefault?: boolean;\n renderDiscriminatorSwitch?: (opts: FieldProps) => JSX.Element;\n}\n@observer\nexport class Field extends React.Component {\n toggle = () => {\n if (this.props.field.expanded === undefined && this.props.expandByDefault) {\n this.props.field.expanded = false;\n } else {\n this.props.field.toggle();\n }\n };\n\n render() {\n const {\n className,\n field,\n isLast,\n expandByDefault\n } = this.props;\n const {\n name,\n deprecated,\n required,\n kind\n } = field;\n const withSubSchema = !field.schema.isPrimitive && !field.schema.isCircular;\n const expanded = field.expanded === undefined ? expandByDefault : field.expanded;\n const paramName = withSubSchema ? \n \n {name}\n \n {required && required }\n : \n \n {name}\n {required && required }\n ;\n return <>\n \n {paramName}\n \n \n \n \n {expanded && withSubSchema && \n \n \n \n \n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownOption, StyledDropdown } from '../../common-elements/dropdown';\nimport { SchemaModel } from '../../services/models';\n@observer\nexport class DiscriminatorDropdown extends React.Component<{\n parent: SchemaModel;\n enumValues: string[];\n}> {\n sortOptions(options: DropdownOption[], enumValues: string[]): void {\n if (enumValues.length === 0) {\n return;\n }\n\n const enumOrder = {};\n enumValues.forEach((enumItem, idx) => {\n enumOrder[enumItem] = idx;\n });\n options.sort((a, b) => {\n return enumOrder[a.label] > enumOrder[b.label] ? 1 : -1;\n });\n }\n\n render() {\n const {\n parent,\n enumValues\n } = this.props;\n\n if (parent.oneOf === undefined) {\n return null;\n }\n\n const options = parent.oneOf.map((subSchema, idx) => {\n return {\n value: idx.toString(),\n label: subSchema.title\n };\n });\n const activeItem = options[parent.activeOneOf];\n this.sortOptions(options, enumValues);\n return ;\n }\n\n changeActiveChild = ({\n value\n }) => {\n const idx = parseInt(value, 10);\n this.props.parent.activateOneOf(idx);\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { SchemaModel } from '../../services/models';\nimport { PropertiesTable, PropertiesTableCaption } from '../../common-elements/fields-layout';\nimport { Field } from '../Fields/Field';\nimport { DiscriminatorDropdown } from './DiscriminatorDropdown';\nimport { SchemaProps } from './Schema';\nimport { mapWithLast } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface ObjectSchemaProps extends SchemaProps {\n discriminator?: {\n fieldName: string;\n parentSchema: SchemaModel;\n };\n}\n@observer\nexport class ObjectSchema extends React.Component {\n static contextType = OptionsContext;\n\n get parentSchema() {\n return this.props.discriminator!.parentSchema;\n }\n\n render() {\n const {\n schema: {\n fields = []\n },\n showTitle,\n discriminator\n } = this.props;\n const needFilter = this.props.skipReadOnly || this.props.skipWriteOnly;\n const filteredFields = needFilter ? fields.filter(item => {\n return !(this.props.skipReadOnly && item.schema.readOnly || this.props.skipWriteOnly && item.schema.writeOnly);\n }) : fields;\n const expandByDefault = this.context.expandSingleSchemaField && filteredFields.length === 1;\n return \n {showTitle && {this.props.schema.title}}\n \n {mapWithLast(filteredFields, (field, isLast) => {\n return ) || undefined} className={field.expanded ? 'expanded' : undefined} showExamples={false} skipReadOnly={this.props.skipReadOnly} skipWriteOnly={this.props.skipWriteOnly} showTitle={this.props.showTitle} />;\n })}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OneOfButton as StyledOneOfButton, OneOfLabel, OneOfList } from '../../common-elements/schema';\nimport { SchemaModel } from '../../services/models';\nimport { Schema, SchemaProps } from './Schema';\nexport interface OneOfButtonProps {\n subSchema: SchemaModel;\n idx: number;\n schema: SchemaModel;\n}\n@observer\nexport class OneOfButton extends React.Component {\n render() {\n const {\n idx,\n schema,\n subSchema\n } = this.props;\n return \n {subSchema.title || subSchema.typePrefix + subSchema.displayType}\n ;\n }\n\n activateOneOf = () => {\n this.props.schema.activateOneOf(this.props.idx);\n };\n}\n@observer\nexport class OneOfSchema extends React.Component {\n render() {\n const {\n schema: {\n oneOf\n },\n schema\n } = this.props;\n\n if (oneOf === undefined) {\n return null;\n }\n\n return
\n {schema.oneOfType} \n \n {oneOf.map((subSchema, idx) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { RecursiveLabel, TypeName, TypeTitle } from '../../common-elements/fields';\nimport { FieldDetails } from '../Fields/FieldDetails';\nimport { FieldModel, SchemaModel } from '../../services/models';\nimport { ArraySchema } from './ArraySchema';\nimport { ObjectSchema } from './ObjectSchema';\nimport { OneOfSchema } from './OneOfSchema';\nimport { l } from '../../services/Labels';\nexport interface SchemaOptions {\n showTitle?: boolean;\n skipReadOnly?: boolean;\n skipWriteOnly?: boolean;\n}\nexport interface SchemaProps extends SchemaOptions {\n schema: SchemaModel;\n}\n@observer\nexport class Schema extends React.Component> {\n render() {\n const {\n schema\n } = this.props;\n\n if (!schema) {\n return Schema not provided ;\n }\n\n const {\n type,\n oneOf,\n discriminatorProp,\n isCircular\n } = schema;\n\n if (isCircular) {\n return
\n {schema.displayType}\n {schema.title && {schema.title} }\n {l('recursive')} \n
;\n }\n\n if (discriminatorProp !== undefined) {\n if (!oneOf || !oneOf.length) {\n throw new Error(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${schema.title}`);\n }\n\n return ;\n }\n\n if (oneOf !== undefined) {\n return ;\n }\n\n switch (type) {\n case 'object':\n return ;\n\n case 'array':\n return ;\n } // TODO: maybe adjust FieldDetails to accept schema\n\n\n const field = (({\n schema,\n name: '',\n required: false,\n description: schema.description,\n externalDocs: schema.externalDocs,\n deprecated: false,\n toggle: () => null,\n expanded: false\n } as any) as FieldModel); // cast needed for hot-loader to not fail\n\n return
\n \n
;\n }\n\n}","export * from './Schema';\nexport * from './ObjectSchema';\nexport * from './OneOfSchema';\nexport * from './ArraySchema';\nexport * from './DiscriminatorDropdown';","import * as React from 'react';\nimport { DarkRightPanel, MiddlePanel, MimeLabel, Row, Section } from '../../common-elements';\nimport { MediaTypeModel, OpenAPIParser, RedocNormalizedOptions } from '../../services';\nimport styled from '../../styled-components';\nimport { OpenAPIMediaType } from '../../types';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypeSamples } from '../PayloadSamples/MediaTypeSamples';\nimport { InvertedSimpleDropdown } from '../PayloadSamples/styled.elements';\nimport { Schema } from '../Schema';\nexport interface ObjectDescriptionProps {\n schemaRef: string;\n exampleRef?: string;\n showReadOnly?: boolean;\n showWriteOnly?: boolean;\n parser: OpenAPIParser;\n options: RedocNormalizedOptions;\n}\nexport class SchemaDefinition extends React.PureComponent {\n private static getMediaType(schemaRef: string, exampleRef?: string): OpenAPIMediaType {\n if (!schemaRef) {\n return {};\n }\n\n const info: OpenAPIMediaType = {\n schema: {\n $ref: schemaRef\n }\n };\n\n if (exampleRef) {\n info.examples = {\n example: {\n $ref: exampleRef\n }\n };\n }\n\n return info;\n }\n\n private _mediaModel: MediaTypeModel;\n\n private get mediaModel() {\n const {\n parser,\n schemaRef,\n exampleRef,\n options\n } = this.props;\n\n if (!this._mediaModel) {\n this._mediaModel = new MediaTypeModel(parser, 'json', false, SchemaDefinition.getMediaType(schemaRef, exampleRef), options);\n }\n\n return this._mediaModel;\n }\n\n render() {\n const {\n showReadOnly = true,\n showWriteOnly = false\n } = this.props;\n return
\n \n \n \n \n \n \n \n \n \n \n
;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}\nconst MediaSamplesWrap = styled.div`\n background: ${({\n theme\n}) => theme.codeSample.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n`;","import * as React from 'react';\nimport { SecuritySchemesModel } from '../../services/models';\nimport { H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { OpenAPISecurityScheme } from '../../types';\nimport { titleize } from '../../utils/helpers';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst AUTH_TYPES = {\n oauth2: 'OAuth2',\n apiKey: 'API Key',\n http: 'HTTP',\n openIdConnect: 'Open ID Connect'\n};\nexport interface OAuthFlowProps {\n type: string;\n flow: OpenAPISecurityScheme['flows'][keyof OpenAPISecurityScheme['flows']];\n}\nexport class OAuthFlow extends React.PureComponent {\n render() {\n const {\n type,\n flow\n } = this.props;\n return \n {type} OAuth Flow \n \n {type === 'implicit' || type === 'authorizationCode' ?
\n Authorization URL: \n {(flow as any).authorizationUrl}\n
: null}\n {type === 'password' || type === 'clientCredentials' || type === 'authorizationCode' ?
\n Token URL: \n {(flow as any).tokenUrl}\n
: null}\n {flow!.refreshUrl &&
\n Refresh URL: \n {flow!.refreshUrl}\n
}\n
\n Scopes: \n
\n
    \n {Object.keys(flow!.scopes || {}).map(scope =>
  • \n {scope} - \n
  • )}\n
\n \n ;\n }\n\n}\nexport interface SecurityDefsProps {\n securitySchemes: SecuritySchemesModel;\n}\nexport class SecurityDefs extends React.PureComponent {\n render() {\n return this.props.securitySchemes.schemes.map(scheme =>
\n \n \n

\n \n {scheme.id}\n

\n \n \n \n \n \n \n \n \n {scheme.apiKey ? \n \n \n : scheme.http ? [\n \n \n , scheme.http.scheme === 'bearer' && scheme.http.bearerFormat && \n \n \n ] : scheme.openId ? \n \n \n : scheme.flows ? Object.keys(scheme.flows).map(type => ) : null}\n \n
Security Scheme Type {AUTH_TYPES[scheme.type] || scheme.type}
{titleize(scheme.apiKey.in || '')} parameter name: {scheme.apiKey.name}
HTTP Authorization Scheme {scheme.http.scheme}
Bearer format "{scheme.http.bearerFormat}"
Connect URL \n \n {scheme.openId.connectUrl}\n \n
\n
\n
\n
\n
);\n }\n\n}","import { Lambda, observe } from 'mobx';\nimport { OpenAPISpec } from '../types';\nimport { loadAndBundleSpec } from '../utils/loadAndBundleSpec';\nimport { history } from './HistoryService';\nimport { MarkerService } from './MarkerService';\nimport { MenuStore } from './MenuStore';\nimport { SpecStore } from './models';\nimport { RedocNormalizedOptions, RedocRawOptions } from './RedocNormalizedOptions';\nimport { ScrollService } from './ScrollService';\nimport { SearchStore } from './SearchStore';\nimport { SchemaDefinition } from '../components/SchemaDefinition/SchemaDefinition';\nimport { SecurityDefs } from '../components/SecuritySchemes/SecuritySchemes';\nimport { SCHEMA_DEFINITION_JSX_NAME, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { IS_BROWSER } from '../utils';\nexport interface StoreState {\n menu: {\n activeItemIdx: number;\n };\n spec: {\n url?: string;\n data: any;\n };\n searchIndex: any;\n options: RedocRawOptions;\n}\nexport async function createStore(spec: object, specUrl: string | undefined, options: RedocRawOptions = {}) {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl);\n return new AppStore(resolvedSpec, specUrl, options);\n}\nexport class AppStore {\n /**\n * deserialize store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO:\n static fromJS(state: StoreState): AppStore {\n const inst = new AppStore(state.spec.data, state.spec.url, state.options, false);\n inst.menu.activeItemIdx = state.menu.activeItemIdx || 0;\n inst.menu.activate(inst.menu.flatItems[inst.menu.activeItemIdx]);\n\n if (!inst.options.disableSearch) {\n inst.search!.load(state.searchIndex);\n }\n\n return inst;\n }\n\n menu: MenuStore;\n spec: SpecStore;\n rawOptions: RedocRawOptions;\n options: RedocNormalizedOptions;\n search?: SearchStore;\n marker = new MarkerService();\n private scroll: ScrollService;\n private disposer: Lambda | null = null;\n\n constructor(spec: OpenAPISpec, specUrl?: string, options: RedocRawOptions = {}, createSearchIndex: boolean = true) {\n this.rawOptions = options;\n this.options = new RedocNormalizedOptions(options, DEFAULT_OPTIONS);\n this.scroll = new ScrollService(this.options); // update position statically based on hash (in case of SSR)\n\n MenuStore.updateOnHistory(history.currentId, this.scroll);\n this.spec = new SpecStore(spec, specUrl, this.options);\n this.menu = new MenuStore(this.spec, this.scroll, history);\n\n if (!this.options.disableSearch) {\n this.search = new SearchStore();\n\n if (createSearchIndex) {\n this.search.indexItems(this.menu.items);\n }\n\n this.disposer = observe(this.menu, 'activeItemIdx', change => {\n this.updateMarkOnMenu((change.newValue as number));\n });\n }\n }\n\n onDidMount() {\n this.menu.updateOnHistory();\n this.updateMarkOnMenu(this.menu.activeItemIdx);\n }\n\n dispose() {\n this.scroll.dispose();\n this.menu.dispose();\n\n if (this.search) {\n this.search.dispose();\n }\n\n if (this.disposer != null) {\n this.disposer();\n }\n }\n /**\n * serializes store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO: improve\n\n\n async toJS(): Promise {\n return {\n menu: {\n activeItemIdx: this.menu.activeItemIdx\n },\n spec: {\n url: this.spec.parser.specUrl,\n data: this.spec.parser.spec\n },\n searchIndex: this.search ? await this.search.toJS() : undefined,\n options: this.rawOptions\n };\n }\n\n private updateMarkOnMenu(idx: number) {\n const start = Math.max(0, idx);\n const end = Math.min(this.menu.flatItems.length, start + 5);\n const elements: Element[] = [];\n\n for (let i = start; i < end; i++) {\n const elem = this.menu.getElementAt(i);\n\n if (!elem) {\n continue;\n }\n\n elements.push(elem);\n }\n\n if (idx === -1 && IS_BROWSER) {\n const $description = document.querySelector('[data-role=\"redoc-description\"]');\n if ($description) elements.push($description);\n }\n\n this.marker.addOnly(elements);\n this.marker.mark();\n }\n\n}\nconst DEFAULT_OPTIONS: RedocRawOptions = {\n allowedMdComponents: {\n [SECURITY_DEFINITIONS_COMPONENT_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SECURITY_DEFINITIONS_JSX_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SCHEMA_DEFINITION_JSX_NAME]: {\n component: SchemaDefinition,\n propsSelector: (store: AppStore) => ({\n parser: store.spec.parser,\n options: store.options\n })\n }\n }\n};","export * from './AppStore';\nexport * from './OpenAPIParser';\nexport * from './MarkdownRenderer';\nexport * from './MenuStore';\nexport * from './ScrollService';\nexport * from './SpecStore';\nexport * from './ClipboardService';\nexport * from './HistoryService';\nexport * from './models';\nexport * from './RedocNormalizedOptions';\nexport * from './MenuBuilder';\nexport * from './SearchStore';\nexport * from './MarkerService';","import { H1, MiddlePanel } from '../../common-elements';\nimport styled, { extensionsHook } from '../../styled-components';\nconst delimiterWidth = 15;\nexport const ApiInfoWrap = MiddlePanel;\nexport const ApiHeader = styled(H1)`\n margin-top: 0;\n margin-bottom: 0.5em;\n display: flex;\n\n ${extensionsHook('ApiHeader')};\n`;\nexport const AdditionalDocLink = styled.a`\n text-decoration:none\n font-size: 16px;\n color: #0084CE;\n &:hover {\n color: #00639B;\n }\n`;\nexport const DownloadButton = styled.a`\n border-radius: 16px;\n color: #FFFFFF;\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n margin-left: 0.5em;\n padding: 6px 24px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n background: #0084CE;\n &:hover {\n background: #339DD8;\n color: #FFFFFF;\n }\n &:active {\n background: #00639B;\n color: #FFFFFF;\n }\n\n ${extensionsHook('DownloadButton')};\n`;\nexport const InfoSpan = styled.span`\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ${delimiterWidth}px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n`;\nexport const InfoSpanBoxWrap = styled.div`\n overflow: hidden;\n`;\nexport const InfoSpanBox = styled.div`\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -${delimiterWidth}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { AppStore } from '../../services/AppStore';\nimport { MiddlePanel, Row, Section } from '../../common-elements/';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nimport { AdditionalDocLink, ApiHeader, DownloadButton, InfoSpan, InfoSpanBox, InfoSpanBoxWrap } from './styled.elements';\nexport interface ApiInfoProps {\n store: AppStore;\n}\n@observer\nexport class ApiInfo extends React.Component {\n state = {\n gotoIconColor: '#0084CE',\n gotoTextColor: '#0084CE'\n };\n handleHoverState = () => {\n this.setState({\n gotoIconColor: '#339DD8',\n gotoTextColor: '#339DD8'\n });\n };\n handleActiveState = () => {\n this.setState({\n gotoIconColor: '#00639B',\n gotoTextColor: '#00639B'\n });\n };\n handleLeaveState = () => {\n this.setState({\n gotoIconColor: '#0084CE',\n gotoTextColor: '#0084CE'\n });\n };\n handleDownloadClick = e => {\n if (!e.target.href) {\n e.target.href = this.props.store.spec.info.downloadLink;\n }\n };\n\n render() {\n const {\n store\n } = this.props;\n const {\n info,\n externalDocs\n } = store.spec;\n const hideDownloadButton = store.options.hideDownloadButton;\n const downloadFilename = info.downloadFileName;\n const downloadLink = info.downloadLink;\n const license = info.license && \n License: {info.license.name}\n || null;\n const website = info.contact && info.contact.url && \n URL: {info.contact.url}\n || null;\n const email = info.contact && info.contact.email && \n {info.contact.name || 'E-mail'}:{' '}\n {info.contact.email}\n || null;\n const terms = info.termsOfService && \n Terms of Service\n || null;\n const version = info.version && ({info.version}) || null;\n const hasAdditionalDoc = store.options.hasAdditionalDoc;\n return
\n \n \n \n
\n {info.title} {version}\n
\n {hasAdditionalDoc ?
\n \n \n \n \n \n \n \n \n Additional Docs\n \n \n
: null}\n
\n {!hideDownloadButton &&

\n Download OpenAPI specification:\n \n Download\n \n

}\n \n {(info.license || info.contact || info.termsOfService) && \n \n {email} {website} {license} {terms}\n \n || null}\n \n \n {externalDocs && }\n
\n
\n
;\n }\n\n}","export { ApiInfo } from './ApiInfo';","import styled from '../../styled-components';\nexport const ApiBackToText = styled.a`\n text-decoration:none\n padding: 50px 0 37px 15px;\n color: #0084CE;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n display: flex;\n align-items: center;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ApiBackToText } from './styled.elements';\n@observer\nexport class ApiBackTo extends React.Component<{\n isOt2: boolean;\n}> {\n state = {\n backTextColor: '#0084CE'\n };\n handleHoverState = () => {\n this.setState({\n backTextColor: '#339DD8'\n });\n };\n handleActiveState = () => {\n this.setState({\n backTextColor: '#00639B'\n });\n };\n handleLeaveState = () => {\n this.setState({\n backTextColor: '#0084CE'\n });\n };\n\n render() {\n const {\n isOt2\n } = this.props;\n return
\n \n \n \n \n\n {isOt2 ? OT2 services : OpenText product}\n \n
;\n }\n\n}","import * as classnames from 'classnames';\nimport { darken } from 'polished';\nimport { deprecatedCss, ShelfIcon } from '../../common-elements';\nimport styled, { css } from '../../styled-components';\nexport const OperationBadge = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `operation-type ${props.type}`\n}))<{\n type: string;\n}>`\n width: 32px;\n display: inline-block;\n height: ${props => props.theme.typography.code.fontSize};\n line-height: ${props => props.theme.typography.code.fontSize};\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ${props => props.theme.colors.http.get};\n }\n\n &.post {\n background-color: ${props => props.theme.colors.http.post};\n }\n\n &.put {\n background-color: ${props => props.theme.colors.http.put};\n }\n\n &.options {\n background-color: ${props => props.theme.colors.http.options};\n }\n\n &.patch {\n background-color: ${props => props.theme.colors.http.patch};\n }\n\n &.delete {\n background-color: ${props => props.theme.colors.http.delete};\n }\n\n &.basic {\n background-color: ${props => props.theme.colors.http.basic};\n }\n\n &.link {\n background-color: ${props => props.theme.colors.http.link};\n }\n\n &.head {\n background-color: ${props => props.theme.colors.http.head};\n }\n`;\n\nfunction menuItemActiveBg(depth, {\n theme\n}): string {\n if (depth > 1) {\n return darken(0.1, theme.menu.backgroundColor);\n } else if (depth === 1) {\n return darken(0.05, theme.menu.backgroundColor);\n } else {\n return '';\n }\n}\n\nexport const MenuItemUl = styled.ul<{\n expanded: boolean;\n}>`\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ${props => props.expanded ? '' : 'display: none;'};\n`;\nexport const MenuItemLi = styled.li<{\n depth: number;\n}>`\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ${props => props.depth === 0 ? 'margin-top: 15px' : ''};\n`;\nexport const menuItemDepth = {\n 0: css`\n opacity: 0.7;\n text-transform: ${({\n theme\n }) => theme.menu.groupItems.textTransform};\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ${props => props.theme.menu.textColor};\n `,\n 1: css`\n font-size: 0.929em;\n text-transform: ${({\n theme\n }) => theme.menu.level1Items.textTransform};\n &:hover {\n color: ${props => props.theme.menu.activeTextColor};\n }\n `,\n 2: css`\n color: ${props => props.theme.menu.textColor};\n `\n};\nexport interface MenuItemLabelType {\n depth: number;\n active: boolean;\n deprecated?: boolean;\n type?: string;\n}\nexport const MenuItemLabel = styled.label.attrs((props: MenuItemLabelType) => ({\n role: 'menuitem',\n className: classnames('-depth' + props.depth, {\n active: props.active\n })\n}))`\n cursor: pointer;\n color: ${props => props.active ? props.theme.menu.activeTextColor : props.theme.menu.textColor};\n margin: 0;\n padding: 12.5px ${props => props.theme.spacing.unit * 4}px;\n ${({\n depth,\n type,\n theme\n}) => type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;' || ''}\n display: flex;\n justify-content: space-between;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n ${props => menuItemDepth[props.depth]};\n background-color: ${props => props.active ? menuItemActiveBg(props.depth, props) : ''};\n\n ${props => props.deprecated && deprecatedCss || ''};\n\n &:hover {\n background-color: ${props => menuItemActiveBg(props.depth, props)};\n }\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.menu.arrow.size};\n width: ${({\n theme\n}) => theme.menu.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.menu.arrow.color};\n }\n }\n`;\nexport const MenuItemTitle = styled.span<{\n width?: string;\n}>`\n display: inline-block;\n vertical-align: middle;\n width: ${props => props.width ? props.width : 'auto'};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexport const RedocAttribution = styled.div`\n ${({\n theme\n}) => `\n font-size: 0.8em;\n margin-top: ${theme.spacing.unit * 2}px;\n padding: 0 ${theme.spacing.unit * 4}px;\n text-align: left;\n\n opacity: 0.7;\n\n a,\n a:visited,\n a:hover {\n color: ${theme.menu.textColor} !important;\n border-top: 1px solid ${darken(0.1, theme.menu.backgroundColor)};\n padding: ${theme.spacing.unit}px 0;\n display: block;\n }\n`};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem } from '../../services';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemUl } from './styled.elements';\nexport interface MenuItemsProps {\n items: IMenuItem[];\n expanded?: boolean;\n onActivate?: (item: IMenuItem) => void;\n style?: React.CSSProperties;\n root?: boolean;\n className?: string;\n}\n@observer\nexport class MenuItems extends React.Component {\n render() {\n const {\n items,\n root,\n className\n } = this.props;\n const expanded = this.props.expanded == null ? true : this.props.expanded;\n return \n {items.map((item, idx) => )}\n ;\n }\n\n}","// import { observe } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ShelfIcon } from '../../common-elements/shelfs';\nimport { IMenuItem, OperationModel } from '../../services';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport { MenuItems } from './MenuItems';\nimport { MenuItemLabel, MenuItemLi, MenuItemTitle, OperationBadge } from './styled.elements';\nexport interface MenuItemProps {\n item: IMenuItem;\n onActivate?: (item: IMenuItem) => void;\n withoutChildren?: boolean;\n}\n@observer\nexport class MenuItem extends React.Component {\n ref = React.createRef();\n activate = (evt: React.MouseEvent) => {\n this.props.onActivate!(this.props.item);\n evt.stopPropagation();\n };\n\n componentDidMount() {\n this.scrollIntoViewIfActive();\n }\n\n componentDidUpdate() {\n this.scrollIntoViewIfActive();\n }\n\n scrollIntoViewIfActive() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item,\n withoutChildren\n } = this.props;\n return \n {item.type === 'operation' ? : \n \n {item.name}\n {this.props.children}\n \n {item.depth > 0 && item.items.length > 0 && || null}\n }\n {!withoutChildren && item.items && item.items.length > 0 && }\n ;\n }\n\n}\nexport interface OperationMenuItemContentProps {\n item: OperationModel;\n}\n@observer\nexport class OperationMenuItemContent extends React.Component {\n ref = React.createRef();\n\n componentDidUpdate() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item\n } = this.props;\n return \n {shortenHTTPVerb(item.httpVerb)}\n \n {item.name}\n {this.props.children}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { darken, getLuminance, lighten } from 'polished';\nimport styled from '../../styled-components';\nimport { MenuItemLabel } from '../SideMenu/styled.elements';\nexport const SearchWrap = styled.div`\n padding: 5px 0;\n`;\nexport const SearchInput = styled.input.attrs(() => ({\n className: 'search-input'\n}))`\n width: calc(100% - ${props => props.theme.spacing.unit * 8}px);\n box-sizing: border-box;\n margin: 0 ${props => props.theme.spacing.unit * 4}px;\n padding: 5px ${props => props.theme.spacing.unit * 2}px 5px\n ${props => props.theme.spacing.unit * 4}px;\n border: 0;\n border-bottom: 1px solid\n ${({\n theme\n}) => (getLuminance(theme.menu.backgroundColor) > 0.5 ? darken : lighten)(0.1, theme.menu.backgroundColor)};\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-weight: bold;\n font-size: 13px;\n color: ${props => props.theme.menu.textColor};\n background-color: transparent;\n outline: none;\n`;\nexport const SearchIcon = styled((props: {\n className?: string;\n}) => \n \n ).attrs({\n className: 'search-icon'\n})`\n position: absolute;\n left: ${props => props.theme.spacing.unit * 4}px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ${props => props.theme.menu.textColor};\n }\n`;\nexport const SearchResultsBox = styled.div`\n padding: ${props => props.theme.spacing.unit}px 0;\n background-color: ${({\n theme\n}) => darken(0.05, theme.menu.backgroundColor)}};\n color: ${props => props.theme.menu.textColor};\n min-height: 150px;\n max-height: 250px;\n border-top: ${({\n theme\n}) => darken(0.1, theme.menu.backgroundColor)}};\n border-bottom: ${({\n theme\n}) => darken(0.1, theme.menu.backgroundColor)}};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ${MenuItemLabel} {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ${({\n theme\n}) => darken(0.1, theme.menu.backgroundColor)};\n }\n\n > svg {\n display: none;\n }\n }\n`;\nexport const ClearIcon = styled.i`\n position: absolute;\n display: inline-block;\n width: ${props => props.theme.spacing.unit * 2}px;\n text-align: center;\n right: ${props => props.theme.spacing.unit * 4}px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n`;","import * as React from 'react';\nimport { IMenuItem } from '../../services/MenuStore';\nimport { SearchStore } from '../../services/SearchStore';\nimport { MenuItem } from '../SideMenu/MenuItem';\nimport { MarkerService } from '../../services/MarkerService';\nimport { SearchResult } from '../../services/SearchWorker.worker';\nimport { bind, debounce } from 'decko';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { ClearIcon, SearchIcon, SearchInput, SearchResultsBox, SearchWrap } from './styled.elements';\nexport interface SearchBoxProps {\n search: SearchStore;\n marker: MarkerService;\n getItemById: (id: string) => IMenuItem | undefined;\n onActivate: (item: IMenuItem) => void;\n className?: string;\n}\nexport interface SearchBoxState {\n results: SearchResult[];\n term: string;\n activeItemIdx: number;\n}\nexport class SearchBox extends React.PureComponent {\n activeItemRef: MenuItem | null = null;\n\n constructor(props) {\n super(props);\n this.state = {\n results: [],\n term: '',\n activeItemIdx: -1\n };\n }\n\n clearResults(term: string) {\n this.setState({\n results: [],\n term\n });\n this.props.marker.unmark();\n }\n\n clear = () => {\n this.setState({\n results: [],\n term: '',\n activeItemIdx: -1\n });\n this.props.marker.unmark();\n };\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 27) {\n // ESQ\n this.clear();\n }\n\n if (event.keyCode === 40) {\n // Arrow down\n this.setState({\n activeItemIdx: Math.min(this.state.activeItemIdx + 1, this.state.results.length - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 38) {\n // Arrow up\n this.setState({\n activeItemIdx: Math.max(0, this.state.activeItemIdx - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 13) {\n // enter\n const activeResult = this.state.results[this.state.activeItemIdx];\n\n if (activeResult) {\n const item = this.props.getItemById(activeResult.meta);\n\n if (item) {\n this.props.onActivate(item);\n }\n }\n }\n };\n\n setResults(results: SearchResult[], term: string) {\n this.setState({\n results\n });\n this.props.marker.mark(term);\n }\n\n @bind\n @debounce(400)\n searchCallback(searchTerm: string) {\n this.props.search.search(searchTerm).then(res => {\n this.setResults(res, searchTerm);\n });\n }\n\n search = (event: React.ChangeEvent) => {\n const q = event.target.value;\n\n if (q.length < 3) {\n this.clearResults(q);\n return;\n }\n\n this.setState({\n term: q\n }, () => this.searchCallback(this.state.term));\n };\n\n render() {\n const {\n activeItemIdx\n } = this.state;\n const results = this.state.results.map(res => ({\n item: this.props.getItemById(res.meta)!,\n score: res.score\n }));\n results.sort((a, b) => b.score - a.score);\n return \n {this.state.term && ×}\n \n \n {results.length > 0 && \n \n {results.map((res, idx) => )}\n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem, MenuStore } from '../../services/MenuStore';\nimport { OptionsContext } from '../OptionsProvider';\nimport { MenuItems } from './MenuItems';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\n@observer\nexport class SideMenu extends React.Component<{\n menu: MenuStore;\n className?: string;\n}> {\n static contextType = OptionsContext;\n private _updateScroll?: () => void;\n\n render() {\n const store = this.props.menu;\n return \n \n ;\n }\n\n activate = (item: IMenuItem) => {\n if (item && item.active && this.context.menuToggle) {\n return item.expanded ? item.collapse() : item.expand();\n }\n\n this.props.menu.activateAndScroll(item, true);\n setTimeout(() => {\n if (this._updateScroll) {\n this._updateScroll();\n }\n });\n };\n private saveScrollUpdate = upd => {\n this._updateScroll = upd;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const AnimatedChevronButton = ({\n open\n}: {\n open: boolean;\n}) => {\n const iconOffset = open ? 8 : -4;\n return \n \n \n ;\n}; // adapted from reactjs.org\n\nconst ChevronSvg = ({\n size = 10,\n className = '',\n style\n}) => \n \n \n \n ;\n\nconst ChevronContainer = styled.div`\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ${props => props.theme.colors.primary.main};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MenuStore } from '../../services/MenuStore';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../../services/RedocNormalizedOptions';\nimport styled, { media } from '../../styled-components';\nimport { IS_BROWSER } from '../../utils/index';\nimport { OptionsContext } from '../OptionsProvider';\nimport { AnimatedChevronButton } from './ChevronSvg';\nlet Stickyfill;\n\nif (IS_BROWSER) {\n Stickyfill = require('stickyfill');\n}\n\nexport interface StickySidebarProps {\n className?: string;\n scrollYOffset?: RedocRawOptions['scrollYOffset']; // passed directly or via context\n\n menu: MenuStore;\n}\nexport interface StickySidebarState {\n offsetTop?: string;\n}\nconst stickyfill = Stickyfill && Stickyfill();\nconst StyledStickySidebar = styled.div<{\n open?: boolean;\n}>`\n width: ${props => props.theme.menu.width};\n background-color: ${props => props.theme.menu.backgroundColor};\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ${media.lessThan('small')`\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ${({\n theme\n}) => theme.menu.backgroundColor};\n display: ${props => props.open ? 'flex' : 'none'};\n `};\n\n @media print {\n display: none;\n }\n`;\nconst FloatingButton = styled.div`\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ${props => props.theme.colors.primary.main};\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ${media.lessThan('small')`\n display: flex;\n `};\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n`;\n@observer\nexport class StickyResponsiveSidebar extends React.Component {\n static contextType = OptionsContext;\n context!: React.ContextType;\n state: StickySidebarState = {\n offsetTop: '0px'\n };\n stickyElement: Element;\n\n componentDidMount() {\n if (stickyfill) {\n stickyfill.add(this.stickyElement);\n } // rerender when hydrating from SSR\n // see https://github.com/facebook/react/issues/8017#issuecomment-256351955\n\n\n this.setState({\n offsetTop: this.getScrollYOffset(this.context)\n });\n }\n\n componentWillUnmount() {\n if (stickyfill) {\n stickyfill.remove(this.stickyElement);\n }\n }\n\n getScrollYOffset(options: RedocNormalizedOptions) {\n let top;\n\n if (this.props.scrollYOffset !== undefined) {\n top = RedocNormalizedOptions.normalizeScrollYOffset(this.props.scrollYOffset)();\n } else {\n top = options.scrollYOffset();\n }\n\n return top + 'px';\n }\n\n render() {\n const open = this.props.menu.sideBarOpened;\n const top = this.state.offsetTop;\n return <>\n {\n this.stickyElement = (el as any);\n }}>\n {this.props.children}\n \n \n \n \n ;\n }\n\n private toggleNavMenu = () => {\n this.props.menu.toggleSidebar();\n };\n}","import styled, { media } from '../../styled-components';\nexport const RedocWrap = styled.div`\n ${({\n theme\n}) => `\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize};\n font-weight: ${theme.typography.fontWeightRegular};\n line-height: ${theme.typography.lineHeight};\n color: ${theme.colors.text.primary};\n display: flex;\n position: relative;\n text-align: left;\n\n -webkit-font-smoothing: ${theme.typography.smoothing};\n font-smoothing: ${theme.typography.smoothing};\n ${theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important' || ''};\n\n tap-highlight-color: rgba(0, 0, 0, 0);\n text-size-adjust: 100%;\n\n * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n }\n`};\n`;\nexport const ApiContentWrap = styled.div`\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ${props => props.theme.menu.width});\n ${media.lessThan('small', true)`\n width: 100%;\n `};\n\n contain: layout;\n`;\nexport const BackgroundStub = styled.div`\n background: ${({\n theme\n}) => theme.rightPanel.backgroundColor};\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ${({\n theme\n}) => {\n if (theme.rightPanel.width.endsWith('%')) {\n const percents = parseInt(theme.rightPanel.width, 10);\n return `calc((100% - ${theme.menu.width}) * ${percents / 100})`;\n } else {\n return theme.rightPanel.width;\n }\n}};\n ${media.lessThan('medium', true)`\n display: none;\n `};\n`;","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { ContentItems } from '../../../src/components';\nimport { AppStore } from '../../services';\nimport { ThemeProvider } from '../../styled-components';\nimport { ApiInfo } from '../ApiInfo/';\nimport { ApiBackTo } from '../ApiBackTo/ApiBackTo';\nimport { OptionsProvider } from '../OptionsProvider';\nimport { SearchBox } from '../SearchBox/SearchBox';\nimport { SideMenu } from '../SideMenu/SideMenu';\nimport { StickyResponsiveSidebar } from '../StickySidebar/StickyResponsiveSidebar';\nimport { StoreProvider } from '../StoreBuilder';\nimport { ApiContentWrap, BackgroundStub, RedocWrap } from './styled.elements';\nexport interface RedocProps {\n store: AppStore;\n}\nexport class Redoc extends React.Component {\n static propTypes = {\n store: PropTypes.instanceOf(AppStore).isRequired\n };\n\n componentDidMount() {\n this.props.store.onDidMount();\n }\n\n componentWillUnmount() {\n this.props.store.dispose();\n }\n\n render() {\n const {\n store: {\n menu,\n options,\n search,\n marker\n }\n } = this.props;\n const store = this.props.store;\n return \n \n \n \n \n \n {!options.disableSearch && || null}\n \n \n \n \n \n \n \n \n \n \n ;\n }\n\n}","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { Loading } from './Loading/Loading';\nimport { Redoc } from './Redoc/Redoc';\nimport { StoreBuilder } from './StoreBuilder';\nexport interface RedocStandaloneProps {\n spec?: object;\n specUrl?: string;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => any;\n}\nexport class RedocStandalone extends React.PureComponent {\n static propTypes = {\n spec: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n specUrl: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n options: PropTypes.any,\n onLoaded: PropTypes.any\n };\n\n render() {\n const {\n spec,\n specUrl,\n options = {},\n onLoaded\n } = this.props;\n const hideLoading = options.hideLoading !== undefined;\n const normalizedOpts = new RedocNormalizedOptions(options);\n return \n \n {({\n loading,\n store\n }) => !loading ? : hideLoading ? null : }\n \n ;\n }\n\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const LogoImgEl = styled.img`\n max-height: ${props => props.theme.logo.maxHeight};\n max-width: ${props => props.theme.logo.maxWidth};\n padding: ${props => props.theme.logo.gutter};\n width: 100%;\n display: block;\n`;\nexport const LogoWrap = styled.div`\n text-align: center;\n`;\nconst Link = styled.a`\n display: inline-block;\n`;\nexport const LinkWrap = url => Component => {Component};","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OpenAPIInfo } from '../../types';\nimport { LinkWrap, LogoImgEl, LogoWrap } from './styled.elements';\n@observer\nexport class ApiLogo extends React.Component<{\n info: OpenAPIInfo;\n}> {\n render() {\n const {\n info\n } = this.props;\n const logoInfo = info['x-logo'];\n\n if (!logoInfo || !logoInfo.url) {\n return null;\n }\n\n const logoHref = logoInfo.href || info.contact && info.contact.url; // Use the english word logo if no alt text is provided\n\n const altText = logoInfo.altText ? logoInfo.altText : 'logo';\n const logo = ;\n return \n {logoHref ? LinkWrap(logoHref)(logo) : logo}\n ;\n }\n\n}","import * as React from 'react';\nimport { AppStore, MarkdownRenderer, RedocNormalizedOptions } from '../../services';\nimport { BaseMarkdownProps } from './Markdown';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StoreConsumer } from '../StoreBuilder';\nexport interface AdvancedMarkdownProps extends BaseMarkdownProps {\n htmlWrap?: (part: JSX.Element) => JSX.Element;\n}\nexport class AdvancedMarkdown extends React.Component {\n render() {\n return \n {options => {store => this.renderWithOptionsAndStore(options, store)}}\n ;\n }\n\n renderWithOptionsAndStore(options: RedocNormalizedOptions, store?: AppStore) {\n const {\n source,\n htmlWrap = i => i\n } = this.props;\n\n if (!store) {\n throw new Error('When using components in markdown, store prop must be provided');\n }\n\n const renderer = new MarkdownRenderer(options);\n const parts = renderer.renderMdWithComponents(source);\n\n if (!parts.length) {\n return null;\n }\n\n return parts.map((part, idx) => {\n if (typeof part === 'string') {\n return React.cloneElement(htmlWrap(), {\n key: idx\n });\n }\n\n return ;\n });\n }\n\n}","import * as React from 'react';\nimport { ClipboardService } from '../../services';\nexport class SelectOnClick extends React.PureComponent {\n private child: HTMLDivElement | null;\n handleClick = () => {\n ClipboardService.selectElement(this.child);\n };\n\n render() {\n const {\n children\n } = this.props;\n return
this.child = el} onClick={this.handleClick}>\n {children}\n
;\n }\n\n}","import styled from '../../styled-components';\nexport const OperationEndpointWrap = styled.div`\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n`;\nexport const ServerRelativeURL = styled.span`\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n`;\nexport const EndpointInfo = styled.div<{\n expanded?: boolean;\n inverted?: boolean;\n}>`\n padding: 10px 30px 10px ${props => props.inverted ? '10px' : '20px'};\n border-radius: ${props => props.inverted ? '0' : '4px 4px 0 0'};\n background-color: ${props => props.inverted ? 'transparent' : props.theme.codeSample.backgroundColor};\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ${props => props.inverted ? '0' : '1px solid transparent'};\n border-bottom: ${props => props.inverted ? '1px solid #ccc' : '0'};\n transition: border-color 0.25s ease;\n\n ${props => props.expanded && !props.inverted && `border-color: ${props.theme.colors.border.dark};` || ''}\n\n .${ServerRelativeURL} {\n color: ${props => props.inverted ? props.theme.colors.text.primary : '#ffffff'}\n }\n`;\nexport const HttpVerb = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `http-verb ${props.type}`\n}))<{\n type: string;\n}>`\n font-size: 0.929em;\n line-height: 20px;\n background-color: ${(props: any) => props.theme.colors.http[props.type] || '#999999'};\n color: #ffffff;\n padding: 3px 10px;\n text-transform: uppercase;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n margin: 0;\n`;\nexport const ServersOverlay = styled.div<{\n expanded: boolean;\n}>`\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0s ease;\n\n ${props => props.expanded ? '' : 'transform: translateY(-50%) scaleY(0);'}\n`;\nexport const ServerItem = styled.div`\n padding: 10px;\n`;\nexport const ServerUrl = styled.div`\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ${props => props.theme.colors.primary.main};\n > span {\n color: ${props => props.theme.colors.text.primary};\n }\n`;","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationModel } from '../../services';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { SelectOnClick } from '../SelectOnClick/SelectOnClick';\nimport { expandDefaultServerVariables, getBasePath } from '../../utils';\nimport { EndpointInfo, HttpVerb, OperationEndpointWrap, ServerItem, ServerRelativeURL, ServersOverlay, ServerUrl } from './styled.elements';\nexport interface EndpointProps {\n operation: OperationModel;\n hideHostname?: boolean;\n inverted?: boolean;\n}\nexport interface EndpointState {\n expanded: boolean;\n}\nexport class Endpoint extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false\n };\n }\n\n toggle = () => {\n this.setState({\n expanded: !this.state.expanded\n });\n };\n\n render() {\n const {\n operation,\n inverted,\n hideHostname\n } = this.props;\n const {\n expanded\n } = this.state; // TODO: highlight server variables, e.g. https://{user}.test.com\n\n return \n {options => \n \n {operation.httpVerb}{' '}\n {operation.path}\n \n \n \n {operation.servers.map(server => {\n const normalizedUrl = options.expandDefaultServerVariables ? expandDefaultServerVariables(server.url, server.variables) : server.url;\n return \n \n \n \n \n {hideHostname || options.hideHostname ? getBasePath(normalizedUrl) : normalizedUrl}\n \n {operation.path}\n \n \n ;\n })}\n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps } from '../../common-elements/dropdown';\nimport { MediaContentModel, MediaTypeModel, SchemaModel } from '../../services/models';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface MediaTypeChildProps {\n schema: SchemaModel;\n mime?: string;\n}\nexport interface MediaTypesSwitchProps {\n content?: MediaContentModel;\n withLabel?: boolean;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeMime: MediaTypeModel) => JSX.Element;\n}\n@observer\nexport class MediaTypesSwitch extends React.Component {\n switchMedia = ({\n value\n }) => {\n if (this.props.content) {\n this.props.content.activate(parseInt(value, 10));\n }\n };\n\n render() {\n const {\n content\n } = this.props;\n\n if (!content || !content.mediaTypes || !content.mediaTypes.length) {\n return null;\n }\n\n const activeMimeIdx = content.activeMimeIdx;\n const options = content.mediaTypes.map((mime, idx) => {\n return {\n label: mime.name,\n value: idx.toString()\n };\n });\n\n const Wrapper = ({\n children\n }) => this.props.withLabel ? \n Content type\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: options[activeMimeIdx],\n options,\n onChange: this.switchMedia\n })}\n \n {this.props.children(content.active)}\n ;\n }\n\n}","// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport ReactDropdown from 'react-dropdown';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MediaTypeSamples } from './MediaTypeSamples';\nimport { MediaContentModel } from '../../services/models';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { InvertedSimpleDropdown, MimeLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n content: MediaContentModel;\n}\n@observer\nexport class PayloadSamples extends React.Component {\n render() {\n const mimeContent = this.props.content;\n\n if (mimeContent === undefined) {\n return null;\n }\n\n return \n {mediaType => }\n ;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { isPayloadSample, OperationModel, RedocNormalizedOptions } from '../../services';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface RequestSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class RequestSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const samples = operation.codeSamples;\n const hasSamples = samples.length > 0;\n const hideTabList = samples.length === 1 ? this.context.hideSingleRequestSampleTab : false;\n return hasSamples &&
\n Request samples \n\n \n \n {samples.map(sample => \n {isPayloadSample(sample) ?
\n \n
: }\n
)}\n
\n
|| null;\n }\n\n}","export class Constants {\n static readonly OTX_EXTENSION_KEY = 'x-opentext-other';\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MiddlePanel, Row } from '../../../src/common-elements';\ninterface ContentPanelProps {\n content: string;\n}\n@observer\nexport class ContentPanel extends React.Component {\n render() {\n return <>\n \n \n

\n {this.props.content}\n

\n
\n
\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseSamples } from '../../../src/components';\nimport { Endpoint } from '../../../src/components/Endpoint/Endpoint';\nimport { RequestSamples } from '../../../src/components/RequestSamples/RequestSamples';\nimport { RedocNormalizedOptions } from '../../../src/services';\nimport { Constants } from '../../../src/services/Constants';\nimport { OperationModel } from '../../../src/services/models';\nimport { ContentPanel } from './/ContentPanel';\ninterface RightPanelContentProps {\n operation: OperationModel;\n options: RedocNormalizedOptions;\n}\n@observer\nexport class OperationPanel extends React.Component {\n render() {\n if (this.shouldShowOtherInfoPanel()) {\n return ;\n } else {\n return <>\n {!this.props.options.pathInMiddlePanel && }\n \n \n ;\n }\n }\n\n private shouldShowOtherInfoPanel() {\n return this.props.options.showExtensions && this.props.operation.extensions[Constants.OTX_EXTENSION_KEY];\n }\n\n}","import * as React from 'react';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { Field } from '../Fields/Field';\nimport { mapWithLast } from '../../utils';\nexport interface ParametersGroupProps {\n place: string;\n parameters: FieldModel[];\n}\nexport class ParametersGroup extends React.PureComponent {\n render() {\n const {\n place,\n parameters\n } = this.props;\n\n if (!parameters || !parameters.length) {\n return null;\n }\n\n return
\n {place} Parameters\n \n \n {mapWithLast(parameters, (field, isLast) => )}\n \n \n
;\n }\n\n}","import * as React from 'react';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { ParametersGroup } from './ParametersGroup';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { MediaContentModel } from '../../services';\nimport { FieldModel, RequestBodyModel } from '../../services/models';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\n\nfunction safePush(obj, prop, item) {\n if (!obj[prop]) {\n obj[prop] = [];\n }\n\n obj[prop].push(item);\n}\n\nexport interface ParametersProps {\n parameters?: FieldModel[];\n body?: RequestBodyModel;\n}\nconst PARAM_PLACES = ['path', 'query', 'cookie', 'header'];\nexport class Parameters extends React.PureComponent {\n orderParams(params: FieldModel[]): Dict {\n const res = {};\n params.forEach(param => {\n safePush(res, param.in, param);\n });\n return res;\n }\n\n render() {\n const {\n body,\n parameters = []\n } = this.props;\n\n if (body === undefined && parameters === undefined) {\n return null;\n }\n\n const paramsMap = this.orderParams(parameters);\n const paramsPlaces = parameters.length > 0 ? PARAM_PLACES : [];\n const bodyContent = body && body.content;\n const bodyDescription = body && body.description;\n return <>\n {paramsPlaces.map(place => )}\n {bodyContent && }\n ;\n }\n\n}\n\nfunction DropdownWithinHeader(props) {\n return \n Request Body schema: \n ;\n}\n\nfunction BodyContent(props: {\n content: MediaContentModel;\n description?: string;\n}): JSX.Element {\n const {\n content,\n description\n } = props;\n return \n {({\n schema\n }) => {\n return <>\n {description !== undefined && }\n \n ;\n }}\n ;\n}","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { Markdown } from '../Markdown/Markdown';\nexport interface ResponseTitleProps {\n code: string;\n title: string;\n type: string;\n empty?: boolean;\n opened?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class ResponseTitle extends React.PureComponent {\n render() {\n const {\n title,\n type,\n empty,\n code,\n opened,\n className,\n onClick\n } = this.props;\n return
\n {!empty && }\n {code} \n \n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport { UnderlinedHeader } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { ResponseTitle } from './ResponseTitle';\nexport const StyledResponseTitle = styled(ResponseTitle)`\n padding: 10px;\n border-radius: 6px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ${props => props.theme.colors.responses[props.type].color};\n background-color: ${props => props.theme.colors.responses[props.type].backgroundColor};\n\n ${props => props.empty && `\ncursor: default;\n&::before {\n content: \"—\";\n font-weight: bold;\n width: 1.5em;\n text-align: center;\n display: inline-block;\n}\n` || ''};\n`;\nexport const ResponseDetailsWrap = styled.div`\n padding: 10px;\n`;\nexport const HeadersCaption = styled(UnderlinedHeader.withComponent('caption'))`\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n`;","import * as React from 'react';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { mapWithLast } from '../../utils';\nimport { Field } from '../Fields/Field';\nimport { HeadersCaption } from './styled.elements';\nexport interface ResponseHeadersProps {\n headers?: FieldModel[];\n}\nexport class ResponseHeaders extends React.PureComponent {\n render() {\n const {\n headers\n } = this.props;\n\n if (headers === undefined || headers.length === 0) {\n return null;\n }\n\n return \n Response Headers \n \n {mapWithLast(headers, (header, isLast) => )}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\nimport { ResponseHeaders } from './ResponseHeaders';\nexport class ResponseDetails extends React.PureComponent<{\n response: ResponseModel;\n}> {\n render() {\n const {\n description,\n headers,\n content\n } = this.props.response;\n return <>\n {description && }\n \n \n {({\n schema\n }) => {\n return ;\n }}\n \n ;\n }\n\n private renderDropdown = props => {\n return \n Response Schema: \n ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { ResponseDetails } from './ResponseDetails';\nimport { ResponseDetailsWrap, StyledResponseTitle } from './styled.elements';\n@observer\nexport class ResponseView extends React.Component<{\n response: ResponseModel;\n}> {\n toggle = () => {\n this.props.response.toggle();\n };\n\n render() {\n const {\n headers,\n type,\n summary,\n description,\n code,\n expanded,\n content\n } = this.props.response;\n const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined);\n const empty = headers.length === 0 && mimes.length === 0 && !description;\n return
\n \n {expanded && !empty && \n \n }\n
;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { ResponseView } from './Response';\nconst ResponsesHeader = styled.h3`\n font-size: 18px;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: #253137;\n font-weight: normal;\n`;\nexport interface ResponseListProps {\n responses: ResponseModel[];\n}\nexport class ResponsesList extends React.PureComponent {\n render() {\n const {\n responses\n } = this.props;\n\n if (!responses || responses.length === 0) {\n return null;\n }\n\n return
\n Responses \n {responses.map(response => {\n return ;\n })}\n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { Link, UnderlinedHeader } from '../../common-elements/';\nimport { SecurityRequirementModel } from '../../services/models/SecurityRequirement';\nimport { linksCss } from '../Markdown/styled.elements';\nconst ScopeName = styled.code`\n font-size: ${props => props.theme.typography.code.fontSize};\n font-family: ${props => props.theme.typography.code.fontFamily};\n border: 1px solid ${({\n theme\n}) => theme.colors.border.dark};\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n`;\nconst SecurityRequirementAndWrap = styled.span`\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nconst SecurityRequirementOrWrap = styled.span`\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nexport interface SecurityRequirementProps {\n security: SecurityRequirementModel;\n}\nexport class SecurityRequirement extends React.PureComponent {\n render() {\n const security = this.props.security;\n return \n {security.schemes.map(scheme => {\n return \n {scheme.id}\n {scheme.scopes.length > 0 && ' ('}\n {scheme.scopes.map(scope => {scope})}\n {scheme.scopes.length > 0 && ') '}\n ;\n })}\n ;\n }\n\n}\nconst AuthHeaderColumn = styled.div`\n flex: 1;\n`;\nconst SecuritiesColumn = styled.div`\n width: ${props => props.theme.schema.defaultDetailsWidth};\n`;\nconst AuthHeader = styled(UnderlinedHeader)`\n display: inline-block;\n margin: 0;\n`;\nconst Wrap = styled.div`\n width: 100%;\n display: flex;\n margin: 1em 0;\n`;\nexport interface SecurityRequirementsProps {\n securities: SecurityRequirementModel[];\n}\nexport class SecurityRequirements extends React.PureComponent {\n render() {\n const securities = this.props.securities;\n\n if (!securities.length) {\n return null;\n }\n\n return \n \n Authorizations: \n \n \n {securities.map((security, idx) => )}\n \n ;\n }\n\n}","export * from './MenuItem';\nexport * from './MenuItems';\nexport * from './SideMenu';\nexport * from './styled.elements';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationPanel } from '../RightPanelContent/OperationPanel';\nimport { Badge, DarkRightPanel, H2, MiddlePanel, Row } from '../../common-elements';\nimport { OperationModel as OperationType } from '../../services/models';\nimport styled from '../../styled-components';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { shortenHTTPVerb } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nimport { Parameters } from '../Parameters/Parameters';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nimport { OperationBadge } from '../SideMenu';\nconst OperationRow = styled(Row)`\n backface-visibility: hidden;\n contain: content;\n\n overflow: hidden;\n`;\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 6}px;\n`;\nexport interface OperationProps {\n operation: OperationType;\n}\n@observer\nexport class Operation extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n name: summary,\n description,\n deprecated,\n externalDocs\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {options => \n \n
\n
\n {shortenHTTPVerb(operation.httpVerb)}\n
\n
\n
\n

\n {summary} {deprecated && Deprecated }\n

\n
\n
\n {options.pathInMiddlePanel && }\n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n
\n
\n
\n \n \n \n \n
\n \n \n \n
}\n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { AdvancedMarkdown } from '../Markdown/AdvancedMarkdown';\nimport { H1, H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { ContentItemModel } from '../../services/MenuBuilder';\nimport { GroupModel, OperationModel } from '../../services/models';\nimport { Operation } from '../Operation/Operation';\n@observer\nexport class ContentItems extends React.Component<{\n items: ContentItemModel[];\n}> {\n render() {\n const items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n return items.map(item => );\n }\n\n}\nexport interface ContentItemProps {\n item: ContentItemModel;\n}\n@observer\nexport class ContentItem extends React.Component {\n render() {\n const item = this.props.item;\n let content;\n const {\n type\n } = item;\n\n switch (type) {\n case 'group':\n content = null;\n break;\n\n case 'tag':\n case 'section':\n content = ;\n break;\n\n case 'operation':\n content = ;\n break;\n\n default:\n content = ;\n }\n\n return <>\n {content &&
\n {content}\n
}\n {item.items && }\n ;\n }\n\n}\n\nconst middlePanelWrap = component => {component};\n\n@observer\nexport class SectionItem extends React.Component {\n render() {\n const {\n name,\n description,\n externalDocs,\n level\n } = (this.props.item as GroupModel);\n const Header = level === 2 ? H2 : H1;\n return <>\n \n \n
\n \n {name}\n
\n
\n
\n \n {externalDocs && \n \n \n \n }\n ;\n }\n\n}\n@observer\nexport class OperationItem extends React.Component<{\n item: OperationModel;\n}> {\n render() {\n return ;\n }\n\n}","export * from './JsonViewer';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nexport interface ResponseSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class ResponseSamples extends React.Component {\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const responses = operation.responses.filter(response => {\n return response.content && response.content.hasSample;\n });\n return responses.length > 0 &&
\n Response samples \n\n \n \n {responses.map(response => \n {response.code}\n )}\n \n {responses.map(response => \n
\n \n
\n
)}\n
\n
|| null;\n }\n\n}","export * from './RedocStandalone';\nexport * from './Redoc/Redoc';\nexport * from './ApiInfo/ApiInfo';\nexport * from './ApiLogo/ApiLogo';\nexport * from './ContentItems/ContentItems';\nexport { ApiContentWrap, BackgroundStub, RedocWrap } from './Redoc/styled.elements';\nexport * from './Schema/';\nexport * from './SearchBox/SearchBox';\nexport * from './Operation/Operation';\nexport * from './Loading/Loading';\nexport * from './JsonViewer';\nexport * from './Markdown/Markdown';\nexport { StyledMarkdownBlock } from './Markdown/styled.elements';\nexport * from './SecuritySchemes/SecuritySchemes';\nexport * from './Responses/Response';\nexport * from './Responses/ResponseDetails';\nexport * from './Responses/ResponseHeaders';\nexport * from './Responses/ResponsesList';\nexport * from './Responses/ResponseTitle';\nexport * from './ResponseSamples/ResponseSamples';\nexport * from './PayloadSamples/PayloadSamples';\nexport * from './MediaTypeSwitch/MediaTypesSwitch';\nexport * from './ErrorBoundary';\nexport * from './StoreBuilder';\nexport * from './OptionsProvider';\nexport * from './SideMenu/';\nexport * from './StickySidebar/StickyResponsiveSidebar';\nexport * from './SearchBox/SearchBox';\nexport * from './SchemaDefinition/SchemaDefinition';\nexport * from './SourceCode/SourceCode';","export * from './components';\nexport { MiddlePanel, Row, RightPanel, Section } from './common-elements/';\nexport * from './services';\nexport * from './utils';\nexport * from './styled-components';\nexport { default as styled } from './styled-components';"],"sourceRoot":""} \ No newline at end of file +{"version":3,"sources":["webpack://Redoc/webpack/universalModuleDefinition","webpack://Redoc/webpack/bootstrap","webpack://Redoc/external \"react\"","webpack://Redoc/external \"tslib\"","webpack://Redoc/external \"mobx-react\"","webpack://Redoc/external \"polished\"","webpack://Redoc/external \"mobx\"","webpack://Redoc/external \"url\"","webpack://Redoc/external \"json-pointer\"","webpack://Redoc/external \"lunr\"","webpack://Redoc/external \"decko\"","webpack://Redoc/external \"react-tabs\"","webpack://Redoc/external \"prismjs\"","webpack://Redoc/external \"undefined\"","webpack://Redoc/(webpack)/buildin/global.js","webpack://Redoc/./node_modules/path-browserify/index.js","webpack://Redoc/external \"prop-types\"","webpack://Redoc/external \"marked\"","webpack://Redoc/./node_modules/process/browser.js","webpack://Redoc/./node_modules/reftools/lib/jptr.js","webpack://Redoc/./node_modules/reftools/lib/clone.js","webpack://Redoc/external \"eventemitter3\"","webpack://Redoc/external \"url-template\"","webpack://Redoc/./node_modules/reftools/lib/isref.js","webpack://Redoc/./node_modules/reftools/lib/recurse.js","webpack://Redoc/external \"mark.js\"","webpack://Redoc/external \"openapi-sampler\"","webpack://Redoc/external \"perfect-scrollbar\"","webpack://Redoc/./node_modules/perfect-scrollbar/css/perfect-scrollbar.css","webpack://Redoc/./node_modules/oas-kit-common/index.js","webpack://Redoc/./node_modules/buffer/index.js","webpack://Redoc/./node_modules/stream-http/lib/capability.js","webpack://Redoc/external \"inherits\"","webpack://Redoc/./node_modules/stream-http/lib/response.js","webpack://Redoc/external \"readable-stream\"","webpack://Redoc/./src/services/SearchWorker.worker.ts","webpack://Redoc/external \"slugify\"","webpack://Redoc/external \"styled-components\"","webpack://Redoc/external \"json-schema-ref-parser\"","webpack://Redoc/./node_modules/swagger2openapi/index.js","webpack://Redoc/./node_modules/memoize-one/dist/memoize-one.cjs.js","webpack://Redoc/external \"react-dropdown\"","webpack://Redoc/external \"dompurify\"","webpack://Redoc/external \"classnames\"","webpack://Redoc/external \"call-me-maybe\"","webpack://Redoc/./node_modules/oas-resolver/index.js","webpack://Redoc/./node_modules/reftools/lib/dereference.js","webpack://Redoc/./node_modules/oas-schema-walker/index.js","webpack://Redoc/./node_modules/swagger2openapi/lib/statusCodes.js","webpack://Redoc/./node_modules/stream-http/index.js","webpack://Redoc/./node_modules/stream-http/lib/request.js","webpack://Redoc/external \"base64-js\"","webpack://Redoc/external \"ieee754\"","webpack://Redoc/external \"isarray\"","webpack://Redoc/external \"to-arraybuffer\"","webpack://Redoc/external \"xtend\"","webpack://Redoc/external \"builtin-status-codes\"","webpack://Redoc/external \"prismjs/components/prism-bash.js\"","webpack://Redoc/external \"prismjs/components/prism-c.js\"","webpack://Redoc/external \"prismjs/components/prism-clike.js\"","webpack://Redoc/external \"prismjs/components/prism-coffeescript.js\"","webpack://Redoc/external \"prismjs/components/prism-cpp.js\"","webpack://Redoc/external \"prismjs/components/prism-csharp.js\"","webpack://Redoc/external \"prismjs/components/prism-go.js\"","webpack://Redoc/external \"prismjs/components/prism-http.js\"","webpack://Redoc/external \"prismjs/components/prism-java.js\"","webpack://Redoc/external \"prismjs/components/prism-lua.js\"","webpack://Redoc/external \"prismjs/components/prism-markup-templating.js\"","webpack://Redoc/external \"prismjs/components/prism-markup.js\"","webpack://Redoc/external \"prismjs/components/prism-objectivec.js\"","webpack://Redoc/external \"prismjs/components/prism-perl.js\"","webpack://Redoc/external \"prismjs/components/prism-php.js\"","webpack://Redoc/external \"prismjs/components/prism-python.js\"","webpack://Redoc/external \"prismjs/components/prism-ruby.js\"","webpack://Redoc/external \"prismjs/components/prism-scala.js\"","webpack://Redoc/external \"prismjs/components/prism-sql.js\"","webpack://Redoc/external \"prismjs/components/prism-swift.js\"","webpack://Redoc/./src/services/SearchWorker.worker.ts?2393","webpack://Redoc/../src/rpc-wrapper.js","webpack://Redoc/external \"core-js/es/promise\"","webpack://Redoc/./node_modules/css-loader/dist/runtime/api.js","webpack://Redoc/external \"stickyfill\"","webpack://Redoc/./src/theme.ts","webpack://Redoc/./src/utils/dom.ts","webpack://Redoc/./src/utils/helpers.ts","webpack://Redoc/./src/services/Labels.ts","webpack://Redoc/./src/services/RedocNormalizedOptions.ts","webpack://Redoc/./src/styled-components.ts","webpack://Redoc/./src/components/ErrorBoundary.tsx","webpack://Redoc/./src/components/Loading/Spinner.svg.tsx","webpack://Redoc/./src/components/Loading/Loading.tsx","webpack://Redoc/./src/utils/loadAndBundleSpec.ts","webpack://Redoc/./src/utils/JsonPointer.ts","webpack://Redoc/./src/utils/openapi.ts","webpack://Redoc/./src/utils/highlight.ts","webpack://Redoc/./src/utils/decorators.ts","webpack://Redoc/./src/utils/debug.ts","webpack://Redoc/./src/utils/memoize.ts","webpack://Redoc/./src/utils/index.ts","webpack://Redoc/./src/services/HistoryService.ts","webpack://Redoc/./src/services/MarkerService.ts","webpack://Redoc/./src/services/MarkdownRenderer.ts","webpack://Redoc/./src/services/models/ApiInfo.ts","webpack://Redoc/./src/services/models/SecuritySchemes.ts","webpack://Redoc/./src/services/OpenAPIParser.ts","webpack://Redoc/./src/services/SpecStore.ts","webpack://Redoc/./src/services/models/Group.model.ts","webpack://Redoc/./src/services/models/SecurityRequirement.ts","webpack://Redoc/./src/services/models/Schema.ts","webpack://Redoc/./src/services/models/Field.ts","webpack://Redoc/./src/services/models/Example.ts","webpack://Redoc/./src/services/models/MediaType.ts","webpack://Redoc/./src/services/models/MediaContent.ts","webpack://Redoc/./src/services/models/RequestBody.ts","webpack://Redoc/./src/services/models/Response.ts","webpack://Redoc/./src/services/models/Operation.ts","webpack://Redoc/./src/services/models/index.ts","webpack://Redoc/./src/services/MenuBuilder.ts","webpack://Redoc/./src/services/MenuStore.ts","webpack://Redoc/./src/services/ScrollService.ts","webpack://Redoc/./src/services/SearchStore.ts","webpack://Redoc/./src/common-elements/panels.ts","webpack://Redoc/./src/common-elements/headers.ts","webpack://Redoc/./src/components/StoreBuilder.ts","webpack://Redoc/./src/common-elements/linkify.tsx","webpack://Redoc/./src/common-elements/shelfs.tsx","webpack://Redoc/./src/common-elements/mixins.ts","webpack://Redoc/./src/common-elements/fields-layout.ts","webpack://Redoc/./src/common-elements/schema.ts","webpack://Redoc/./src/common-elements/dropdown.ts","webpack://Redoc/./src/common-elements/tabs.ts","webpack://Redoc/./src/common-elements/PrismDiv.tsx","webpack://Redoc/./src/common-elements/samples.tsx","webpack://Redoc/./src/components/OptionsProvider.ts","webpack://Redoc/./src/common-elements/perfect-scrollbar.tsx","webpack://Redoc/./src/common-elements/index.ts","webpack://Redoc/./src/components/DropdownOrLabel/DropdownOrLabel.tsx","webpack://Redoc/./src/components/Markdown/styled.elements.tsx","webpack://Redoc/./src/components/Markdown/SanitizedMdBlock.tsx","webpack://Redoc/./src/components/Markdown/Markdown.tsx","webpack://Redoc/./src/common-elements/Tooltip.tsx","webpack://Redoc/./src/services/ClipboardService.ts","webpack://Redoc/./src/common-elements/CopyButtonWrapper.tsx","webpack://Redoc/./src/utils/jsonToHtml.ts","webpack://Redoc/./src/components/JsonViewer/style.ts","webpack://Redoc/./src/components/JsonViewer/JsonViewer.tsx","webpack://Redoc/./src/components/SourceCode/SourceCode.tsx","webpack://Redoc/./src/components/PayloadSamples/ExampleValue.tsx","webpack://Redoc/./src/components/PayloadSamples/exernalExampleHook.ts","webpack://Redoc/./src/components/PayloadSamples/Example.tsx","webpack://Redoc/./src/components/PayloadSamples/styled.elements.ts","webpack://Redoc/./src/components/PayloadSamples/MediaTypeSamples.tsx","webpack://Redoc/./src/common-elements/fields.ts","webpack://Redoc/./src/components/ExternalDocumentation/ExternalDocumentation.tsx","webpack://Redoc/./src/components/Fields/EnumValues.tsx","webpack://Redoc/./src/components/Fields/Extensions.tsx","webpack://Redoc/./src/components/Fields/FieldContstraints.tsx","webpack://Redoc/./src/components/Fields/FieldDetail.tsx","webpack://Redoc/./src/components/Fields/FieldDetails.tsx","webpack://Redoc/./src/components/Schema/ArraySchema.tsx","webpack://Redoc/./src/components/Fields/Field.tsx","webpack://Redoc/./src/components/Schema/DiscriminatorDropdown.tsx","webpack://Redoc/./src/components/Schema/ObjectSchema.tsx","webpack://Redoc/./src/components/Schema/OneOfSchema.tsx","webpack://Redoc/./src/components/Schema/Schema.tsx","webpack://Redoc/./src/components/Schema/index.ts","webpack://Redoc/./src/components/SchemaDefinition/SchemaDefinition.tsx","webpack://Redoc/./src/components/SecuritySchemes/SecuritySchemes.tsx","webpack://Redoc/./src/services/AppStore.ts","webpack://Redoc/./src/services/index.ts","webpack://Redoc/./src/components/ApiInfo/styled.elements.ts","webpack://Redoc/./src/components/ApiInfo/ApiInfo.tsx","webpack://Redoc/./src/components/ApiInfo/index.ts","webpack://Redoc/./src/components/ApiBackTo/styled.elements.tsx","webpack://Redoc/./src/components/ApiBackTo/ApiBackTo.tsx","webpack://Redoc/./src/components/SideMenu/styled.elements.ts","webpack://Redoc/./src/components/SideMenu/MenuItems.tsx","webpack://Redoc/./src/components/SideMenu/MenuItem.tsx","webpack://Redoc/./src/components/SearchBox/styled.elements.tsx","webpack://Redoc/./src/components/SearchBox/SearchBox.tsx","webpack://Redoc/./src/components/SideMenu/SideMenu.tsx","webpack://Redoc/./src/components/StickySidebar/ChevronSvg.tsx","webpack://Redoc/./src/components/StickySidebar/StickyResponsiveSidebar.tsx","webpack://Redoc/./src/components/Redoc/styled.elements.tsx","webpack://Redoc/./src/components/Redoc/Redoc.tsx","webpack://Redoc/./src/components/RedocStandalone.tsx","webpack://Redoc/./src/components/ApiLogo/styled.elements.tsx","webpack://Redoc/./src/components/ApiLogo/ApiLogo.tsx","webpack://Redoc/./src/components/Markdown/AdvancedMarkdown.tsx","webpack://Redoc/./src/components/SelectOnClick/SelectOnClick.tsx","webpack://Redoc/./src/components/Endpoint/styled.elements.ts","webpack://Redoc/./src/components/Endpoint/Endpoint.tsx","webpack://Redoc/./src/components/MediaTypeSwitch/MediaTypesSwitch.tsx","webpack://Redoc/./src/components/PayloadSamples/PayloadSamples.tsx","webpack://Redoc/./src/components/RequestSamples/RequestSamples.tsx","webpack://Redoc/./src/services/Constants.ts","webpack://Redoc/./src/components/RightPanelContent/ContentPanel.tsx","webpack://Redoc/./src/components/RightPanelContent/OperationPanel.tsx","webpack://Redoc/./src/components/Parameters/ParametersGroup.tsx","webpack://Redoc/./src/components/Parameters/Parameters.tsx","webpack://Redoc/./src/components/Responses/ResponseTitle.tsx","webpack://Redoc/./src/components/Responses/styled.elements.ts","webpack://Redoc/./src/components/Responses/ResponseHeaders.tsx","webpack://Redoc/./src/components/Responses/ResponseDetails.tsx","webpack://Redoc/./src/components/Responses/Response.tsx","webpack://Redoc/./src/components/Responses/ResponsesList.tsx","webpack://Redoc/./src/components/SecurityRequirement/SecurityRequirement.tsx","webpack://Redoc/./src/components/SideMenu/index.ts","webpack://Redoc/./src/components/Operation/Operation.tsx","webpack://Redoc/./src/components/ContentItems/ContentItems.tsx","webpack://Redoc/./src/components/JsonViewer/index.tsx","webpack://Redoc/./src/components/ResponseSamples/ResponseSamples.tsx","webpack://Redoc/./src/components/index.ts","webpack://Redoc/./src/index.ts"],"names":["addMethods","worker","methods","c","callbacks","addEventListener","e","d","data","type","id","f","error","Object","assign","Error","message","result","evt","document","createEvent","initEvent","method","params","dispatchEvent","forEach","Promise","a","b","postMessage"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;AACD,O;QCVA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;;QAEA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;;;QAGA;QACA;;QAEA;QACA;;QAEA;QACA;QACA;QACA,0CAA0C,gCAAgC;QAC1E;QACA;;QAEA;QACA;QACA;QACA,wDAAwD,kBAAkB;QAC1E;QACA,iDAAiD,cAAc;QAC/D;;QAEA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA;QACA,yCAAyC,iCAAiC;QAC1E,gHAAgH,mBAAmB,EAAE;QACrI;QACA;;QAEA;QACA;QACA;QACA,2BAA2B,0BAA0B,EAAE;QACvD,iCAAiC,eAAe;QAChD;QACA;QACA;;QAEA;QACA,sDAAsD,+DAA+D;;QAErH;QACA;;;QAGA;QACA;;;;;;;AClFA,kC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,qC;;;;;;ACAA,iC;;;;;;ACAA,gC;;;;;;ACAA,yC;;;;;;ACAA,iC;;;;;;ACAA,kC;;;;;;ACAA,uC;;;;;;ACAA,oC;;;;;;ACAA,2B;;;;;;ACAA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;ACnBA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAAgC,QAAQ;AACxC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,oCAAoC,8BAA8B;AAClE;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;;AAGA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,oBAAoB;AAC9B;AACA;;AAEA;AACA,UAAU,UAAU;AACpB;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA,+BAA+B,sBAAsB;AACrD;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,2BAA2B,QAAQ;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,QAAQ;AACvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,mBAAmB,eAAe;AAClC;AACA;AACA;AACA;;AAEA;AACA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;;;;;;;AC7SA,uC;;;;;;ACAA,mC;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,qCAAqC;;AAErC;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;;ACvLzB;AAEb;;;;EAIE;AACF,SAAS,QAAQ,CAAC,CAAC;IACf,OAAO,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;AACvD,CAAC;AAED;;;;EAIE;AACF,SAAS,UAAU,CAAC,CAAC;IACjB,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,OAA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C5B,SAAS,EAAE,SAAS;IACpB,IAAI,EAAE,IAAI;IACV,uBAAuB,EAAE,uBAAuB;IAChD,eAAe,EAAE,eAAe;IAChC,WAAW,EAAE,WAAW;IACxB,QAAQ,EAAE,QAAQ;IAClB,WAAW,EAAE,WAAW;CAE3B,CAAC;;;;;;;;;ACvIF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEY;;AAEZ,aAAa,mBAAO,CAAC,EAAW;AAChC,cAAc,mBAAO,CAAC,EAAS;AAC/B,cAAc,mBAAO,CAAC,EAAS;;AAE/B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,qBAAqB,mDAAmD;AACxE;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,mBAAmB,UAAU;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAA0B;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA,uCAAuC,SAAS;AAChD;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;AACA,aAAa,iBAAiB;AAC9B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,SAAS;AACT;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;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,gDAAgD,EAAE;AAClD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,yCAAyC;AACzC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAwB,eAAe;AACvC;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,GAAG;AACH;AACA,wBAAwB,QAAQ;AAChC;AACA,qBAAqB,eAAe;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA,SAAS;AACT;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;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;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA,qBAAqB,SAAS;AAC9B;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,mBAAmB,cAAc;AACjC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA,uDAAuD,OAAO;AAC9D;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,kBAAkB;AAClB;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,qBAAqB,QAAQ;AAC7B;AACA;AACA,GAAG;AACH;AACA,eAAe,SAAS;AACxB;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,mBAAmB,SAAS;AAC5B;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,eAAe,iBAAiB;AAChC;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,YAAY;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,iBAAiB,gBAAgB;AACjC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,gBAAgB;AACjC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,iBAAiB,YAAY;AAC7B;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;AC5vDA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;;;;;;;;ACxEA,qC;;;;;;ACAA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,aAAa,mBAAO,CAAC,EAAiB;;AAEtC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,EAAE;;AAEF;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,OAAO;AACP;AACA;AACA,MAAM;AACN,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,IAAI;;AAEJ;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,IAAI,aAAa;AACjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA,EAAE;AACF;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA,wCAAwC,eAAe,IAAI;AAC3D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA,QAAQ;AACR;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA,oBAAoB,oBAAoB;AACxC;;AAEA;AACA,KAAK;AACL;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;AACA;AACA;;;;;;;;AC/NA,4C;;;;;;;;;;;;;;;;;;ACA6B;AAE7B,IAAI;IACF,2BAA2B;IAC3B,mBAAO,CAAC,EAAoB,CAAC,CAAC,CAAC,qBAAqB;CAErD;AAAC,OAAO,CAAC,EAAE,GAAE,CAAC,OAAO;AAEtB,6BAA6B;AAG7B;IAAA;QACE,QAAG,GAAe,GAAG,CAAC;QACtB,SAAI,GAAG,IAAI,CAAC;QACZ,WAAM,GAAkB,MAAM,CAAC;QAC/B,SAAI,GAAG,IAAI,CAAC;QACZ,SAAI,GAAG,IAAI,CAAC;IACd,CAAC;IAAD,aAAC;AAAD,CAAC;;AAUD,IAAI,KAAK,GAAU,EAAE,CAAC;AAEtB,IAAI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;AAEA;;AAEA;;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,C;;;;;;;ACpFA,gFAAiB,mBAAO,CAAC,EAAc;AACvC,eAAe,mBAAO,CAAC,EAAU;AACjC,eAAe,mBAAO,CAAC,EAAY;AACnC,aAAa,mBAAO,CAAC,EAAiB;AACtC,oBAAoB,mBAAO,CAAC,EAAgB;;AAE5C;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;AACJ,2CAA2C;AAC3C,IAAI;AACJ,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,IAAI;AACJ,GAAG;AACH;AACA;AACA,EAAE;;AAEF;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA,GAAG;AACH,EAAE;AACF;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,IAAI;A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","file":"redoc.lib.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Redoc\"] = factory();\n\telse\n\t\troot[\"Redoc\"] = factory();\n})(this, function() {\nreturn "," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 82);\n","module.exports = require(\"react\");","module.exports = require(\"tslib\");","module.exports = require(\"mobx-react\");","module.exports = require(\"polished\");","module.exports = require(\"mobx\");","module.exports = require(\"url\");","module.exports = require(\"json-pointer\");","module.exports = require(\"lunr\");","module.exports = require(\"decko\");","module.exports = require(\"react-tabs\");","module.exports = require(\"prismjs\");","module.exports = undefined;","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// .dirname, .basename, and .extname methods are extracted from Node.js v8.11.1,\n// backported and transplited with Babel, with backwards-compat fixes\n\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\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes, empty elements, or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = parts.length - 1; i >= 0; i--) {\n var last = parts[i];\n if (last === '.') {\n parts.splice(i, 1);\n } else if (last === '..') {\n parts.splice(i, 1);\n up++;\n } else if (up) {\n parts.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (allowAboveRoot) {\n for (; up--; up) {\n parts.unshift('..');\n }\n }\n\n return parts;\n}\n\n// path.resolve([from ...], to)\n// posix version\nexports.resolve = function() {\n var resolvedPath = '',\n resolvedAbsolute = false;\n\n for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n var path = (i >= 0) ? arguments[i] : process.cwd();\n\n // Skip empty and invalid entries\n if (typeof path !== 'string') {\n throw new TypeError('Arguments to path.resolve must be strings');\n } else if (!path) {\n continue;\n }\n\n resolvedPath = path + '/' + resolvedPath;\n resolvedAbsolute = path.charAt(0) === '/';\n }\n\n // At this point the path should be resolved to a full absolute path, but\n // handle relative paths to be safe (might happen when process.cwd() fails)\n\n // Normalize the path\n resolvedPath = normalizeArray(filter(resolvedPath.split('/'), function(p) {\n return !!p;\n }), !resolvedAbsolute).join('/');\n\n return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nexports.normalize = function(path) {\n var isAbsolute = exports.isAbsolute(path),\n trailingSlash = substr(path, -1) === '/';\n\n // Normalize the path\n path = normalizeArray(filter(path.split('/'), function(p) {\n return !!p;\n }), !isAbsolute).join('/');\n\n if (!path && !isAbsolute) {\n path = '.';\n }\n if (path && trailingSlash) {\n path += '/';\n }\n\n return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nexports.isAbsolute = function(path) {\n return path.charAt(0) === '/';\n};\n\n// posix version\nexports.join = function() {\n var paths = Array.prototype.slice.call(arguments, 0);\n return exports.normalize(filter(paths, function(p, index) {\n if (typeof p !== 'string') {\n throw new TypeError('Arguments to path.join must be strings');\n }\n return p;\n }).join('/'));\n};\n\n\n// path.relative(from, to)\n// posix version\nexports.relative = function(from, to) {\n from = exports.resolve(from).substr(1);\n to = exports.resolve(to).substr(1);\n\n function trim(arr) {\n var start = 0;\n for (; start < arr.length; start++) {\n if (arr[start] !== '') break;\n }\n\n var end = arr.length - 1;\n for (; end >= 0; end--) {\n if (arr[end] !== '') break;\n }\n\n if (start > end) return [];\n return arr.slice(start, end - start + 1);\n }\n\n var fromParts = trim(from.split('/'));\n var toParts = trim(to.split('/'));\n\n var length = Math.min(fromParts.length, toParts.length);\n var samePartsLength = length;\n for (var i = 0; i < length; i++) {\n if (fromParts[i] !== toParts[i]) {\n samePartsLength = i;\n break;\n }\n }\n\n var outputParts = [];\n for (var i = samePartsLength; i < fromParts.length; i++) {\n outputParts.push('..');\n }\n\n outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n return outputParts.join('/');\n};\n\nexports.sep = '/';\nexports.delimiter = ':';\n\nexports.dirname = function (path) {\n if (typeof path !== 'string') path = path + '';\n if (path.length === 0) return '.';\n var code = path.charCodeAt(0);\n var hasRoot = code === 47 /*/*/;\n var end = -1;\n var matchedSlash = true;\n for (var i = path.length - 1; i >= 1; --i) {\n code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n if (!matchedSlash) {\n end = i;\n break;\n }\n } else {\n // We saw the first non-path separator\n matchedSlash = false;\n }\n }\n\n if (end === -1) return hasRoot ? '/' : '.';\n if (hasRoot && end === 1) {\n // return '//';\n // Backwards-compat fix:\n return '/';\n }\n return path.slice(0, end);\n};\n\nfunction basename(path) {\n if (typeof path !== 'string') path = path + '';\n\n var start = 0;\n var end = -1;\n var matchedSlash = true;\n var i;\n\n for (i = path.length - 1; i >= 0; --i) {\n if (path.charCodeAt(i) === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n start = i + 1;\n break;\n }\n } else if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // path component\n matchedSlash = false;\n end = i + 1;\n }\n }\n\n if (end === -1) return '';\n return path.slice(start, end);\n}\n\n// Uses a mixed approach for backwards-compatibility, as ext behavior changed\n// in new Node.js versions, so only basename() above is backported here\nexports.basename = function (path, ext) {\n var f = basename(path);\n if (ext && f.substr(-1 * ext.length) === ext) {\n f = f.substr(0, f.length - ext.length);\n }\n return f;\n};\n\nexports.extname = function (path) {\n if (typeof path !== 'string') path = path + '';\n var startDot = -1;\n var startPart = 0;\n var end = -1;\n var matchedSlash = true;\n // Track the state of characters (if any) we see before our first dot and\n // after any path separator we find\n var preDotState = 0;\n for (var i = path.length - 1; i >= 0; --i) {\n var code = path.charCodeAt(i);\n if (code === 47 /*/*/) {\n // If we reached a path separator that was not part of a set of path\n // separators at the end of the string, stop now\n if (!matchedSlash) {\n startPart = i + 1;\n break;\n }\n continue;\n }\n if (end === -1) {\n // We saw the first non-path separator, mark this as the end of our\n // extension\n matchedSlash = false;\n end = i + 1;\n }\n if (code === 46 /*.*/) {\n // If this is our first dot, mark it as the start of our extension\n if (startDot === -1)\n startDot = i;\n else if (preDotState !== 1)\n preDotState = 1;\n } else if (startDot !== -1) {\n // We saw a non-dot and non-path separator before our dot, so we should\n // have a good chance at having a non-empty extension\n preDotState = -1;\n }\n }\n\n if (startDot === -1 || end === -1 ||\n // We saw a non-dot character immediately before the dot\n preDotState === 0 ||\n // The (right-most) trimmed path component is exactly '..'\n preDotState === 1 && startDot === end - 1 && startDot === startPart + 1) {\n return '';\n }\n return path.slice(startDot, end);\n};\n\nfunction filter (xs, f) {\n if (xs.filter) return xs.filter(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n if (f(xs[i], i, xs)) res.push(xs[i]);\n }\n return res;\n}\n\n// String.prototype.substr - negative index don't work in IE8\nvar substr = 'ab'.substr(-1) === 'b'\n ? function (str, start, len) { return str.substr(start, len) }\n : function (str, start, len) {\n if (start < 0) start = str.length + start;\n return str.substr(start, len);\n }\n;\n","module.exports = require(\"prop-types\");","module.exports = require(\"marked\");","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","'use strict';\n\n/**\n* escapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to escape\n* @return the escaped string\n*/\nfunction jpescape(s) {\n return s.replace(/\\~/g, '~0').replace(/\\//g, '~1');\n}\n\n/**\n* unescapes JSON Pointer using ~0 for ~ and ~1 for /\n* @param s the string to unescape\n* @return the unescaped string\n*/\nfunction jpunescape(s) {\n return s.replace(/\\~1/g, '/').replace(/~0/g, '~');\n}\n\n// JSON Pointer specification: http://tools.ietf.org/html/rfc6901\n\n/**\n* from obj, return the property with a JSON Pointer prop, optionally setting it\n* to newValue\n* @param obj the object to point into\n* @param prop the JSON Pointer or JSON Reference\n* @param newValue optional value to set the property to\n* @return the found property, or false\n*/\nfunction jptr(obj, prop, newValue) {\n if (typeof obj === 'undefined') return false;\n if (!prop || typeof prop !== 'string' || (prop === '#')) return (typeof newValue !== 'undefined' ? newValue : obj);\n\n if (prop.indexOf('#')>=0) {\n let parts = prop.split('#');\n let uri = parts[0];\n if (uri) return false; // we do internal resolution only\n prop = parts[1];\n prop = decodeURIComponent(prop.slice(1).split('+').join(' '));\n }\n if (prop.startsWith('/')) prop = prop.slice(1);\n\n let components = prop.split('/');\n for (let i=0;i 0) ? components[i-1] : ''; // backtrack to indexed property name\n }\n\n if ((index != -1) || obj.hasOwnProperty(components[i])) {\n if (index >= 0) {\n if (setAndLast) {\n obj[index] = newValue;\n }\n obj = obj[index];\n }\n else if (index === -2) {\n if (setAndLast) {\n if (Array.isArray(obj)) {\n obj.push(newValue);\n }\n return newValue;\n }\n else return undefined;\n }\n else {\n if (setAndLast) {\n obj[components[i]] = newValue;\n }\n obj = obj[components[i]];\n }\n }\n else {\n if ((typeof newValue !== 'undefined') && (typeof obj === 'object') &&\n (!Array.isArray(obj))) {\n obj[components[i]] = (setAndLast ? newValue : ((components[i+1] === '0' || components[i+1] === '-') ? [] : {}));\n obj = obj[components[i]];\n }\n else return false;\n }\n }\n return obj;\n}\n\nmodule.exports = {\n jptr : jptr,\n jpescape : jpescape,\n jpunescape : jpunescape\n};\n","'use strict';\n\n/**\n* a collection of cloning functions\n*/\n\n/**\n* a no-op placeholder which returns the given object unchanged\n* useful for when a clone function needs to be passed but cloning is not\n* required\n* @param obj the input object\n* @return the input object, unchanged\n*/\nfunction nop(obj) {\n return obj;\n}\n\n/**\n* clones the given object using JSON.parse and JSON.stringify\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction clone(obj) {\n return JSON.parse(JSON.stringify(obj));\n}\n\n/**\n* clones the given object's properties shallowly, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction shallowClone(obj) {\n let result = {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p)) {\n result[p] = obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties deeply, ignores properties from prototype\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction deepClone(obj) {\n let result = Array.isArray(obj) ? [] : {};\n for (let p in obj) {\n if (obj.hasOwnProperty(p) || Array.isArray(obj)) {\n result[p] = (typeof obj[p] === 'object') ? deepClone(obj[p]) : obj[p];\n }\n }\n return result;\n}\n\n/**\n* clones the given object's properties shallowly, using Object.assign\n* @param obj the object to clone\n* @return the cloned object\n*/\nfunction fastClone(obj) {\n return Object.assign({},obj);\n}\n\n/**\n* Source: stackoverflow http://bit.ly/2A1Kha6\n*/\n\nfunction circularClone(obj, hash) {\n if (!hash) hash = new WeakMap();\n // Do not try to clone primitives or functions\n if (Object(obj) !== obj || obj instanceof Function) return obj;\n if (hash.has(obj)) return hash.get(obj); // Cyclic reference\n try { // Try to run constructor (without arguments, as we don't know them)\n var result = new obj.constructor();\n } catch(e) { // Constructor failed, create object without running the constructor\n result = Object.create(Object.getPrototypeOf(obj));\n }\n // Optional: support for some standard constructors (extend as desired)\n /*if (obj instanceof Map)\n Array.from(obj, ([key, val]) => result.set(circularClone(key, hash),\n circularClone(val, hash)) );\n else if (obj instanceof Set)\n Array.from(obj, (key) => result.add(circularClone(key, hash)) );\n */\n // Register in hash\n hash.set(obj, result);\n // Clone and assign enumerable own properties recursively\n return Object.assign(result, ...Object.keys(obj).map (\n key => ({ [key]: circularClone(obj[key], hash) }) ));\n}\n\nmodule.exports = {\n nop : nop,\n clone : clone,\n shallowClone : shallowClone,\n deepClone : deepClone,\n fastClone : fastClone,\n circularClone : circularClone\n};\n\n","module.exports = require(\"eventemitter3\");","module.exports = require(\"url-template\");","'use strict';\n\nfunction isRef(obj,key) {\n return ((key === '$ref') && (!!obj && typeof obj[key] === 'string'));\n}\n\nmodule.exports = {\n isRef: isRef\n};\n\n","'use strict';\n\nconst jpescape = require('./jptr.js').jpescape;\n\nfunction defaultState() {\n return {\n path: '#',\n depth: 0,\n pkey: '',\n parent: {},\n payload: {},\n seen: new WeakMap(),\n identity: false,\n identityDetection: false\n };\n}\n\n/**\n* recurses through the properties of an object, given an optional starting state\n* anything you pass in state.payload is passed to the callback each time\n* @param object the object to recurse through\n* @param state optional starting state, can be set to null or {}\n* @param callback the function which receives object,key,state on each property\n*/\nfunction recurse(object, state, callback) {\n if (!state) state = {depth:0};\n if (!state.depth) {\n state = Object.assign({},defaultState(),state);\n }\n if (typeof object !== 'object') return;\n let oPath = state.path;\n for (let key in object) {\n state.key = key;\n state.path = state.path + '/' + encodeURIComponent(jpescape(key));\n state.identityPath = state.seen.get(object[key]);\n state.identity = (typeof state.identityPath !== 'undefined');\n if (object.hasOwnProperty(key)) {\n callback(object, key, state);\n }\n if ((typeof object[key] === 'object') && (!state.identity)) {\n if (state.identityDetection && !Array.isArray(object[key]) && object[key] !== null) {\n state.seen.set(object[key],state.path);\n }\n let newState = {};\n newState.parent = object;\n newState.path = state.path;\n newState.depth = state.depth ? state.depth+1 : 1;\n newState.pkey = key;\n newState.payload = state.payload;\n newState.seen = state.seen;\n newState.identity = false;\n newState.identityDetection = state.identityDetection;\n recurse(object[key], newState, callback);\n }\n state.path = oPath;\n }\n}\n\nmodule.exports = {\n recurse : recurse\n};\n\n","module.exports = require(\"mark.js\");","module.exports = require(\"openapi-sampler\");","module.exports = require(\"perfect-scrollbar\");","// Imports\nvar ___CSS_LOADER_API_IMPORT___ = require(\"../../css-loader/dist/runtime/api.js\");\nexports = ___CSS_LOADER_API_IMPORT___(false);\n// Module\nexports.push([module.id, \"/*\\n * Container style\\n */\\n.ps {\\n overflow: hidden !important;\\n overflow-anchor: none;\\n -ms-overflow-style: none;\\n touch-action: auto;\\n -ms-touch-action: auto;\\n}\\n\\n/*\\n * Scrollbar rail styles\\n */\\n.ps__rail-x {\\n display: none;\\n opacity: 0;\\n transition: background-color .2s linear, opacity .2s linear;\\n -webkit-transition: background-color .2s linear, opacity .2s linear;\\n height: 15px;\\n /* there must be 'bottom' or 'top' for ps__rail-x */\\n bottom: 0px;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps__rail-y {\\n display: none;\\n opacity: 0;\\n transition: background-color .2s linear, opacity .2s linear;\\n -webkit-transition: background-color .2s linear, opacity .2s linear;\\n width: 15px;\\n /* there must be 'right' or 'left' for ps__rail-y */\\n right: 0;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps--active-x > .ps__rail-x,\\n.ps--active-y > .ps__rail-y {\\n display: block;\\n background-color: transparent;\\n}\\n\\n.ps:hover > .ps__rail-x,\\n.ps:hover > .ps__rail-y,\\n.ps--focus > .ps__rail-x,\\n.ps--focus > .ps__rail-y,\\n.ps--scrolling-x > .ps__rail-x,\\n.ps--scrolling-y > .ps__rail-y {\\n opacity: 0.6;\\n}\\n\\n.ps .ps__rail-x:hover,\\n.ps .ps__rail-y:hover,\\n.ps .ps__rail-x:focus,\\n.ps .ps__rail-y:focus,\\n.ps .ps__rail-x.ps--clicking,\\n.ps .ps__rail-y.ps--clicking {\\n background-color: #eee;\\n opacity: 0.9;\\n}\\n\\n/*\\n * Scrollbar thumb styles\\n */\\n.ps__thumb-x {\\n background-color: #aaa;\\n border-radius: 6px;\\n transition: background-color .2s linear, height .2s ease-in-out;\\n -webkit-transition: background-color .2s linear, height .2s ease-in-out;\\n height: 6px;\\n /* there must be 'bottom' for ps__thumb-x */\\n bottom: 2px;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps__thumb-y {\\n background-color: #aaa;\\n border-radius: 6px;\\n transition: background-color .2s linear, width .2s ease-in-out;\\n -webkit-transition: background-color .2s linear, width .2s ease-in-out;\\n width: 6px;\\n /* there must be 'right' for ps__thumb-y */\\n right: 2px;\\n /* please don't change 'position' */\\n position: absolute;\\n}\\n\\n.ps__rail-x:hover > .ps__thumb-x,\\n.ps__rail-x:focus > .ps__thumb-x,\\n.ps__rail-x.ps--clicking .ps__thumb-x {\\n background-color: #999;\\n height: 11px;\\n}\\n\\n.ps__rail-y:hover > .ps__thumb-y,\\n.ps__rail-y:focus > .ps__thumb-y,\\n.ps__rail-y.ps--clicking .ps__thumb-y {\\n background-color: #999;\\n width: 11px;\\n}\\n\\n/* MS supports */\\n@supports (-ms-overflow-style: none) {\\n .ps {\\n overflow: auto !important;\\n }\\n}\\n\\n@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {\\n .ps {\\n overflow: auto !important;\\n }\\n}\\n\", \"\"]);\n// Exports\nmodule.exports = exports;\n","'use strict';\n\nconst sjs = require('safe-json-stringify');\n\nconst colour = process.env.NODE_DISABLE_COLORS ?\n { red: '', yellow: '', green: '', normal: '' } :\n { red: '\\x1b[31m', yellow: '\\x1b[33;1m', green: '\\x1b[32m', normal: '\\x1b[0m' };\n\nfunction uniqueOnly(value, index, self) {\n return self.indexOf(value) === index;\n}\n\nfunction hasDuplicates(array) {\n return (new Set(array)).size !== array.length;\n}\n\nfunction allSame(array) {\n return (new Set(array)).size <= 1;\n}\n\nfunction deepEquals(obj1, obj2) {\n function _equals(obj1, obj2) {\n return sjs.stringify(obj1) === sjs.stringify(Object.assign({}, obj1, obj2));\n }\n return _equals(obj1, obj2) && _equals(obj2, obj1);\n}\n\nfunction compressArray(arr) {\n let result = [];\n for (let candidate of arr) {\n let dupe = result.find(function(e,i,a){\n return deepEquals(e,candidate);\n });\n if (!dupe) result.push(candidate);\n }\n return result;\n}\n\nfunction distinctArray(arr) {\n return (arr.length === compressArray(arr).length);\n}\n\nfunction firstDupe(arr) {\n return arr.find(function(e,i,a){\n return arr.indexOf(e)\n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\nexports.blobConstructor = false\ntry {\n\tnew Blob([new ArrayBuffer(1)])\n\texports.blobConstructor = true\n} catch (e) {}\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// For some strange reason, Safari 7.0 reports typeof global.ArrayBuffer === 'object'.\n// Safari 7.1 appears to have fixed this bug.\nvar haveArrayBuffer = typeof global.ArrayBuffer !== 'undefined'\nvar haveSlice = haveArrayBuffer && isFunction(global.ArrayBuffer.prototype.slice)\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || (haveArrayBuffer && checkTypeSupport('arraybuffer'))\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && haveSlice && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && haveArrayBuffer &&\n\tcheckTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nexports.vbArray = isFunction(global.VBArray)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","module.exports = require(\"inherits\");","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, fetchTimer) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(new Buffer(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tif (result.done) {\n\t\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(new Buffer(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tglobal.clearTimeout(fetchTimer)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text:vbarray': // For IE9\n\t\t\tif (xhr.readyState !== rStates.DONE)\n\t\t\t\tbreak\n\t\t\ttry {\n\t\t\t\t// This fails in IE8\n\t\t\t\tresponse = new global.VBArray(xhr.responseBody).toArray()\n\t\t\t} catch (e) {}\n\t\t\tif (response !== null) {\n\t\t\t\tself.push(new Buffer(response))\n\t\t\t\tbreak\n\t\t\t}\n\t\t\t// Falls through in IE8\t\n\t\tcase 'text':\n\t\t\ttry { // This will fail when readyState = 3 in IE9. Switch mode and wait for readyState = 4\n\t\t\t\tresponse = xhr.responseText\n\t\t\t} catch (e) {\n\t\t\t\tself._mode = 'text:vbarray'\n\t\t\t\tbreak\n\t\t\t}\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = new Buffer(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(new Buffer(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(new Buffer(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tself.push(null)\n\t}\n}\n","module.exports = require(\"readable-stream\");","import * as lunr from 'lunr';\n\ntry {\n // tslint:disable-next-line\n require('core-js/es/promise'); // bundle into worker\n\n} catch (_) {} // nope\n\n/* just for better typings */\n\n\nexport default class Worker {\n add: typeof add = add;\n done = done;\n search: typeof search = search;\n toJS = toJS;\n load = load;\n}\nexport interface SearchDocument {\n title: string;\n description: string;\n id: string;\n}\nexport interface SearchResult {\n meta: T;\n score: number;\n}\nlet store: any[] = [];\n\nlet resolveIndex: (v: lunr.Index) => void = () => {\n throw new Error('Should not be called');\n};\n\nconst index: Promise = new Promise(resolve => {\n resolveIndex = resolve;\n});\nlunr.tokenizer.separator = /\\s+/;\nconst builder = new lunr.Builder();\nbuilder.field('title');\nbuilder.field('description');\nbuilder.ref('ref');\nbuilder.pipeline.add(lunr.trimmer, lunr.stopWordFilter, lunr.stemmer);\n\nconst expandTerm = term => '*' + lunr.stemmer(new lunr.Token(term, {})) + '*';\n\nexport function add(title: string, description: string, meta?: T) {\n const ref = store.push(meta) - 1;\n const item = {\n title: title.toLowerCase(),\n description: description.toLowerCase(),\n ref\n };\n builder.add(item);\n}\nexport async function done() {\n resolveIndex(builder.build());\n}\nexport async function toJS() {\n return {\n store,\n index: (await index).toJSON()\n };\n}\nexport async function load(state: any) {\n store = state.store;\n resolveIndex(lunr.Index.load(state.index));\n}\nexport async function search(q: string, limit = 0): Promise>> {\n if (q.trim().length === 0) {\n return [];\n }\n\n let searchResults = (await index).query(t => {\n q.trim().toLowerCase().split(/\\s+/).forEach(term => {\n const exp = expandTerm(term);\n t.term(exp, {});\n });\n });\n\n if (limit > 0) {\n searchResults = searchResults.slice(0, limit);\n }\n\n return searchResults.map(res => ({\n meta: store[res.ref],\n score: res.score\n }));\n}","module.exports = require(\"slugify\");","module.exports = require(\"styled-components\");","module.exports = require(\"json-schema-ref-parser\");","// @ts-check\n'use strict';\n\nconst fs = require('fs');\nconst url = require('url');\nconst pathlib = require('path');\n\nconst maybe = require('call-me-maybe');\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js');\nconst resolveInternal = jptr.jptr;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst clone = require('reftools/lib/clone.js').clone;\nconst cclone = require('reftools/lib/clone.js').circularClone;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst resolver = require('oas-resolver');\nconst sw = require('oas-schema-walker');\nconst common = require('oas-kit-common');\n\nconst statusCodes = require('./lib/statusCodes.js').statusCodes;\n\nconst ourVersion = require('./package.json').version;\n\n// TODO handle specification-extensions with plugins?\n\nconst targetVersion = '3.0.0';\nlet componentNames; // initialised in main\n\nclass S2OError extends Error {\n constructor(message) {\n super(message);\n this.name = 'S2OError';\n }\n}\n\nfunction throwError(message, options) {\n let err = new S2OError(message);\n err.options = options;\n if (options.promise) {\n options.promise.reject(err);\n }\n else {\n throw err;\n }\n}\n\nfunction throwOrWarn(message, container, options) {\n if (options.warnOnly) {\n container[options.warnProperty||'x-s2o-warning'] = message;\n }\n else {\n throwError(message, options);\n }\n}\n\nfunction fixUpSubSchema(schema,parent,options) {\n if (schema.discriminator && typeof schema.discriminator === 'string') {\n schema.discriminator = { propertyName: schema.discriminator };\n }\n if (schema.items && Array.isArray(schema.items)) {\n if (schema.items.length === 0) {\n schema.items = {};\n }\n else if (schema.items.length === 1) {\n schema.items = schema.items[0];\n }\n else schema.items = { anyOf: schema.items };\n }\n\n if (schema.type && Array.isArray(schema.type)) {\n if (options.patch) {\n if (schema.type.length === 0) {\n delete schema.type;\n }\n else {\n if (!schema.oneOf) schema.oneOf = [];\n for (let type of schema.type) {\n let newSchema = {};\n if (type === 'null') {\n schema.nullable = true;\n }\n else {\n newSchema.type = type;\n for (let prop of common.arrayProperties) {\n if (typeof schema.prop !== 'undefined') {\n newSchema[prop] = schema[prop];\n delete schema[prop];\n }\n }\n }\n if (newSchema.type) {\n schema.oneOf.push(newSchema);\n }\n }\n delete schema.type;\n if (schema.oneOf.length === 0) {\n delete schema.oneOf; // means was just null => nullable\n }\n else if (schema.oneOf.length < 2) {\n schema.type = schema.oneOf[0].type;\n if (Object.keys(schema.oneOf[0]).length > 1) {\n throwOrWarn('Lost properties from oneOf',schema,options);\n }\n delete schema.oneOf;\n }\n }\n // do not else this\n if (schema.type && Array.isArray(schema.type) && schema.type.length === 1) {\n schema.type = schema.type[0];\n }\n }\n else {\n throwError('(Patchable) schema type must not be an array', options);\n }\n }\n\n if (schema.type && schema.type === 'null') {\n delete schema.type;\n schema.nullable = true;\n }\n if ((schema.type === 'array') && (!schema.items)) {\n schema.items = {};\n }\n if (typeof schema.required === 'boolean') {\n if (schema.required && schema.name) {\n if (typeof parent.required === 'undefined') {\n parent.required = [];\n }\n if (Array.isArray(parent.required)) parent.required.push(schema.name);\n }\n delete schema.required;\n }\n\n // TODO if we have a nested properties (object inside an object) and the\n // *parent* type is not set, force it to object\n // TODO if default is set but type is not set, force type to typeof default\n\n if (schema.xml && typeof schema.xml.namespace === 'string') {\n if (!schema.xml.namespace) delete schema.xml.namespace;\n }\n}\n\nfunction fixUpSubSchemaExtensions(schema,parent) {\n if (schema[\"x-required\"] && Array.isArray(schema[\"x-required\"])) {\n if (!schema.required) schema.required = [];\n schema.required = schema.required.concat(schema[\"x-required\"]);\n delete schema[\"x-required\"];\n }\n if (schema[\"x-anyOf\"]) {\n schema.anyOf = schema[\"x-anyOf\"];\n delete schema[\"x-anyOf\"];\n }\n if (schema[\"x-oneOf\"]) {\n schema.oneOf = schema[\"x-oneOf\"];\n delete schema[\"x-oneOf\"];\n }\n if (schema[\"x-not\"]) {\n schema.not = schema[\"x-not\"];\n delete schema[\"x-not\"];\n }\n if (typeof schema[\"x-nullable\"] === 'boolean') {\n schema.nullable = schema[\"x-nullable\"];\n delete schema[\"x-nullable\"];\n }\n if ((typeof schema[\"x-discriminator\"] === 'object') && (typeof schema[\"x-discriminator\"].propertyName === 'string')) {\n schema.discriminator = schema[\"x-discriminator\"];\n delete schema[\"x-discriminator\"];\n for (let entry in schema.discriminator.mapping) {\n let schemaOrRef = schema.discriminator.mapping[entry];\n if (schemaOrRef.startsWith('#/definitions/')) {\n schema.discriminator.mapping[entry] = schemaOrRef.replace('#/definitions/','#/components/schemas/');\n }\n }\n }\n}\n\nfunction fixUpSchema(schema,options) {\n sw.walkSchema(schema,{},{},function(schema,parent,state){\n fixUpSubSchemaExtensions(schema,parent);\n fixUpSubSchema(schema,parent,options);\n });\n}\n\nfunction getMiroComponentName(ref) {\n if (ref.indexOf('#')>=0) {\n ref = ref.split('#')[1].split('/').pop();\n }\n else {\n ref = ref.split('/').pop().split('.')[0];\n }\n return encodeURIComponent(common.sanitise(ref));\n}\n\nfunction fixupRefs(obj, key, state) {\n let options = state.payload.options;\n if (isRef(obj,key)) {\n if (obj[key].startsWith('#/components/')) {\n // no-op\n }\n else if (obj[key] === '#/consumes') {\n // people are *so* creative\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.consumes);\n }\n else if (obj[key] === '#/produces') {\n // and by creative, I mean devious\n delete obj[key];\n state.parent[state.pkey] = clone(options.openapi.produces);\n }\n else if (obj[key].startsWith('#/definitions/')) {\n //only the first part of a schema component name must be sanitised\n let keys = obj[key].replace('#/definitions/', '').split('/');\n const ref = jptr.jpunescape(keys[0]);\n\n let newKey = componentNames.schemas[decodeURIComponent(ref)]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n else if (obj[key].startsWith('#/parameters/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/parameters/' + common.sanitise(obj[key].replace('#/parameters/', ''));\n }\n else if (obj[key].startsWith('#/responses/')) {\n // for extensions like Apigee's x-templates\n obj[key] = '#/components/responses/' + common.sanitise(obj[key].replace('#/responses/', ''));\n }\n else if (obj[key].startsWith('#')) {\n // fixes up direct $refs or those created by resolvers\n let target = clone(jptr.jptr(options.openapi,obj[key]));\n if (target === false) throwOrWarn('direct $ref not found '+obj[key],obj,options)\n else if (options.refmap[obj[key]]) {\n obj[key] = options.refmap[obj[key]];\n }\n else {\n // we use a heuristic to determine what kind of thing is being referenced\n let oldRef = obj[key];\n oldRef = oldRef.replace('/properties/headers/','');\n oldRef = oldRef.replace('/properties/responses/','');\n oldRef = oldRef.replace('/properties/parameters/','');\n oldRef = oldRef.replace('/properties/schemas/','');\n let type = 'schemas';\n let schemaIndex = oldRef.lastIndexOf('/schema');\n type = (oldRef.indexOf('/headers/')>schemaIndex) ? 'headers' :\n ((oldRef.indexOf('/responses/')>schemaIndex) ? 'responses' :\n ((oldRef.indexOf('/example')>schemaIndex) ? 'examples' :\n ((oldRef.indexOf('/x-')>schemaIndex) ? 'extensions' :\n ((oldRef.indexOf('/parameters/')>schemaIndex) ? 'parameters' : 'schemas'))));\n\n // non-body/form parameters have not moved in the overall structure (like responses)\n // but extracting the requestBodies can cause the *number* of parameters to change\n\n if (type === 'schemas') {\n fixUpSchema(target,options);\n }\n\n if ((type !== 'responses') && (type !== 'extensions')) {\n let prefix = type.substr(0,type.length-1);\n if ((prefix === 'parameter') && target.name && (target.name === common.sanitise(target.name))) {\n prefix = encodeURIComponent(target.name);\n }\n\n let suffix = 1;\n if (obj['x-miro']) {\n prefix = getMiroComponentName(obj['x-miro']);\n suffix = '';\n }\n\n while (jptr.jptr(options.openapi,'#/components/'+type+'/'+prefix+suffix)) {\n suffix = (suffix === '' ? 2 : ++suffix);\n }\n\n let newRef = '#/components/'+type+'/'+prefix+suffix;\n let refSuffix = '';\n\n if (type === 'examples') {\n target = { value: target };\n refSuffix = '/value';\n }\n\n jptr.jptr(options.openapi,newRef,target);\n options.refmap[obj[key]] = newRef+refSuffix;\n obj[key] = newRef+refSuffix;\n }\n }\n }\n\n delete obj['x-miro'];\n // do this last - rework cases where $ref object has sibling properties\n if (Object.keys(obj).length > 1) {\n const tmpRef = obj[key];\n const inSchema = state.path.indexOf('/schema') >= 0; // not perfect, but in the absence of a reasonably-sized and complete OAS 2.0 parser...\n if (options.refSiblings === 'preserve') {\n // no-op\n }\n else if (inSchema && (options.refSiblings === 'allOf')) {\n delete obj.$ref;\n state.parent[state.pkey] = { allOf: [ { $ref: tmpRef }, obj ]};\n }\n else { // remove, or not 'preserve' and not in a schema\n state.parent[state.pkey] = { $ref: tmpRef };\n }\n }\n\n }\n if ((key === 'x-ms-odata') && (typeof obj[key] === 'string') && (obj[key].startsWith('#/'))) {\n let keys = obj[key].replace('#/definitions/', '').replace('#/components/schemas/','').split('/');\n let newKey = componentNames.schemas[decodeURIComponent(keys[0])]; // lookup, resolves a $ref\n if (newKey) {\n keys[0] = newKey;\n }\n else {\n throwOrWarn('Could not resolve reference '+obj[key],obj,options);\n }\n obj[key] = '#/components/schemas/' + keys.join('/');\n }\n}\n\n/*\n* This has to happen as a separate pass because multiple $refs may point\n* through elements of the same path\n*/\nfunction dedupeRefs(openapi, options) {\n for (let ref in options.refmap) {\n jptr.jptr(openapi,ref,{ $ref: options.refmap[ref] });\n }\n}\n\nfunction processSecurity(securityObject) {\n for (let s in securityObject) {\n for (let k in securityObject[s]) {\n let sname = common.sanitise(k);\n if (k != sname) {\n securityObject[s][sname] = securityObject[s][k];\n delete securityObject[s][k];\n }\n }\n }\n}\n\nfunction processSecurityScheme(scheme, options) {\n if (scheme.type === 'basic') {\n scheme.type = 'http';\n scheme.scheme = 'basic';\n }\n if (scheme.type === 'oauth2') {\n let flow = {};\n let flowName = scheme.flow;\n if (scheme.flow === 'application') flowName = 'clientCredentials';\n if (scheme.flow === 'accessCode') flowName = 'authorizationCode';\n if (typeof scheme.authorizationUrl !== 'undefined') flow.authorizationUrl = scheme.authorizationUrl.split('?')[0].trim() || '/';\n if (typeof scheme.tokenUrl === 'string') flow.tokenUrl = scheme.tokenUrl.split('?')[0].trim() || '/';\n flow.scopes = scheme.scopes || {};\n scheme.flows = {};\n scheme.flows[flowName] = flow;\n delete scheme.flow;\n delete scheme.authorizationUrl;\n delete scheme.tokenUrl;\n delete scheme.scopes;\n if (typeof scheme.name !== 'undefined') {\n if (options.patch) {\n delete scheme.name;\n }\n else {\n throwError('(Patchable) oauth2 securitySchemes should not have name property', options);\n }\n }\n }\n}\n\nfunction keepParameters(value) {\n return (value && !value[\"x-s2o-delete\"]);\n}\n\nfunction processHeader(header, options) {\n if (header.$ref) {\n header.$ref = header.$ref.replace('#/responses/', '#/components/responses/');\n }\n else {\n if (header.type && !header.schema) {\n header.schema = {};\n }\n if (header.type) header.schema.type = header.type;\n if (header.items && header.items.type !== 'array') {\n if (header.items.collectionFormat !== header.collectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', header, options);\n }\n delete header.items.collectionFormat;\n }\n if (header.type === 'array') {\n if (header.collectionFormat === 'ssv') {\n throwOrWarn('collectionFormat:ssv is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'pipes') {\n throwOrWarn('collectionFormat:pipes is no longer supported for headers', header, options); // not lossless\n }\n else if (header.collectionFormat === 'multi') {\n header.explode = true;\n }\n else if (header.collectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', header, options); // not lossless\n header[\"x-collectionFormat\"] = 'tsv';\n }\n else { // 'csv'\n header.style = 'simple';\n }\n delete header.collectionFormat;\n }\n else if (header.collectionFormat) {\n if (options.patch) {\n delete header.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to header.type array', options);\n }\n }\n delete header.type;\n for (let prop of common.parameterTypeProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n for (let prop of common.arrayProperties) {\n if (typeof header[prop] !== 'undefined') {\n header.schema[prop] = header[prop];\n delete header[prop];\n }\n }\n }\n}\n\nfunction fixParamRef(param, options) {\n if (param.$ref.indexOf('#/parameters/') >= 0) {\n let refComponents = param.$ref.split('#/parameters/');\n param.$ref = refComponents[0] + '#/components/parameters/' + common.sanitise(refComponents[1]);\n }\n if (param.$ref.indexOf('#/definitions/') >= 0) {\n throwOrWarn('Definition used as parameter', param, options);\n }\n}\n\nfunction attachRequestBody(op,options) {\n let newOp = {};\n for (let key of Object.keys(op)) {\n newOp[key] = op[key];\n if (key === 'parameters') {\n newOp.requestBody = {};\n if (options.rbname) newOp[options.rbname] = '';\n }\n }\n newOp.requestBody = {}; // just in case there are no parameters\n return newOp;\n}\n\n/**\n * @returns op, as it may have changed\n */\nfunction processParameter(param, op, path, method, index, openapi, options) {\n let result = {};\n let singularRequestBody = true;\n let originalType;\n\n if (op && op.consumes && (typeof op.consumes === 'string')) {\n if (options.patch) {\n op.consumes = [op.consumes];\n }\n else {\n return throwError('(Patchable) operation.consumes must be an array', options);\n }\n }\n if (!Array.isArray(openapi.consumes)) delete openapi.consumes;\n let consumes = ((op ? op.consumes : null) || (openapi.consumes || [])).filter(common.uniqueOnly);\n\n if (param && param.$ref && (typeof param.$ref === 'string')) {\n // if we still have a ref here, it must be an internal one\n fixParamRef(param, options);\n let ptr = decodeURIComponent(param.$ref.replace('#/components/parameters/', ''));\n let rbody = false;\n let target = openapi.components.parameters[ptr]; // resolves a $ref, must have been sanitised already\n\n if (((!target) || (target[\"x-s2o-delete\"])) && param.$ref.startsWith('#/')) {\n // if it's gone, chances are it's a requestBody component now unless spec was broken\n param[\"x-s2o-delete\"] = true;\n rbody = true;\n }\n\n // shared formData parameters from swagger or path level could be used in any combination.\n // we dereference all op.requestBody's then hash them and pull out common ones later\n\n if (rbody) {\n let ref = param.$ref;\n let newParam = resolveInternal(openapi, param.$ref);\n if (!newParam && ref.startsWith('#/')) {\n throwOrWarn('Could not resolve reference ' + ref, param, options);\n }\n else {\n if (newParam) param = newParam; // preserve reference\n }\n }\n }\n\n if (param && (param.name || param.in)) { // if it's a real parameter OR we've dereferenced it\n\n if (typeof param['x-deprecated'] === 'boolean') {\n param.deprecated = param['x-deprecated'];\n delete param['x-deprecated'];\n }\n\n if (typeof param['x-example'] !== 'undefined') {\n param.example = param['x-example'];\n delete param['x-example'];\n }\n\n if ((param.in != 'body') && (!param.type)) {\n if (options.patch) {\n param.type = 'string';\n }\n else {\n throwError('(Patchable) parameter.type is mandatory for non-body parameters', options);\n }\n }\n if (param.type && typeof param.type === 'object' && param.type.$ref) {\n // $ref anywhere sensibility\n param.type = resolveInternal(openapi, param.type.$ref);\n }\n if (param.type === 'file') {\n param['x-s2o-originalType'] = param.type;\n originalType = param.type;\n }\n if (param.description && typeof param.description === 'object' && param.description.$ref) {\n // $ref anywhere sensibility\n param.description = resolveInternal(openapi, param.description.$ref);\n }\n if (param.description === null) delete param.description;\n\n let oldCollectionFormat = param.collectionFormat;\n if ((param.type === 'array') && !oldCollectionFormat) {\n oldCollectionFormat = 'csv';\n }\n if (oldCollectionFormat) {\n if (param.type != 'array') {\n if (options.patch) {\n delete param.collectionFormat;\n }\n else {\n throwError('(Patchable) collectionFormat is only applicable to param.type array', options);\n }\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'query') || (param.in === 'cookie'))) {\n param.style = 'form';\n param.explode = false;\n }\n if ((oldCollectionFormat === 'csv') && ((param.in === 'path') || (param.in === 'header'))) {\n param.style = 'simple';\n }\n if (oldCollectionFormat === 'ssv') {\n if (param.in === 'query') {\n param.style = 'spaceDelimited';\n }\n else {\n throwOrWarn('collectionFormat:ssv is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'pipes') {\n if (param.in === 'query') {\n param.style = 'pipeDelimited';\n }\n else {\n throwOrWarn('collectionFormat:pipes is no longer supported except for in:query parameters', param, options); // not lossless\n }\n }\n if (oldCollectionFormat === 'multi') {\n param.explode = true;\n }\n if (oldCollectionFormat === 'tsv') {\n throwOrWarn('collectionFormat:tsv is no longer supported', param, options); // not lossless\n param[\"x-collectionFormat\"] = 'tsv';\n }\n delete param.collectionFormat;\n }\n\n if (param.type && (param.type != 'object') && (param.type != 'body') && (param.in != 'formData')) {\n if (param.items && param.schema) {\n throwOrWarn('parameter has array,items and schema', param, options);\n }\n else {\n if ((!param.schema) || (typeof param.schema !== 'object')) param.schema = {};\n param.schema.type = param.type;\n if (param.items) {\n param.schema.items = param.items;\n delete param.items;\n recurse(param.schema.items, null, function (obj, key, state) {\n if ((key === 'collectionFormat') && (typeof obj[key] === 'string')) {\n if (oldCollectionFormat && obj[key] !== oldCollectionFormat) {\n throwOrWarn('Nested collectionFormats are not supported', param, options);\n }\n delete obj[key]; // not lossless\n }\n // items in 2.0 was a subset of the JSON-Schema items\n // object, it gets fixed up below\n });\n }\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') param.schema[prop] = param[prop];\n delete param[prop];\n }\n }\n }\n\n if (param.schema) {\n fixUpSchema(param.schema,options);\n }\n\n if (param[\"x-ms-skip-url-encoding\"]) {\n if (param.in === 'query') { // might be in:path, not allowed in OAS3\n param.allowReserved = true;\n delete param[\"x-ms-skip-url-encoding\"];\n }\n }\n }\n\n if (param && param.in === 'formData') {\n // convert to requestBody component\n singularRequestBody = false;\n result.content = {};\n let contentType = 'application/x-www-form-urlencoded';\n if ((consumes.length) && (consumes.indexOf('multipart/form-data') >= 0)) {\n contentType = 'multipart/form-data';\n }\n\n result.content[contentType] = {};\n if (param.schema) {\n result.content[contentType].schema = param.schema;\n if (param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n }\n else {\n result.content[contentType].schema = {};\n result.content[contentType].schema.type = 'object';\n result.content[contentType].schema.properties = {};\n result.content[contentType].schema.properties[param.name] = {};\n let schema = result.content[contentType].schema;\n let target = result.content[contentType].schema.properties[param.name];\n if (param.description) target.description = param.description;\n if (param.example) target.example = param.example;\n if (param.type) target.type = param.type;\n\n for (let prop of common.parameterTypeProperties) {\n if (typeof param[prop] !== 'undefined') target[prop] = param[prop];\n }\n if (param.required === true) {\n if (!schema.required) schema.required = [];\n schema.required.push(param.name);\n }\n if (typeof param.default !== 'undefined') target.default = param.default;\n if (target.properties) target.properties = param.properties;\n if (param.allOf) target.allOf = param.allOf; // new are anyOf, oneOf, not\n if ((param.type === 'array') && (param.items)) {\n target.items = param.items;\n if (target.items.collectionFormat) delete target.items.collectionFormat;\n }\n if ((originalType === 'file') || (param['x-s2o-originalType'] === 'file')) {\n target.type = 'string';\n target.format = 'binary';\n }\n\n // Copy any extensions on the form param to the target schema property.\n copyExtensions(param, target);\n }\n }\n else if (param && param.type === 'file') {\n // convert to requestBody\n if (param.required) result.required = param.required;\n result.content = {};\n result.content[\"application/octet-stream\"] = {};\n result.content[\"application/octet-stream\"].schema = {};\n result.content[\"application/octet-stream\"].schema.type = 'string';\n result.content[\"application/octet-stream\"].schema.format = 'binary';\n copyExtensions(param, result);\n }\n if (param && param.in === 'body') {\n result.content = {};\n if (param.name) result['x-s2o-name'] = (op && op.operationId ? common.sanitiseAll(op.operationId) : '') + ('_' + param.name).toCamelCase();\n if (param.description) result.description = param.description;\n if (param.required) result.required = param.required;\n\n // Set the \"request body name\" extension on the operation if requested.\n if (op && options.rbname && param.name) {\n op[options.rbname] = param.name;\n }\n if (param.schema && param.schema.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.$ref.replace('#/components/schemas/', ''));\n }\n else if (param.schema && (param.schema.type === 'array') && param.schema.items && param.schema.items.$ref) {\n result['x-s2o-name'] = decodeURIComponent(param.schema.items.$ref.replace('#/components/schemas/', '')) + 'Array';\n }\n\n if (!consumes.length) {\n consumes.push('application/json'); // TODO verify default\n }\n\n for (let mimetype of consumes) {\n result.content[mimetype] = {};\n result.content[mimetype].schema = clone(param.schema || {});\n fixUpSchema(result.content[mimetype].schema,options);\n }\n\n // Copy any extensions from the original parameter to the new requestBody\n copyExtensions(param, result);\n }\n\n if (Object.keys(result).length > 0) {\n param[\"x-s2o-delete\"] = true;\n // work out where to attach the requestBody\n if (op) {\n if (op.requestBody && singularRequestBody) {\n op.requestBody[\"x-s2o-overloaded\"] = true;\n let opId = op.operationId || index;\n\n throwOrWarn('Operation ' + opId + ' has multiple requestBodies', op, options);\n }\n else {\n if (!op.requestBody) {\n op = path[method] = attachRequestBody(op,options); // make sure we have one\n }\n if ((op.requestBody.content && op.requestBody.content[\"multipart/form-data\"])\n && (op.requestBody.content[\"multipart/form-data\"].schema) && (op.requestBody.content[\"multipart/form-data\"].schema.properties) && (result.content[\"multipart/form-data\"]) && (result.content[\"multipart/form-data\"].schema) && (result.content[\"multipart/form-data\"].schema.properties)) {\n op.requestBody.content[\"multipart/form-data\"].schema.properties =\n Object.assign(op.requestBody.content[\"multipart/form-data\"].schema.properties, result.content[\"multipart/form-data\"].schema.properties);\n op.requestBody.content[\"multipart/form-data\"].schema.required = (op.requestBody.content[\"multipart/form-data\"].schema.required || []).concat(result.content[\"multipart/form-data\"].schema.required||[]);\n if (!op.requestBody.content[\"multipart/form-data\"].schema.required.length) {\n delete op.requestBody.content[\"multipart/form-data\"].schema.required;\n }\n }\n else if ((op.requestBody.content && op.requestBody.content[\"application/x-www-form-urlencoded\"] && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema && op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties)\n && result.content[\"application/x-www-form-urlencoded\"] && result.content[\"application/x-www-form-urlencoded\"].schema && result.content[\"application/x-www-form-urlencoded\"].schema.properties) {\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties =\n Object.assign(op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.properties, result.content[\"application/x-www-form-urlencoded\"].schema.properties);\n op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required = (op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required || []).concat(result.content[\"application/x-www-form-urlencoded\"].schema.required||[]);\n if (!op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required.length) {\n delete op.requestBody.content[\"application/x-www-form-urlencoded\"].schema.required;\n }\n }\n else {\n op.requestBody = Object.assign(op.requestBody, result);\n if (!op.requestBody['x-s2o-name']) {\n if (op.requestBody.schema && op.requestBody.schema.$ref) {\n op.requestBody['x-s2o-name'] = decodeURIComponent(op.requestBody.schema.$ref.replace('#/components/schemas/', '')).split('/').join('');\n }\n else if (op.operationId) {\n op.requestBody['x-s2o-name'] = common.sanitiseAll(op.operationId);\n }\n }\n }\n }\n }\n }\n\n // tidy up\n if (param && !param['x-s2o-delete']) {\n delete param.type;\n for (let prop of common.parameterTypeProperties) {\n delete param[prop];\n }\n\n if ((param.in === 'path') && ((typeof param.required === 'undefined') || (param.required !== true))) {\n if (options.patch) {\n param.required = true;\n }\n else {\n throwError('(Patchable) path parameters must be required:true ['+param.name+' in '+index+']', options);\n }\n }\n }\n\n return op;\n}\n\nfunction copyExtensions(src, tgt) {\n for (let prop in src) {\n if (prop.startsWith('x-') && !prop.startsWith('x-s2o')) {\n tgt[prop] = src[prop];\n }\n }\n}\n\nfunction processResponse(response, name, op, openapi, options) {\n if (!response) return false;\n if (response.$ref && (typeof response.$ref === 'string')) {\n if (response.$ref.indexOf('#/definitions/') >= 0) {\n //response.$ref = '#/components/schemas/'+common.sanitise(response.$ref.replace('#/definitions/',''));\n throwOrWarn('definition used as response: ' + response.$ref, response, options);\n }\n else {\n if (response.$ref.startsWith('#/responses/')) {\n response.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.$ref.replace('#/responses/', '')));\n }\n }\n }\n else {\n if ((typeof response.description === 'undefined') || (response.description === null)\n || ((response.description === '') && options.patch)) {\n if (options.patch) {\n if ((typeof response === 'object') && (!Array.isArray(response))) {\n response.description = (statusCodes[response] || '');\n }\n }\n else {\n throwError('(Patchable) response.description is mandatory', options);\n }\n }\n if (typeof response.schema !== 'undefined') {\n\n fixUpSchema(response.schema,options);\n\n if (response.schema.$ref && (typeof response.schema.$ref === 'string') && response.schema.$ref.startsWith('#/responses/')) {\n response.schema.$ref = '#/components/responses/' + common.sanitise(decodeURIComponent(response.schema.$ref.replace('#/responses/', '')));\n }\n\n if (op && op.produces && (typeof op.produces === 'string')) {\n if (options.patch) {\n op.produces = [op.produces];\n }\n else {\n return throwError('(Patchable) operation.produces must be an array', options);\n }\n }\n if (openapi.produces && !Array.isArray(openapi.produces)) delete openapi.produces;\n\n let produces = ((op ? op.produces : null) || (openapi.produces || [])).filter(common.uniqueOnly);\n if (!produces.length) produces.push('*/*'); // TODO verify default\n\n response.content = {};\n for (let mimetype of produces) {\n response.content[mimetype] = {};\n response.content[mimetype].schema = clone(response.schema);\n if (response.examples && response.examples[mimetype]) {\n let example = {};\n example.value = response.examples[mimetype];\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = example;\n delete response.examples[mimetype];\n }\n if (response.content[mimetype].schema.type === 'file') {\n response.content[mimetype].schema = { type: 'string', format: 'binary' };\n }\n }\n delete response.schema;\n }\n // examples for content-types not listed in produces\n for (let mimetype in response.examples) {\n if (!response.content) response.content = {};\n if (!response.content[mimetype]) response.content[mimetype] = {};\n response.content[mimetype].examples = {};\n response.content[mimetype].examples.response = {};\n response.content[mimetype].examples.response.value = response.examples[mimetype];\n }\n delete response.examples;\n\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n}\n\nfunction processPaths(container, containerName, options, requestBodyCache, openapi) {\n for (let p in container) {\n let path = container[p];\n // path.$ref is external only\n if (path && (path['x-trace']) && (typeof path['x-trace'] === 'object')) {\n path.trace = path['x-trace'];\n delete path['x-trace'];\n }\n if (path && (path['x-summary']) && (typeof path['x-summary'] === 'string')) {\n path.summary = path['x-summary'];\n delete path['x-summary'];\n }\n if (path && (path['x-description']) && (typeof path['x-description'] === 'string')) {\n path.description = path['x-description'];\n delete path['x-description'];\n }\n if (path && (path['x-servers']) && (Array.isArray(path['x-servers']))) {\n path.servers = path['x-servers'];\n delete path['x-servers'];\n }\n for (let method in path) {\n if ((common.httpMethods.indexOf(method) >= 0) || (method === 'x-amazon-apigateway-any-method')) {\n let op = path[method];\n\n if (op && op.parameters && Array.isArray(op.parameters)) {\n if (path.parameters) {\n for (let param of path.parameters) {\n if (typeof param.$ref === 'string') {\n fixParamRef(param, options);\n param = resolveInternal(openapi, param.$ref);\n }\n let match = op.parameters.find(function (e, i, a) {\n return ((e.name === param.name) && (e.in === param.in));\n });\n\n if (!match && ((param.in === 'formData') || (param.in === 'body') || (param.type === 'file'))) {\n op = processParameter(param, op, path, method, p, openapi, options);\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n }\n }\n }\n for (let param of op.parameters) {\n op = processParameter(param, op, path, method, method + ':' + p, openapi, options);\n }\n if (options.rbname && op[options.rbname] === '') {\n delete op[options.rbname];\n }\n if (!options.debug) {\n op.parameters = op.parameters.filter(keepParameters);\n }\n }\n\n if (op && op.security) processSecurity(op.security);\n\n //don't need to remove requestBody for non-supported ops as they \"SHALL be ignored\"\n\n // responses\n if (typeof op === 'object') {\n if (!op.responses) {\n let defaultResp = {};\n defaultResp.description = 'Default response';\n op.responses = { default: defaultResp };\n }\n for (let r in op.responses) {\n let response = op.responses[r];\n processResponse(response, r, op, openapi, options);\n }\n }\n\n if (op && (op['x-servers']) && (Array.isArray(op['x-servers']))) {\n op.servers = op['x-servers'];\n delete op['x-servers'];\n } else if (op && op.schemes && op.schemes.length) {\n for (let scheme of op.schemes) {\n if ((!openapi.schemes) || (openapi.schemes.indexOf(scheme) < 0)) {\n if (!op.servers) {\n op.servers = [];\n }\n if (Array.isArray(openapi.servers)) {\n for (let server of openapi.servers) {\n let newServer = clone(server);\n let serverUrl = url.parse(newServer.url);\n serverUrl.protocol = scheme;\n newServer.url = serverUrl.format();\n op.servers.push(newServer);\n }\n }\n }\n }\n }\n\n if (options.debug) {\n op[\"x-s2o-consumes\"] = op.consumes || [];\n op[\"x-s2o-produces\"] = op.produces || [];\n }\n if (op) {\n delete op.consumes;\n delete op.produces;\n delete op.schemes;\n\n if (op[\"x-ms-examples\"]) {\n for (let e in op[\"x-ms-examples\"]) {\n let example = op[\"x-ms-examples\"][e];\n let se = common.sanitiseAll(e);\n if (example.parameters) {\n for (let p in example.parameters) {\n let value = example.parameters[p];\n for (let param of (op.parameters||[]).concat(path.parameters||[])) {\n if (param.$ref) {\n param = jptr.jptr(openapi,param.$ref);\n }\n if ((param.name === p) && (!param.example)) {\n if (!param.examples) {\n param.examples = {};\n }\n param.examples[e] = {value: value};\n }\n }\n }\n }\n if (example.responses) {\n for (let r in example.responses) {\n if (example.responses[r].headers) {\n for (let h in example.responses[r].headers) {\n let value = example.responses[r].headers[h];\n for (let rh in op.responses[r].headers) {\n if (rh === h) {\n let header = op.responses[r].headers[rh];\n header.example = value;\n }\n }\n }\n }\n if (example.responses[r].body) {\n openapi.components.examples[se] = { value: clone(example.responses[r].body) };\n if (op.responses[r] && op.responses[r].content) {\n for (let ct in op.responses[r].content) {\n let contentType = op.responses[r].content[ct];\n if (!contentType.examples) {\n contentType.examples = {};\n }\n contentType.examples[e] = { $ref: '#/components/examples/'+se };\n }\n }\n }\n\n }\n }\n }\n delete op[\"x-ms-examples\"];\n }\n\n if (op.parameters && op.parameters.length === 0) delete op.parameters;\n if (op.requestBody) {\n let effectiveOperationId = op.operationId ? common.sanitiseAll(op.operationId) : common.sanitiseAll(method + p).toCamelCase();\n let rbName = common.sanitise(op.requestBody['x-s2o-name'] || effectiveOperationId || '');\n delete op.requestBody['x-s2o-name'];\n let rbStr = JSON.stringify(op.requestBody);\n let rbHash = common.hash(rbStr);\n if (!requestBodyCache[rbHash]) {\n let entry = {};\n entry.name = rbName;\n entry.body = op.requestBody;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n let ptr = '#/'+containerName+'/'+encodeURIComponent(jptr.jpescape(p))+'/'+method+'/requestBody';\n requestBodyCache[rbHash].refs.push(ptr);\n }\n }\n\n }\n }\n if (path && path.parameters) {\n for (let p2 in path.parameters) {\n let param = path.parameters[p2];\n processParameter(param, null, path, null, p, openapi, options); // index here is the path string\n }\n if (!options.debug && Array.isArray(path.parameters)) {\n path.parameters = path.parameters.filter(keepParameters);\n }\n }\n }\n}\n\nfunction main(openapi, options) {\n\n let requestBodyCache = {};\n componentNames = { schemas: {} };\n\n if (openapi.security) processSecurity(openapi.security);\n\n for (let s in openapi.components.securitySchemes) {\n let sname = common.sanitise(s);\n if (s != sname) {\n if (openapi.components.securitySchemes[sname]) {\n throwError('Duplicate sanitised securityScheme name ' + sname, options);\n }\n openapi.components.securitySchemes[sname] = openapi.components.securitySchemes[s];\n delete openapi.components.securitySchemes[s];\n }\n processSecurityScheme(openapi.components.securitySchemes[sname], options);\n }\n\n for (let s in openapi.components.schemas) {\n let sname = common.sanitiseAll(s);\n let suffix = '';\n if (s != sname) {\n while (openapi.components.schemas[sname + suffix]) {\n // @ts-ignore\n suffix = (suffix ? ++suffix : 2);\n }\n openapi.components.schemas[sname + suffix] = openapi.components.schemas[s];\n delete openapi.components.schemas[s];\n }\n componentNames.schemas[s] = sname + suffix;\n fixUpSchema(openapi.components.schemas[sname+suffix],options)\n }\n\n // fix all $refs to their new locations (and potentially new names)\n options.refmap = {};\n recurse(openapi, { payload: { options: options } }, fixupRefs);\n dedupeRefs(openapi,options);\n\n for (let p in openapi.components.parameters) {\n let sname = common.sanitise(p);\n if (p != sname) {\n if (openapi.components.parameters[sname]) {\n throwError('Duplicate sanitised parameter name ' + sname, options);\n }\n openapi.components.parameters[sname] = openapi.components.parameters[p];\n delete openapi.components.parameters[p];\n }\n let param = openapi.components.parameters[sname];\n processParameter(param, null, null, null, sname, openapi, options);\n }\n\n for (let r in openapi.components.responses) {\n let sname = common.sanitise(r);\n if (r != sname) {\n if (openapi.components.responses[sname]) {\n throwError('Duplicate sanitised response name ' + sname, options);\n }\n openapi.components.responses[sname] = openapi.components.responses[r];\n delete openapi.components.responses[r];\n }\n let response = openapi.components.responses[sname];\n processResponse(response, sname, null, openapi, options);\n if (response.headers) {\n for (let h in response.headers) {\n if (h.toLowerCase() === 'status code') {\n if (options.patch) {\n delete response.headers[h];\n }\n else {\n throwError('(Patchable) \"Status Code\" is not a valid header', options);\n }\n }\n else {\n processHeader(response.headers[h], options);\n }\n }\n }\n }\n\n for (let r in openapi.components.requestBodies) { // converted ones\n let rb = openapi.components.requestBodies[r];\n let rbStr = JSON.stringify(rb);\n let rbHash = common.hash(rbStr);\n let entry = {};\n entry.name = r;\n entry.body = rb;\n entry.refs = [];\n requestBodyCache[rbHash] = entry;\n }\n\n processPaths(openapi.paths, 'paths', options, requestBodyCache, openapi);\n if (openapi[\"x-ms-paths\"]) {\n processPaths(openapi[\"x-ms-paths\"], 'x-ms-paths', options, requestBodyCache, openapi);\n }\n\n if (!options.debug) {\n for (let p in openapi.components.parameters) {\n let param = openapi.components.parameters[p];\n if (param[\"x-s2o-delete\"]) {\n delete openapi.components.parameters[p];\n }\n }\n }\n\n if (options.debug) {\n openapi[\"x-s2o-consumes\"] = openapi.consumes || [];\n openapi[\"x-s2o-produces\"] = openapi.produces || [];\n }\n delete openapi.consumes;\n delete openapi.produces;\n delete openapi.schemes;\n\n let rbNamesGenerated = [];\n\n openapi.components.requestBodies = {}; // for now as we've dereffed them\n\n if (!options.resolveInternal) {\n let counter = 1;\n for (let e in requestBodyCache) {\n let entry = requestBodyCache[e];\n if (entry.refs.length > 1) {\n // create a shared requestBody\n let suffix = '';\n if (!entry.name) {\n entry.name = 'requestBody';\n // @ts-ignore\n suffix = counter++;\n }\n while (rbNamesGenerated.indexOf(entry.name + suffix) >= 0) {\n // @ts-ignore - this can happen if descriptions are not exactly the same (e.g. bitbucket)\n suffix = (suffix ? ++suffix : 2);\n }\n entry.name = entry.name + suffix;\n rbNamesGenerated.push(entry.name);\n openapi.components.requestBodies[entry.name] = clone(entry.body);\n for (let r in entry.refs) {\n let ref = {};\n ref.$ref = '#/components/requestBodies/' + entry.name;\n jptr.jptr(openapi,entry.refs[r],ref);\n }\n }\n }\n }\n\n if (openapi.components.responses && Object.keys(openapi.components.responses).length === 0) {\n delete openapi.components.responses;\n }\n if (openapi.components.parameters && Object.keys(openapi.components.parameters).length === 0) {\n delete openapi.components.parameters;\n }\n if (openapi.components.examples && Object.keys(openapi.components.examples).length === 0) {\n delete openapi.components.examples;\n }\n if (openapi.components.requestBodies && Object.keys(openapi.components.requestBodies).length === 0) {\n delete openapi.components.requestBodies;\n }\n if (openapi.components.securitySchemes && Object.keys(openapi.components.securitySchemes).length === 0) {\n delete openapi.components.securitySchemes;\n }\n if (openapi.components.headers && Object.keys(openapi.components.headers).length === 0) {\n delete openapi.components.headers;\n }\n if (openapi.components.schemas && Object.keys(openapi.components.schemas).length === 0) {\n delete openapi.components.schemas;\n }\n if (openapi.components && Object.keys(openapi.components).length === 0) {\n delete openapi.components;\n }\n\n return openapi;\n}\n\nfunction extractServerParameters(server) {\n if (!server || !server.url || (typeof server.url !== 'string')) return server;\n server.url = server.url.split('{{').join('{');\n server.url = server.url.split('}}').join('}');\n server.url.replace(/\\{(.+?)\\}/g, function (match, group1) { // TODO extend to :parameters (not port)?\n if (!server.variables) {\n server.variables = {};\n }\n server.variables[group1] = { default: 'unknown' };\n });\n return server;\n}\n\nfunction fixInfo(openapi, options, reject) {\n if ((typeof openapi.info === 'undefined') || (openapi.info === null)) {\n if (options.patch) {\n openapi.info = { version: '', title: '' };\n }\n else {\n return reject(new S2OError('(Patchable) info object is mandatory'));\n }\n }\n if ((typeof openapi.info !== 'object') || (Array.isArray(openapi.info))) {\n return reject(new S2OError('info must be an object'));\n }\n if ((typeof openapi.info.title === 'undefined') || (openapi.info.title === null)) {\n if (options.patch) {\n openapi.info.title = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.title cannot be null'));\n }\n }\n if ((typeof openapi.info.version === 'undefined') || (openapi.info.version === null)) {\n if (options.patch) {\n openapi.info.version = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.version cannot be null'));\n }\n }\n if (typeof openapi.info.version !== 'string') {\n if (options.patch) {\n openapi.info.version = openapi.info.version.toString();\n }\n else {\n return reject(new S2OError('(Patchable) info.version must be a string'));\n }\n }\n if (typeof openapi.info.logo !== 'undefined') {\n if (options.patch) {\n openapi.info['x-logo'] = openapi.info.logo;\n delete openapi.info.logo;\n }\n else return reject(new S2OError('(Patchable) info should not have logo property'));\n }\n if (typeof openapi.info.termsOfService !== 'undefined') {\n if (openapi.info.termsOfService === null) {\n if (options.patch) {\n openapi.info.termsOfService = '';\n }\n else {\n return reject(new S2OError('(Patchable) info.termsOfService cannot be null'));\n }\n }\n if (url.URL && options.whatwg) {\n try {\n url.URL.parse(openapi.info.termsOfService);\n }\n catch (ex) {\n if (options.patch) {\n delete openapi.info.termsOfService;\n }\n else return reject(new S2OError('(Patchable) info.termsOfService must be a URL'));\n }\n }\n }\n}\n\nfunction fixPaths(openapi, options, reject) {\n if (typeof openapi.paths === 'undefined') {\n if (options.patch) {\n openapi.paths = {};\n }\n else {\n return reject(new S2OError('(Patchable) paths object is mandatory'));\n }\n }\n}\n\nfunction convertObj(swagger, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n if (!swagger) swagger = {};\n options.original = swagger;\n if (!options.text) options.text = yaml.stringify(swagger);\n options.externals = [];\n options.externalRefs = {};\n options.rewriteRefs = true; // avoids stack explosions\n options.preserveMiro = true;\n options.promise = {};\n options.promise.resolve = resolve;\n options.promise.reject = reject;\n if (!options.cache) options.cache = {};\n if (options.source) options.cache[options.source] = options.original;\n if (swagger.openapi && (typeof swagger.openapi === 'string') && swagger.openapi.startsWith('3.')) {\n options.openapi = cclone(swagger);\n fixInfo(options.openapi, options, reject);\n fixPaths(options.openapi, options, reject);\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n if (options.direct) {\n return resolve(options.openapi);\n }\n else {\n return resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n return; // we should have resolved or rejected by now\n }\n\n if ((!swagger.swagger) || (swagger.swagger != \"2.0\")) {\n return reject(new S2OError('Unsupported swagger/OpenAPI version: ' + (swagger.openapi ? swagger.openapi : swagger.swagger)));\n }\n\n let openapi = options.openapi = {};\n openapi.openapi = (typeof options.targetVersion === 'string' && options.targetVersion.startsWith('3.')) ? options.targetVersion : targetVersion; // semver\n\n if (options.origin) {\n if (!openapi[\"x-origin\"]) {\n openapi[\"x-origin\"] = [];\n }\n let origin = {};\n origin.url = options.source||options.origin;\n origin.format = 'swagger';\n origin.version = swagger.swagger;\n origin.converter = {};\n origin.converter.url = 'https://github.com/mermade/oas-kit';\n origin.converter.version = ourVersion;\n openapi[\"x-origin\"].push(origin);\n }\n\n // we want the new and existing properties to appear in a sensible order. Not guaranteed\n openapi = Object.assign(openapi, cclone(swagger));\n delete openapi.swagger;\n recurse(openapi, {}, function(obj, key, state){\n if ((obj[key] === null) && (!key.startsWith('x-')) && key !== 'default' && (state.path.indexOf('/example') < 0)) delete obj[key]; // this saves *so* much grief later\n });\n\n if (swagger.host) {\n for (let s of (Array.isArray(swagger.schemes) ? swagger.schemes : [''])) {\n let server = {};\n server.url = (s ? s+':' : '') + '//' + swagger.host + (swagger.basePath ? swagger.basePath : '');\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n }\n else if (swagger.basePath) {\n let server = {};\n server.url = swagger.basePath;\n extractServerParameters(server);\n if (!openapi.servers) openapi.servers = [];\n openapi.servers.push(server);\n }\n delete openapi.host;\n delete openapi.basePath;\n\n if (openapi['x-servers'] && Array.isArray(openapi['x-servers'])) {\n openapi.servers = openapi['x-servers'];\n delete openapi['x-servers'];\n }\n\n // TODO APIMatic extensions (x-server-configuration) ?\n\n if (swagger['x-ms-parameterized-host']) {\n let xMsPHost = swagger['x-ms-parameterized-host'];\n let server = {};\n server.url = xMsPHost.hostTemplate + (swagger.basePath ? swagger.basePath : '');\n server.variables = {};\n for (let msp in xMsPHost.parameters) {\n let param = xMsPHost.parameters[msp];\n if (param.$ref) {\n param = clone(resolveInternal(openapi, param.$ref));\n }\n if (!msp.startsWith('x-')) {\n delete param.required; // all true\n delete param.type; // all strings\n delete param.in; // all 'host'\n if (typeof param.default === 'undefined') {\n if (param.enum) {\n param.default = param.enum[0];\n }\n else {\n param.default = '';\n }\n }\n server.variables[param.name] = param;\n delete param.name;\n }\n }\n if (!openapi.servers) openapi.servers = [];\n if (xMsPHost.useSchemePrefix === false) {\n // The server URL already includes a protocol scheme\n openapi.servers.push(server);\n } else {\n // Define this server once for each given protocol scheme\n swagger.schemes.forEach((scheme) => {\n openapi.servers.push(\n Object.assign({}, server, { url: scheme + '://' + server.url })\n )\n });\n }\n delete openapi['x-ms-parameterized-host'];\n }\n\n fixInfo(openapi, options, reject);\n fixPaths(openapi, options, reject);\n\n if (typeof openapi.consumes === 'string') {\n openapi.consumes = [openapi.consumes];\n }\n if (typeof openapi.produces === 'string') {\n openapi.produces = [openapi.produces];\n }\n\n openapi.components = {};\n if (openapi['x-callbacks']) {\n openapi.components.callbacks = openapi['x-callbacks'];\n delete openapi['x-callbacks'];\n }\n openapi.components.examples = {};\n openapi.components.headers = {};\n if (openapi['x-links']) {\n openapi.components.links = openapi['x-links'];\n delete openapi['x-links'];\n }\n openapi.components.parameters = openapi.parameters || {};\n openapi.components.responses = openapi.responses || {};\n openapi.components.requestBodies = {};\n openapi.components.securitySchemes = openapi.securityDefinitions || {};\n openapi.components.schemas = openapi.definitions || {};\n delete openapi.definitions;\n delete openapi.responses;\n delete openapi.parameters;\n delete openapi.securityDefinitions;\n\n resolver.optionalResolve(options) // is a no-op if options.resolve is not set\n .then(function(){\n main(options.openapi, options);\n if (options.direct) {\n resolve(options.openapi);\n }\n else {\n resolve(options);\n }\n })\n .catch(function(ex){\n console.warn(ex);\n reject(ex);\n });\n\n }));\n}\n\nfunction convertStr(str, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let obj = null;\n let error = null;\n try {\n obj = JSON.parse(str);\n options.text = JSON.stringify(obj,null,2);\n }\n catch (ex) {\n error = ex;\n try {\n obj = yaml.parse(str, { schema: 'core', prettyErrors: true });\n options.sourceYaml = true;\n options.text = str;\n }\n catch (ex) {\n error = ex;\n }\n }\n if (obj) {\n convertObj(obj, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n else {\n reject(new S2OError(error ? error.message : 'Could not parse string'));\n }\n }));\n}\n\nfunction convertUrl(url, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n options.origin = true;\n if (!options.source) {\n options.source = url;\n }\n if (options.verbose) {\n console.warn('GET ' + url);\n }\n fetch(url, {agent:options.agent}).then(function (res) {\n if (res.status !== 200) throw new S2OError(`Received status code ${res.status}`);\n return res.text();\n }).then(function (body) {\n convertStr(body, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }).catch(function (err) {\n reject(err);\n });\n }));\n}\n\nfunction convertFile(filename, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n fs.readFile(filename, options.encoding || 'utf8', function (err, s) {\n if (err) {\n reject(err);\n }\n else {\n options.sourceFile = filename;\n convertStr(s, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n }\n });\n }));\n}\n\nfunction convertStream(readable, options, callback) {\n return maybe(callback, new Promise(function (resolve, reject) {\n let data = '';\n readable.on('data', function (chunk) {\n data += chunk;\n })\n .on('end', function () {\n convertStr(data, options)\n .then(options => resolve(options))\n .catch(ex => reject(ex));\n });\n }));\n}\n\nmodule.exports = {\n S2OError: S2OError,\n targetVersion: targetVersion,\n convert: convertObj,\n convertObj: convertObj,\n convertUrl: convertUrl,\n convertStr: convertStr,\n convertFile: convertFile,\n convertStream: convertStream\n};\n","'use strict';\n\nfunction areInputsEqual(newInputs, lastInputs) {\n if (newInputs.length !== lastInputs.length) {\n return false;\n }\n for (var i = 0; i < newInputs.length; i++) {\n if (newInputs[i] !== lastInputs[i]) {\n return false;\n }\n }\n return true;\n}\n\nfunction memoizeOne(resultFn, isEqual) {\n if (isEqual === void 0) { isEqual = areInputsEqual; }\n var lastThis;\n var lastArgs = [];\n var lastResult;\n var calledOnce = false;\n function memoized() {\n var newArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n newArgs[_i] = arguments[_i];\n }\n if (calledOnce && lastThis === this && isEqual(newArgs, lastArgs)) {\n return lastResult;\n }\n lastResult = resultFn.apply(this, newArgs);\n calledOnce = true;\n lastThis = this;\n lastArgs = newArgs;\n return lastResult;\n }\n return memoized;\n}\n\nmodule.exports = memoizeOne;\n","module.exports = require(\"react-dropdown\");","module.exports = require(\"dompurify\");","module.exports = require(\"classnames\");","module.exports = require(\"call-me-maybe\");","'use strict';\n\nconst fs = require('fs');\nconst path = require('path');\nconst url = require('url');\n\nconst fetch = require('node-fetch-h2');\nconst yaml = require('yaml');\n\nconst jptr = require('reftools/lib/jptr.js').jptr;\nconst recurse = require('reftools/lib/recurse.js').recurse;\nconst clone = require('reftools/lib/clone.js').clone;\nconst deRef = require('reftools/lib/dereference.js').dereference;\nconst isRef = require('reftools/lib/isref.js').isRef;\nconst common = require('oas-kit-common');\n\nfunction unique(arr) {\n return [... new Set(arr)];\n}\n\nfunction readFileAsync(filename, encoding) {\n return new Promise(function (resolve, reject) {\n fs.readFile(filename, encoding, function (err, data) {\n if (err)\n reject(err);\n else\n resolve(data);\n });\n });\n}\n\nfunction resolveAllFragment(obj, context, src, parentPath, base, options) {\n\n let attachPoint = options.externalRefs[src+parentPath].paths[0];\n\n let baseUrl = url.parse(base);\n let seen = {}; // seen is indexed by the $ref value and contains path replacements\n let changes = 1;\n while (changes) {\n changes = 0;\n recurse(obj, {identityDetection:true}, function (obj, key, state) {\n if (isRef(obj, key)) {\n if (obj[key].startsWith('#')) {\n if (!seen[obj[key]] && !obj.$fixed) {\n let target = clone(jptr(context, obj[key]));\n if (options.verbose>1) console.warn((target === false ? common.colour.red : common.colour.green)+'Fragment resolution', obj[key], common.colour.normal);\n /*\n ResolutionCase:A is where there is a local reference in an externally\n referenced document, and we have not seen it before. The reference\n is replaced by a copy of the data pointed to, which may be outside this fragment\n but within the context of the external document\n */\n if (target === false) {\n state.parent[state.pkey] = {}; /* case:A(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Fragment $ref resolution failed '+obj[key]);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n else {\n changes++;\n state.parent[state.pkey] = target;\n seen[obj[key]] = state.path.replace('/%24ref','');\n }\n }\n else {\n if (!obj.$fixed) {\n let newRef = (attachPoint+'/'+seen[obj[key]]).split('/#/').join('/');\n state.parent[state.pkey] = { $ref: newRef, 'x-miro': obj[key], $fixed: true };\n if (options.verbose>1) console.warn('Replacing with',newRef);\n changes++;\n }\n /*\n ResolutionCase:B is where there is a local reference in an externally\n referenced document, and we have seen this reference before and resolved it.\n We create a new object containing the (immutable) $ref string\n */\n }\n }\n else if (baseUrl.protocol) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external url ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key];\n obj[key] = newRef;\n }\n else if (!obj['x-miro']) {\n let newRef = url.resolve(base,obj[key]).toString();\n if (options.verbose>1) console.warn(common.colour.yellow+'Rewriting external ref',obj[key],'as',newRef,common.colour.normal);\n obj['x-miro'] = obj[key]; // we use x-miro as a flag so we don't do this > once\n obj[key] = newRef;\n }\n }\n });\n }\n\n recurse(obj,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (typeof obj.$fixed !== 'undefined') delete obj.$fixed;\n }\n });\n\n if (options.verbose>1) console.warn('Finished fragment resolution');\n return obj;\n}\n\nfunction filterData(data, options) {\n if (!options.filters || !options.filters.length) return data;\n for (let filter of options.filters) {\n data = filter(data, options);\n }\n return data;\n}\n\nfunction testProtocol(input, backup) {\n if (input && input.length > 2) return input;\n if (backup && backup.length > 2) return backup;\n return 'file:';\n}\n\nfunction resolveExternal(root, pointer, options, callback) {\n var u = url.parse(options.source);\n var base = options.source.split('\\\\').join('/').split('/');\n let doc = base.pop(); // drop the actual filename\n if (!doc) base.pop(); // in case it ended with a /\n let fragment = '';\n let fnComponents = pointer.split('#');\n if (fnComponents.length > 1) {\n fragment = '#' + fnComponents[1];\n pointer = fnComponents[0];\n }\n base = base.join('/');\n\n let u2 = url.parse(pointer);\n let effectiveProtocol = testProtocol(u2.protocol, u.protocol);\n\n let target;\n if (effectiveProtocol === 'file:') {\n target = path.resolve(base ? base + '/' : '', pointer);\n }\n else {\n target = url.resolve(base ? base + '/' : '', pointer);\n }\n\n if (options.cache[target]) {\n if (options.verbose) console.warn('CACHED', target, fragment);\n /*\n resolutionSource:A this is where we have cached the externally-referenced document from a\n file, http or custom handler\n */\n let context = clone(options.cache[target]);\n let data = options.externalRef = context;\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; // case:A(2) where the resolution fails\n if (options.fatal) {\n let ex = new Error('Cached $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n callback(clone(data), target, options);\n return Promise.resolve(data);\n }\n\n if (options.verbose) console.warn('GET', target, fragment);\n\n if (options.handlers && options.handlers[effectiveProtocol]) {\n return options.handlers[effectiveProtocol](base, pointer, fragment, options)\n .then(function (data) {\n options.externalRef = data;\n data = filterData(data, options);\n options.cache[target] = data;\n callback(data, target, options);\n return data;\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n throw(ex);\n });\n }\n else if (effectiveProtocol && effectiveProtocol.startsWith('http')) {\n return fetch(target, { agent: options.agent })\n .then(function (res) {\n if (res.status !== 200) throw new Error(`Received status code ${res.status}`);\n return res.text();\n })\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n options.cache[target] = clone(data);\n /* resolutionSource:B, from the network, data is fresh, but we clone it into the cache */\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:B(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('Remote $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function (err) {\n if (options.verbose) console.warn(err);\n options.cache[target] = {};\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n else {\n return readFileAsync(target, options.encoding || 'utf8')\n .then(function (data) {\n try {\n let context = yaml.parse(data, { schema:'core', prettyErrors: true });\n data = options.externalRef = context;\n /*\n resolutionSource:C from a file, data is fresh but we clone it into the cache\n */\n options.cache[target] = clone(data);\n if (fragment) {\n data = jptr(data, fragment);\n if (data === false) {\n data = {}; /* case:C(2) where the resolution fails */\n if (options.fatal) {\n let ex = new Error('File $ref resolution failed '+target+fragment);\n if (options.promise) options.promise.reject(ex)\n else throw(ex);\n }\n }\n }\n data = resolveAllFragment(data, context, pointer, fragment, target, options);\n data = filterData(data, options);\n }\n catch (ex) {\n if (options.verbose) console.warn(ex);\n if (options.promise && options.fatal) options.promise.reject(ex)\n else throw(ex);\n }\n callback(data, target, options);\n return data;\n })\n .catch(function(err){\n if (options.verbose) console.warn(err);\n if (options.promise && options.fatal) options.promise.reject(err)\n else throw(err);\n });\n }\n}\n\nfunction scanExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n function inner(obj,key,state){\n if (obj[key] && isRef(obj[key],'$ref')) {\n let $ref = obj[key].$ref;\n if (!$ref.startsWith('#')) { // is external\n\n let $extra = '';\n\n if (!refs[$ref]) {\n let potential = Object.keys(refs).find(function(e,i,a){\n return $ref.startsWith(e+'/');\n });\n if (potential) {\n if (options.verbose) console.warn('Found potential subschema at',potential);\n $extra = '/'+($ref.split('#')[1]||'').replace(potential.split('#')[1]||'');\n $extra = $extra.split('/undefined').join(''); // FIXME\n $ref = potential;\n }\n }\n\n if (!refs[$ref]) {\n refs[$ref] = { resolved: false, paths: [], extras:{}, description: obj[key].description };\n }\n if (refs[$ref].resolved) {\n if (options.rewriteRefs) {\n // we've already seen it\n let newRef = refs[$ref].resolvedAt;\n if (options.verbose>1) console.warn('Rewriting ref', $ref, newRef);\n obj[key]['x-miro'] = $ref;\n obj[key].$ref = newRef+$extra; // resolutionCase:C (new string)\n }\n else {\n obj[key] = clone(refs[$ref].data); // resolutionCase:D (cloned:yes)\n }\n }\n else {\n refs[$ref].paths.push(state.path);\n refs[$ref].extras[state.path] = $extra;\n }\n }\n }\n }\n\n let refs = options.externalRefs;\n\n if ((options.resolver.depth>0) && (options.source === options.resolver.base)) {\n // we only need to do any of this when called directly on pass #1\n return res(refs);\n }\n\n recurse(options.openapi.definitions, {identityDetection: true, path: '#/definitions'}, inner);\n recurse(options.openapi.components, {identityDetection: true, path: '#/components'}, inner);\n recurse(options.openapi, {identityDetection: true}, inner);\n\n res(refs);\n });\n}\n\nfunction findExternalRefs(options) {\n return new Promise(function (res, rej) {\n\n scanExternalRefs(options)\n .then(function (refs) {\n for (let ref in refs) {\n\n if (!refs[ref].resolved) {\n let depth = options.resolver.depth;\n if (depth>0) depth++;\n options.resolver.actions[depth].push(function () {\n return resolveExternal(options.openapi, ref, options, function (data, source, options) {\n if (!refs[ref].resolved) {\n let external = {};\n external.context = refs[ref];\n external.$ref = ref;\n external.original = clone(data);\n external.updated = data;\n external.source = source;\n options.externals.push(external);\n refs[ref].resolved = true;\n }\n\n let localOptions = Object.assign({}, options, { source: '',\n resolver: {actions: options.resolver.actions,\n depth: options.resolver.actions.length-1, base: options.resolver.base } });\n if (options.patch && refs[ref].description && !data.description &&\n (typeof data === 'object')) {\n data.description = refs[ref].description;\n }\n refs[ref].data = data;\n\n // sorting $refs by length causes bugs (due to overlapping regions?)\n let pointers = unique(refs[ref].paths);\n pointers = pointers.sort(function(a,b){\n const aComp = (a.startsWith('#/components/') || a.startsWith('#/definitions/'));\n const bComp = (b.startsWith('#/components/') || b.startsWith('#/definitions/'));\n if (aComp && !bComp) return -1;\n if (bComp && !aComp) return +1;\n return 0;\n });\n\n for (let ptr of pointers) {\n // shared x-ms-examples $refs confuse the fixupRefs heuristic in index.js\n if (refs[ref].resolvedAt && (ptr !== refs[ref].resolvedAt) && (ptr.indexOf('x-ms-examples/')<0)) {\n if (options.verbose>1) console.warn('Creating pointer to data at', ptr);\n jptr(options.openapi, ptr, { $ref: refs[ref].resolvedAt+refs[ref].extras[ptr], 'x-miro': ref+refs[ref].extras[ptr] }); // resolutionCase:E (new object)\n }\n else {\n if (refs[ref].resolvedAt) {\n if (options.verbose>1) console.warn('Avoiding circular reference');\n }\n else {\n refs[ref].resolvedAt = ptr;\n if (options.verbose>1) console.warn('Creating initial clone of data at', ptr);\n }\n let cdata = clone(data);\n jptr(options.openapi, ptr, cdata); // resolutionCase:F (cloned:yes)\n }\n }\n if (options.resolver.actions[localOptions.resolver.depth].length === 0) {\n //options.resolver.actions[localOptions.resolver.depth].push(function () { return scanExternalRefs(localOptions) });\n options.resolver.actions[localOptions.resolver.depth].push(function () { return findExternalRefs(localOptions) }); // findExternalRefs calls scanExternalRefs\n }\n });\n });\n }\n }\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n\n let result = {options:options};\n result.actions = options.resolver.actions[options.resolver.depth];\n res(result);\n });\n}\n\nconst serial = funcs =>\n funcs.reduce((promise, func) =>\n promise.then(result => func().then(Array.prototype.concat.bind(result))), Promise.resolve([]));\n\nfunction loopReferences(options, res, rej) {\n options.resolver.actions.push([]);\n findExternalRefs(options)\n .then(function (data) {\n serial(data.actions)\n .then(function () {\n if (options.resolver.depth>=options.resolver.actions.length) {\n console.warn('Ran off the end of resolver actions');\n return res(true);\n } else {\n options.resolver.depth++;\n if (options.resolver.actions[options.resolver.depth].length) {\n setTimeout(function () {\n loopReferences(data.options, res, rej);\n }, 0);\n }\n else {\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished external resolution!',common.colour.normal);\n if (options.resolveInternal) {\n if (options.verbose>1) console.warn(common.colour.yellow+'Starting internal resolution!',common.colour.normal);\n options.openapi = deRef(options.openapi,options.original,{verbose:options.verbose-1});\n if (options.verbose>1) console.warn(common.colour.yellow+'Finished internal resolution!',common.colour.normal);\n }\n recurse(options.openapi,{},function(obj,key,state){\n if (isRef(obj, key)) {\n if (!options.preserveMiro) delete obj['x-miro'];\n }\n });\n res(options);\n }\n }\n })\n .catch(function (ex) {\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n })\n .catch(function(ex){\n if (options.verbose) console.warn(ex);\n rej(ex);\n });\n}\n\nfunction setupOptions(options) {\n if (!options.cache) options.cache = {};\n\n if (options.source) {\n let srcUrl = url.parse(options.source);\n if (!srcUrl.protocol || srcUrl.protocol.length <= 2) { // windows drive-letters\n options.source = path.resolve(options.source);\n }\n }\n\n if (!options.externals) options.externals = [];\n if (!options.externalRefs) options.externalRefs = {};\n options.rewriteRefs = true;\n options.resolver = {};\n options.resolver.depth = 0;\n options.resolver.base = options.source;\n options.resolver.actions = [[]];\n}\n\n/** compatibility function for swagger2openapi */\nfunction optionalResolve(options) {\n setupOptions(options);\n return new Promise(function (res, rej) {\n if (options.resolve)\n loopReferences(options, res, rej)\n else\n res(options);\n });\n}\n\nfunction resolve(openapi,source,options) {\n if (!options) options = {};\n options.openapi = openapi;\n options.source = source;\n options.resolve = true;\n setupOptions(options);\n return new Promise(function (res, rej) {\n loopReferences(options, res, rej)\n });\n}\n\nmodule.exports = {\n optionalResolve: optionalResolve,\n resolve: resolve\n};\n\n","'use strict';\n\nconst recurse = require('./recurse.js').recurse;\nconst clone = require('./clone.js').shallowClone;\nconst jptr = require('./jptr.js').jptr;\nconst isRef = require('./isref.js').isRef;\n\nvar getLogger = function (options) {\n if (options && options.verbose) {\n return {\n warn: function() {\n var args = Array.prototype.slice.call(arguments);\n console.warn.apply(console, args);\n }\n }\n }\n else {\n return {\n warn: function() {\n //nop\n }\n }\n }\n}\n\n/**\n* dereferences the given object\n* @param o the object to dereference\n* @definitions a source of definitions to reference\n* @options optional settings (used recursively)\n* @return the dereferenced object\n*/\nfunction dereference(o,definitions,options) {\n if (!options) options = {};\n if (!options.cache) options.cache = {};\n if (!options.state) options.state = {};\n options.state.identityDetection = true;\n // options.depth allows us to limit cloning to the first invocation\n options.depth = (options.depth ? options.depth+1 : 1);\n let obj = (options.depth > 1 ? o : clone(o));\n let container = { data: obj };\n let defs = (options.depth > 1 ? definitions : clone(definitions));\n // options.master is the top level object, regardless of depth\n if (!options.master) options.master = obj;\n\n let logger = getLogger(options);\n\n let changes = 1;\n while (changes > 0) {\n changes = 0;\n recurse(container,options.state,function(obj,key,state){\n if (isRef(obj,key)) {\n let $ref = obj[key]; // immutable\n changes++;\n if (!options.cache[$ref]) {\n let entry = {};\n entry.path = state.path.split('/$ref')[0];\n entry.key = $ref;\n logger.warn('Dereffing %s at %s',$ref,entry.path);\n entry.source = defs;\n entry.data = jptr(entry.source,entry.key);\n if (entry.data === false) {\n entry.data = jptr(options.master,entry.key);\n entry.source = options.master;\n }\n if (entry.data === false) {\n logger.warn('Missing $ref target',entry.key);\n }\n options.cache[$ref] = entry;\n entry.data = state.parent[state.pkey] = dereference(jptr(entry.source,entry.key),entry.source,options);\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n entry.resolved = true;\n }\n else {\n let entry = options.cache[$ref];\n if (entry.resolved) {\n // we have already seen and resolved this reference\n logger.warn('Patching %s for %s',$ref,entry.path);\n state.parent[state.pkey] = entry.data;\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[state.pkey][options.$ref] = $ref;\n }\n else if ($ref === entry.path) {\n // reference to itself, throw\n throw new Error(`Tight circle at ${entry.path}`);\n }\n else {\n // we're dealing with a circular reference here\n logger.warn('Unresolved ref');\n state.parent[state.pkey] = jptr(entry.source,entry.path);\n if (state.parent[state.pkey] === false) {\n state.parent[state.pkey] = jptr(entry.source,entry.key);\n }\n if ((options.$ref) && (typeof state.parent[state.pkey] === 'object')) state.parent[options.$ref] = $ref;\n }\n }\n }\n });\n }\n return container.data;\n}\n\nmodule.exports = {\n dereference : dereference\n};\n\n","'use strict';\n\n/**\n* functions to walk an OpenAPI schema object and traverse all subschemas\n* calling a callback function on each one\n*/\n\n/**\n* obtains the default starting state for the `state` object used\n* by walkSchema\n* @return the state object suitable for use in walkSchema\n*/\nfunction getDefaultState() {\n return { depth: 0, seen: new WeakMap(), top: true, combine: false, allowRefSiblings: false };\n}\n\n/**\n* begins the walk of a schema object\n* @param parent the parent schema, if any. Use empty object if none\n* @param state the initial starting state of the walker, usually obtained from `getDefaultState`. Use empty object to auto-initialise\n* @param callback a function taking a schema, parent and state to be called on this and all subschemas\n* @return the schema object\n*/\nfunction walkSchema(schema, parent, state, callback) {\n\n if (typeof state.depth === 'undefined') state = getDefaultState();\n if ((schema === null) || (typeof schema === 'undefined')) return schema;\n if (typeof schema.$ref !== 'undefined') {\n let temp = {$ref:schema.$ref};\n if (state.allowRefSiblings && schema.description) {\n temp.description = schema.description;\n }\n callback(temp,parent,state);\n return temp; // all other properties SHALL be ignored\n }\n\n if (state.combine) {\n if (schema.allOf && Array.isArray(schema.allOf) && schema.allOf.length === 1) {\n schema = Object.assign({},schema.allOf[0],schema);\n delete schema.allOf;\n }\n if (schema.anyOf && Array.isArray(schema.anyOf) && schema.anyOf.length === 1) {\n schema = Object.assign({},schema.anyOf[0],schema);\n delete schema.anyOf;\n }\n if (schema.oneOf && Array.isArray(schema.oneOf) && schema.oneOf.length === 1) {\n schema = Object.assign({},schema.oneOf[0],schema);\n delete schema.oneOf;\n }\n }\n\n callback(schema,parent,state);\n if (state.seen.has(schema)) {\n return schema;\n }\n //else\n if ((typeof schema === 'object') && (schema !== null)) state.seen.set(schema,true);\n state.top = false;\n state.depth++;\n\n if (typeof schema.items !== 'undefined') {\n state.property = 'items';\n walkSchema(schema.items,schema,state,callback);\n }\n if (schema.additionalItems) {\n if (typeof schema.additionalItems === 'object') {\n state.property = 'additionalItems';\n walkSchema(schema.additionalItems,schema,state,callback);\n }\n }\n if (schema.additionalProperties) {\n if (typeof schema.additionalProperties === 'object') {\n state.property = 'additionalProperties';\n walkSchema(schema.additionalProperties,schema,state,callback);\n }\n }\n if (schema.properties) {\n for (let prop in schema.properties) {\n let subSchema = schema.properties[prop];\n state.property = 'properties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.patternProperties) {\n for (let prop in schema.patternProperties) {\n let subSchema = schema.patternProperties[prop];\n state.property = 'patternProperties/'+prop;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.allOf) {\n for (let index in schema.allOf) {\n let subSchema = schema.allOf[index];\n state.property = 'allOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.anyOf) {\n for (let index in schema.anyOf) {\n let subSchema = schema.anyOf[index];\n state.property = 'anyOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.oneOf) {\n for (let index in schema.oneOf) {\n let subSchema = schema.oneOf[index];\n state.property = 'oneOf/'+index;\n walkSchema(subSchema,schema,state,callback);\n }\n }\n if (schema.not) {\n state.property = 'not';\n walkSchema(schema.not,schema,state,callback);\n }\n state.depth--;\n return schema;\n}\n\nmodule.exports = {\n getDefaultState: getDefaultState,\n walkSchema: walkSchema\n};\n\n","'use strict';\n\nconst http = require('http');\n\nconst ours = {\n \"default\": \"Default response\",\n \"1XX\": \"Informational\",\n \"103\": \"Early hints\", // not in Node < 10\n \"2XX\": \"Successful\",\n \"3XX\": \"Redirection\",\n \"4XX\": \"Client Error\",\n \"5XX\": \"Server Error\",\n \"7XX\": \"Developer Error\" // April fools RFC\n};\n\nmodule.exports = {\n statusCodes: Object.assign({},ours,http.STATUS_CODES)\n};\n\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\nvar toArrayBuffer = require('to-arraybuffer')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else if (capability.vbArray && preferBinary) {\n\t\treturn 'text:vbarray'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + new Buffer(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n\t\tif (capability.arraybuffer) {\n\t\t\tbody = toArrayBuffer(Buffer.concat(self._body))\n\t\t} else if (capability.blobConstructor) {\n\t\t\tbody = new global.Blob(self._body.map(function (buffer) {\n\t\t\t\treturn toArrayBuffer(buffer)\n\t\t\t}), {\n\t\t\t\ttype: (headersObj['content-type'] || {}).value || ''\n\t\t\t})\n\t\t} else {\n\t\t\t// get utf8 string\n\t\t\tbody = Buffer.concat(self._body).toString()\n\t\t}\n\t}\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tvar fetchTimer = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tglobal.clearTimeout(self._fetchTimer)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode.split(':')[0]\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress()\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._fetchTimer)\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function () {\n\tvar self = this\n\tself._destroyed = true\n\tglobal.clearTimeout(self._fetchTimer)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setTimeout = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","module.exports = require(\"base64-js\");","module.exports = require(\"ieee754\");","module.exports = require(\"isarray\");","module.exports = require(\"to-arraybuffer\");","module.exports = require(\"xtend\");","module.exports = require(\"builtin-status-codes\");","module.exports = require(\"prismjs/components/prism-bash.js\");","module.exports = require(\"prismjs/components/prism-c.js\");","module.exports = require(\"prismjs/components/prism-clike.js\");","module.exports = require(\"prismjs/components/prism-coffeescript.js\");","module.exports = require(\"prismjs/components/prism-cpp.js\");","module.exports = require(\"prismjs/components/prism-csharp.js\");","module.exports = require(\"prismjs/components/prism-go.js\");","module.exports = require(\"prismjs/components/prism-http.js\");","module.exports = require(\"prismjs/components/prism-java.js\");","module.exports = require(\"prismjs/components/prism-lua.js\");","module.exports = require(\"prismjs/components/prism-markup-templating.js\");","module.exports = require(\"prismjs/components/prism-markup.js\");","module.exports = require(\"prismjs/components/prism-objectivec.js\");","module.exports = require(\"prismjs/components/prism-perl.js\");","module.exports = require(\"prismjs/components/prism-php.js\");","module.exports = require(\"prismjs/components/prism-python.js\");","module.exports = require(\"prismjs/components/prism-ruby.js\");","module.exports = require(\"prismjs/components/prism-scala.js\");","module.exports = require(\"prismjs/components/prism-sql.js\");","module.exports = require(\"prismjs/components/prism-swift.js\");","\n\t\t\t\tvar addMethods = require(\"../../node_modules/workerize-loader/dist/rpc-wrapper.js\")\n\t\t\t\tvar methods = [\"add\",\"done\",\"toJS\",\"load\",\"search\"]\n\t\t\t\tmodule.exports = function() {\n\t\t\t\t\tvar w = new Worker(URL.createObjectURL(new Blob([\"/*!\\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\\n * -------------------------------------------------------------\\n * Version: \\\"20.2.5\\\"\\n * Repo: https://github.com/Redocly/redoc\\n */\\n/******/ (function(modules) { // webpackBootstrap\\n/******/ \\t// The module cache\\n/******/ \\tvar installedModules = {};\\n/******/\\n/******/ \\t// The require function\\n/******/ \\tfunction __webpack_require__(moduleId) {\\n/******/\\n/******/ \\t\\t// Check if module is in cache\\n/******/ \\t\\tif(installedModules[moduleId]) {\\n/******/ \\t\\t\\treturn installedModules[moduleId].exports;\\n/******/ \\t\\t}\\n/******/ \\t\\t// Create a new module (and put it into the cache)\\n/******/ \\t\\tvar module = installedModules[moduleId] = {\\n/******/ \\t\\t\\ti: moduleId,\\n/******/ \\t\\t\\tl: false,\\n/******/ \\t\\t\\texports: {}\\n/******/ \\t\\t};\\n/******/\\n/******/ \\t\\t// Execute the module function\\n/******/ \\t\\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\\n/******/\\n/******/ \\t\\t// Flag the module as loaded\\n/******/ \\t\\tmodule.l = true;\\n/******/\\n/******/ \\t\\t// Return the exports of the module\\n/******/ \\t\\treturn module.exports;\\n/******/ \\t}\\n/******/\\n/******/\\n/******/ \\t// expose the modules object (__webpack_modules__)\\n/******/ \\t__webpack_require__.m = modules;\\n/******/\\n/******/ \\t// expose the module cache\\n/******/ \\t__webpack_require__.c = installedModules;\\n/******/\\n/******/ \\t// define getter function for harmony exports\\n/******/ \\t__webpack_require__.d = function(exports, name, getter) {\\n/******/ \\t\\tif(!__webpack_require__.o(exports, name)) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\\n/******/ \\t\\t}\\n/******/ \\t};\\n/******/\\n/******/ \\t// define __esModule on exports\\n/******/ \\t__webpack_require__.r = function(exports) {\\n/******/ \\t\\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\\n/******/ \\t\\t\\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\\n/******/ \\t\\t}\\n/******/ \\t\\tObject.defineProperty(exports, '__esModule', { value: true });\\n/******/ \\t};\\n/******/\\n/******/ \\t// create a fake namespace object\\n/******/ \\t// mode & 1: value is a module id, require it\\n/******/ \\t// mode & 2: merge all properties of value into the ns\\n/******/ \\t// mode & 4: return value when already ns object\\n/******/ \\t// mode & 8|1: behave like require\\n/******/ \\t__webpack_require__.t = function(value, mode) {\\n/******/ \\t\\tif(mode & 1) value = __webpack_require__(value);\\n/******/ \\t\\tif(mode & 8) return value;\\n/******/ \\t\\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\\n/******/ \\t\\tvar ns = Object.create(null);\\n/******/ \\t\\t__webpack_require__.r(ns);\\n/******/ \\t\\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\\n/******/ \\t\\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\\n/******/ \\t\\treturn ns;\\n/******/ \\t};\\n/******/\\n/******/ \\t// getDefaultExport function for compatibility with non-harmony modules\\n/******/ \\t__webpack_require__.n = function(module) {\\n/******/ \\t\\tvar getter = module && module.__esModule ?\\n/******/ \\t\\t\\tfunction getDefault() { return module['default']; } :\\n/******/ \\t\\t\\tfunction getModuleExports() { return module; };\\n/******/ \\t\\t__webpack_require__.d(getter, 'a', getter);\\n/******/ \\t\\treturn getter;\\n/******/ \\t};\\n/******/\\n/******/ \\t// Object.prototype.hasOwnProperty.call\\n/******/ \\t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\\n/******/\\n/******/ \\t// __webpack_public_path__\\n/******/ \\t__webpack_require__.p = \\\"\\\";\\n/******/\\n/******/\\n/******/ \\t// Load entry module and return exports\\n/******/ \\treturn __webpack_require__(__webpack_require__.s = 97);\\n/******/ })\\n/************************************************************************/\\n/******/ ([\\n/* 0 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n/* WEBPACK VAR INJECTION */(function(global) {var check = function (it) {\\n return it && it.Math == Math && it;\\n};\\n\\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\\nmodule.exports =\\n // eslint-disable-next-line no-undef\\n check(typeof globalThis == 'object' && globalThis) ||\\n check(typeof window == 'object' && window) ||\\n check(typeof self == 'object' && self) ||\\n check(typeof global == 'object' && global) ||\\n // eslint-disable-next-line no-new-func\\n Function('return this')();\\n\\n/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(59)))\\n\\n/***/ }),\\n/* 1 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar shared = __webpack_require__(32);\\nvar has = __webpack_require__(3);\\nvar uid = __webpack_require__(36);\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\nvar USE_SYMBOL_AS_UID = __webpack_require__(60);\\n\\nvar WellKnownSymbolsStore = shared('wks');\\nvar Symbol = global.Symbol;\\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\\n\\nmodule.exports = function (name) {\\n if (!has(WellKnownSymbolsStore, name)) {\\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\\n } return WellKnownSymbolsStore[name];\\n};\\n\\n\\n/***/ }),\\n/* 2 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it)) {\\n throw TypeError(String(it) + ' is not an object');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 3 */\\n/***/ (function(module, exports) {\\n\\nvar hasOwnProperty = {}.hasOwnProperty;\\n\\nmodule.exports = function (it, key) {\\n return hasOwnProperty.call(it, key);\\n};\\n\\n\\n/***/ }),\\n/* 4 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;/**\\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\\n * Copyright (C) 2019 Oliver Nightingale\\n * @license MIT\\n */\\n\\n;(function(){\\n\\n/**\\n * A convenience function for configuring and constructing\\n * a new lunr Index.\\n *\\n * A lunr.Builder instance is created and the pipeline setup\\n * with a trimmer, stop word filter and stemmer.\\n *\\n * This builder object is yielded to the configuration function\\n * that is passed as a parameter, allowing the list of fields\\n * and other builder parameters to be customised.\\n *\\n * All documents _must_ be added within the passed config function.\\n *\\n * @example\\n * var idx = lunr(function () {\\n * this.field('title')\\n * this.field('body')\\n * this.ref('id')\\n *\\n * documents.forEach(function (doc) {\\n * this.add(doc)\\n * }, this)\\n * })\\n *\\n * @see {@link lunr.Builder}\\n * @see {@link lunr.Pipeline}\\n * @see {@link lunr.trimmer}\\n * @see {@link lunr.stopWordFilter}\\n * @see {@link lunr.stemmer}\\n * @namespace {function} lunr\\n */\\nvar lunr = function (config) {\\n var builder = new lunr.Builder\\n\\n builder.pipeline.add(\\n lunr.trimmer,\\n lunr.stopWordFilter,\\n lunr.stemmer\\n )\\n\\n builder.searchPipeline.add(\\n lunr.stemmer\\n )\\n\\n config.call(builder, builder)\\n return builder.build()\\n}\\n\\nlunr.version = \\\"2.3.8\\\"\\n/*!\\n * lunr.utils\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A namespace containing utils for the rest of the lunr library\\n * @namespace lunr.utils\\n */\\nlunr.utils = {}\\n\\n/**\\n * Print a warning message to the console.\\n *\\n * @param {String} message The message to be printed.\\n * @memberOf lunr.utils\\n * @function\\n */\\nlunr.utils.warn = (function (global) {\\n /* eslint-disable no-console */\\n return function (message) {\\n if (global.console && console.warn) {\\n console.warn(message)\\n }\\n }\\n /* eslint-enable no-console */\\n})(this)\\n\\n/**\\n * Convert an object to a string.\\n *\\n * In the case of `null` and `undefined` the function returns\\n * the empty string, in all other cases the result of calling\\n * `toString` on the passed object is returned.\\n *\\n * @param {Any} obj The object to convert to a string.\\n * @return {String} string representation of the passed object.\\n * @memberOf lunr.utils\\n */\\nlunr.utils.asString = function (obj) {\\n if (obj === void 0 || obj === null) {\\n return \\\"\\\"\\n } else {\\n return obj.toString()\\n }\\n}\\n\\n/**\\n * Clones an object.\\n *\\n * Will create a copy of an existing object such that any mutations\\n * on the copy cannot affect the original.\\n *\\n * Only shallow objects are supported, passing a nested object to this\\n * function will cause a TypeError.\\n *\\n * Objects with primitives, and arrays of primitives are supported.\\n *\\n * @param {Object} obj The object to clone.\\n * @return {Object} a clone of the passed object.\\n * @throws {TypeError} when a nested object is passed.\\n * @memberOf Utils\\n */\\nlunr.utils.clone = function (obj) {\\n if (obj === null || obj === undefined) {\\n return obj\\n }\\n\\n var clone = Object.create(null),\\n keys = Object.keys(obj)\\n\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i],\\n val = obj[key]\\n\\n if (Array.isArray(val)) {\\n clone[key] = val.slice()\\n continue\\n }\\n\\n if (typeof val === 'string' ||\\n typeof val === 'number' ||\\n typeof val === 'boolean') {\\n clone[key] = val\\n continue\\n }\\n\\n throw new TypeError(\\\"clone is not deep and does not support nested objects\\\")\\n }\\n\\n return clone\\n}\\nlunr.FieldRef = function (docRef, fieldName, stringValue) {\\n this.docRef = docRef\\n this.fieldName = fieldName\\n this._stringValue = stringValue\\n}\\n\\nlunr.FieldRef.joiner = \\\"/\\\"\\n\\nlunr.FieldRef.fromString = function (s) {\\n var n = s.indexOf(lunr.FieldRef.joiner)\\n\\n if (n === -1) {\\n throw \\\"malformed field ref string\\\"\\n }\\n\\n var fieldRef = s.slice(0, n),\\n docRef = s.slice(n + 1)\\n\\n return new lunr.FieldRef (docRef, fieldRef, s)\\n}\\n\\nlunr.FieldRef.prototype.toString = function () {\\n if (this._stringValue == undefined) {\\n this._stringValue = this.fieldName + lunr.FieldRef.joiner + this.docRef\\n }\\n\\n return this._stringValue\\n}\\n/*!\\n * lunr.Set\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A lunr set.\\n *\\n * @constructor\\n */\\nlunr.Set = function (elements) {\\n this.elements = Object.create(null)\\n\\n if (elements) {\\n this.length = elements.length\\n\\n for (var i = 0; i < this.length; i++) {\\n this.elements[elements[i]] = true\\n }\\n } else {\\n this.length = 0\\n }\\n}\\n\\n/**\\n * A complete set that contains all elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.complete = {\\n intersect: function (other) {\\n return other\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return true\\n }\\n}\\n\\n/**\\n * An empty set that contains no elements.\\n *\\n * @static\\n * @readonly\\n * @type {lunr.Set}\\n */\\nlunr.Set.empty = {\\n intersect: function () {\\n return this\\n },\\n\\n union: function (other) {\\n return other\\n },\\n\\n contains: function () {\\n return false\\n }\\n}\\n\\n/**\\n * Returns true if this set contains the specified object.\\n *\\n * @param {object} object - Object whose presence in this set is to be tested.\\n * @returns {boolean} - True if this set contains the specified object.\\n */\\nlunr.Set.prototype.contains = function (object) {\\n return !!this.elements[object]\\n}\\n\\n/**\\n * Returns a new set containing only the elements that are present in both\\n * this set and the specified set.\\n *\\n * @param {lunr.Set} other - set to intersect with this set.\\n * @returns {lunr.Set} a new set that is the intersection of this and the specified set.\\n */\\n\\nlunr.Set.prototype.intersect = function (other) {\\n var a, b, elements, intersection = []\\n\\n if (other === lunr.Set.complete) {\\n return this\\n }\\n\\n if (other === lunr.Set.empty) {\\n return other\\n }\\n\\n if (this.length < other.length) {\\n a = this\\n b = other\\n } else {\\n a = other\\n b = this\\n }\\n\\n elements = Object.keys(a.elements)\\n\\n for (var i = 0; i < elements.length; i++) {\\n var element = elements[i]\\n if (element in b.elements) {\\n intersection.push(element)\\n }\\n }\\n\\n return new lunr.Set (intersection)\\n}\\n\\n/**\\n * Returns a new set combining the elements of this and the specified set.\\n *\\n * @param {lunr.Set} other - set to union with this set.\\n * @return {lunr.Set} a new set that is the union of this and the specified set.\\n */\\n\\nlunr.Set.prototype.union = function (other) {\\n if (other === lunr.Set.complete) {\\n return lunr.Set.complete\\n }\\n\\n if (other === lunr.Set.empty) {\\n return this\\n }\\n\\n return new lunr.Set(Object.keys(this.elements).concat(Object.keys(other.elements)))\\n}\\n/**\\n * A function to calculate the inverse document frequency for\\n * a posting. This is shared between the builder and the index\\n *\\n * @private\\n * @param {object} posting - The posting for a given term\\n * @param {number} documentCount - The total number of documents.\\n */\\nlunr.idf = function (posting, documentCount) {\\n var documentsWithTerm = 0\\n\\n for (var fieldName in posting) {\\n if (fieldName == '_index') continue // Ignore the term index, its not a field\\n documentsWithTerm += Object.keys(posting[fieldName]).length\\n }\\n\\n var x = (documentCount - documentsWithTerm + 0.5) / (documentsWithTerm + 0.5)\\n\\n return Math.log(1 + Math.abs(x))\\n}\\n\\n/**\\n * A token wraps a string representation of a token\\n * as it is passed through the text processing pipeline.\\n *\\n * @constructor\\n * @param {string} [str=''] - The string token being wrapped.\\n * @param {object} [metadata={}] - Metadata associated with this token.\\n */\\nlunr.Token = function (str, metadata) {\\n this.str = str || \\\"\\\"\\n this.metadata = metadata || {}\\n}\\n\\n/**\\n * Returns the token string that is being wrapped by this object.\\n *\\n * @returns {string}\\n */\\nlunr.Token.prototype.toString = function () {\\n return this.str\\n}\\n\\n/**\\n * A token update function is used when updating or optionally\\n * when cloning a token.\\n *\\n * @callback lunr.Token~updateFunction\\n * @param {string} str - The string representation of the token.\\n * @param {Object} metadata - All metadata associated with this token.\\n */\\n\\n/**\\n * Applies the given function to the wrapped string token.\\n *\\n * @example\\n * token.update(function (str, metadata) {\\n * return str.toUpperCase()\\n * })\\n *\\n * @param {lunr.Token~updateFunction} fn - A function to apply to the token string.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.update = function (fn) {\\n this.str = fn(this.str, this.metadata)\\n return this\\n}\\n\\n/**\\n * Creates a clone of this token. Optionally a function can be\\n * applied to the cloned token.\\n *\\n * @param {lunr.Token~updateFunction} [fn] - An optional function to apply to the cloned token.\\n * @returns {lunr.Token}\\n */\\nlunr.Token.prototype.clone = function (fn) {\\n fn = fn || function (s) { return s }\\n return new lunr.Token (fn(this.str, this.metadata), this.metadata)\\n}\\n/*!\\n * lunr.tokenizer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A function for splitting a string into tokens ready to be inserted into\\n * the search index. Uses `lunr.tokenizer.separator` to split strings, change\\n * the value of this property to change how strings are split into tokens.\\n *\\n * This tokenizer will convert its parameter to a string by calling `toString` and\\n * then will split this string on the character in `lunr.tokenizer.separator`.\\n * Arrays will have their elements converted to strings and wrapped in a lunr.Token.\\n *\\n * Optional metadata can be passed to the tokenizer, this metadata will be cloned and\\n * added as metadata to every token that is created from the object to be tokenized.\\n *\\n * @static\\n * @param {?(string|object|object[])} obj - The object to convert into tokens\\n * @param {?object} metadata - Optional metadata to associate with every token\\n * @returns {lunr.Token[]}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.tokenizer = function (obj, metadata) {\\n if (obj == null || obj == undefined) {\\n return []\\n }\\n\\n if (Array.isArray(obj)) {\\n return obj.map(function (t) {\\n return new lunr.Token(\\n lunr.utils.asString(t).toLowerCase(),\\n lunr.utils.clone(metadata)\\n )\\n })\\n }\\n\\n var str = obj.toString().toLowerCase(),\\n len = str.length,\\n tokens = []\\n\\n for (var sliceEnd = 0, sliceStart = 0; sliceEnd <= len; sliceEnd++) {\\n var char = str.charAt(sliceEnd),\\n sliceLength = sliceEnd - sliceStart\\n\\n if ((char.match(lunr.tokenizer.separator) || sliceEnd == len)) {\\n\\n if (sliceLength > 0) {\\n var tokenMetadata = lunr.utils.clone(metadata) || {}\\n tokenMetadata[\\\"position\\\"] = [sliceStart, sliceLength]\\n tokenMetadata[\\\"index\\\"] = tokens.length\\n\\n tokens.push(\\n new lunr.Token (\\n str.slice(sliceStart, sliceEnd),\\n tokenMetadata\\n )\\n )\\n }\\n\\n sliceStart = sliceEnd + 1\\n }\\n\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * The separator used to split a string into tokens. Override this property to change the behaviour of\\n * `lunr.tokenizer` behaviour when tokenizing strings. By default this splits on whitespace and hyphens.\\n *\\n * @static\\n * @see lunr.tokenizer\\n */\\nlunr.tokenizer.separator = /[\\\\s\\\\-]+/\\n/*!\\n * lunr.Pipeline\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Pipelines maintain an ordered list of functions to be applied to all\\n * tokens in documents entering the search index and queries being ran against\\n * the index.\\n *\\n * An instance of lunr.Index created with the lunr shortcut will contain a\\n * pipeline with a stop word filter and an English language stemmer. Extra\\n * functions can be added before or after either of these functions or these\\n * default functions can be removed.\\n *\\n * When run the pipeline will call each function in turn, passing a token, the\\n * index of that token in the original list of all tokens and finally a list of\\n * all the original tokens.\\n *\\n * The output of functions in the pipeline will be passed to the next function\\n * in the pipeline. To exclude a token from entering the index the function\\n * should return undefined, the rest of the pipeline will not be called with\\n * this token.\\n *\\n * For serialisation of pipelines to work, all functions used in an instance of\\n * a pipeline should be registered with lunr.Pipeline. Registered functions can\\n * then be loaded. If trying to load a serialised pipeline that uses functions\\n * that are not registered an error will be thrown.\\n *\\n * If not planning on serialising the pipeline then registering pipeline functions\\n * is not necessary.\\n *\\n * @constructor\\n */\\nlunr.Pipeline = function () {\\n this._stack = []\\n}\\n\\nlunr.Pipeline.registeredFunctions = Object.create(null)\\n\\n/**\\n * A pipeline function maps lunr.Token to lunr.Token. A lunr.Token contains the token\\n * string as well as all known metadata. A pipeline function can mutate the token string\\n * or mutate (or add) metadata for a given token.\\n *\\n * A pipeline function can indicate that the passed token should be discarded by returning\\n * null, undefined or an empty string. This token will not be passed to any downstream pipeline\\n * functions and will not be added to the index.\\n *\\n * Multiple tokens can be returned by returning an array of tokens. Each token will be passed\\n * to any downstream pipeline functions and all will returned tokens will be added to the index.\\n *\\n * Any number of pipeline functions may be chained together using a lunr.Pipeline.\\n *\\n * @interface lunr.PipelineFunction\\n * @param {lunr.Token} token - A token from the document being processed.\\n * @param {number} i - The index of this token in the complete list of tokens for this document/field.\\n * @param {lunr.Token[]} tokens - All tokens for this document/field.\\n * @returns {(?lunr.Token|lunr.Token[])}\\n */\\n\\n/**\\n * Register a function with the pipeline.\\n *\\n * Functions that are used in the pipeline should be registered if the pipeline\\n * needs to be serialised, or a serialised pipeline needs to be loaded.\\n *\\n * Registering a function does not add it to a pipeline, functions must still be\\n * added to instances of the pipeline for them to be used when running a pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @param {String} label - The label to register this function with\\n */\\nlunr.Pipeline.registerFunction = function (fn, label) {\\n if (label in this.registeredFunctions) {\\n lunr.utils.warn('Overwriting existing registered function: ' + label)\\n }\\n\\n fn.label = label\\n lunr.Pipeline.registeredFunctions[fn.label] = fn\\n}\\n\\n/**\\n * Warns if the function is not registered as a Pipeline function.\\n *\\n * @param {lunr.PipelineFunction} fn - The function to check for.\\n * @private\\n */\\nlunr.Pipeline.warnIfFunctionNotRegistered = function (fn) {\\n var isRegistered = fn.label && (fn.label in this.registeredFunctions)\\n\\n if (!isRegistered) {\\n lunr.utils.warn('Function is not registered with pipeline. This may cause problems when serialising the index.\\\\n', fn)\\n }\\n}\\n\\n/**\\n * Loads a previously serialised pipeline.\\n *\\n * All functions to be loaded must already be registered with lunr.Pipeline.\\n * If any function from the serialised data has not been registered then an\\n * error will be thrown.\\n *\\n * @param {Object} serialised - The serialised pipeline to load.\\n * @returns {lunr.Pipeline}\\n */\\nlunr.Pipeline.load = function (serialised) {\\n var pipeline = new lunr.Pipeline\\n\\n serialised.forEach(function (fnName) {\\n var fn = lunr.Pipeline.registeredFunctions[fnName]\\n\\n if (fn) {\\n pipeline.add(fn)\\n } else {\\n throw new Error('Cannot load unregistered function: ' + fnName)\\n }\\n })\\n\\n return pipeline\\n}\\n\\n/**\\n * Adds new functions to the end of the pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction[]} functions - Any number of functions to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.add = function () {\\n var fns = Array.prototype.slice.call(arguments)\\n\\n fns.forEach(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n this._stack.push(fn)\\n }, this)\\n}\\n\\n/**\\n * Adds a single function after a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.after = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n pos = pos + 1\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Adds a single function before a function that already exists in the\\n * pipeline.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @param {lunr.PipelineFunction} existingFn - A function that already exists in the pipeline.\\n * @param {lunr.PipelineFunction} newFn - The new function to add to the pipeline.\\n */\\nlunr.Pipeline.prototype.before = function (existingFn, newFn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(newFn)\\n\\n var pos = this._stack.indexOf(existingFn)\\n if (pos == -1) {\\n throw new Error('Cannot find existingFn')\\n }\\n\\n this._stack.splice(pos, 0, newFn)\\n}\\n\\n/**\\n * Removes a function from the pipeline.\\n *\\n * @param {lunr.PipelineFunction} fn The function to remove from the pipeline.\\n */\\nlunr.Pipeline.prototype.remove = function (fn) {\\n var pos = this._stack.indexOf(fn)\\n if (pos == -1) {\\n return\\n }\\n\\n this._stack.splice(pos, 1)\\n}\\n\\n/**\\n * Runs the current list of functions that make up the pipeline against the\\n * passed tokens.\\n *\\n * @param {Array} tokens The tokens to run through the pipeline.\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.run = function (tokens) {\\n var stackLength = this._stack.length\\n\\n for (var i = 0; i < stackLength; i++) {\\n var fn = this._stack[i]\\n var memo = []\\n\\n for (var j = 0; j < tokens.length; j++) {\\n var result = fn(tokens[j], j, tokens)\\n\\n if (result === null || result === void 0 || result === '') continue\\n\\n if (Array.isArray(result)) {\\n for (var k = 0; k < result.length; k++) {\\n memo.push(result[k])\\n }\\n } else {\\n memo.push(result)\\n }\\n }\\n\\n tokens = memo\\n }\\n\\n return tokens\\n}\\n\\n/**\\n * Convenience method for passing a string through a pipeline and getting\\n * strings out. This method takes care of wrapping the passed string in a\\n * token and mapping the resulting tokens back to strings.\\n *\\n * @param {string} str - The string to pass through the pipeline.\\n * @param {?object} metadata - Optional metadata to associate with the token\\n * passed to the pipeline.\\n * @returns {string[]}\\n */\\nlunr.Pipeline.prototype.runString = function (str, metadata) {\\n var token = new lunr.Token (str, metadata)\\n\\n return this.run([token]).map(function (t) {\\n return t.toString()\\n })\\n}\\n\\n/**\\n * Resets the pipeline by removing any existing processors.\\n *\\n */\\nlunr.Pipeline.prototype.reset = function () {\\n this._stack = []\\n}\\n\\n/**\\n * Returns a representation of the pipeline ready for serialisation.\\n *\\n * Logs a warning if the function has not been registered.\\n *\\n * @returns {Array}\\n */\\nlunr.Pipeline.prototype.toJSON = function () {\\n return this._stack.map(function (fn) {\\n lunr.Pipeline.warnIfFunctionNotRegistered(fn)\\n\\n return fn.label\\n })\\n}\\n/*!\\n * lunr.Vector\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A vector is used to construct the vector space of documents and queries. These\\n * vectors support operations to determine the similarity between two documents or\\n * a document and a query.\\n *\\n * Normally no parameters are required for initializing a vector, but in the case of\\n * loading a previously dumped vector the raw elements can be provided to the constructor.\\n *\\n * For performance reasons vectors are implemented with a flat array, where an elements\\n * index is immediately followed by its value. E.g. [index, value, index, value]. This\\n * allows the underlying array to be as sparse as possible and still offer decent\\n * performance when being used for vector calculations.\\n *\\n * @constructor\\n * @param {Number[]} [elements] - The flat list of element index and element value pairs.\\n */\\nlunr.Vector = function (elements) {\\n this._magnitude = 0\\n this.elements = elements || []\\n}\\n\\n\\n/**\\n * Calculates the position within the vector to insert a given index.\\n *\\n * This is used internally by insert and upsert. If there are duplicate indexes then\\n * the position is returned as if the value for that index were to be updated, but it\\n * is the callers responsibility to check whether there is a duplicate at that index\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.positionForIndex = function (index) {\\n // For an empty vector the tuple can be inserted at the beginning\\n if (this.elements.length == 0) {\\n return 0\\n }\\n\\n var start = 0,\\n end = this.elements.length / 2,\\n sliceLength = end - start,\\n pivotPoint = Math.floor(sliceLength / 2),\\n pivotIndex = this.elements[pivotPoint * 2]\\n\\n while (sliceLength > 1) {\\n if (pivotIndex < index) {\\n start = pivotPoint\\n }\\n\\n if (pivotIndex > index) {\\n end = pivotPoint\\n }\\n\\n if (pivotIndex == index) {\\n break\\n }\\n\\n sliceLength = end - start\\n pivotPoint = start + Math.floor(sliceLength / 2)\\n pivotIndex = this.elements[pivotPoint * 2]\\n }\\n\\n if (pivotIndex == index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex > index) {\\n return pivotPoint * 2\\n }\\n\\n if (pivotIndex < index) {\\n return (pivotPoint + 1) * 2\\n }\\n}\\n\\n/**\\n * Inserts an element at an index within the vector.\\n *\\n * Does not allow duplicates, will throw an error if there is already an entry\\n * for this index.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n */\\nlunr.Vector.prototype.insert = function (insertIdx, val) {\\n this.upsert(insertIdx, val, function () {\\n throw \\\"duplicate index\\\"\\n })\\n}\\n\\n/**\\n * Inserts or updates an existing index within the vector.\\n *\\n * @param {Number} insertIdx - The index at which the element should be inserted.\\n * @param {Number} val - The value to be inserted into the vector.\\n * @param {function} fn - A function that is called for updates, the existing value and the\\n * requested value are passed as arguments\\n */\\nlunr.Vector.prototype.upsert = function (insertIdx, val, fn) {\\n this._magnitude = 0\\n var position = this.positionForIndex(insertIdx)\\n\\n if (this.elements[position] == insertIdx) {\\n this.elements[position + 1] = fn(this.elements[position + 1], val)\\n } else {\\n this.elements.splice(position, 0, insertIdx, val)\\n }\\n}\\n\\n/**\\n * Calculates the magnitude of this vector.\\n *\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.magnitude = function () {\\n if (this._magnitude) return this._magnitude\\n\\n var sumOfSquares = 0,\\n elementsLength = this.elements.length\\n\\n for (var i = 1; i < elementsLength; i += 2) {\\n var val = this.elements[i]\\n sumOfSquares += val * val\\n }\\n\\n return this._magnitude = Math.sqrt(sumOfSquares)\\n}\\n\\n/**\\n * Calculates the dot product of this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The vector to compute the dot product with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.dot = function (otherVector) {\\n var dotProduct = 0,\\n a = this.elements, b = otherVector.elements,\\n aLen = a.length, bLen = b.length,\\n aVal = 0, bVal = 0,\\n i = 0, j = 0\\n\\n while (i < aLen && j < bLen) {\\n aVal = a[i], bVal = b[j]\\n if (aVal < bVal) {\\n i += 2\\n } else if (aVal > bVal) {\\n j += 2\\n } else if (aVal == bVal) {\\n dotProduct += a[i + 1] * b[j + 1]\\n i += 2\\n j += 2\\n }\\n }\\n\\n return dotProduct\\n}\\n\\n/**\\n * Calculates the similarity between this vector and another vector.\\n *\\n * @param {lunr.Vector} otherVector - The other vector to calculate the\\n * similarity with.\\n * @returns {Number}\\n */\\nlunr.Vector.prototype.similarity = function (otherVector) {\\n return this.dot(otherVector) / this.magnitude() || 0\\n}\\n\\n/**\\n * Converts the vector to an array of the elements within the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toArray = function () {\\n var output = new Array (this.elements.length / 2)\\n\\n for (var i = 1, j = 0; i < this.elements.length; i += 2, j++) {\\n output[j] = this.elements[i]\\n }\\n\\n return output\\n}\\n\\n/**\\n * A JSON serializable representation of the vector.\\n *\\n * @returns {Number[]}\\n */\\nlunr.Vector.prototype.toJSON = function () {\\n return this.elements\\n}\\n/* eslint-disable */\\n/*!\\n * lunr.stemmer\\n * Copyright (C) 2019 Oliver Nightingale\\n * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt\\n */\\n\\n/**\\n * lunr.stemmer is an english language stemmer, this is a JavaScript\\n * implementation of the PorterStemmer taken from http://tartarus.org/~martin\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token - The string to stem\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n * @function\\n */\\nlunr.stemmer = (function(){\\n var step2list = {\\n \\\"ational\\\" : \\\"ate\\\",\\n \\\"tional\\\" : \\\"tion\\\",\\n \\\"enci\\\" : \\\"ence\\\",\\n \\\"anci\\\" : \\\"ance\\\",\\n \\\"izer\\\" : \\\"ize\\\",\\n \\\"bli\\\" : \\\"ble\\\",\\n \\\"alli\\\" : \\\"al\\\",\\n \\\"entli\\\" : \\\"ent\\\",\\n \\\"eli\\\" : \\\"e\\\",\\n \\\"ousli\\\" : \\\"ous\\\",\\n \\\"ization\\\" : \\\"ize\\\",\\n \\\"ation\\\" : \\\"ate\\\",\\n \\\"ator\\\" : \\\"ate\\\",\\n \\\"alism\\\" : \\\"al\\\",\\n \\\"iveness\\\" : \\\"ive\\\",\\n \\\"fulness\\\" : \\\"ful\\\",\\n \\\"ousness\\\" : \\\"ous\\\",\\n \\\"aliti\\\" : \\\"al\\\",\\n \\\"iviti\\\" : \\\"ive\\\",\\n \\\"biliti\\\" : \\\"ble\\\",\\n \\\"logi\\\" : \\\"log\\\"\\n },\\n\\n step3list = {\\n \\\"icate\\\" : \\\"ic\\\",\\n \\\"ative\\\" : \\\"\\\",\\n \\\"alize\\\" : \\\"al\\\",\\n \\\"iciti\\\" : \\\"ic\\\",\\n \\\"ical\\\" : \\\"ic\\\",\\n \\\"ful\\\" : \\\"\\\",\\n \\\"ness\\\" : \\\"\\\"\\n },\\n\\n c = \\\"[^aeiou]\\\", // consonant\\n v = \\\"[aeiouy]\\\", // vowel\\n C = c + \\\"[^aeiouy]*\\\", // consonant sequence\\n V = v + \\\"[aeiou]*\\\", // vowel sequence\\n\\n mgr0 = \\\"^(\\\" + C + \\\")?\\\" + V + C, // [C]VC... is m>0\\n meq1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + \\\"(\\\" + V + \\\")?$\\\", // [C]VC[V] is m=1\\n mgr1 = \\\"^(\\\" + C + \\\")?\\\" + V + C + V + C, // [C]VCVC... is m>1\\n s_v = \\\"^(\\\" + C + \\\")?\\\" + v; // vowel in stem\\n\\n var re_mgr0 = new RegExp(mgr0);\\n var re_mgr1 = new RegExp(mgr1);\\n var re_meq1 = new RegExp(meq1);\\n var re_s_v = new RegExp(s_v);\\n\\n var re_1a = /^(.+?)(ss|i)es$/;\\n var re2_1a = /^(.+?)([^s])s$/;\\n var re_1b = /^(.+?)eed$/;\\n var re2_1b = /^(.+?)(ed|ing)$/;\\n var re_1b_2 = /.$/;\\n var re2_1b_2 = /(at|bl|iz)$/;\\n var re3_1b_2 = new RegExp(\\\"([^aeiouylsz])\\\\\\\\1$\\\");\\n var re4_1b_2 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var re_1c = /^(.+?[^aeiou])y$/;\\n var re_2 = /^(.+?)(ational|tional|enci|anci|izer|bli|alli|entli|eli|ousli|ization|ation|ator|alism|iveness|fulness|ousness|aliti|iviti|biliti|logi)$/;\\n\\n var re_3 = /^(.+?)(icate|ative|alize|iciti|ical|ful|ness)$/;\\n\\n var re_4 = /^(.+?)(al|ance|ence|er|ic|able|ible|ant|ement|ment|ent|ou|ism|ate|iti|ous|ive|ize)$/;\\n var re2_4 = /^(.+?)(s|t)(ion)$/;\\n\\n var re_5 = /^(.+?)e$/;\\n var re_5_1 = /ll$/;\\n var re3_5 = new RegExp(\\\"^\\\" + C + v + \\\"[^aeiouwxy]$\\\");\\n\\n var porterStemmer = function porterStemmer(w) {\\n var stem,\\n suffix,\\n firstch,\\n re,\\n re2,\\n re3,\\n re4;\\n\\n if (w.length < 3) { return w; }\\n\\n firstch = w.substr(0,1);\\n if (firstch == \\\"y\\\") {\\n w = firstch.toUpperCase() + w.substr(1);\\n }\\n\\n // Step 1a\\n re = re_1a\\n re2 = re2_1a;\\n\\n if (re.test(w)) { w = w.replace(re,\\\"$1$2\\\"); }\\n else if (re2.test(w)) { w = w.replace(re2,\\\"$1$2\\\"); }\\n\\n // Step 1b\\n re = re_1b;\\n re2 = re2_1b;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n re = re_mgr0;\\n if (re.test(fp[1])) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1];\\n re2 = re_s_v;\\n if (re2.test(stem)) {\\n w = stem;\\n re2 = re2_1b_2;\\n re3 = re3_1b_2;\\n re4 = re4_1b_2;\\n if (re2.test(w)) { w = w + \\\"e\\\"; }\\n else if (re3.test(w)) { re = re_1b_2; w = w.replace(re,\\\"\\\"); }\\n else if (re4.test(w)) { w = w + \\\"e\\\"; }\\n }\\n }\\n\\n // Step 1c - replace suffix y or Y by i if preceded by a non-vowel which is not the first letter of the word (so cry -> cri, by -> by, say -> say)\\n re = re_1c;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n w = stem + \\\"i\\\";\\n }\\n\\n // Step 2\\n re = re_2;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step2list[suffix];\\n }\\n }\\n\\n // Step 3\\n re = re_3;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n suffix = fp[2];\\n re = re_mgr0;\\n if (re.test(stem)) {\\n w = stem + step3list[suffix];\\n }\\n }\\n\\n // Step 4\\n re = re_4;\\n re2 = re2_4;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n if (re.test(stem)) {\\n w = stem;\\n }\\n } else if (re2.test(w)) {\\n var fp = re2.exec(w);\\n stem = fp[1] + fp[2];\\n re2 = re_mgr1;\\n if (re2.test(stem)) {\\n w = stem;\\n }\\n }\\n\\n // Step 5\\n re = re_5;\\n if (re.test(w)) {\\n var fp = re.exec(w);\\n stem = fp[1];\\n re = re_mgr1;\\n re2 = re_meq1;\\n re3 = re3_5;\\n if (re.test(stem) || (re2.test(stem) && !(re3.test(stem)))) {\\n w = stem;\\n }\\n }\\n\\n re = re_5_1;\\n re2 = re_mgr1;\\n if (re.test(w) && re2.test(w)) {\\n re = re_1b_2;\\n w = w.replace(re,\\\"\\\");\\n }\\n\\n // and turn initial Y back to y\\n\\n if (firstch == \\\"y\\\") {\\n w = firstch.toLowerCase() + w.substr(1);\\n }\\n\\n return w;\\n };\\n\\n return function (token) {\\n return token.update(porterStemmer);\\n }\\n})();\\n\\nlunr.Pipeline.registerFunction(lunr.stemmer, 'stemmer')\\n/*!\\n * lunr.stopWordFilter\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.generateStopWordFilter builds a stopWordFilter function from the provided\\n * list of stop words.\\n *\\n * The built in lunr.stopWordFilter is built using this generator and can be used\\n * to generate custom stopWordFilters for applications or non English languages.\\n *\\n * @function\\n * @param {Array} token The token to pass through the filter\\n * @returns {lunr.PipelineFunction}\\n * @see lunr.Pipeline\\n * @see lunr.stopWordFilter\\n */\\nlunr.generateStopWordFilter = function (stopWords) {\\n var words = stopWords.reduce(function (memo, stopWord) {\\n memo[stopWord] = stopWord\\n return memo\\n }, {})\\n\\n return function (token) {\\n if (token && words[token.toString()] !== token.toString()) return token\\n }\\n}\\n\\n/**\\n * lunr.stopWordFilter is an English language stop word list filter, any words\\n * contained in the list will not be passed through the filter.\\n *\\n * This is intended to be used in the Pipeline. If the token does not pass the\\n * filter then undefined will be returned.\\n *\\n * @function\\n * @implements {lunr.PipelineFunction}\\n * @params {lunr.Token} token - A token to check for being a stop word.\\n * @returns {lunr.Token}\\n * @see {@link lunr.Pipeline}\\n */\\nlunr.stopWordFilter = lunr.generateStopWordFilter([\\n 'a',\\n 'able',\\n 'about',\\n 'across',\\n 'after',\\n 'all',\\n 'almost',\\n 'also',\\n 'am',\\n 'among',\\n 'an',\\n 'and',\\n 'any',\\n 'are',\\n 'as',\\n 'at',\\n 'be',\\n 'because',\\n 'been',\\n 'but',\\n 'by',\\n 'can',\\n 'cannot',\\n 'could',\\n 'dear',\\n 'did',\\n 'do',\\n 'does',\\n 'either',\\n 'else',\\n 'ever',\\n 'every',\\n 'for',\\n 'from',\\n 'get',\\n 'got',\\n 'had',\\n 'has',\\n 'have',\\n 'he',\\n 'her',\\n 'hers',\\n 'him',\\n 'his',\\n 'how',\\n 'however',\\n 'i',\\n 'if',\\n 'in',\\n 'into',\\n 'is',\\n 'it',\\n 'its',\\n 'just',\\n 'least',\\n 'let',\\n 'like',\\n 'likely',\\n 'may',\\n 'me',\\n 'might',\\n 'most',\\n 'must',\\n 'my',\\n 'neither',\\n 'no',\\n 'nor',\\n 'not',\\n 'of',\\n 'off',\\n 'often',\\n 'on',\\n 'only',\\n 'or',\\n 'other',\\n 'our',\\n 'own',\\n 'rather',\\n 'said',\\n 'say',\\n 'says',\\n 'she',\\n 'should',\\n 'since',\\n 'so',\\n 'some',\\n 'than',\\n 'that',\\n 'the',\\n 'their',\\n 'them',\\n 'then',\\n 'there',\\n 'these',\\n 'they',\\n 'this',\\n 'tis',\\n 'to',\\n 'too',\\n 'twas',\\n 'us',\\n 'wants',\\n 'was',\\n 'we',\\n 'were',\\n 'what',\\n 'when',\\n 'where',\\n 'which',\\n 'while',\\n 'who',\\n 'whom',\\n 'why',\\n 'will',\\n 'with',\\n 'would',\\n 'yet',\\n 'you',\\n 'your'\\n])\\n\\nlunr.Pipeline.registerFunction(lunr.stopWordFilter, 'stopWordFilter')\\n/*!\\n * lunr.trimmer\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.trimmer is a pipeline function for trimming non word\\n * characters from the beginning and end of tokens before they\\n * enter the index.\\n *\\n * This implementation may not work correctly for non latin\\n * characters and should either be removed or adapted for use\\n * with languages with non-latin characters.\\n *\\n * @static\\n * @implements {lunr.PipelineFunction}\\n * @param {lunr.Token} token The token to pass through the filter\\n * @returns {lunr.Token}\\n * @see lunr.Pipeline\\n */\\nlunr.trimmer = function (token) {\\n return token.update(function (s) {\\n return s.replace(/^\\\\W+/, '').replace(/\\\\W+$/, '')\\n })\\n}\\n\\nlunr.Pipeline.registerFunction(lunr.trimmer, 'trimmer')\\n/*!\\n * lunr.TokenSet\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * A token set is used to store the unique list of all tokens\\n * within an index. Token sets are also used to represent an\\n * incoming query to the index, this query token set and index\\n * token set are then intersected to find which tokens to look\\n * up in the inverted index.\\n *\\n * A token set can hold multiple tokens, as in the case of the\\n * index token set, or it can hold a single token as in the\\n * case of a simple query token set.\\n *\\n * Additionally token sets are used to perform wildcard matching.\\n * Leading, contained and trailing wildcards are supported, and\\n * from this edit distance matching can also be provided.\\n *\\n * Token sets are implemented as a minimal finite state automata,\\n * where both common prefixes and suffixes are shared between tokens.\\n * This helps to reduce the space used for storing the token set.\\n *\\n * @constructor\\n */\\nlunr.TokenSet = function () {\\n this.final = false\\n this.edges = {}\\n this.id = lunr.TokenSet._nextId\\n lunr.TokenSet._nextId += 1\\n}\\n\\n/**\\n * Keeps track of the next, auto increment, identifier to assign\\n * to a new tokenSet.\\n *\\n * TokenSets require a unique identifier to be correctly minimised.\\n *\\n * @private\\n */\\nlunr.TokenSet._nextId = 1\\n\\n/**\\n * Creates a TokenSet instance from the given sorted array of words.\\n *\\n * @param {String[]} arr - A sorted array of strings to create the set from.\\n * @returns {lunr.TokenSet}\\n * @throws Will throw an error if the input array is not sorted.\\n */\\nlunr.TokenSet.fromArray = function (arr) {\\n var builder = new lunr.TokenSet.Builder\\n\\n for (var i = 0, len = arr.length; i < len; i++) {\\n builder.insert(arr[i])\\n }\\n\\n builder.finish()\\n return builder.root\\n}\\n\\n/**\\n * Creates a token set from a query clause.\\n *\\n * @private\\n * @param {Object} clause - A single clause from lunr.Query.\\n * @param {string} clause.term - The query clause term.\\n * @param {number} [clause.editDistance] - The optional edit distance for the term.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromClause = function (clause) {\\n if ('editDistance' in clause) {\\n return lunr.TokenSet.fromFuzzyString(clause.term, clause.editDistance)\\n } else {\\n return lunr.TokenSet.fromString(clause.term)\\n }\\n}\\n\\n/**\\n * Creates a token set representing a single string with a specified\\n * edit distance.\\n *\\n * Insertions, deletions, substitutions and transpositions are each\\n * treated as an edit distance of 1.\\n *\\n * Increasing the allowed edit distance will have a dramatic impact\\n * on the performance of both creating and intersecting these TokenSets.\\n * It is advised to keep the edit distance less than 3.\\n *\\n * @param {string} str - The string to create the token set from.\\n * @param {number} editDistance - The allowed edit distance to match.\\n * @returns {lunr.Vector}\\n */\\nlunr.TokenSet.fromFuzzyString = function (str, editDistance) {\\n var root = new lunr.TokenSet\\n\\n var stack = [{\\n node: root,\\n editsRemaining: editDistance,\\n str: str\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop()\\n\\n // no edit\\n if (frame.str.length > 0) {\\n var char = frame.str.charAt(0),\\n noEditNode\\n\\n if (char in frame.node.edges) {\\n noEditNode = frame.node.edges[char]\\n } else {\\n noEditNode = new lunr.TokenSet\\n frame.node.edges[char] = noEditNode\\n }\\n\\n if (frame.str.length == 1) {\\n noEditNode.final = true\\n }\\n\\n stack.push({\\n node: noEditNode,\\n editsRemaining: frame.editsRemaining,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n if (frame.editsRemaining == 0) {\\n continue\\n }\\n\\n // insertion\\n if (\\\"*\\\" in frame.node.edges) {\\n var insertionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var insertionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = insertionNode\\n }\\n\\n if (frame.str.length == 0) {\\n insertionNode.final = true\\n }\\n\\n stack.push({\\n node: insertionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str\\n })\\n\\n // deletion\\n // can only do a deletion if we have enough edits remaining\\n // and if there are characters left to delete in the string\\n if (frame.str.length > 1) {\\n stack.push({\\n node: frame.node,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // deletion\\n // just removing the last character from the str\\n if (frame.str.length == 1) {\\n frame.node.final = true\\n }\\n\\n // substitution\\n // can only do a substitution if we have enough edits remaining\\n // and if there are characters left to substitute\\n if (frame.str.length >= 1) {\\n if (\\\"*\\\" in frame.node.edges) {\\n var substitutionNode = frame.node.edges[\\\"*\\\"]\\n } else {\\n var substitutionNode = new lunr.TokenSet\\n frame.node.edges[\\\"*\\\"] = substitutionNode\\n }\\n\\n if (frame.str.length == 1) {\\n substitutionNode.final = true\\n }\\n\\n stack.push({\\n node: substitutionNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: frame.str.slice(1)\\n })\\n }\\n\\n // transposition\\n // can only do a transposition if there are edits remaining\\n // and there are enough characters to transpose\\n if (frame.str.length > 1) {\\n var charA = frame.str.charAt(0),\\n charB = frame.str.charAt(1),\\n transposeNode\\n\\n if (charB in frame.node.edges) {\\n transposeNode = frame.node.edges[charB]\\n } else {\\n transposeNode = new lunr.TokenSet\\n frame.node.edges[charB] = transposeNode\\n }\\n\\n if (frame.str.length == 1) {\\n transposeNode.final = true\\n }\\n\\n stack.push({\\n node: transposeNode,\\n editsRemaining: frame.editsRemaining - 1,\\n str: charA + frame.str.slice(2)\\n })\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Creates a TokenSet from a string.\\n *\\n * The string may contain one or more wildcard characters (*)\\n * that will allow wildcard matching when intersecting with\\n * another TokenSet.\\n *\\n * @param {string} str - The string to create a TokenSet from.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.fromString = function (str) {\\n var node = new lunr.TokenSet,\\n root = node\\n\\n /*\\n * Iterates through all characters within the passed string\\n * appending a node for each character.\\n *\\n * When a wildcard character is found then a self\\n * referencing edge is introduced to continually match\\n * any number of any characters.\\n */\\n for (var i = 0, len = str.length; i < len; i++) {\\n var char = str[i],\\n final = (i == len - 1)\\n\\n if (char == \\\"*\\\") {\\n node.edges[char] = node\\n node.final = final\\n\\n } else {\\n var next = new lunr.TokenSet\\n next.final = final\\n\\n node.edges[char] = next\\n node = next\\n }\\n }\\n\\n return root\\n}\\n\\n/**\\n * Converts this TokenSet into an array of strings\\n * contained within the TokenSet.\\n *\\n * This is not intended to be used on a TokenSet that\\n * contains wildcards, in these cases the results are\\n * undefined and are likely to cause an infinite loop.\\n *\\n * @returns {string[]}\\n */\\nlunr.TokenSet.prototype.toArray = function () {\\n var words = []\\n\\n var stack = [{\\n prefix: \\\"\\\",\\n node: this\\n }]\\n\\n while (stack.length) {\\n var frame = stack.pop(),\\n edges = Object.keys(frame.node.edges),\\n len = edges.length\\n\\n if (frame.node.final) {\\n /* In Safari, at this point the prefix is sometimes corrupted, see:\\n * https://github.com/olivernn/lunr.js/issues/279 Calling any\\n * String.prototype method forces Safari to \\\"cast\\\" this string to what\\n * it's supposed to be, fixing the bug. */\\n frame.prefix.charAt(0)\\n words.push(frame.prefix)\\n }\\n\\n for (var i = 0; i < len; i++) {\\n var edge = edges[i]\\n\\n stack.push({\\n prefix: frame.prefix.concat(edge),\\n node: frame.node.edges[edge]\\n })\\n }\\n }\\n\\n return words\\n}\\n\\n/**\\n * Generates a string representation of a TokenSet.\\n *\\n * This is intended to allow TokenSets to be used as keys\\n * in objects, largely to aid the construction and minimisation\\n * of a TokenSet. As such it is not designed to be a human\\n * friendly representation of the TokenSet.\\n *\\n * @returns {string}\\n */\\nlunr.TokenSet.prototype.toString = function () {\\n // NOTE: Using Object.keys here as this.edges is very likely\\n // to enter 'hash-mode' with many keys being added\\n //\\n // avoiding a for-in loop here as it leads to the function\\n // being de-optimised (at least in V8). From some simple\\n // benchmarks the performance is comparable, but allowing\\n // V8 to optimize may mean easy performance wins in the future.\\n\\n if (this._str) {\\n return this._str\\n }\\n\\n var str = this.final ? '1' : '0',\\n labels = Object.keys(this.edges).sort(),\\n len = labels.length\\n\\n for (var i = 0; i < len; i++) {\\n var label = labels[i],\\n node = this.edges[label]\\n\\n str = str + label + node.id\\n }\\n\\n return str\\n}\\n\\n/**\\n * Returns a new TokenSet that is the intersection of\\n * this TokenSet and the passed TokenSet.\\n *\\n * This intersection will take into account any wildcards\\n * contained within the TokenSet.\\n *\\n * @param {lunr.TokenSet} b - An other TokenSet to intersect with.\\n * @returns {lunr.TokenSet}\\n */\\nlunr.TokenSet.prototype.intersect = function (b) {\\n var output = new lunr.TokenSet,\\n frame = undefined\\n\\n var stack = [{\\n qNode: b,\\n output: output,\\n node: this\\n }]\\n\\n while (stack.length) {\\n frame = stack.pop()\\n\\n // NOTE: As with the #toString method, we are using\\n // Object.keys and a for loop instead of a for-in loop\\n // as both of these objects enter 'hash' mode, causing\\n // the function to be de-optimised in V8\\n var qEdges = Object.keys(frame.qNode.edges),\\n qLen = qEdges.length,\\n nEdges = Object.keys(frame.node.edges),\\n nLen = nEdges.length\\n\\n for (var q = 0; q < qLen; q++) {\\n var qEdge = qEdges[q]\\n\\n for (var n = 0; n < nLen; n++) {\\n var nEdge = nEdges[n]\\n\\n if (nEdge == qEdge || qEdge == '*') {\\n var node = frame.node.edges[nEdge],\\n qNode = frame.qNode.edges[qEdge],\\n final = node.final && qNode.final,\\n next = undefined\\n\\n if (nEdge in frame.output.edges) {\\n // an edge already exists for this character\\n // no need to create a new node, just set the finality\\n // bit unless this node is already final\\n next = frame.output.edges[nEdge]\\n next.final = next.final || final\\n\\n } else {\\n // no edge exists yet, must create one\\n // set the finality bit and insert it\\n // into the output\\n next = new lunr.TokenSet\\n next.final = final\\n frame.output.edges[nEdge] = next\\n }\\n\\n stack.push({\\n qNode: qNode,\\n output: next,\\n node: node\\n })\\n }\\n }\\n }\\n }\\n\\n return output\\n}\\nlunr.TokenSet.Builder = function () {\\n this.previousWord = \\\"\\\"\\n this.root = new lunr.TokenSet\\n this.uncheckedNodes = []\\n this.minimizedNodes = {}\\n}\\n\\nlunr.TokenSet.Builder.prototype.insert = function (word) {\\n var node,\\n commonPrefix = 0\\n\\n if (word < this.previousWord) {\\n throw new Error (\\\"Out of order word insertion\\\")\\n }\\n\\n for (var i = 0; i < word.length && i < this.previousWord.length; i++) {\\n if (word[i] != this.previousWord[i]) break\\n commonPrefix++\\n }\\n\\n this.minimize(commonPrefix)\\n\\n if (this.uncheckedNodes.length == 0) {\\n node = this.root\\n } else {\\n node = this.uncheckedNodes[this.uncheckedNodes.length - 1].child\\n }\\n\\n for (var i = commonPrefix; i < word.length; i++) {\\n var nextNode = new lunr.TokenSet,\\n char = word[i]\\n\\n node.edges[char] = nextNode\\n\\n this.uncheckedNodes.push({\\n parent: node,\\n char: char,\\n child: nextNode\\n })\\n\\n node = nextNode\\n }\\n\\n node.final = true\\n this.previousWord = word\\n}\\n\\nlunr.TokenSet.Builder.prototype.finish = function () {\\n this.minimize(0)\\n}\\n\\nlunr.TokenSet.Builder.prototype.minimize = function (downTo) {\\n for (var i = this.uncheckedNodes.length - 1; i >= downTo; i--) {\\n var node = this.uncheckedNodes[i],\\n childKey = node.child.toString()\\n\\n if (childKey in this.minimizedNodes) {\\n node.parent.edges[node.char] = this.minimizedNodes[childKey]\\n } else {\\n // Cache the key for this node since\\n // we know it can't change anymore\\n node.child._str = childKey\\n\\n this.minimizedNodes[childKey] = node.child\\n }\\n\\n this.uncheckedNodes.pop()\\n }\\n}\\n/*!\\n * lunr.Index\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * An index contains the built index of all documents and provides a query interface\\n * to the index.\\n *\\n * Usually instances of lunr.Index will not be created using this constructor, instead\\n * lunr.Builder should be used to construct new indexes, or lunr.Index.load should be\\n * used to load previously built and serialized indexes.\\n *\\n * @constructor\\n * @param {Object} attrs - The attributes of the built search index.\\n * @param {Object} attrs.invertedIndex - An index of term/field to document reference.\\n * @param {Object} attrs.fieldVectors - Field vectors\\n * @param {lunr.TokenSet} attrs.tokenSet - An set of all corpus tokens.\\n * @param {string[]} attrs.fields - The names of indexed document fields.\\n * @param {lunr.Pipeline} attrs.pipeline - The pipeline to use for search terms.\\n */\\nlunr.Index = function (attrs) {\\n this.invertedIndex = attrs.invertedIndex\\n this.fieldVectors = attrs.fieldVectors\\n this.tokenSet = attrs.tokenSet\\n this.fields = attrs.fields\\n this.pipeline = attrs.pipeline\\n}\\n\\n/**\\n * A result contains details of a document matching a search query.\\n * @typedef {Object} lunr.Index~Result\\n * @property {string} ref - The reference of the document this result represents.\\n * @property {number} score - A number between 0 and 1 representing how similar this document is to the query.\\n * @property {lunr.MatchData} matchData - Contains metadata about this match including which term(s) caused the match.\\n */\\n\\n/**\\n * Although lunr provides the ability to create queries using lunr.Query, it also provides a simple\\n * query language which itself is parsed into an instance of lunr.Query.\\n *\\n * For programmatically building queries it is advised to directly use lunr.Query, the query language\\n * is best used for human entered text rather than program generated text.\\n *\\n * At its simplest queries can just be a single term, e.g. `hello`, multiple terms are also supported\\n * and will be combined with OR, e.g `hello world` will match documents that contain either 'hello'\\n * or 'world', though those that contain both will rank higher in the results.\\n *\\n * Wildcards can be included in terms to match one or more unspecified characters, these wildcards can\\n * be inserted anywhere within the term, and more than one wildcard can exist in a single term. Adding\\n * wildcards will increase the number of documents that will be found but can also have a negative\\n * impact on query performance, especially with wildcards at the beginning of a term.\\n *\\n * Terms can be restricted to specific fields, e.g. `title:hello`, only documents with the term\\n * hello in the title field will match this query. Using a field not present in the index will lead\\n * to an error being thrown.\\n *\\n * Modifiers can also be added to terms, lunr supports edit distance and boost modifiers on terms. A term\\n * boost will make documents matching that term score higher, e.g. `foo^5`. Edit distance is also supported\\n * to provide fuzzy matching, e.g. 'hello~2' will match documents with hello with an edit distance of 2.\\n * Avoid large values for edit distance to improve query performance.\\n *\\n * Each term also supports a presence modifier. By default a term's presence in document is optional, however\\n * this can be changed to either required or prohibited. For a term's presence to be required in a document the\\n * term should be prefixed with a '+', e.g. `+foo bar` is a search for documents that must contain 'foo' and\\n * optionally contain 'bar'. Conversely a leading '-' sets the terms presence to prohibited, i.e. it must not\\n * appear in a document, e.g. `-foo bar` is a search for documents that do not contain 'foo' but may contain 'bar'.\\n *\\n * To escape special characters the backslash character '\\\\' can be used, this allows searches to include\\n * characters that would normally be considered modifiers, e.g. `foo\\\\~2` will search for a term \\\"foo~2\\\" instead\\n * of attempting to apply a boost of 2 to the search term \\\"foo\\\".\\n *\\n * @typedef {string} lunr.Index~QueryString\\n * @example Simple single term query\\n * hello\\n * @example Multiple term query\\n * hello world\\n * @example term scoped to a field\\n * title:hello\\n * @example term with a boost of 10\\n * hello^10\\n * @example term with an edit distance of 2\\n * hello~2\\n * @example terms with presence modifiers\\n * -foo +bar baz\\n */\\n\\n/**\\n * Performs a search against the index using lunr query syntax.\\n *\\n * Results will be returned sorted by their score, the most relevant results\\n * will be returned first. For details on how the score is calculated, please see\\n * the {@link https://lunrjs.com/guides/searching.html#scoring|guide}.\\n *\\n * For more programmatic querying use lunr.Index#query.\\n *\\n * @param {lunr.Index~QueryString} queryString - A string containing a lunr query.\\n * @throws {lunr.QueryParseError} If the passed query string cannot be parsed.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.search = function (queryString) {\\n return this.query(function (query) {\\n var parser = new lunr.QueryParser(queryString, query)\\n parser.parse()\\n })\\n}\\n\\n/**\\n * A query builder callback provides a query object to be used to express\\n * the query to perform on the index.\\n *\\n * @callback lunr.Index~queryBuilder\\n * @param {lunr.Query} query - The query object to build up.\\n * @this lunr.Query\\n */\\n\\n/**\\n * Performs a query against the index using the yielded lunr.Query object.\\n *\\n * If performing programmatic queries against the index, this method is preferred\\n * over lunr.Index#search so as to avoid the additional query parsing overhead.\\n *\\n * A query object is yielded to the supplied function which should be used to\\n * express the query to be run against the index.\\n *\\n * Note that although this function takes a callback parameter it is _not_ an\\n * asynchronous operation, the callback is just yielded a query object to be\\n * customized.\\n *\\n * @param {lunr.Index~queryBuilder} fn - A function that is used to build the query.\\n * @returns {lunr.Index~Result[]}\\n */\\nlunr.Index.prototype.query = function (fn) {\\n // for each query clause\\n // * process terms\\n // * expand terms from token set\\n // * find matching documents and metadata\\n // * get document vectors\\n // * score documents\\n\\n var query = new lunr.Query(this.fields),\\n matchingFields = Object.create(null),\\n queryVectors = Object.create(null),\\n termFieldCache = Object.create(null),\\n requiredMatches = Object.create(null),\\n prohibitedMatches = Object.create(null)\\n\\n /*\\n * To support field level boosts a query vector is created per\\n * field. An empty vector is eagerly created to support negated\\n * queries.\\n */\\n for (var i = 0; i < this.fields.length; i++) {\\n queryVectors[this.fields[i]] = new lunr.Vector\\n }\\n\\n fn.call(query, query)\\n\\n for (var i = 0; i < query.clauses.length; i++) {\\n /*\\n * Unless the pipeline has been disabled for this term, which is\\n * the case for terms with wildcards, we need to pass the clause\\n * term through the search pipeline. A pipeline returns an array\\n * of processed terms. Pipeline functions may expand the passed\\n * term, which means we may end up performing multiple index lookups\\n * for a single query term.\\n */\\n var clause = query.clauses[i],\\n terms = null,\\n clauseMatches = lunr.Set.complete\\n\\n if (clause.usePipeline) {\\n terms = this.pipeline.runString(clause.term, {\\n fields: clause.fields\\n })\\n } else {\\n terms = [clause.term]\\n }\\n\\n for (var m = 0; m < terms.length; m++) {\\n var term = terms[m]\\n\\n /*\\n * Each term returned from the pipeline needs to use the same query\\n * clause object, e.g. the same boost and or edit distance. The\\n * simplest way to do this is to re-use the clause object but mutate\\n * its term property.\\n */\\n clause.term = term\\n\\n /*\\n * From the term in the clause we create a token set which will then\\n * be used to intersect the indexes token set to get a list of terms\\n * to lookup in the inverted index\\n */\\n var termTokenSet = lunr.TokenSet.fromClause(clause),\\n expandedTerms = this.tokenSet.intersect(termTokenSet).toArray()\\n\\n /*\\n * If a term marked as required does not exist in the tokenSet it is\\n * impossible for the search to return any matches. We set all the field\\n * scoped required matches set to empty and stop examining any further\\n * clauses.\\n */\\n if (expandedTerms.length === 0 && clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = lunr.Set.empty\\n }\\n\\n break\\n }\\n\\n for (var j = 0; j < expandedTerms.length; j++) {\\n /*\\n * For each term get the posting and termIndex, this is required for\\n * building the query vector.\\n */\\n var expandedTerm = expandedTerms[j],\\n posting = this.invertedIndex[expandedTerm],\\n termIndex = posting._index\\n\\n for (var k = 0; k < clause.fields.length; k++) {\\n /*\\n * For each field that this query term is scoped by (by default\\n * all fields are in scope) we need to get all the document refs\\n * that have this term in that field.\\n *\\n * The posting is the entry in the invertedIndex for the matching\\n * term from above.\\n */\\n var field = clause.fields[k],\\n fieldPosting = posting[field],\\n matchingDocumentRefs = Object.keys(fieldPosting),\\n termField = expandedTerm + \\\"/\\\" + field,\\n matchingDocumentsSet = new lunr.Set(matchingDocumentRefs)\\n\\n /*\\n * if the presence of this term is required ensure that the matching\\n * documents are added to the set of required matches for this clause.\\n *\\n */\\n if (clause.presence == lunr.Query.presence.REQUIRED) {\\n clauseMatches = clauseMatches.union(matchingDocumentsSet)\\n\\n if (requiredMatches[field] === undefined) {\\n requiredMatches[field] = lunr.Set.complete\\n }\\n }\\n\\n /*\\n * if the presence of this term is prohibited ensure that the matching\\n * documents are added to the set of prohibited matches for this field,\\n * creating that set if it does not yet exist.\\n */\\n if (clause.presence == lunr.Query.presence.PROHIBITED) {\\n if (prohibitedMatches[field] === undefined) {\\n prohibitedMatches[field] = lunr.Set.empty\\n }\\n\\n prohibitedMatches[field] = prohibitedMatches[field].union(matchingDocumentsSet)\\n\\n /*\\n * Prohibited matches should not be part of the query vector used for\\n * similarity scoring and no metadata should be extracted so we continue\\n * to the next field\\n */\\n continue\\n }\\n\\n /*\\n * The query field vector is populated using the termIndex found for\\n * the term and a unit value with the appropriate boost applied.\\n * Using upsert because there could already be an entry in the vector\\n * for the term we are working with. In that case we just add the scores\\n * together.\\n */\\n queryVectors[field].upsert(termIndex, clause.boost, function (a, b) { return a + b })\\n\\n /**\\n * If we've already seen this term, field combo then we've already collected\\n * the matching documents and metadata, no need to go through all that again\\n */\\n if (termFieldCache[termField]) {\\n continue\\n }\\n\\n for (var l = 0; l < matchingDocumentRefs.length; l++) {\\n /*\\n * All metadata for this term/field/document triple\\n * are then extracted and collected into an instance\\n * of lunr.MatchData ready to be returned in the query\\n * results\\n */\\n var matchingDocumentRef = matchingDocumentRefs[l],\\n matchingFieldRef = new lunr.FieldRef (matchingDocumentRef, field),\\n metadata = fieldPosting[matchingDocumentRef],\\n fieldMatch\\n\\n if ((fieldMatch = matchingFields[matchingFieldRef]) === undefined) {\\n matchingFields[matchingFieldRef] = new lunr.MatchData (expandedTerm, field, metadata)\\n } else {\\n fieldMatch.add(expandedTerm, field, metadata)\\n }\\n\\n }\\n\\n termFieldCache[termField] = true\\n }\\n }\\n }\\n\\n /**\\n * If the presence was required we need to update the requiredMatches field sets.\\n * We do this after all fields for the term have collected their matches because\\n * the clause terms presence is required in _any_ of the fields not _all_ of the\\n * fields.\\n */\\n if (clause.presence === lunr.Query.presence.REQUIRED) {\\n for (var k = 0; k < clause.fields.length; k++) {\\n var field = clause.fields[k]\\n requiredMatches[field] = requiredMatches[field].intersect(clauseMatches)\\n }\\n }\\n }\\n\\n /**\\n * Need to combine the field scoped required and prohibited\\n * matching documents into a global set of required and prohibited\\n * matches\\n */\\n var allRequiredMatches = lunr.Set.complete,\\n allProhibitedMatches = lunr.Set.empty\\n\\n for (var i = 0; i < this.fields.length; i++) {\\n var field = this.fields[i]\\n\\n if (requiredMatches[field]) {\\n allRequiredMatches = allRequiredMatches.intersect(requiredMatches[field])\\n }\\n\\n if (prohibitedMatches[field]) {\\n allProhibitedMatches = allProhibitedMatches.union(prohibitedMatches[field])\\n }\\n }\\n\\n var matchingFieldRefs = Object.keys(matchingFields),\\n results = [],\\n matches = Object.create(null)\\n\\n /*\\n * If the query is negated (contains only prohibited terms)\\n * we need to get _all_ fieldRefs currently existing in the\\n * index. This is only done when we know that the query is\\n * entirely prohibited terms to avoid any cost of getting all\\n * fieldRefs unnecessarily.\\n *\\n * Additionally, blank MatchData must be created to correctly\\n * populate the results.\\n */\\n if (query.isNegated()) {\\n matchingFieldRefs = Object.keys(this.fieldVectors)\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n var matchingFieldRef = matchingFieldRefs[i]\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRef)\\n matchingFields[matchingFieldRef] = new lunr.MatchData\\n }\\n }\\n\\n for (var i = 0; i < matchingFieldRefs.length; i++) {\\n /*\\n * Currently we have document fields that match the query, but we\\n * need to return documents. The matchData and scores are combined\\n * from multiple fields belonging to the same document.\\n *\\n * Scores are calculated by field, using the query vectors created\\n * above, and combined into a final document score using addition.\\n */\\n var fieldRef = lunr.FieldRef.fromString(matchingFieldRefs[i]),\\n docRef = fieldRef.docRef\\n\\n if (!allRequiredMatches.contains(docRef)) {\\n continue\\n }\\n\\n if (allProhibitedMatches.contains(docRef)) {\\n continue\\n }\\n\\n var fieldVector = this.fieldVectors[fieldRef],\\n score = queryVectors[fieldRef.fieldName].similarity(fieldVector),\\n docMatch\\n\\n if ((docMatch = matches[docRef]) !== undefined) {\\n docMatch.score += score\\n docMatch.matchData.combine(matchingFields[fieldRef])\\n } else {\\n var match = {\\n ref: docRef,\\n score: score,\\n matchData: matchingFields[fieldRef]\\n }\\n matches[docRef] = match\\n results.push(match)\\n }\\n }\\n\\n /*\\n * Sort the results objects by score, highest first.\\n */\\n return results.sort(function (a, b) {\\n return b.score - a.score\\n })\\n}\\n\\n/**\\n * Prepares the index for JSON serialization.\\n *\\n * The schema for this JSON blob will be described in a\\n * separate JSON schema file.\\n *\\n * @returns {Object}\\n */\\nlunr.Index.prototype.toJSON = function () {\\n var invertedIndex = Object.keys(this.invertedIndex)\\n .sort()\\n .map(function (term) {\\n return [term, this.invertedIndex[term]]\\n }, this)\\n\\n var fieldVectors = Object.keys(this.fieldVectors)\\n .map(function (ref) {\\n return [ref, this.fieldVectors[ref].toJSON()]\\n }, this)\\n\\n return {\\n version: lunr.version,\\n fields: this.fields,\\n fieldVectors: fieldVectors,\\n invertedIndex: invertedIndex,\\n pipeline: this.pipeline.toJSON()\\n }\\n}\\n\\n/**\\n * Loads a previously serialized lunr.Index\\n *\\n * @param {Object} serializedIndex - A previously serialized lunr.Index\\n * @returns {lunr.Index}\\n */\\nlunr.Index.load = function (serializedIndex) {\\n var attrs = {},\\n fieldVectors = {},\\n serializedVectors = serializedIndex.fieldVectors,\\n invertedIndex = Object.create(null),\\n serializedInvertedIndex = serializedIndex.invertedIndex,\\n tokenSetBuilder = new lunr.TokenSet.Builder,\\n pipeline = lunr.Pipeline.load(serializedIndex.pipeline)\\n\\n if (serializedIndex.version != lunr.version) {\\n lunr.utils.warn(\\\"Version mismatch when loading serialised index. Current version of lunr '\\\" + lunr.version + \\\"' does not match serialized index '\\\" + serializedIndex.version + \\\"'\\\")\\n }\\n\\n for (var i = 0; i < serializedVectors.length; i++) {\\n var tuple = serializedVectors[i],\\n ref = tuple[0],\\n elements = tuple[1]\\n\\n fieldVectors[ref] = new lunr.Vector(elements)\\n }\\n\\n for (var i = 0; i < serializedInvertedIndex.length; i++) {\\n var tuple = serializedInvertedIndex[i],\\n term = tuple[0],\\n posting = tuple[1]\\n\\n tokenSetBuilder.insert(term)\\n invertedIndex[term] = posting\\n }\\n\\n tokenSetBuilder.finish()\\n\\n attrs.fields = serializedIndex.fields\\n\\n attrs.fieldVectors = fieldVectors\\n attrs.invertedIndex = invertedIndex\\n attrs.tokenSet = tokenSetBuilder.root\\n attrs.pipeline = pipeline\\n\\n return new lunr.Index(attrs)\\n}\\n/*!\\n * lunr.Builder\\n * Copyright (C) 2019 Oliver Nightingale\\n */\\n\\n/**\\n * lunr.Builder performs indexing on a set of documents and\\n * returns instances of lunr.Index ready for querying.\\n *\\n * All configuration of the index is done via the builder, the\\n * fields to index, the document reference, the text processing\\n * pipeline and document scoring parameters are all set on the\\n * builder before indexing.\\n *\\n * @constructor\\n * @property {string} _ref - Internal reference to the document reference field.\\n * @property {string[]} _fields - Internal reference to the document fields to index.\\n * @property {object} invertedIndex - The inverted index maps terms to document fields.\\n * @property {object} documentTermFrequencies - Keeps track of document term frequencies.\\n * @property {object} documentLengths - Keeps track of the length of documents added to the index.\\n * @property {lunr.tokenizer} tokenizer - Function for splitting strings into tokens for indexing.\\n * @property {lunr.Pipeline} pipeline - The pipeline performs text processing on tokens before indexing.\\n * @property {lunr.Pipeline} searchPipeline - A pipeline for processing search terms before querying the index.\\n * @property {number} documentCount - Keeps track of the total number of documents indexed.\\n * @property {number} _b - A parameter to control field length normalization, setting this to 0 disabled normalization, 1 fully normalizes field lengths, the default value is 0.75.\\n * @property {number} _k1 - A parameter to control how quickly an increase in term frequency results in term frequency saturation, the default value is 1.2.\\n * @property {number} termIndex - A counter incremented for each unique term, used to identify a terms position in the vector space.\\n * @property {array} metadataWhitelist - A list of metadata keys that have been whitelisted for entry in the index.\\n */\\nlunr.Builder = function () {\\n this._ref = \\\"id\\\"\\n this._fields = Object.create(null)\\n this._documents = Object.create(null)\\n this.invertedIndex = Object.create(null)\\n this.fieldTermFrequencies = {}\\n this.fieldLengths = {}\\n this.tokenizer = lunr.tokenizer\\n this.pipeline = new lunr.Pipeline\\n this.searchPipeline = new lunr.Pipeline\\n this.documentCount = 0\\n this._b = 0.75\\n this._k1 = 1.2\\n this.termIndex = 0\\n this.metadataWhitelist = []\\n}\\n\\n/**\\n * Sets the document field used as the document reference. Every document must have this field.\\n * The type of this field in the document should be a string, if it is not a string it will be\\n * coerced into a string by calling toString.\\n *\\n * The default ref is 'id'.\\n *\\n * The ref should _not_ be changed during indexing, it should be set before any documents are\\n * added to the index. Changing it during indexing can lead to inconsistent results.\\n *\\n * @param {string} ref - The name of the reference field in the document.\\n */\\nlunr.Builder.prototype.ref = function (ref) {\\n this._ref = ref\\n}\\n\\n/**\\n * A function that is used to extract a field from a document.\\n *\\n * Lunr expects a field to be at the top level of a document, if however the field\\n * is deeply nested within a document an extractor function can be used to extract\\n * the right field for indexing.\\n *\\n * @callback fieldExtractor\\n * @param {object} doc - The document being added to the index.\\n * @returns {?(string|object|object[])} obj - The object that will be indexed for this field.\\n * @example Extracting a nested field\\n * function (doc) { return doc.nested.field }\\n */\\n\\n/**\\n * Adds a field to the list of document fields that will be indexed. Every document being\\n * indexed should have this field. Null values for this field in indexed documents will\\n * not cause errors but will limit the chance of that document being retrieved by searches.\\n *\\n * All fields should be added before adding documents to the index. Adding fields after\\n * a document has been indexed will have no effect on already indexed documents.\\n *\\n * Fields can be boosted at build time. This allows terms within that field to have more\\n * importance when ranking search results. Use a field boost to specify that matches within\\n * one field are more important than other fields.\\n *\\n * @param {string} fieldName - The name of a field to index in all documents.\\n * @param {object} attributes - Optional attributes associated with this field.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this field.\\n * @param {fieldExtractor} [attributes.extractor] - Function to extract a field from a document.\\n * @throws {RangeError} fieldName cannot contain unsupported characters '/'\\n */\\nlunr.Builder.prototype.field = function (fieldName, attributes) {\\n if (/\\\\//.test(fieldName)) {\\n throw new RangeError (\\\"Field '\\\" + fieldName + \\\"' contains illegal character '/'\\\")\\n }\\n\\n this._fields[fieldName] = attributes || {}\\n}\\n\\n/**\\n * A parameter to tune the amount of field length normalisation that is applied when\\n * calculating relevance scores. A value of 0 will completely disable any normalisation\\n * and a value of 1 will fully normalise field lengths. The default is 0.75. Values of b\\n * will be clamped to the range 0 - 1.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.b = function (number) {\\n if (number < 0) {\\n this._b = 0\\n } else if (number > 1) {\\n this._b = 1\\n } else {\\n this._b = number\\n }\\n}\\n\\n/**\\n * A parameter that controls the speed at which a rise in term frequency results in term\\n * frequency saturation. The default value is 1.2. Setting this to a higher value will give\\n * slower saturation levels, a lower value will result in quicker saturation.\\n *\\n * @param {number} number - The value to set for this tuning parameter.\\n */\\nlunr.Builder.prototype.k1 = function (number) {\\n this._k1 = number\\n}\\n\\n/**\\n * Adds a document to the index.\\n *\\n * Before adding fields to the index the index should have been fully setup, with the document\\n * ref and all fields to index already having been specified.\\n *\\n * The document must have a field name as specified by the ref (by default this is 'id') and\\n * it should have all fields defined for indexing, though null or undefined values will not\\n * cause errors.\\n *\\n * Entire documents can be boosted at build time. Applying a boost to a document indicates that\\n * this document should rank higher in search results than other documents.\\n *\\n * @param {object} doc - The document to add to the index.\\n * @param {object} attributes - Optional attributes associated with this document.\\n * @param {number} [attributes.boost=1] - Boost applied to all terms within this document.\\n */\\nlunr.Builder.prototype.add = function (doc, attributes) {\\n var docRef = doc[this._ref],\\n fields = Object.keys(this._fields)\\n\\n this._documents[docRef] = attributes || {}\\n this.documentCount += 1\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i],\\n extractor = this._fields[fieldName].extractor,\\n field = extractor ? extractor(doc) : doc[fieldName],\\n tokens = this.tokenizer(field, {\\n fields: [fieldName]\\n }),\\n terms = this.pipeline.run(tokens),\\n fieldRef = new lunr.FieldRef (docRef, fieldName),\\n fieldTerms = Object.create(null)\\n\\n this.fieldTermFrequencies[fieldRef] = fieldTerms\\n this.fieldLengths[fieldRef] = 0\\n\\n // store the length of this field for this document\\n this.fieldLengths[fieldRef] += terms.length\\n\\n // calculate term frequencies for this field\\n for (var j = 0; j < terms.length; j++) {\\n var term = terms[j]\\n\\n if (fieldTerms[term] == undefined) {\\n fieldTerms[term] = 0\\n }\\n\\n fieldTerms[term] += 1\\n\\n // add to inverted index\\n // create an initial posting if one doesn't exist\\n if (this.invertedIndex[term] == undefined) {\\n var posting = Object.create(null)\\n posting[\\\"_index\\\"] = this.termIndex\\n this.termIndex += 1\\n\\n for (var k = 0; k < fields.length; k++) {\\n posting[fields[k]] = Object.create(null)\\n }\\n\\n this.invertedIndex[term] = posting\\n }\\n\\n // add an entry for this term/fieldName/docRef to the invertedIndex\\n if (this.invertedIndex[term][fieldName][docRef] == undefined) {\\n this.invertedIndex[term][fieldName][docRef] = Object.create(null)\\n }\\n\\n // store all whitelisted metadata about this token in the\\n // inverted index\\n for (var l = 0; l < this.metadataWhitelist.length; l++) {\\n var metadataKey = this.metadataWhitelist[l],\\n metadata = term.metadata[metadataKey]\\n\\n if (this.invertedIndex[term][fieldName][docRef][metadataKey] == undefined) {\\n this.invertedIndex[term][fieldName][docRef][metadataKey] = []\\n }\\n\\n this.invertedIndex[term][fieldName][docRef][metadataKey].push(metadata)\\n }\\n }\\n\\n }\\n}\\n\\n/**\\n * Calculates the average document length for this index\\n *\\n * @private\\n */\\nlunr.Builder.prototype.calculateAverageFieldLengths = function () {\\n\\n var fieldRefs = Object.keys(this.fieldLengths),\\n numberOfFields = fieldRefs.length,\\n accumulator = {},\\n documentsWithField = {}\\n\\n for (var i = 0; i < numberOfFields; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n field = fieldRef.fieldName\\n\\n documentsWithField[field] || (documentsWithField[field] = 0)\\n documentsWithField[field] += 1\\n\\n accumulator[field] || (accumulator[field] = 0)\\n accumulator[field] += this.fieldLengths[fieldRef]\\n }\\n\\n var fields = Object.keys(this._fields)\\n\\n for (var i = 0; i < fields.length; i++) {\\n var fieldName = fields[i]\\n accumulator[fieldName] = accumulator[fieldName] / documentsWithField[fieldName]\\n }\\n\\n this.averageFieldLength = accumulator\\n}\\n\\n/**\\n * Builds a vector space model of every document using lunr.Vector\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createFieldVectors = function () {\\n var fieldVectors = {},\\n fieldRefs = Object.keys(this.fieldTermFrequencies),\\n fieldRefsLength = fieldRefs.length,\\n termIdfCache = Object.create(null)\\n\\n for (var i = 0; i < fieldRefsLength; i++) {\\n var fieldRef = lunr.FieldRef.fromString(fieldRefs[i]),\\n fieldName = fieldRef.fieldName,\\n fieldLength = this.fieldLengths[fieldRef],\\n fieldVector = new lunr.Vector,\\n termFrequencies = this.fieldTermFrequencies[fieldRef],\\n terms = Object.keys(termFrequencies),\\n termsLength = terms.length\\n\\n\\n var fieldBoost = this._fields[fieldName].boost || 1,\\n docBoost = this._documents[fieldRef.docRef].boost || 1\\n\\n for (var j = 0; j < termsLength; j++) {\\n var term = terms[j],\\n tf = termFrequencies[term],\\n termIndex = this.invertedIndex[term]._index,\\n idf, score, scoreWithPrecision\\n\\n if (termIdfCache[term] === undefined) {\\n idf = lunr.idf(this.invertedIndex[term], this.documentCount)\\n termIdfCache[term] = idf\\n } else {\\n idf = termIdfCache[term]\\n }\\n\\n score = idf * ((this._k1 + 1) * tf) / (this._k1 * (1 - this._b + this._b * (fieldLength / this.averageFieldLength[fieldName])) + tf)\\n score *= fieldBoost\\n score *= docBoost\\n scoreWithPrecision = Math.round(score * 1000) / 1000\\n // Converts 1.23456789 to 1.234.\\n // Reducing the precision so that the vectors take up less\\n // space when serialised. Doing it now so that they behave\\n // the same before and after serialisation. Also, this is\\n // the fastest approach to reducing a number's precision in\\n // JavaScript.\\n\\n fieldVector.insert(termIndex, scoreWithPrecision)\\n }\\n\\n fieldVectors[fieldRef] = fieldVector\\n }\\n\\n this.fieldVectors = fieldVectors\\n}\\n\\n/**\\n * Creates a token set of all tokens in the index using lunr.TokenSet\\n *\\n * @private\\n */\\nlunr.Builder.prototype.createTokenSet = function () {\\n this.tokenSet = lunr.TokenSet.fromArray(\\n Object.keys(this.invertedIndex).sort()\\n )\\n}\\n\\n/**\\n * Builds the index, creating an instance of lunr.Index.\\n *\\n * This completes the indexing process and should only be called\\n * once all documents have been added to the index.\\n *\\n * @returns {lunr.Index}\\n */\\nlunr.Builder.prototype.build = function () {\\n this.calculateAverageFieldLengths()\\n this.createFieldVectors()\\n this.createTokenSet()\\n\\n return new lunr.Index({\\n invertedIndex: this.invertedIndex,\\n fieldVectors: this.fieldVectors,\\n tokenSet: this.tokenSet,\\n fields: Object.keys(this._fields),\\n pipeline: this.searchPipeline\\n })\\n}\\n\\n/**\\n * Applies a plugin to the index builder.\\n *\\n * A plugin is a function that is called with the index builder as its context.\\n * Plugins can be used to customise or extend the behaviour of the index\\n * in some way. A plugin is just a function, that encapsulated the custom\\n * behaviour that should be applied when building the index.\\n *\\n * The plugin function will be called with the index builder as its argument, additional\\n * arguments can also be passed when calling use. The function will be called\\n * with the index builder as its context.\\n *\\n * @param {Function} plugin The plugin to apply.\\n */\\nlunr.Builder.prototype.use = function (fn) {\\n var args = Array.prototype.slice.call(arguments, 1)\\n args.unshift(this)\\n fn.apply(this, args)\\n}\\n/**\\n * Contains and collects metadata about a matching document.\\n * A single instance of lunr.MatchData is returned as part of every\\n * lunr.Index~Result.\\n *\\n * @constructor\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n * @property {object} metadata - A cloned collection of metadata associated with this document.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData = function (term, field, metadata) {\\n var clonedMetadata = Object.create(null),\\n metadataKeys = Object.keys(metadata || {})\\n\\n // Cloning the metadata to prevent the original\\n // being mutated during match data combination.\\n // Metadata is kept in an array within the inverted\\n // index so cloning the data can be done with\\n // Array#slice\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n clonedMetadata[key] = metadata[key].slice()\\n }\\n\\n this.metadata = Object.create(null)\\n\\n if (term !== undefined) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = clonedMetadata\\n }\\n}\\n\\n/**\\n * An instance of lunr.MatchData will be created for every term that matches a\\n * document. However only one instance is required in a lunr.Index~Result. This\\n * method combines metadata from another instance of lunr.MatchData with this\\n * objects metadata.\\n *\\n * @param {lunr.MatchData} otherMatchData - Another instance of match data to merge with this one.\\n * @see {@link lunr.Index~Result}\\n */\\nlunr.MatchData.prototype.combine = function (otherMatchData) {\\n var terms = Object.keys(otherMatchData.metadata)\\n\\n for (var i = 0; i < terms.length; i++) {\\n var term = terms[i],\\n fields = Object.keys(otherMatchData.metadata[term])\\n\\n if (this.metadata[term] == undefined) {\\n this.metadata[term] = Object.create(null)\\n }\\n\\n for (var j = 0; j < fields.length; j++) {\\n var field = fields[j],\\n keys = Object.keys(otherMatchData.metadata[term][field])\\n\\n if (this.metadata[term][field] == undefined) {\\n this.metadata[term][field] = Object.create(null)\\n }\\n\\n for (var k = 0; k < keys.length; k++) {\\n var key = keys[k]\\n\\n if (this.metadata[term][field][key] == undefined) {\\n this.metadata[term][field][key] = otherMatchData.metadata[term][field][key]\\n } else {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(otherMatchData.metadata[term][field][key])\\n }\\n\\n }\\n }\\n }\\n}\\n\\n/**\\n * Add metadata for a term/field pair to this instance of match data.\\n *\\n * @param {string} term - The term this match data is associated with\\n * @param {string} field - The field in which the term was found\\n * @param {object} metadata - The metadata recorded about this term in this field\\n */\\nlunr.MatchData.prototype.add = function (term, field, metadata) {\\n if (!(term in this.metadata)) {\\n this.metadata[term] = Object.create(null)\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n if (!(field in this.metadata[term])) {\\n this.metadata[term][field] = metadata\\n return\\n }\\n\\n var metadataKeys = Object.keys(metadata)\\n\\n for (var i = 0; i < metadataKeys.length; i++) {\\n var key = metadataKeys[i]\\n\\n if (key in this.metadata[term][field]) {\\n this.metadata[term][field][key] = this.metadata[term][field][key].concat(metadata[key])\\n } else {\\n this.metadata[term][field][key] = metadata[key]\\n }\\n }\\n}\\n/**\\n * A lunr.Query provides a programmatic way of defining queries to be performed\\n * against a {@link lunr.Index}.\\n *\\n * Prefer constructing a lunr.Query using the {@link lunr.Index#query} method\\n * so the query object is pre-initialized with the right index fields.\\n *\\n * @constructor\\n * @property {lunr.Query~Clause[]} clauses - An array of query clauses.\\n * @property {string[]} allFields - An array of all available fields in a lunr.Index.\\n */\\nlunr.Query = function (allFields) {\\n this.clauses = []\\n this.allFields = allFields\\n}\\n\\n/**\\n * Constants for indicating what kind of automatic wildcard insertion will be used when constructing a query clause.\\n *\\n * This allows wildcards to be added to the beginning and end of a term without having to manually do any string\\n * concatenation.\\n *\\n * The wildcard constants can be bitwise combined to select both leading and trailing wildcards.\\n *\\n * @constant\\n * @default\\n * @property {number} wildcard.NONE - The term will have no wildcards inserted, this is the default behaviour\\n * @property {number} wildcard.LEADING - Prepend the term with a wildcard, unless a leading wildcard already exists\\n * @property {number} wildcard.TRAILING - Append a wildcard to the term, unless a trailing wildcard already exists\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with trailing wildcard\\n * query.term('foo', { wildcard: lunr.Query.wildcard.TRAILING })\\n * @example query term with leading and trailing wildcard\\n * query.term('foo', {\\n * wildcard: lunr.Query.wildcard.LEADING | lunr.Query.wildcard.TRAILING\\n * })\\n */\\n\\nlunr.Query.wildcard = new String (\\\"*\\\")\\nlunr.Query.wildcard.NONE = 0\\nlunr.Query.wildcard.LEADING = 1\\nlunr.Query.wildcard.TRAILING = 2\\n\\n/**\\n * Constants for indicating what kind of presence a term must have in matching documents.\\n *\\n * @constant\\n * @enum {number}\\n * @see lunr.Query~Clause\\n * @see lunr.Query#clause\\n * @see lunr.Query#term\\n * @example query term with required presence\\n * query.term('foo', { presence: lunr.Query.presence.REQUIRED })\\n */\\nlunr.Query.presence = {\\n /**\\n * Term's presence in a document is optional, this is the default value.\\n */\\n OPTIONAL: 1,\\n\\n /**\\n * Term's presence in a document is required, documents that do not contain\\n * this term will not be returned.\\n */\\n REQUIRED: 2,\\n\\n /**\\n * Term's presence in a document is prohibited, documents that do contain\\n * this term will not be returned.\\n */\\n PROHIBITED: 3\\n}\\n\\n/**\\n * A single clause in a {@link lunr.Query} contains a term and details on how to\\n * match that term against a {@link lunr.Index}.\\n *\\n * @typedef {Object} lunr.Query~Clause\\n * @property {string[]} fields - The fields in an index this clause should be matched against.\\n * @property {number} [boost=1] - Any boost that should be applied when matching this clause.\\n * @property {number} [editDistance] - Whether the term should have fuzzy matching applied, and how fuzzy the match should be.\\n * @property {boolean} [usePipeline] - Whether the term should be passed through the search pipeline.\\n * @property {number} [wildcard=lunr.Query.wildcard.NONE] - Whether the term should have wildcards appended or prepended.\\n * @property {number} [presence=lunr.Query.presence.OPTIONAL] - The terms presence in any matching documents.\\n */\\n\\n/**\\n * Adds a {@link lunr.Query~Clause} to this query.\\n *\\n * Unless the clause contains the fields to be matched all fields will be matched. In addition\\n * a default boost of 1 is applied to the clause.\\n *\\n * @param {lunr.Query~Clause} clause - The clause to add to this query.\\n * @see lunr.Query~Clause\\n * @returns {lunr.Query}\\n */\\nlunr.Query.prototype.clause = function (clause) {\\n if (!('fields' in clause)) {\\n clause.fields = this.allFields\\n }\\n\\n if (!('boost' in clause)) {\\n clause.boost = 1\\n }\\n\\n if (!('usePipeline' in clause)) {\\n clause.usePipeline = true\\n }\\n\\n if (!('wildcard' in clause)) {\\n clause.wildcard = lunr.Query.wildcard.NONE\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.LEADING) && (clause.term.charAt(0) != lunr.Query.wildcard)) {\\n clause.term = \\\"*\\\" + clause.term\\n }\\n\\n if ((clause.wildcard & lunr.Query.wildcard.TRAILING) && (clause.term.slice(-1) != lunr.Query.wildcard)) {\\n clause.term = \\\"\\\" + clause.term + \\\"*\\\"\\n }\\n\\n if (!('presence' in clause)) {\\n clause.presence = lunr.Query.presence.OPTIONAL\\n }\\n\\n this.clauses.push(clause)\\n\\n return this\\n}\\n\\n/**\\n * A negated query is one in which every clause has a presence of\\n * prohibited. These queries require some special processing to return\\n * the expected results.\\n *\\n * @returns boolean\\n */\\nlunr.Query.prototype.isNegated = function () {\\n for (var i = 0; i < this.clauses.length; i++) {\\n if (this.clauses[i].presence != lunr.Query.presence.PROHIBITED) {\\n return false\\n }\\n }\\n\\n return true\\n}\\n\\n/**\\n * Adds a term to the current query, under the covers this will create a {@link lunr.Query~Clause}\\n * to the list of clauses that make up this query.\\n *\\n * The term is used as is, i.e. no tokenization will be performed by this method. Instead conversion\\n * to a token or token-like string should be done before calling this method.\\n *\\n * The term will be converted to a string by calling `toString`. Multiple terms can be passed as an\\n * array, each term in the array will share the same options.\\n *\\n * @param {object|object[]} term - The term(s) to add to the query.\\n * @param {object} [options] - Any additional properties to add to the query clause.\\n * @returns {lunr.Query}\\n * @see lunr.Query#clause\\n * @see lunr.Query~Clause\\n * @example adding a single term to a query\\n * query.term(\\\"foo\\\")\\n * @example adding a single term to a query and specifying search fields, term boost and automatic trailing wildcard\\n * query.term(\\\"foo\\\", {\\n * fields: [\\\"title\\\"],\\n * boost: 10,\\n * wildcard: lunr.Query.wildcard.TRAILING\\n * })\\n * @example using lunr.tokenizer to convert a string to tokens before using them as terms\\n * query.term(lunr.tokenizer(\\\"foo bar\\\"))\\n */\\nlunr.Query.prototype.term = function (term, options) {\\n if (Array.isArray(term)) {\\n term.forEach(function (t) { this.term(t, lunr.utils.clone(options)) }, this)\\n return this\\n }\\n\\n var clause = options || {}\\n clause.term = term.toString()\\n\\n this.clause(clause)\\n\\n return this\\n}\\nlunr.QueryParseError = function (message, start, end) {\\n this.name = \\\"QueryParseError\\\"\\n this.message = message\\n this.start = start\\n this.end = end\\n}\\n\\nlunr.QueryParseError.prototype = new Error\\nlunr.QueryLexer = function (str) {\\n this.lexemes = []\\n this.str = str\\n this.length = str.length\\n this.pos = 0\\n this.start = 0\\n this.escapeCharPositions = []\\n}\\n\\nlunr.QueryLexer.prototype.run = function () {\\n var state = lunr.QueryLexer.lexText\\n\\n while (state) {\\n state = state(this)\\n }\\n}\\n\\nlunr.QueryLexer.prototype.sliceString = function () {\\n var subSlices = [],\\n sliceStart = this.start,\\n sliceEnd = this.pos\\n\\n for (var i = 0; i < this.escapeCharPositions.length; i++) {\\n sliceEnd = this.escapeCharPositions[i]\\n subSlices.push(this.str.slice(sliceStart, sliceEnd))\\n sliceStart = sliceEnd + 1\\n }\\n\\n subSlices.push(this.str.slice(sliceStart, this.pos))\\n this.escapeCharPositions.length = 0\\n\\n return subSlices.join('')\\n}\\n\\nlunr.QueryLexer.prototype.emit = function (type) {\\n this.lexemes.push({\\n type: type,\\n str: this.sliceString(),\\n start: this.start,\\n end: this.pos\\n })\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.escapeCharacter = function () {\\n this.escapeCharPositions.push(this.pos - 1)\\n this.pos += 1\\n}\\n\\nlunr.QueryLexer.prototype.next = function () {\\n if (this.pos >= this.length) {\\n return lunr.QueryLexer.EOS\\n }\\n\\n var char = this.str.charAt(this.pos)\\n this.pos += 1\\n return char\\n}\\n\\nlunr.QueryLexer.prototype.width = function () {\\n return this.pos - this.start\\n}\\n\\nlunr.QueryLexer.prototype.ignore = function () {\\n if (this.start == this.pos) {\\n this.pos += 1\\n }\\n\\n this.start = this.pos\\n}\\n\\nlunr.QueryLexer.prototype.backup = function () {\\n this.pos -= 1\\n}\\n\\nlunr.QueryLexer.prototype.acceptDigitRun = function () {\\n var char, charCode\\n\\n do {\\n char = this.next()\\n charCode = char.charCodeAt(0)\\n } while (charCode > 47 && charCode < 58)\\n\\n if (char != lunr.QueryLexer.EOS) {\\n this.backup()\\n }\\n}\\n\\nlunr.QueryLexer.prototype.more = function () {\\n return this.pos < this.length\\n}\\n\\nlunr.QueryLexer.EOS = 'EOS'\\nlunr.QueryLexer.FIELD = 'FIELD'\\nlunr.QueryLexer.TERM = 'TERM'\\nlunr.QueryLexer.EDIT_DISTANCE = 'EDIT_DISTANCE'\\nlunr.QueryLexer.BOOST = 'BOOST'\\nlunr.QueryLexer.PRESENCE = 'PRESENCE'\\n\\nlunr.QueryLexer.lexField = function (lexer) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.FIELD)\\n lexer.ignore()\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexTerm = function (lexer) {\\n if (lexer.width() > 1) {\\n lexer.backup()\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n\\n lexer.ignore()\\n\\n if (lexer.more()) {\\n return lunr.QueryLexer.lexText\\n }\\n}\\n\\nlunr.QueryLexer.lexEditDistance = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.EDIT_DISTANCE)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexBoost = function (lexer) {\\n lexer.ignore()\\n lexer.acceptDigitRun()\\n lexer.emit(lunr.QueryLexer.BOOST)\\n return lunr.QueryLexer.lexText\\n}\\n\\nlunr.QueryLexer.lexEOS = function (lexer) {\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n}\\n\\n// This matches the separator used when tokenising fields\\n// within a document. These should match otherwise it is\\n// not possible to search for some tokens within a document.\\n//\\n// It is possible for the user to change the separator on the\\n// tokenizer so it _might_ clash with any other of the special\\n// characters already used within the search string, e.g. :.\\n//\\n// This means that it is possible to change the separator in\\n// such a way that makes some words unsearchable using a search\\n// string.\\nlunr.QueryLexer.termSeparator = lunr.tokenizer.separator\\n\\nlunr.QueryLexer.lexText = function (lexer) {\\n while (true) {\\n var char = lexer.next()\\n\\n if (char == lunr.QueryLexer.EOS) {\\n return lunr.QueryLexer.lexEOS\\n }\\n\\n // Escape character is '\\\\'\\n if (char.charCodeAt(0) == 92) {\\n lexer.escapeCharacter()\\n continue\\n }\\n\\n if (char == \\\":\\\") {\\n return lunr.QueryLexer.lexField\\n }\\n\\n if (char == \\\"~\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexEditDistance\\n }\\n\\n if (char == \\\"^\\\") {\\n lexer.backup()\\n if (lexer.width() > 0) {\\n lexer.emit(lunr.QueryLexer.TERM)\\n }\\n return lunr.QueryLexer.lexBoost\\n }\\n\\n // \\\"+\\\" indicates term presence is required\\n // checking for length to ensure that only\\n // leading \\\"+\\\" are considered\\n if (char == \\\"+\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n // \\\"-\\\" indicates term presence is prohibited\\n // checking for length to ensure that only\\n // leading \\\"-\\\" are considered\\n if (char == \\\"-\\\" && lexer.width() === 1) {\\n lexer.emit(lunr.QueryLexer.PRESENCE)\\n return lunr.QueryLexer.lexText\\n }\\n\\n if (char.match(lunr.QueryLexer.termSeparator)) {\\n return lunr.QueryLexer.lexTerm\\n }\\n }\\n}\\n\\nlunr.QueryParser = function (str, query) {\\n this.lexer = new lunr.QueryLexer (str)\\n this.query = query\\n this.currentClause = {}\\n this.lexemeIdx = 0\\n}\\n\\nlunr.QueryParser.prototype.parse = function () {\\n this.lexer.run()\\n this.lexemes = this.lexer.lexemes\\n\\n var state = lunr.QueryParser.parseClause\\n\\n while (state) {\\n state = state(this)\\n }\\n\\n return this.query\\n}\\n\\nlunr.QueryParser.prototype.peekLexeme = function () {\\n return this.lexemes[this.lexemeIdx]\\n}\\n\\nlunr.QueryParser.prototype.consumeLexeme = function () {\\n var lexeme = this.peekLexeme()\\n this.lexemeIdx += 1\\n return lexeme\\n}\\n\\nlunr.QueryParser.prototype.nextClause = function () {\\n var completedClause = this.currentClause\\n this.query.clause(completedClause)\\n this.currentClause = {}\\n}\\n\\nlunr.QueryParser.parseClause = function (parser) {\\n var lexeme = parser.peekLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.type) {\\n case lunr.QueryLexer.PRESENCE:\\n return lunr.QueryParser.parsePresence\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expected either a field or a term, found \\\" + lexeme.type\\n\\n if (lexeme.str.length >= 1) {\\n errorMessage += \\\" with value '\\\" + lexeme.str + \\\"'\\\"\\n }\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parsePresence = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n switch (lexeme.str) {\\n case \\\"-\\\":\\n parser.currentClause.presence = lunr.Query.presence.PROHIBITED\\n break\\n case \\\"+\\\":\\n parser.currentClause.presence = lunr.Query.presence.REQUIRED\\n break\\n default:\\n var errorMessage = \\\"unrecognised presence operator'\\\" + lexeme.str + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term or field, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.FIELD:\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term or field, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseField = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n if (parser.query.allFields.indexOf(lexeme.str) == -1) {\\n var possibleFields = parser.query.allFields.map(function (f) { return \\\"'\\\" + f + \\\"'\\\" }).join(', '),\\n errorMessage = \\\"unrecognised field '\\\" + lexeme.str + \\\"', possible fields: \\\" + possibleFields\\n\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.fields = [lexeme.str]\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n var errorMessage = \\\"expecting term, found nothing\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n return lunr.QueryParser.parseTerm\\n default:\\n var errorMessage = \\\"expecting term, found '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseTerm = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n parser.currentClause.term = lexeme.str.toLowerCase()\\n\\n if (lexeme.str.indexOf(\\\"*\\\") != -1) {\\n parser.currentClause.usePipeline = false\\n }\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseEditDistance = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var editDistance = parseInt(lexeme.str, 10)\\n\\n if (isNaN(editDistance)) {\\n var errorMessage = \\\"edit distance must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.editDistance = editDistance\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\nlunr.QueryParser.parseBoost = function (parser) {\\n var lexeme = parser.consumeLexeme()\\n\\n if (lexeme == undefined) {\\n return\\n }\\n\\n var boost = parseInt(lexeme.str, 10)\\n\\n if (isNaN(boost)) {\\n var errorMessage = \\\"boost must be numeric\\\"\\n throw new lunr.QueryParseError (errorMessage, lexeme.start, lexeme.end)\\n }\\n\\n parser.currentClause.boost = boost\\n\\n var nextLexeme = parser.peekLexeme()\\n\\n if (nextLexeme == undefined) {\\n parser.nextClause()\\n return\\n }\\n\\n switch (nextLexeme.type) {\\n case lunr.QueryLexer.TERM:\\n parser.nextClause()\\n return lunr.QueryParser.parseTerm\\n case lunr.QueryLexer.FIELD:\\n parser.nextClause()\\n return lunr.QueryParser.parseField\\n case lunr.QueryLexer.EDIT_DISTANCE:\\n return lunr.QueryParser.parseEditDistance\\n case lunr.QueryLexer.BOOST:\\n return lunr.QueryParser.parseBoost\\n case lunr.QueryLexer.PRESENCE:\\n parser.nextClause()\\n return lunr.QueryParser.parsePresence\\n default:\\n var errorMessage = \\\"Unexpected lexeme type '\\\" + nextLexeme.type + \\\"'\\\"\\n throw new lunr.QueryParseError (errorMessage, nextLexeme.start, nextLexeme.end)\\n }\\n}\\n\\n /**\\n * export the module via AMD, CommonJS or as a browser global\\n * Export code from https://github.com/umdjs/umd/blob/master/returnExports.js\\n */\\n ;(function (root, factory) {\\n if (true) {\\n // AMD. Register as an anonymous module.\\n !(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?\\n\\t\\t\\t\\t(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_FACTORY__),\\n\\t\\t\\t\\t__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__))\\n } else {}\\n }(this, function () {\\n /**\\n * Just return a value to define the module export.\\n * This example returns an object, but the module\\n * can return a function as the exported value.\\n */\\n return lunr\\n }))\\n})();\\n\\n\\n/***/ }),\\n/* 5 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return !!exec();\\n } catch (error) {\\n return true;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 6 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar createPropertyDescriptor = __webpack_require__(22);\\n\\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\\n} : function (object, key, value) {\\n object[key] = value;\\n return object;\\n};\\n\\n\\n/***/ }),\\n/* 7 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n return typeof it === 'object' ? it !== null : typeof it === 'function';\\n};\\n\\n\\n/***/ }),\\n/* 8 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !fails(function () {\\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\\n});\\n\\n\\n/***/ }),\\n/* 9 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\nvar anObject = __webpack_require__(2);\\nvar toPrimitive = __webpack_require__(35);\\n\\nvar nativeDefineProperty = Object.defineProperty;\\n\\n// `Object.defineProperty` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\\n anObject(O);\\n P = toPrimitive(P, true);\\n anObject(Attributes);\\n if (IE8_DOM_DEFINE) try {\\n return nativeDefineProperty(O, P, Attributes);\\n } catch (error) { /* empty */ }\\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\\n if ('value' in Attributes) O[P] = Attributes.value;\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 10 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar setGlobal = __webpack_require__(20);\\nvar inspectSource = __webpack_require__(23);\\nvar InternalStateModule = __webpack_require__(16);\\n\\nvar getInternalState = InternalStateModule.get;\\nvar enforceInternalState = InternalStateModule.enforce;\\nvar TEMPLATE = String(String).split('String');\\n\\n(module.exports = function (O, key, value, options) {\\n var unsafe = options ? !!options.unsafe : false;\\n var simple = options ? !!options.enumerable : false;\\n var noTargetGet = options ? !!options.noTargetGet : false;\\n if (typeof value == 'function') {\\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\\n }\\n if (O === global) {\\n if (simple) O[key] = value;\\n else setGlobal(key, value);\\n return;\\n } else if (!unsafe) {\\n delete O[key];\\n } else if (!noTargetGet && O[key]) {\\n simple = true;\\n }\\n if (simple) O[key] = value;\\n else createNonEnumerableProperty(O, key, value);\\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\\n})(Function.prototype, 'toString', function toString() {\\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\\n});\\n\\n\\n/***/ }),\\n/* 11 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar path = __webpack_require__(40);\\nvar global = __webpack_require__(0);\\n\\nvar aFunction = function (variable) {\\n return typeof variable == 'function' ? variable : undefined;\\n};\\n\\nmodule.exports = function (namespace, method) {\\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\\n};\\n\\n\\n/***/ }),\\n/* 12 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = false;\\n\\n\\n/***/ }),\\n/* 13 */\\n/***/ (function(module, exports) {\\n\\nvar toString = {}.toString;\\n\\nmodule.exports = function (it) {\\n return toString.call(it).slice(8, -1);\\n};\\n\\n\\n/***/ }),\\n/* 14 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 15 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it) {\\n if (typeof it != 'function') {\\n throw TypeError(String(it) + ' is not a function');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 16 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_WEAK_MAP = __webpack_require__(61);\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar objectHas = __webpack_require__(3);\\nvar sharedKey = __webpack_require__(24);\\nvar hiddenKeys = __webpack_require__(25);\\n\\nvar WeakMap = global.WeakMap;\\nvar set, get, has;\\n\\nvar enforce = function (it) {\\n return has(it) ? get(it) : set(it, {});\\n};\\n\\nvar getterFor = function (TYPE) {\\n return function (it) {\\n var state;\\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\\n } return state;\\n };\\n};\\n\\nif (NATIVE_WEAK_MAP) {\\n var store = new WeakMap();\\n var wmget = store.get;\\n var wmhas = store.has;\\n var wmset = store.set;\\n set = function (it, metadata) {\\n wmset.call(store, it, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return wmget.call(store, it) || {};\\n };\\n has = function (it) {\\n return wmhas.call(store, it);\\n };\\n} else {\\n var STATE = sharedKey('state');\\n hiddenKeys[STATE] = true;\\n set = function (it, metadata) {\\n createNonEnumerableProperty(it, STATE, metadata);\\n return metadata;\\n };\\n get = function (it) {\\n return objectHas(it, STATE) ? it[STATE] : {};\\n };\\n has = function (it) {\\n return objectHas(it, STATE);\\n };\\n}\\n\\nmodule.exports = {\\n set: set,\\n get: get,\\n has: has,\\n enforce: enforce,\\n getterFor: getterFor\\n};\\n\\n\\n/***/ }),\\n/* 17 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar setGlobal = __webpack_require__(20);\\nvar copyConstructorProperties = __webpack_require__(67);\\nvar isForced = __webpack_require__(43);\\n\\n/*\\n options.target - name of the target object\\n options.global - target is the global object\\n options.stat - export as static methods of target\\n options.proto - export as prototype methods of target\\n options.real - real prototype method for the `pure` version\\n options.forced - export even if the native feature is available\\n options.bind - bind methods to the target, required for the `pure` version\\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\\n options.sham - add a flag to not completely full polyfills\\n options.enumerable - export as enumerable property\\n options.noTargetGet - prevent calling a getter on target\\n*/\\nmodule.exports = function (options, source) {\\n var TARGET = options.target;\\n var GLOBAL = options.global;\\n var STATIC = options.stat;\\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\\n if (GLOBAL) {\\n target = global;\\n } else if (STATIC) {\\n target = global[TARGET] || setGlobal(TARGET, {});\\n } else {\\n target = (global[TARGET] || {}).prototype;\\n }\\n if (target) for (key in source) {\\n sourceProperty = source[key];\\n if (options.noTargetGet) {\\n descriptor = getOwnPropertyDescriptor(target, key);\\n targetProperty = descriptor && descriptor.value;\\n } else targetProperty = target[key];\\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\\n // contained in target\\n if (!FORCED && targetProperty !== undefined) {\\n if (typeof sourceProperty === typeof targetProperty) continue;\\n copyConstructorProperties(sourceProperty, targetProperty);\\n }\\n // add a flag to not completely full polyfills\\n if (options.sham || (targetProperty && targetProperty.sham)) {\\n createNonEnumerableProperty(sourceProperty, 'sham', true);\\n }\\n // extend global\\n redefine(target, key, sourceProperty, options);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 18 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n// toObject with fallback for non-array-like ES3 strings\\nvar IndexedObject = __webpack_require__(66);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\nmodule.exports = function (it) {\\n return IndexedObject(requireObjectCoercible(it));\\n};\\n\\n\\n/***/ }),\\n/* 19 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar test = {};\\n\\ntest[TO_STRING_TAG] = 'z';\\n\\nmodule.exports = String(test) === '[object z]';\\n\\n\\n/***/ }),\\n/* 20 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\n\\nmodule.exports = function (key, value) {\\n try {\\n createNonEnumerableProperty(global, key, value);\\n } catch (error) {\\n global[key] = value;\\n } return value;\\n};\\n\\n\\n/***/ }),\\n/* 21 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar isObject = __webpack_require__(7);\\n\\nvar document = global.document;\\n// typeof document.createElement is 'object' in old IE\\nvar EXISTS = isObject(document) && isObject(document.createElement);\\n\\nmodule.exports = function (it) {\\n return EXISTS ? document.createElement(it) : {};\\n};\\n\\n\\n/***/ }),\\n/* 22 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (bitmap, value) {\\n return {\\n enumerable: !(bitmap & 1),\\n configurable: !(bitmap & 2),\\n writable: !(bitmap & 4),\\n value: value\\n };\\n};\\n\\n\\n/***/ }),\\n/* 23 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar store = __webpack_require__(33);\\n\\nvar functionToString = Function.toString;\\n\\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\\nif (typeof store.inspectSource != 'function') {\\n store.inspectSource = function (it) {\\n return functionToString.call(it);\\n };\\n}\\n\\nmodule.exports = store.inspectSource;\\n\\n\\n/***/ }),\\n/* 24 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar shared = __webpack_require__(32);\\nvar uid = __webpack_require__(36);\\n\\nvar keys = shared('keys');\\n\\nmodule.exports = function (key) {\\n return keys[key] || (keys[key] = uid(key));\\n};\\n\\n\\n/***/ }),\\n/* 25 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = {};\\n\\n\\n/***/ }),\\n/* 26 */\\n/***/ (function(module, exports) {\\n\\nvar ceil = Math.ceil;\\nvar floor = Math.floor;\\n\\n// `ToInteger` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tointeger\\nmodule.exports = function (argument) {\\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\\n};\\n\\n\\n/***/ }),\\n/* 27 */\\n/***/ (function(module, exports) {\\n\\n// `RequireObjectCoercible` abstract operation\\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\\nmodule.exports = function (it) {\\n if (it == undefined) throw TypeError(\\\"Can't call method on \\\" + it);\\n return it;\\n};\\n\\n\\n/***/ }),\\n/* 28 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar propertyIsEnumerableModule = __webpack_require__(65);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar toIndexedObject = __webpack_require__(18);\\nvar toPrimitive = __webpack_require__(35);\\nvar has = __webpack_require__(3);\\nvar IE8_DOM_DEFINE = __webpack_require__(34);\\n\\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// `Object.getOwnPropertyDescriptor` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\\n O = toIndexedObject(O);\\n P = toPrimitive(P, true);\\n if (IE8_DOM_DEFINE) try {\\n return nativeGetOwnPropertyDescriptor(O, P);\\n } catch (error) { /* empty */ }\\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\\n};\\n\\n\\n/***/ }),\\n/* 29 */\\n/***/ (function(module, exports) {\\n\\n// IE8- don't enum bug keys\\nmodule.exports = [\\n 'constructor',\\n 'hasOwnProperty',\\n 'isPrototypeOf',\\n 'propertyIsEnumerable',\\n 'toLocaleString',\\n 'toString',\\n 'valueOf'\\n];\\n\\n\\n/***/ }),\\n/* 30 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar defineProperty = __webpack_require__(9).f;\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n\\nmodule.exports = function (it, TAG, STATIC) {\\n if (it && !has(it = STATIC ? it : it.prototype, TO_STRING_TAG)) {\\n defineProperty(it, TO_STRING_TAG, { configurable: true, value: TAG });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 31 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar aFunction = __webpack_require__(15);\\n\\nvar PromiseCapability = function (C) {\\n var resolve, reject;\\n this.promise = new C(function ($$resolve, $$reject) {\\n if (resolve !== undefined || reject !== undefined) throw TypeError('Bad Promise constructor');\\n resolve = $$resolve;\\n reject = $$reject;\\n });\\n this.resolve = aFunction(resolve);\\n this.reject = aFunction(reject);\\n};\\n\\n// 25.4.1.5 NewPromiseCapability(C)\\nmodule.exports.f = function (C) {\\n return new PromiseCapability(C);\\n};\\n\\n\\n/***/ }),\\n/* 32 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar IS_PURE = __webpack_require__(12);\\nvar store = __webpack_require__(33);\\n\\n(module.exports = function (key, value) {\\n return store[key] || (store[key] = value !== undefined ? value : {});\\n})('versions', []).push({\\n version: '3.6.4',\\n mode: IS_PURE ? 'pure' : 'global',\\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\\n});\\n\\n\\n/***/ }),\\n/* 33 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar setGlobal = __webpack_require__(20);\\n\\nvar SHARED = '__core-js_shared__';\\nvar store = global[SHARED] || setGlobal(SHARED, {});\\n\\nmodule.exports = store;\\n\\n\\n/***/ }),\\n/* 34 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar fails = __webpack_require__(5);\\nvar createElement = __webpack_require__(21);\\n\\n// Thank's IE8 for his funny defineProperty\\nmodule.exports = !DESCRIPTORS && !fails(function () {\\n return Object.defineProperty(createElement('div'), 'a', {\\n get: function () { return 7; }\\n }).a != 7;\\n});\\n\\n\\n/***/ }),\\n/* 35 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\n// `ToPrimitive` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toprimitive\\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\\n// and the second argument - flag - preferred type is a string\\nmodule.exports = function (input, PREFERRED_STRING) {\\n if (!isObject(input)) return input;\\n var fn, val;\\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\\n throw TypeError(\\\"Can't convert object to primitive value\\\");\\n};\\n\\n\\n/***/ }),\\n/* 36 */\\n/***/ (function(module, exports) {\\n\\nvar id = 0;\\nvar postfix = Math.random();\\n\\nmodule.exports = function (key) {\\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\\n};\\n\\n\\n/***/ }),\\n/* 37 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\\n // Chrome 38 Symbol has incorrect toString conversion\\n // eslint-disable-next-line no-undef\\n return !String(Symbol());\\n});\\n\\n\\n/***/ }),\\n/* 38 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classofRaw = __webpack_require__(13);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\n// ES3 wrong here\\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\\n\\n// fallback for IE11 Script Access Denied error\\nvar tryGet = function (it, key) {\\n try {\\n return it[key];\\n } catch (error) { /* empty */ }\\n};\\n\\n// getting tag from ES6+ `Object.prototype.toString`\\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\\n var O, tag, result;\\n return it === undefined ? 'Undefined' : it === null ? 'Null'\\n // @@toStringTag case\\n : typeof (tag = tryGet(O = Object(it), TO_STRING_TAG)) == 'string' ? tag\\n // builtinTag case\\n : CORRECT_ARGUMENTS ? classofRaw(O)\\n // ES3 arguments fallback\\n : (result = classofRaw(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : result;\\n};\\n\\n\\n/***/ }),\\n/* 39 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar createIteratorConstructor = __webpack_require__(73);\\nvar getPrototypeOf = __webpack_require__(45);\\nvar setPrototypeOf = __webpack_require__(78);\\nvar setToStringTag = __webpack_require__(30);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar redefine = __webpack_require__(10);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\nvar Iterators = __webpack_require__(14);\\nvar IteratorsCore = __webpack_require__(44);\\n\\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar KEYS = 'keys';\\nvar VALUES = 'values';\\nvar ENTRIES = 'entries';\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\\n createIteratorConstructor(IteratorConstructor, NAME, next);\\n\\n var getIterationMethod = function (KIND) {\\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\\n switch (KIND) {\\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\\n } return function () { return new IteratorConstructor(this); };\\n };\\n\\n var TO_STRING_TAG = NAME + ' Iterator';\\n var INCORRECT_VALUES_NAME = false;\\n var IterablePrototype = Iterable.prototype;\\n var nativeIterator = IterablePrototype[ITERATOR]\\n || IterablePrototype['@@iterator']\\n || DEFAULT && IterablePrototype[DEFAULT];\\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\\n var CurrentIteratorPrototype, methods, KEY;\\n\\n // fix native\\n if (anyNativeIterator) {\\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\\n if (IteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\\n if (setPrototypeOf) {\\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\\n } else if (typeof CurrentIteratorPrototype[ITERATOR] != 'function') {\\n createNonEnumerableProperty(CurrentIteratorPrototype, ITERATOR, returnThis);\\n }\\n }\\n // Set @@toStringTag to native iterators\\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\\n }\\n }\\n\\n // fix Array#{values, @@iterator}.name in V8 / FF\\n if (DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\\n INCORRECT_VALUES_NAME = true;\\n defaultIterator = function values() { return nativeIterator.call(this); };\\n }\\n\\n // define iterator\\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\\n createNonEnumerableProperty(IterablePrototype, ITERATOR, defaultIterator);\\n }\\n Iterators[NAME] = defaultIterator;\\n\\n // export additional methods\\n if (DEFAULT) {\\n methods = {\\n values: getIterationMethod(VALUES),\\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\\n entries: getIterationMethod(ENTRIES)\\n };\\n if (FORCED) for (KEY in methods) {\\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\\n redefine(IterablePrototype, KEY, methods[KEY]);\\n }\\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\\n }\\n\\n return methods;\\n};\\n\\n\\n/***/ }),\\n/* 40 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global;\\n\\n\\n/***/ }),\\n/* 41 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toIndexedObject = __webpack_require__(18);\\nvar indexOf = __webpack_require__(70).indexOf;\\nvar hiddenKeys = __webpack_require__(25);\\n\\nmodule.exports = function (object, names) {\\n var O = toIndexedObject(object);\\n var i = 0;\\n var result = [];\\n var key;\\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\\n // Don't enum bug & hidden keys\\n while (names.length > i) if (has(O, key = names[i++])) {\\n ~indexOf(result, key) || result.push(key);\\n }\\n return result;\\n};\\n\\n\\n/***/ }),\\n/* 42 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar min = Math.min;\\n\\n// `ToLength` abstract operation\\n// https://tc39.github.io/ecma262/#sec-tolength\\nmodule.exports = function (argument) {\\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\\n};\\n\\n\\n/***/ }),\\n/* 43 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nvar replacement = /#|\\\\.prototype\\\\./;\\n\\nvar isForced = function (feature, detection) {\\n var value = data[normalize(feature)];\\n return value == POLYFILL ? true\\n : value == NATIVE ? false\\n : typeof detection == 'function' ? fails(detection)\\n : !!detection;\\n};\\n\\nvar normalize = isForced.normalize = function (string) {\\n return String(string).replace(replacement, '.').toLowerCase();\\n};\\n\\nvar data = isForced.data = {};\\nvar NATIVE = isForced.NATIVE = 'N';\\nvar POLYFILL = isForced.POLYFILL = 'P';\\n\\nmodule.exports = isForced;\\n\\n\\n/***/ }),\\n/* 44 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getPrototypeOf = __webpack_require__(45);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar has = __webpack_require__(3);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar IS_PURE = __webpack_require__(12);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar BUGGY_SAFARI_ITERATORS = false;\\n\\nvar returnThis = function () { return this; };\\n\\n// `%IteratorPrototype%` object\\n// https://tc39.github.io/ecma262/#sec-%iteratorprototype%-object\\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\\n\\nif ([].keys) {\\n arrayIterator = [].keys();\\n // Safari 8 has buggy iterators w/o `next`\\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\\n else {\\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\\n }\\n}\\n\\nif (IteratorPrototype == undefined) IteratorPrototype = {};\\n\\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\\nif (!IS_PURE && !has(IteratorPrototype, ITERATOR)) {\\n createNonEnumerableProperty(IteratorPrototype, ITERATOR, returnThis);\\n}\\n\\nmodule.exports = {\\n IteratorPrototype: IteratorPrototype,\\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\\n};\\n\\n\\n/***/ }),\\n/* 45 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar toObject = __webpack_require__(74);\\nvar sharedKey = __webpack_require__(24);\\nvar CORRECT_PROTOTYPE_GETTER = __webpack_require__(75);\\n\\nvar IE_PROTO = sharedKey('IE_PROTO');\\nvar ObjectPrototype = Object.prototype;\\n\\n// `Object.getPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.getprototypeof\\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? Object.getPrototypeOf : function (O) {\\n O = toObject(O);\\n if (has(O, IE_PROTO)) return O[IE_PROTO];\\n if (typeof O.constructor == 'function' && O instanceof O.constructor) {\\n return O.constructor.prototype;\\n } return O instanceof Object ? ObjectPrototype : null;\\n};\\n\\n\\n/***/ }),\\n/* 46 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar defineProperties = __webpack_require__(76);\\nvar enumBugKeys = __webpack_require__(29);\\nvar hiddenKeys = __webpack_require__(25);\\nvar html = __webpack_require__(47);\\nvar documentCreateElement = __webpack_require__(21);\\nvar sharedKey = __webpack_require__(24);\\n\\nvar GT = '>';\\nvar LT = '<';\\nvar PROTOTYPE = 'prototype';\\nvar SCRIPT = 'script';\\nvar IE_PROTO = sharedKey('IE_PROTO');\\n\\nvar EmptyConstructor = function () { /* empty */ };\\n\\nvar scriptTag = function (content) {\\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\\n};\\n\\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\\n activeXDocument.write(scriptTag(''));\\n activeXDocument.close();\\n var temp = activeXDocument.parentWindow.Object;\\n activeXDocument = null; // avoid memory leak\\n return temp;\\n};\\n\\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\\nvar NullProtoObjectViaIFrame = function () {\\n // Thrash, waste and sodomy: IE GC bug\\n var iframe = documentCreateElement('iframe');\\n var JS = 'java' + SCRIPT + ':';\\n var iframeDocument;\\n iframe.style.display = 'none';\\n html.appendChild(iframe);\\n // https://github.com/zloirock/core-js/issues/475\\n iframe.src = String(JS);\\n iframeDocument = iframe.contentWindow.document;\\n iframeDocument.open();\\n iframeDocument.write(scriptTag('document.F=Object'));\\n iframeDocument.close();\\n return iframeDocument.F;\\n};\\n\\n// Check for document.domain and active x support\\n// No need to use active x approach when document.domain is not set\\n// see https://github.com/es-shims/es5-shim/issues/150\\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\\n// avoid IE GC bug\\nvar activeXDocument;\\nvar NullProtoObject = function () {\\n try {\\n /* global ActiveXObject */\\n activeXDocument = document.domain && new ActiveXObject('htmlfile');\\n } catch (error) { /* ignore */ }\\n NullProtoObject = activeXDocument ? NullProtoObjectViaActiveX(activeXDocument) : NullProtoObjectViaIFrame();\\n var length = enumBugKeys.length;\\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\\n return NullProtoObject();\\n};\\n\\nhiddenKeys[IE_PROTO] = true;\\n\\n// `Object.create` method\\n// https://tc39.github.io/ecma262/#sec-object.create\\nmodule.exports = Object.create || function create(O, Properties) {\\n var result;\\n if (O !== null) {\\n EmptyConstructor[PROTOTYPE] = anObject(O);\\n result = new EmptyConstructor();\\n EmptyConstructor[PROTOTYPE] = null;\\n // add \\\"__proto__\\\" for Object.getPrototypeOf polyfill\\n result[IE_PROTO] = O;\\n } else result = NullProtoObject();\\n return Properties === undefined ? result : defineProperties(result, Properties);\\n};\\n\\n\\n/***/ }),\\n/* 47 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('document', 'documentElement');\\n\\n\\n/***/ }),\\n/* 48 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = global.Promise;\\n\\n\\n/***/ }),\\n/* 49 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isArrayIteratorMethod = __webpack_require__(88);\\nvar toLength = __webpack_require__(42);\\nvar bind = __webpack_require__(50);\\nvar getIteratorMethod = __webpack_require__(89);\\nvar callWithSafeIterationClosing = __webpack_require__(90);\\n\\nvar Result = function (stopped, result) {\\n this.stopped = stopped;\\n this.result = result;\\n};\\n\\nvar iterate = module.exports = function (iterable, fn, that, AS_ENTRIES, IS_ITERATOR) {\\n var boundFunction = bind(fn, that, AS_ENTRIES ? 2 : 1);\\n var iterator, iterFn, index, length, result, next, step;\\n\\n if (IS_ITERATOR) {\\n iterator = iterable;\\n } else {\\n iterFn = getIteratorMethod(iterable);\\n if (typeof iterFn != 'function') throw TypeError('Target is not iterable');\\n // optimisation for array iterators\\n if (isArrayIteratorMethod(iterFn)) {\\n for (index = 0, length = toLength(iterable.length); length > index; index++) {\\n result = AS_ENTRIES\\n ? boundFunction(anObject(step = iterable[index])[0], step[1])\\n : boundFunction(iterable[index]);\\n if (result && result instanceof Result) return result;\\n } return new Result(false);\\n }\\n iterator = iterFn.call(iterable);\\n }\\n\\n next = iterator.next;\\n while (!(step = next.call(iterator)).done) {\\n result = callWithSafeIterationClosing(iterator, boundFunction, step.value, AS_ENTRIES);\\n if (typeof result == 'object' && result && result instanceof Result) return result;\\n } return new Result(false);\\n};\\n\\niterate.stop = function (result) {\\n return new Result(true, result);\\n};\\n\\n\\n/***/ }),\\n/* 50 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar aFunction = __webpack_require__(15);\\n\\n// optional / simple context binding\\nmodule.exports = function (fn, that, length) {\\n aFunction(fn);\\n if (that === undefined) return fn;\\n switch (length) {\\n case 0: return function () {\\n return fn.call(that);\\n };\\n case 1: return function (a) {\\n return fn.call(that, a);\\n };\\n case 2: return function (a, b) {\\n return fn.call(that, a, b);\\n };\\n case 3: return function (a, b, c) {\\n return fn.call(that, a, b, c);\\n };\\n }\\n return function (/* ...args */) {\\n return fn.apply(that, arguments);\\n };\\n};\\n\\n\\n/***/ }),\\n/* 51 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aFunction = __webpack_require__(15);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\n// `SpeciesConstructor` abstract operation\\n// https://tc39.github.io/ecma262/#sec-speciesconstructor\\nmodule.exports = function (O, defaultConstructor) {\\n var C = anObject(O).constructor;\\n var S;\\n return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? defaultConstructor : aFunction(S);\\n};\\n\\n\\n/***/ }),\\n/* 52 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\nvar bind = __webpack_require__(50);\\nvar html = __webpack_require__(47);\\nvar createElement = __webpack_require__(21);\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar location = global.location;\\nvar set = global.setImmediate;\\nvar clear = global.clearImmediate;\\nvar process = global.process;\\nvar MessageChannel = global.MessageChannel;\\nvar Dispatch = global.Dispatch;\\nvar counter = 0;\\nvar queue = {};\\nvar ONREADYSTATECHANGE = 'onreadystatechange';\\nvar defer, channel, port;\\n\\nvar run = function (id) {\\n // eslint-disable-next-line no-prototype-builtins\\n if (queue.hasOwnProperty(id)) {\\n var fn = queue[id];\\n delete queue[id];\\n fn();\\n }\\n};\\n\\nvar runner = function (id) {\\n return function () {\\n run(id);\\n };\\n};\\n\\nvar listener = function (event) {\\n run(event.data);\\n};\\n\\nvar post = function (id) {\\n // old engines have not location.origin\\n global.postMessage(id + '', location.protocol + '//' + location.host);\\n};\\n\\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\\nif (!set || !clear) {\\n set = function setImmediate(fn) {\\n var args = [];\\n var i = 1;\\n while (arguments.length > i) args.push(arguments[i++]);\\n queue[++counter] = function () {\\n // eslint-disable-next-line no-new-func\\n (typeof fn == 'function' ? fn : Function(fn)).apply(undefined, args);\\n };\\n defer(counter);\\n return counter;\\n };\\n clear = function clearImmediate(id) {\\n delete queue[id];\\n };\\n // Node.js 0.8-\\n if (classof(process) == 'process') {\\n defer = function (id) {\\n process.nextTick(runner(id));\\n };\\n // Sphere (JS game engine) Dispatch API\\n } else if (Dispatch && Dispatch.now) {\\n defer = function (id) {\\n Dispatch.now(runner(id));\\n };\\n // Browsers with MessageChannel, includes WebWorkers\\n // except iOS - https://github.com/zloirock/core-js/issues/624\\n } else if (MessageChannel && !IS_IOS) {\\n channel = new MessageChannel();\\n port = channel.port2;\\n channel.port1.onmessage = listener;\\n defer = bind(port.postMessage, port, 1);\\n // Browsers with postMessage, skip WebWorkers\\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\\n } else if (global.addEventListener && typeof postMessage == 'function' && !global.importScripts && !fails(post)) {\\n defer = post;\\n global.addEventListener('message', listener, false);\\n // IE8-\\n } else if (ONREADYSTATECHANGE in createElement('script')) {\\n defer = function (id) {\\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\\n html.removeChild(this);\\n run(id);\\n };\\n };\\n // Rest old browsers\\n } else {\\n defer = function (id) {\\n setTimeout(runner(id), 0);\\n };\\n }\\n}\\n\\nmodule.exports = {\\n set: set,\\n clear: clear\\n};\\n\\n\\n/***/ }),\\n/* 53 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar userAgent = __webpack_require__(54);\\n\\nmodule.exports = /(iphone|ipod|ipad).*applewebkit/i.test(userAgent);\\n\\n\\n/***/ }),\\n/* 54 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\n\\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\\n\\n\\n/***/ }),\\n/* 55 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar isObject = __webpack_require__(7);\\nvar newPromiseCapability = __webpack_require__(31);\\n\\nmodule.exports = function (C, x) {\\n anObject(C);\\n if (isObject(x) && x.constructor === C) return x;\\n var promiseCapability = newPromiseCapability.f(C);\\n var resolve = promiseCapability.resolve;\\n resolve(x);\\n return promiseCapability.promise;\\n};\\n\\n\\n/***/ }),\\n/* 56 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (exec) {\\n try {\\n return { error: false, value: exec() };\\n } catch (error) {\\n return { error: true, value: error };\\n }\\n};\\n\\n\\n/***/ }),\\n/* 57 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n__webpack_require__(58);\\n__webpack_require__(63);\\n__webpack_require__(80);\\n__webpack_require__(84);\\n__webpack_require__(95);\\n__webpack_require__(96);\\nvar path = __webpack_require__(40);\\n\\nmodule.exports = path.Promise;\\n\\n\\n/***/ }),\\n/* 58 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar redefine = __webpack_require__(10);\\nvar toString = __webpack_require__(62);\\n\\n// `Object.prototype.toString` method\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nif (!TO_STRING_TAG_SUPPORT) {\\n redefine(Object.prototype, 'toString', toString, { unsafe: true });\\n}\\n\\n\\n/***/ }),\\n/* 59 */\\n/***/ (function(module, exports) {\\n\\nvar g;\\n\\n// This works in non-strict mode\\ng = (function() {\\n\\treturn this;\\n})();\\n\\ntry {\\n\\t// This works if eval is allowed (see CSP)\\n\\tg = g || new Function(\\\"return this\\\")();\\n} catch (e) {\\n\\t// This works if the window reference is available\\n\\tif (typeof window === \\\"object\\\") g = window;\\n}\\n\\n// g can still be undefined, but nothing to do about it...\\n// We return undefined, instead of nothing here, so it's\\n// easier to handle this case. if(!global) { ...}\\n\\nmodule.exports = g;\\n\\n\\n/***/ }),\\n/* 60 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar NATIVE_SYMBOL = __webpack_require__(37);\\n\\nmodule.exports = NATIVE_SYMBOL\\n // eslint-disable-next-line no-undef\\n && !Symbol.sham\\n // eslint-disable-next-line no-undef\\n && typeof Symbol.iterator == 'symbol';\\n\\n\\n/***/ }),\\n/* 61 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar inspectSource = __webpack_require__(23);\\n\\nvar WeakMap = global.WeakMap;\\n\\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\\n\\n\\n/***/ }),\\n/* 62 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar TO_STRING_TAG_SUPPORT = __webpack_require__(19);\\nvar classof = __webpack_require__(38);\\n\\n// `Object.prototype.toString` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.tostring\\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\\n return '[object ' + classof(this) + ']';\\n};\\n\\n\\n/***/ }),\\n/* 63 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar charAt = __webpack_require__(64).charAt;\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar STRING_ITERATOR = 'String Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\\n\\n// `String.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-string.prototype-@@iterator\\ndefineIterator(String, 'String', function (iterated) {\\n setInternalState(this, {\\n type: STRING_ITERATOR,\\n string: String(iterated),\\n index: 0\\n });\\n// `%StringIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%stringiteratorprototype%.next\\n}, function next() {\\n var state = getInternalState(this);\\n var string = state.string;\\n var index = state.index;\\n var point;\\n if (index >= string.length) return { value: undefined, done: true };\\n point = charAt(string, index);\\n state.index += point.length;\\n return { value: point, done: false };\\n});\\n\\n\\n/***/ }),\\n/* 64 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `String.prototype.{ codePointAt, at }` methods implementation\\nvar createMethod = function (CONVERT_TO_STRING) {\\n return function ($this, pos) {\\n var S = String(requireObjectCoercible($this));\\n var position = toInteger(pos);\\n var size = S.length;\\n var first, second;\\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\\n first = S.charCodeAt(position);\\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\\n ? CONVERT_TO_STRING ? S.charAt(position) : first\\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\\n };\\n};\\n\\nmodule.exports = {\\n // `String.prototype.codePointAt` method\\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\\n codeAt: createMethod(false),\\n // `String.prototype.at` method\\n // https://github.com/mathiasbynens/String.prototype.at\\n charAt: createMethod(true)\\n};\\n\\n\\n/***/ }),\\n/* 65 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\\n\\n// Nashorn ~ JDK8 bug\\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\\n\\n// `Object.prototype.propertyIsEnumerable` method implementation\\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\\n var descriptor = getOwnPropertyDescriptor(this, V);\\n return !!descriptor && descriptor.enumerable;\\n} : nativePropertyIsEnumerable;\\n\\n\\n/***/ }),\\n/* 66 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\nvar classof = __webpack_require__(13);\\n\\nvar split = ''.split;\\n\\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\\nmodule.exports = fails(function () {\\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\\n // eslint-disable-next-line no-prototype-builtins\\n return !Object('z').propertyIsEnumerable(0);\\n}) ? function (it) {\\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\\n} : Object;\\n\\n\\n/***/ }),\\n/* 67 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar has = __webpack_require__(3);\\nvar ownKeys = __webpack_require__(68);\\nvar getOwnPropertyDescriptorModule = __webpack_require__(28);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nmodule.exports = function (target, source) {\\n var keys = ownKeys(source);\\n var defineProperty = definePropertyModule.f;\\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\\n for (var i = 0; i < keys.length; i++) {\\n var key = keys[i];\\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\\n }\\n};\\n\\n\\n/***/ }),\\n/* 68 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar getOwnPropertyNamesModule = __webpack_require__(69);\\nvar getOwnPropertySymbolsModule = __webpack_require__(72);\\nvar anObject = __webpack_require__(2);\\n\\n// all object keys, includes non-enumerable and symbols\\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\\n var keys = getOwnPropertyNamesModule.f(anObject(it));\\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\\n};\\n\\n\\n/***/ }),\\n/* 69 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\\n\\n// `Object.getOwnPropertyNames` method\\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\\n return internalObjectKeys(O, hiddenKeys);\\n};\\n\\n\\n/***/ }),\\n/* 70 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar toLength = __webpack_require__(42);\\nvar toAbsoluteIndex = __webpack_require__(71);\\n\\n// `Array.prototype.{ indexOf, includes }` methods implementation\\nvar createMethod = function (IS_INCLUDES) {\\n return function ($this, el, fromIndex) {\\n var O = toIndexedObject($this);\\n var length = toLength(O.length);\\n var index = toAbsoluteIndex(fromIndex, length);\\n var value;\\n // Array#includes uses SameValueZero equality algorithm\\n // eslint-disable-next-line no-self-compare\\n if (IS_INCLUDES && el != el) while (length > index) {\\n value = O[index++];\\n // eslint-disable-next-line no-self-compare\\n if (value != value) return true;\\n // Array#indexOf ignores holes, Array#includes - not\\n } else for (;length > index; index++) {\\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\\n } return !IS_INCLUDES && -1;\\n };\\n};\\n\\nmodule.exports = {\\n // `Array.prototype.includes` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\\n includes: createMethod(true),\\n // `Array.prototype.indexOf` method\\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\\n indexOf: createMethod(false)\\n};\\n\\n\\n/***/ }),\\n/* 71 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar toInteger = __webpack_require__(26);\\n\\nvar max = Math.max;\\nvar min = Math.min;\\n\\n// Helper for a popular repeating case of the spec:\\n// Let integer be ? ToInteger(index).\\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\\nmodule.exports = function (index, length) {\\n var integer = toInteger(index);\\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\\n};\\n\\n\\n/***/ }),\\n/* 72 */\\n/***/ (function(module, exports) {\\n\\nexports.f = Object.getOwnPropertySymbols;\\n\\n\\n/***/ }),\\n/* 73 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar IteratorPrototype = __webpack_require__(44).IteratorPrototype;\\nvar create = __webpack_require__(46);\\nvar createPropertyDescriptor = __webpack_require__(22);\\nvar setToStringTag = __webpack_require__(30);\\nvar Iterators = __webpack_require__(14);\\n\\nvar returnThis = function () { return this; };\\n\\nmodule.exports = function (IteratorConstructor, NAME, next) {\\n var TO_STRING_TAG = NAME + ' Iterator';\\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(1, next) });\\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\\n Iterators[TO_STRING_TAG] = returnThis;\\n return IteratorConstructor;\\n};\\n\\n\\n/***/ }),\\n/* 74 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar requireObjectCoercible = __webpack_require__(27);\\n\\n// `ToObject` abstract operation\\n// https://tc39.github.io/ecma262/#sec-toobject\\nmodule.exports = function (argument) {\\n return Object(requireObjectCoercible(argument));\\n};\\n\\n\\n/***/ }),\\n/* 75 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar fails = __webpack_require__(5);\\n\\nmodule.exports = !fails(function () {\\n function F() { /* empty */ }\\n F.prototype.constructor = null;\\n return Object.getPrototypeOf(new F()) !== F.prototype;\\n});\\n\\n\\n/***/ }),\\n/* 76 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar DESCRIPTORS = __webpack_require__(8);\\nvar definePropertyModule = __webpack_require__(9);\\nvar anObject = __webpack_require__(2);\\nvar objectKeys = __webpack_require__(77);\\n\\n// `Object.defineProperties` method\\n// https://tc39.github.io/ecma262/#sec-object.defineproperties\\nmodule.exports = DESCRIPTORS ? Object.defineProperties : function defineProperties(O, Properties) {\\n anObject(O);\\n var keys = objectKeys(Properties);\\n var length = keys.length;\\n var index = 0;\\n var key;\\n while (length > index) definePropertyModule.f(O, key = keys[index++], Properties[key]);\\n return O;\\n};\\n\\n\\n/***/ }),\\n/* 77 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar internalObjectKeys = __webpack_require__(41);\\nvar enumBugKeys = __webpack_require__(29);\\n\\n// `Object.keys` method\\n// https://tc39.github.io/ecma262/#sec-object.keys\\nmodule.exports = Object.keys || function keys(O) {\\n return internalObjectKeys(O, enumBugKeys);\\n};\\n\\n\\n/***/ }),\\n/* 78 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\nvar aPossiblePrototype = __webpack_require__(79);\\n\\n// `Object.setPrototypeOf` method\\n// https://tc39.github.io/ecma262/#sec-object.setprototypeof\\n// Works with __proto__ only. Old v8 can't work with null proto objects.\\n/* eslint-disable no-proto */\\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\\n var CORRECT_SETTER = false;\\n var test = {};\\n var setter;\\n try {\\n setter = Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set;\\n setter.call(test, []);\\n CORRECT_SETTER = test instanceof Array;\\n } catch (error) { /* empty */ }\\n return function setPrototypeOf(O, proto) {\\n anObject(O);\\n aPossiblePrototype(proto);\\n if (CORRECT_SETTER) setter.call(O, proto);\\n else O.__proto__ = proto;\\n return O;\\n };\\n}() : undefined);\\n\\n\\n/***/ }),\\n/* 79 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar isObject = __webpack_require__(7);\\n\\nmodule.exports = function (it) {\\n if (!isObject(it) && it !== null) {\\n throw TypeError(\\\"Can't set \\\" + String(it) + ' as a prototype');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 80 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar DOMIterables = __webpack_require__(81);\\nvar ArrayIteratorMethods = __webpack_require__(82);\\nvar createNonEnumerableProperty = __webpack_require__(6);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\\nvar ArrayValues = ArrayIteratorMethods.values;\\n\\nfor (var COLLECTION_NAME in DOMIterables) {\\n var Collection = global[COLLECTION_NAME];\\n var CollectionPrototype = Collection && Collection.prototype;\\n if (CollectionPrototype) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\\n } catch (error) {\\n CollectionPrototype[ITERATOR] = ArrayValues;\\n }\\n if (!CollectionPrototype[TO_STRING_TAG]) {\\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\\n }\\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\\n // some Chrome versions have non-configurable methods on DOMTokenList\\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\\n } catch (error) {\\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\\n }\\n }\\n }\\n}\\n\\n\\n/***/ }),\\n/* 81 */\\n/***/ (function(module, exports) {\\n\\n// iterable DOM collections\\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\\nmodule.exports = {\\n CSSRuleList: 0,\\n CSSStyleDeclaration: 0,\\n CSSValueList: 0,\\n ClientRectList: 0,\\n DOMRectList: 0,\\n DOMStringList: 0,\\n DOMTokenList: 1,\\n DataTransferItemList: 0,\\n FileList: 0,\\n HTMLAllCollection: 0,\\n HTMLCollection: 0,\\n HTMLFormElement: 0,\\n HTMLSelectElement: 0,\\n MediaList: 0,\\n MimeTypeArray: 0,\\n NamedNodeMap: 0,\\n NodeList: 1,\\n PaintRequestList: 0,\\n Plugin: 0,\\n PluginArray: 0,\\n SVGLengthList: 0,\\n SVGNumberList: 0,\\n SVGPathSegList: 0,\\n SVGPointList: 0,\\n SVGStringList: 0,\\n SVGTransformList: 0,\\n SourceBufferList: 0,\\n StyleSheetList: 0,\\n TextTrackCueList: 0,\\n TextTrackList: 0,\\n TouchList: 0\\n};\\n\\n\\n/***/ }),\\n/* 82 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar toIndexedObject = __webpack_require__(18);\\nvar addToUnscopables = __webpack_require__(83);\\nvar Iterators = __webpack_require__(14);\\nvar InternalStateModule = __webpack_require__(16);\\nvar defineIterator = __webpack_require__(39);\\n\\nvar ARRAY_ITERATOR = 'Array Iterator';\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\\n\\n// `Array.prototype.entries` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.entries\\n// `Array.prototype.keys` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.keys\\n// `Array.prototype.values` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype.values\\n// `Array.prototype[@@iterator]` method\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@iterator\\n// `CreateArrayIterator` internal method\\n// https://tc39.github.io/ecma262/#sec-createarrayiterator\\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\\n setInternalState(this, {\\n type: ARRAY_ITERATOR,\\n target: toIndexedObject(iterated), // target\\n index: 0, // next index\\n kind: kind // kind\\n });\\n// `%ArrayIteratorPrototype%.next` method\\n// https://tc39.github.io/ecma262/#sec-%arrayiteratorprototype%.next\\n}, function () {\\n var state = getInternalState(this);\\n var target = state.target;\\n var kind = state.kind;\\n var index = state.index++;\\n if (!target || index >= target.length) {\\n state.target = undefined;\\n return { value: undefined, done: true };\\n }\\n if (kind == 'keys') return { value: index, done: false };\\n if (kind == 'values') return { value: target[index], done: false };\\n return { value: [index, target[index]], done: false };\\n}, 'values');\\n\\n// argumentsList[@@iterator] is %ArrayProto_values%\\n// https://tc39.github.io/ecma262/#sec-createunmappedargumentsobject\\n// https://tc39.github.io/ecma262/#sec-createmappedargumentsobject\\nIterators.Arguments = Iterators.Array;\\n\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\naddToUnscopables('keys');\\naddToUnscopables('values');\\naddToUnscopables('entries');\\n\\n\\n/***/ }),\\n/* 83 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar create = __webpack_require__(46);\\nvar definePropertyModule = __webpack_require__(9);\\n\\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\\nvar ArrayPrototype = Array.prototype;\\n\\n// Array.prototype[@@unscopables]\\n// https://tc39.github.io/ecma262/#sec-array.prototype-@@unscopables\\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\\n definePropertyModule.f(ArrayPrototype, UNSCOPABLES, {\\n configurable: true,\\n value: create(null)\\n });\\n}\\n\\n// add a key to Array.prototype[@@unscopables]\\nmodule.exports = function (key) {\\n ArrayPrototype[UNSCOPABLES][key] = true;\\n};\\n\\n\\n/***/ }),\\n/* 84 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar global = __webpack_require__(0);\\nvar getBuiltIn = __webpack_require__(11);\\nvar NativePromise = __webpack_require__(48);\\nvar redefine = __webpack_require__(10);\\nvar redefineAll = __webpack_require__(85);\\nvar setToStringTag = __webpack_require__(30);\\nvar setSpecies = __webpack_require__(86);\\nvar isObject = __webpack_require__(7);\\nvar aFunction = __webpack_require__(15);\\nvar anInstance = __webpack_require__(87);\\nvar classof = __webpack_require__(13);\\nvar inspectSource = __webpack_require__(23);\\nvar iterate = __webpack_require__(49);\\nvar checkCorrectnessOfIteration = __webpack_require__(91);\\nvar speciesConstructor = __webpack_require__(51);\\nvar task = __webpack_require__(52).set;\\nvar microtask = __webpack_require__(92);\\nvar promiseResolve = __webpack_require__(55);\\nvar hostReportErrors = __webpack_require__(93);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar InternalStateModule = __webpack_require__(16);\\nvar isForced = __webpack_require__(43);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar V8_VERSION = __webpack_require__(94);\\n\\nvar SPECIES = wellKnownSymbol('species');\\nvar PROMISE = 'Promise';\\nvar getInternalState = InternalStateModule.get;\\nvar setInternalState = InternalStateModule.set;\\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\\nvar PromiseConstructor = NativePromise;\\nvar TypeError = global.TypeError;\\nvar document = global.document;\\nvar process = global.process;\\nvar $fetch = getBuiltIn('fetch');\\nvar newPromiseCapability = newPromiseCapabilityModule.f;\\nvar newGenericPromiseCapability = newPromiseCapability;\\nvar IS_NODE = classof(process) == 'process';\\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\\nvar UNHANDLED_REJECTION = 'unhandledrejection';\\nvar REJECTION_HANDLED = 'rejectionhandled';\\nvar PENDING = 0;\\nvar FULFILLED = 1;\\nvar REJECTED = 2;\\nvar HANDLED = 1;\\nvar UNHANDLED = 2;\\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\\n\\nvar FORCED = isForced(PROMISE, function () {\\n var GLOBAL_CORE_JS_PROMISE = inspectSource(PromiseConstructor) !== String(PromiseConstructor);\\n if (!GLOBAL_CORE_JS_PROMISE) {\\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\\n // We can't detect it synchronously, so just check versions\\n if (V8_VERSION === 66) return true;\\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\\n if (!IS_NODE && typeof PromiseRejectionEvent != 'function') return true;\\n }\\n // We need Promise#finally in the pure version for preventing prototype pollution\\n if (IS_PURE && !PromiseConstructor.prototype['finally']) return true;\\n // We can't use @@species feature detection in V8 since it causes\\n // deoptimization and performance degradation\\n // https://github.com/zloirock/core-js/issues/679\\n if (V8_VERSION >= 51 && /native code/.test(PromiseConstructor)) return false;\\n // Detect correctness of subclassing with @@species support\\n var promise = PromiseConstructor.resolve(1);\\n var FakePromise = function (exec) {\\n exec(function () { /* empty */ }, function () { /* empty */ });\\n };\\n var constructor = promise.constructor = {};\\n constructor[SPECIES] = FakePromise;\\n return !(promise.then(function () { /* empty */ }) instanceof FakePromise);\\n});\\n\\nvar INCORRECT_ITERATION = FORCED || !checkCorrectnessOfIteration(function (iterable) {\\n PromiseConstructor.all(iterable)['catch'](function () { /* empty */ });\\n});\\n\\n// helpers\\nvar isThenable = function (it) {\\n var then;\\n return isObject(it) && typeof (then = it.then) == 'function' ? then : false;\\n};\\n\\nvar notify = function (promise, state, isReject) {\\n if (state.notified) return;\\n state.notified = true;\\n var chain = state.reactions;\\n microtask(function () {\\n var value = state.value;\\n var ok = state.state == FULFILLED;\\n var index = 0;\\n // variable length - can't use forEach\\n while (chain.length > index) {\\n var reaction = chain[index++];\\n var handler = ok ? reaction.ok : reaction.fail;\\n var resolve = reaction.resolve;\\n var reject = reaction.reject;\\n var domain = reaction.domain;\\n var result, then, exited;\\n try {\\n if (handler) {\\n if (!ok) {\\n if (state.rejection === UNHANDLED) onHandleUnhandled(promise, state);\\n state.rejection = HANDLED;\\n }\\n if (handler === true) result = value;\\n else {\\n if (domain) domain.enter();\\n result = handler(value); // can throw\\n if (domain) {\\n domain.exit();\\n exited = true;\\n }\\n }\\n if (result === reaction.promise) {\\n reject(TypeError('Promise-chain cycle'));\\n } else if (then = isThenable(result)) {\\n then.call(result, resolve, reject);\\n } else resolve(result);\\n } else reject(value);\\n } catch (error) {\\n if (domain && !exited) domain.exit();\\n reject(error);\\n }\\n }\\n state.reactions = [];\\n state.notified = false;\\n if (isReject && !state.rejection) onUnhandled(promise, state);\\n });\\n};\\n\\nvar dispatchEvent = function (name, promise, reason) {\\n var event, handler;\\n if (DISPATCH_EVENT) {\\n event = document.createEvent('Event');\\n event.promise = promise;\\n event.reason = reason;\\n event.initEvent(name, false, true);\\n global.dispatchEvent(event);\\n } else event = { promise: promise, reason: reason };\\n if (handler = global['on' + name]) handler(event);\\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\\n};\\n\\nvar onUnhandled = function (promise, state) {\\n task.call(global, function () {\\n var value = state.value;\\n var IS_UNHANDLED = isUnhandled(state);\\n var result;\\n if (IS_UNHANDLED) {\\n result = perform(function () {\\n if (IS_NODE) {\\n process.emit('unhandledRejection', value, promise);\\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\\n });\\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\\n if (result.error) throw result.value;\\n }\\n });\\n};\\n\\nvar isUnhandled = function (state) {\\n return state.rejection !== HANDLED && !state.parent;\\n};\\n\\nvar onHandleUnhandled = function (promise, state) {\\n task.call(global, function () {\\n if (IS_NODE) {\\n process.emit('rejectionHandled', promise);\\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\\n });\\n};\\n\\nvar bind = function (fn, promise, state, unwrap) {\\n return function (value) {\\n fn(promise, state, value, unwrap);\\n };\\n};\\n\\nvar internalReject = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n state.value = value;\\n state.state = REJECTED;\\n notify(promise, state, true);\\n};\\n\\nvar internalResolve = function (promise, state, value, unwrap) {\\n if (state.done) return;\\n state.done = true;\\n if (unwrap) state = unwrap;\\n try {\\n if (promise === value) throw TypeError(\\\"Promise can't be resolved itself\\\");\\n var then = isThenable(value);\\n if (then) {\\n microtask(function () {\\n var wrapper = { done: false };\\n try {\\n then.call(value,\\n bind(internalResolve, promise, wrapper, state),\\n bind(internalReject, promise, wrapper, state)\\n );\\n } catch (error) {\\n internalReject(promise, wrapper, error, state);\\n }\\n });\\n } else {\\n state.value = value;\\n state.state = FULFILLED;\\n notify(promise, state, false);\\n }\\n } catch (error) {\\n internalReject(promise, { done: false }, error, state);\\n }\\n};\\n\\n// constructor polyfill\\nif (FORCED) {\\n // 25.4.3.1 Promise(executor)\\n PromiseConstructor = function Promise(executor) {\\n anInstance(this, PromiseConstructor, PROMISE);\\n aFunction(executor);\\n Internal.call(this);\\n var state = getInternalState(this);\\n try {\\n executor(bind(internalResolve, this, state), bind(internalReject, this, state));\\n } catch (error) {\\n internalReject(this, state, error);\\n }\\n };\\n // eslint-disable-next-line no-unused-vars\\n Internal = function Promise(executor) {\\n setInternalState(this, {\\n type: PROMISE,\\n done: false,\\n notified: false,\\n parent: false,\\n reactions: [],\\n rejection: false,\\n state: PENDING,\\n value: undefined\\n });\\n };\\n Internal.prototype = redefineAll(PromiseConstructor.prototype, {\\n // `Promise.prototype.then` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.then\\n then: function then(onFulfilled, onRejected) {\\n var state = getInternalPromiseState(this);\\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\\n reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;\\n reaction.fail = typeof onRejected == 'function' && onRejected;\\n reaction.domain = IS_NODE ? process.domain : undefined;\\n state.parent = true;\\n state.reactions.push(reaction);\\n if (state.state != PENDING) notify(this, state, false);\\n return reaction.promise;\\n },\\n // `Promise.prototype.catch` method\\n // https://tc39.github.io/ecma262/#sec-promise.prototype.catch\\n 'catch': function (onRejected) {\\n return this.then(undefined, onRejected);\\n }\\n });\\n OwnPromiseCapability = function () {\\n var promise = new Internal();\\n var state = getInternalState(promise);\\n this.promise = promise;\\n this.resolve = bind(internalResolve, promise, state);\\n this.reject = bind(internalReject, promise, state);\\n };\\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\\n return C === PromiseConstructor || C === PromiseWrapper\\n ? new OwnPromiseCapability(C)\\n : newGenericPromiseCapability(C);\\n };\\n\\n if (!IS_PURE && typeof NativePromise == 'function') {\\n nativeThen = NativePromise.prototype.then;\\n\\n // wrap native Promise#then for native async functions\\n redefine(NativePromise.prototype, 'then', function then(onFulfilled, onRejected) {\\n var that = this;\\n return new PromiseConstructor(function (resolve, reject) {\\n nativeThen.call(that, resolve, reject);\\n }).then(onFulfilled, onRejected);\\n // https://github.com/zloirock/core-js/issues/640\\n }, { unsafe: true });\\n\\n // wrap fetch result\\n if (typeof $fetch == 'function') $({ global: true, enumerable: true, forced: true }, {\\n // eslint-disable-next-line no-unused-vars\\n fetch: function fetch(input /* , init */) {\\n return promiseResolve(PromiseConstructor, $fetch.apply(global, arguments));\\n }\\n });\\n }\\n}\\n\\n$({ global: true, wrap: true, forced: FORCED }, {\\n Promise: PromiseConstructor\\n});\\n\\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\\nsetSpecies(PROMISE);\\n\\nPromiseWrapper = getBuiltIn(PROMISE);\\n\\n// statics\\n$({ target: PROMISE, stat: true, forced: FORCED }, {\\n // `Promise.reject` method\\n // https://tc39.github.io/ecma262/#sec-promise.reject\\n reject: function reject(r) {\\n var capability = newPromiseCapability(this);\\n capability.reject.call(undefined, r);\\n return capability.promise;\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: IS_PURE || FORCED }, {\\n // `Promise.resolve` method\\n // https://tc39.github.io/ecma262/#sec-promise.resolve\\n resolve: function resolve(x) {\\n return promiseResolve(IS_PURE && this === PromiseWrapper ? PromiseConstructor : this, x);\\n }\\n});\\n\\n$({ target: PROMISE, stat: true, forced: INCORRECT_ITERATION }, {\\n // `Promise.all` method\\n // https://tc39.github.io/ecma262/#sec-promise.all\\n all: function all(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n $promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = value;\\n --remaining || resolve(values);\\n }, reject);\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n },\\n // `Promise.race` method\\n // https://tc39.github.io/ecma262/#sec-promise.race\\n race: function race(iterable) {\\n var C = this;\\n var capability = newPromiseCapability(C);\\n var reject = capability.reject;\\n var result = perform(function () {\\n var $promiseResolve = aFunction(C.resolve);\\n iterate(iterable, function (promise) {\\n $promiseResolve.call(C, promise).then(capability.resolve, reject);\\n });\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 85 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar redefine = __webpack_require__(10);\\n\\nmodule.exports = function (target, src, options) {\\n for (var key in src) redefine(target, key, src[key], options);\\n return target;\\n};\\n\\n\\n/***/ }),\\n/* 86 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar getBuiltIn = __webpack_require__(11);\\nvar definePropertyModule = __webpack_require__(9);\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar DESCRIPTORS = __webpack_require__(8);\\n\\nvar SPECIES = wellKnownSymbol('species');\\n\\nmodule.exports = function (CONSTRUCTOR_NAME) {\\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\\n var defineProperty = definePropertyModule.f;\\n\\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\\n defineProperty(Constructor, SPECIES, {\\n configurable: true,\\n get: function () { return this; }\\n });\\n }\\n};\\n\\n\\n/***/ }),\\n/* 87 */\\n/***/ (function(module, exports) {\\n\\nmodule.exports = function (it, Constructor, name) {\\n if (!(it instanceof Constructor)) {\\n throw TypeError('Incorrect ' + (name ? name + ' ' : '') + 'invocation');\\n } return it;\\n};\\n\\n\\n/***/ }),\\n/* 88 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\nvar Iterators = __webpack_require__(14);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar ArrayPrototype = Array.prototype;\\n\\n// check on default Array iterator\\nmodule.exports = function (it) {\\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\\n};\\n\\n\\n/***/ }),\\n/* 89 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar classof = __webpack_require__(38);\\nvar Iterators = __webpack_require__(14);\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\n\\nmodule.exports = function (it) {\\n if (it != undefined) return it[ITERATOR]\\n || it['@@iterator']\\n || Iterators[classof(it)];\\n};\\n\\n\\n/***/ }),\\n/* 90 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar anObject = __webpack_require__(2);\\n\\n// call something on iterator step with safe closing on error\\nmodule.exports = function (iterator, fn, value, ENTRIES) {\\n try {\\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\\n // 7.4.6 IteratorClose(iterator, completion)\\n } catch (error) {\\n var returnMethod = iterator['return'];\\n if (returnMethod !== undefined) anObject(returnMethod.call(iterator));\\n throw error;\\n }\\n};\\n\\n\\n/***/ }),\\n/* 91 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar wellKnownSymbol = __webpack_require__(1);\\n\\nvar ITERATOR = wellKnownSymbol('iterator');\\nvar SAFE_CLOSING = false;\\n\\ntry {\\n var called = 0;\\n var iteratorWithReturn = {\\n next: function () {\\n return { done: !!called++ };\\n },\\n 'return': function () {\\n SAFE_CLOSING = true;\\n }\\n };\\n iteratorWithReturn[ITERATOR] = function () {\\n return this;\\n };\\n // eslint-disable-next-line no-throw-literal\\n Array.from(iteratorWithReturn, function () { throw 2; });\\n} catch (error) { /* empty */ }\\n\\nmodule.exports = function (exec, SKIP_CLOSING) {\\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\\n var ITERATION_SUPPORT = false;\\n try {\\n var object = {};\\n object[ITERATOR] = function () {\\n return {\\n next: function () {\\n return { done: ITERATION_SUPPORT = true };\\n }\\n };\\n };\\n exec(object);\\n } catch (error) { /* empty */ }\\n return ITERATION_SUPPORT;\\n};\\n\\n\\n/***/ }),\\n/* 92 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar getOwnPropertyDescriptor = __webpack_require__(28).f;\\nvar classof = __webpack_require__(13);\\nvar macrotask = __webpack_require__(52).set;\\nvar IS_IOS = __webpack_require__(53);\\n\\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\\nvar process = global.process;\\nvar Promise = global.Promise;\\nvar IS_NODE = classof(process) == 'process';\\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\\n\\nvar flush, head, last, notify, toggle, node, promise, then;\\n\\n// modern engines have queueMicrotask method\\nif (!queueMicrotask) {\\n flush = function () {\\n var parent, fn;\\n if (IS_NODE && (parent = process.domain)) parent.exit();\\n while (head) {\\n fn = head.fn;\\n head = head.next;\\n try {\\n fn();\\n } catch (error) {\\n if (head) notify();\\n else last = undefined;\\n throw error;\\n }\\n } last = undefined;\\n if (parent) parent.enter();\\n };\\n\\n // Node.js\\n if (IS_NODE) {\\n notify = function () {\\n process.nextTick(flush);\\n };\\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\\n } else if (MutationObserver && !IS_IOS) {\\n toggle = true;\\n node = document.createTextNode('');\\n new MutationObserver(flush).observe(node, { characterData: true });\\n notify = function () {\\n node.data = toggle = !toggle;\\n };\\n // environments with maybe non-completely correct, but existent Promise\\n } else if (Promise && Promise.resolve) {\\n // Promise.resolve without an argument throws an error in LG WebOS 2\\n promise = Promise.resolve(undefined);\\n then = promise.then;\\n notify = function () {\\n then.call(promise, flush);\\n };\\n // for other environments - macrotask based on:\\n // - setImmediate\\n // - MessageChannel\\n // - window.postMessag\\n // - onreadystatechange\\n // - setTimeout\\n } else {\\n notify = function () {\\n // strange IE + webpack dev server bug - use .call(global)\\n macrotask.call(global, flush);\\n };\\n }\\n}\\n\\nmodule.exports = queueMicrotask || function (fn) {\\n var task = { fn: fn, next: undefined };\\n if (last) last.next = task;\\n if (!head) {\\n head = task;\\n notify();\\n } last = task;\\n};\\n\\n\\n/***/ }),\\n/* 93 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\n\\nmodule.exports = function (a, b) {\\n var console = global.console;\\n if (console && console.error) {\\n arguments.length === 1 ? console.error(a) : console.error(a, b);\\n }\\n};\\n\\n\\n/***/ }),\\n/* 94 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\nvar global = __webpack_require__(0);\\nvar userAgent = __webpack_require__(54);\\n\\nvar process = global.process;\\nvar versions = process && process.versions;\\nvar v8 = versions && versions.v8;\\nvar match, version;\\n\\nif (v8) {\\n match = v8.split('.');\\n version = match[0] + match[1];\\n} else if (userAgent) {\\n match = userAgent.match(/Edge\\\\/(\\\\d+)/);\\n if (!match || match[1] >= 74) {\\n match = userAgent.match(/Chrome\\\\/(\\\\d+)/);\\n if (match) version = match[1];\\n }\\n}\\n\\nmodule.exports = version && +version;\\n\\n\\n/***/ }),\\n/* 95 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar aFunction = __webpack_require__(15);\\nvar newPromiseCapabilityModule = __webpack_require__(31);\\nvar perform = __webpack_require__(56);\\nvar iterate = __webpack_require__(49);\\n\\n// `Promise.allSettled` method\\n// https://github.com/tc39/proposal-promise-allSettled\\n$({ target: 'Promise', stat: true }, {\\n allSettled: function allSettled(iterable) {\\n var C = this;\\n var capability = newPromiseCapabilityModule.f(C);\\n var resolve = capability.resolve;\\n var reject = capability.reject;\\n var result = perform(function () {\\n var promiseResolve = aFunction(C.resolve);\\n var values = [];\\n var counter = 0;\\n var remaining = 1;\\n iterate(iterable, function (promise) {\\n var index = counter++;\\n var alreadyCalled = false;\\n values.push(undefined);\\n remaining++;\\n promiseResolve.call(C, promise).then(function (value) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'fulfilled', value: value };\\n --remaining || resolve(values);\\n }, function (e) {\\n if (alreadyCalled) return;\\n alreadyCalled = true;\\n values[index] = { status: 'rejected', reason: e };\\n --remaining || resolve(values);\\n });\\n });\\n --remaining || resolve(values);\\n });\\n if (result.error) reject(result.value);\\n return capability.promise;\\n }\\n});\\n\\n\\n/***/ }),\\n/* 96 */\\n/***/ (function(module, exports, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n\\nvar $ = __webpack_require__(17);\\nvar IS_PURE = __webpack_require__(12);\\nvar NativePromise = __webpack_require__(48);\\nvar fails = __webpack_require__(5);\\nvar getBuiltIn = __webpack_require__(11);\\nvar speciesConstructor = __webpack_require__(51);\\nvar promiseResolve = __webpack_require__(55);\\nvar redefine = __webpack_require__(10);\\n\\n// Safari bug https://bugs.webkit.org/show_bug.cgi?id=200829\\nvar NON_GENERIC = !!NativePromise && fails(function () {\\n NativePromise.prototype['finally'].call({ then: function () { /* empty */ } }, function () { /* empty */ });\\n});\\n\\n// `Promise.prototype.finally` method\\n// https://tc39.github.io/ecma262/#sec-promise.prototype.finally\\n$({ target: 'Promise', proto: true, real: true, forced: NON_GENERIC }, {\\n 'finally': function (onFinally) {\\n var C = speciesConstructor(this, getBuiltIn('Promise'));\\n var isFunction = typeof onFinally == 'function';\\n return this.then(\\n isFunction ? function (x) {\\n return promiseResolve(C, onFinally()).then(function () { return x; });\\n } : onFinally,\\n isFunction ? function (e) {\\n return promiseResolve(C, onFinally()).then(function () { throw e; });\\n } : onFinally\\n );\\n }\\n});\\n\\n// patch native Promise.prototype for native async functions\\nif (!IS_PURE && typeof NativePromise == 'function' && !NativePromise.prototype['finally']) {\\n redefine(NativePromise.prototype, 'finally', getBuiltIn('Promise').prototype['finally']);\\n}\\n\\n\\n/***/ }),\\n/* 97 */\\n/***/ (function(module, __webpack_exports__, __webpack_require__) {\\n\\n\\\"use strict\\\";\\n// ESM COMPAT FLAG\\n__webpack_require__.r(__webpack_exports__);\\n\\n// EXPORTS\\n__webpack_require__.d(__webpack_exports__, \\\"add\\\", function() { return /* binding */ add; });\\n__webpack_require__.d(__webpack_exports__, \\\"done\\\", function() { return /* binding */ done; });\\n__webpack_require__.d(__webpack_exports__, \\\"toJS\\\", function() { return /* binding */ toJS; });\\n__webpack_require__.d(__webpack_exports__, \\\"load\\\", function() { return /* binding */ load; });\\n__webpack_require__.d(__webpack_exports__, \\\"search\\\", function() { return /* binding */ search; });\\n\\n// CONCATENATED MODULE: ./node_modules/tslib/tslib.es6.js\\n/*! *****************************************************************************\\r\\nCopyright (c) Microsoft Corporation. All rights reserved.\\r\\nLicensed under the Apache License, Version 2.0 (the \\\"License\\\"); you may not use\\r\\nthis file except in compliance with the License. You may obtain a copy of the\\r\\nLicense at http://www.apache.org/licenses/LICENSE-2.0\\r\\n\\r\\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\\r\\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\\r\\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\\r\\nMERCHANTABLITY OR NON-INFRINGEMENT.\\r\\n\\r\\nSee the Apache Version 2.0 License for specific language governing permissions\\r\\nand limitations under the License.\\r\\n***************************************************************************** */\\r\\n/* global Reflect, Promise */\\r\\n\\r\\nvar extendStatics = function(d, b) {\\r\\n extendStatics = Object.setPrototypeOf ||\\r\\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\\r\\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\\r\\n return extendStatics(d, b);\\r\\n};\\r\\n\\r\\nfunction __extends(d, b) {\\r\\n extendStatics(d, b);\\r\\n function __() { this.constructor = d; }\\r\\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\\r\\n}\\r\\n\\r\\nvar __assign = function() {\\r\\n __assign = Object.assign || function __assign(t) {\\r\\n for (var s, i = 1, n = arguments.length; i < n; i++) {\\r\\n s = arguments[i];\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\\r\\n }\\r\\n return t;\\r\\n }\\r\\n return __assign.apply(this, arguments);\\r\\n}\\r\\n\\r\\nfunction __rest(s, e) {\\r\\n var t = {};\\r\\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\\r\\n t[p] = s[p];\\r\\n if (s != null && typeof Object.getOwnPropertySymbols === \\\"function\\\")\\r\\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\\r\\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\\r\\n t[p[i]] = s[p[i]];\\r\\n }\\r\\n return t;\\r\\n}\\r\\n\\r\\nfunction __decorate(decorators, target, key, desc) {\\r\\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.decorate === \\\"function\\\") r = Reflect.decorate(decorators, target, key, desc);\\r\\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\\r\\n return c > 3 && r && Object.defineProperty(target, key, r), r;\\r\\n}\\r\\n\\r\\nfunction __param(paramIndex, decorator) {\\r\\n return function (target, key) { decorator(target, key, paramIndex); }\\r\\n}\\r\\n\\r\\nfunction __metadata(metadataKey, metadataValue) {\\r\\n if (typeof Reflect === \\\"object\\\" && typeof Reflect.metadata === \\\"function\\\") return Reflect.metadata(metadataKey, metadataValue);\\r\\n}\\r\\n\\r\\nfunction __awaiter(thisArg, _arguments, P, generator) {\\r\\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\\r\\n return new (P || (P = Promise))(function (resolve, reject) {\\r\\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\\r\\n function rejected(value) { try { step(generator[\\\"throw\\\"](value)); } catch (e) { reject(e); } }\\r\\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\\r\\n step((generator = generator.apply(thisArg, _arguments || [])).next());\\r\\n });\\r\\n}\\r\\n\\r\\nfunction __generator(thisArg, body) {\\r\\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\\r\\n return g = { next: verb(0), \\\"throw\\\": verb(1), \\\"return\\\": verb(2) }, typeof Symbol === \\\"function\\\" && (g[Symbol.iterator] = function() { return this; }), g;\\r\\n function verb(n) { return function (v) { return step([n, v]); }; }\\r\\n function step(op) {\\r\\n if (f) throw new TypeError(\\\"Generator is already executing.\\\");\\r\\n while (_) try {\\r\\n if (f = 1, y && (t = op[0] & 2 ? y[\\\"return\\\"] : op[0] ? y[\\\"throw\\\"] || ((t = y[\\\"return\\\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\\r\\n if (y = 0, t) op = [op[0] & 2, t.value];\\r\\n switch (op[0]) {\\r\\n case 0: case 1: t = op; break;\\r\\n case 4: _.label++; return { value: op[1], done: false };\\r\\n case 5: _.label++; y = op[1]; op = [0]; continue;\\r\\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\\r\\n default:\\r\\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\\r\\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\\r\\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\\r\\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\\r\\n if (t[2]) _.ops.pop();\\r\\n _.trys.pop(); continue;\\r\\n }\\r\\n op = body.call(thisArg, _);\\r\\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\\r\\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\\r\\n }\\r\\n}\\r\\n\\r\\nfunction __exportStar(m, exports) {\\r\\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\\r\\n}\\r\\n\\r\\nfunction __values(o) {\\r\\n var s = typeof Symbol === \\\"function\\\" && Symbol.iterator, m = s && o[s], i = 0;\\r\\n if (m) return m.call(o);\\r\\n if (o && typeof o.length === \\\"number\\\") return {\\r\\n next: function () {\\r\\n if (o && i >= o.length) o = void 0;\\r\\n return { value: o && o[i++], done: !o };\\r\\n }\\r\\n };\\r\\n throw new TypeError(s ? \\\"Object is not iterable.\\\" : \\\"Symbol.iterator is not defined.\\\");\\r\\n}\\r\\n\\r\\nfunction __read(o, n) {\\r\\n var m = typeof Symbol === \\\"function\\\" && o[Symbol.iterator];\\r\\n if (!m) return o;\\r\\n var i = m.call(o), r, ar = [], e;\\r\\n try {\\r\\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\\r\\n }\\r\\n catch (error) { e = { error: error }; }\\r\\n finally {\\r\\n try {\\r\\n if (r && !r.done && (m = i[\\\"return\\\"])) m.call(i);\\r\\n }\\r\\n finally { if (e) throw e.error; }\\r\\n }\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spread() {\\r\\n for (var ar = [], i = 0; i < arguments.length; i++)\\r\\n ar = ar.concat(__read(arguments[i]));\\r\\n return ar;\\r\\n}\\r\\n\\r\\nfunction __spreadArrays() {\\r\\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\\r\\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\\r\\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\\r\\n r[k] = a[j];\\r\\n return r;\\r\\n};\\r\\n\\r\\nfunction __await(v) {\\r\\n return this instanceof __await ? (this.v = v, this) : new __await(v);\\r\\n}\\r\\n\\r\\nfunction __asyncGenerator(thisArg, _arguments, generator) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i;\\r\\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\\r\\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\\r\\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\\r\\n function fulfill(value) { resume(\\\"next\\\", value); }\\r\\n function reject(value) { resume(\\\"throw\\\", value); }\\r\\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\\r\\n}\\r\\n\\r\\nfunction __asyncDelegator(o) {\\r\\n var i, p;\\r\\n return i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\", function (e) { throw e; }), verb(\\\"return\\\"), i[Symbol.iterator] = function () { return this; }, i;\\r\\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \\\"return\\\" } : f ? f(v) : v; } : f; }\\r\\n}\\r\\n\\r\\nfunction __asyncValues(o) {\\r\\n if (!Symbol.asyncIterator) throw new TypeError(\\\"Symbol.asyncIterator is not defined.\\\");\\r\\n var m = o[Symbol.asyncIterator], i;\\r\\n return m ? m.call(o) : (o = typeof __values === \\\"function\\\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\\\"next\\\"), verb(\\\"throw\\\"), verb(\\\"return\\\"), i[Symbol.asyncIterator] = function () { return this; }, i);\\r\\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\\r\\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\\r\\n}\\r\\n\\r\\nfunction __makeTemplateObject(cooked, raw) {\\r\\n if (Object.defineProperty) { Object.defineProperty(cooked, \\\"raw\\\", { value: raw }); } else { cooked.raw = raw; }\\r\\n return cooked;\\r\\n};\\r\\n\\r\\nfunction __importStar(mod) {\\r\\n if (mod && mod.__esModule) return mod;\\r\\n var result = {};\\r\\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\\r\\n result.default = mod;\\r\\n return result;\\r\\n}\\r\\n\\r\\nfunction __importDefault(mod) {\\r\\n return (mod && mod.__esModule) ? mod : { default: mod };\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldGet(receiver, privateMap) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to get private field on non-instance\\\");\\r\\n }\\r\\n return privateMap.get(receiver);\\r\\n}\\r\\n\\r\\nfunction __classPrivateFieldSet(receiver, privateMap, value) {\\r\\n if (!privateMap.has(receiver)) {\\r\\n throw new TypeError(\\\"attempted to set private field on non-instance\\\");\\r\\n }\\r\\n privateMap.set(receiver, value);\\r\\n return value;\\r\\n}\\r\\n\\n// EXTERNAL MODULE: ./node_modules/lunr/lunr.js\\nvar lunr = __webpack_require__(4);\\n\\n// CONCATENATED MODULE: ./node_modules/workerize-loader/dist/rpc-worker-loader.js!./node_modules/ts-loader??ref--4-0!./node_modules/babel-loader/lib??ref--4-1!./src/services/SearchWorker.worker.ts\\n\\n\\ntry {\\n // tslint:disable-next-line\\n __webpack_require__(57); // bundle into worker\\n}\\ncatch (_) { } // nope\\n/* just for better typings */\\nvar Worker = /** @class */ (function () {\\n function Worker() {\\n this.add = add;\\n this.done = done;\\n this.search = search;\\n this.toJS = toJS;\\n this.load = load;\\n }\\n return Worker;\\n}());\\n/* harmony default export */ var SearchWorker_worker = __webpack_exports__[\\\"default\\\"] = (Worker);\\nvar store = [];\\nvar resolveIndex = function () {\\n throw new Error('Should not be called');\\n};\\nvar index = new Promise(function (resolve) {\\n resolveIndex = resolve;\\n});\\nlunr[\\\"tokenizer\\\"].separator = /\\\\s+/;\\nvar builder = new lunr[\\\"Builder\\\"]();\\nbuilder.field('title');\\nbuilder.field('description');\\nbuilder.ref('ref');\\nbuilder.pipeline.add(lunr[\\\"trimmer\\\"], lunr[\\\"stopWordFilter\\\"], lunr[\\\"stemmer\\\"]);\\nvar expandTerm = function (term) { return '*' + lunr[\\\"stemmer\\\"](new lunr[\\\"Token\\\"](term, {})) + '*'; };\\nfunction add(title, description, meta) {\\n var ref = store.push(meta) - 1;\\n var item = {\\n title: title.toLowerCase(),\\n description: description.toLowerCase(),\\n ref: ref\\n };\\n builder.add(item);\\n}\\nfunction done() {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n resolveIndex(builder.build());\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction toJS() {\\n return __awaiter(this, void 0, void 0, function () {\\n var _a;\\n return __generator(this, function (_b) {\\n switch (_b.label) {\\n case 0:\\n _a = {\\n store: store\\n };\\n return [4 /*yield*/, index];\\n case 1: return [2 /*return*/, (_a.index = (_b.sent()).toJSON(),\\n _a)];\\n }\\n });\\n });\\n}\\nfunction load(state) {\\n return __awaiter(this, void 0, void 0, function () {\\n return __generator(this, function (_a) {\\n store = state.store;\\n resolveIndex(lunr[\\\"Index\\\"].load(state.index));\\n return [2 /*return*/];\\n });\\n });\\n}\\nfunction search(q, limit) {\\n if (limit === void 0) { limit = 0; }\\n return __awaiter(this, void 0, void 0, function () {\\n var searchResults;\\n return __generator(this, function (_a) {\\n switch (_a.label) {\\n case 0:\\n if (q.trim().length === 0) {\\n return [2 /*return*/, []];\\n }\\n return [4 /*yield*/, index];\\n case 1:\\n searchResults = (_a.sent()).query(function (t) {\\n q.trim().toLowerCase().split(/\\\\s+/).forEach(function (term) {\\n var exp = expandTerm(term);\\n t.term(exp, {});\\n });\\n });\\n if (limit > 0) {\\n searchResults = searchResults.slice(0, limit);\\n }\\n return [2 /*return*/, searchResults.map(function (res) { return ({\\n meta: store[res.ref],\\n score: res.score\\n }); })];\\n }\\n });\\n });\\n}\\n\\naddEventListener('message', function (e) {var ref = e.data;var type = ref.type;var method = ref.method;var id = ref.id;var params = ref.params;var f,p;if (type === 'RPC' && method) {if (f = __webpack_exports__[method]) {p = Promise.resolve().then(function () { return f.apply(__webpack_exports__, params); });} else {p = Promise.reject('No such method');}p.then(function (result) {postMessage({type: 'RPC',id: id,result: result});}).catch(function (e) {var error = {message: e};if (e.stack) {error.message = e.message;error.stack = e.stack;error.name = e.name;}postMessage({type: 'RPC',id: id,error: error});});}});postMessage({type: 'RPC',method: 'ready'});\\n\\n/***/ })\\n/******/ ]);\\n//# sourceMappingURL=fea68db94dba05b54c01.worker.js.map\"])), { name: \"[hash].worker.js\" })\n\t\t\t\t\taddMethods(w, methods)\n\t\t\t\t\t\n\t\t\t\t\treturn w\n\t\t\t\t}\n\t\t\t","export default function addMethods(worker, methods) {\n\tlet c = 0;\n\tlet callbacks = {};\n\tworker.addEventListener('message', (e) => {\n\t\tlet d = e.data;\n\t\tif (d.type!=='RPC') return;\n\t\tif (d.id) {\n\t\t\tlet f = callbacks[d.id];\n\t\t\tif (f) {\n\t\t\t\tdelete callbacks[d.id];\n\t\t\t\tif (d.error) {\n\t\t\t\t\tf[1](Object.assign(Error(d.error.message), d.error));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tf[0](d.result);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tlet evt = document.createEvent('Event');\n\t\t\tevt.initEvent(d.method, false, false);\n\t\t\tevt.data = d.params;\n\t\t\tworker.dispatchEvent(evt);\n\t\t}\n\t});\n\tmethods.forEach( method => {\n\t\tworker[method] = (...params) => new Promise( (a, b) => {\n\t\t\tlet id = ++c;\n\t\t\tcallbacks[id] = [a, b];\n\t\t\tworker.postMessage({ type: 'RPC', id, method, params });\n\t\t});\n\t});\n}\n","module.exports = require(\"core-js/es/promise\");","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\n// eslint-disable-next-line func-names\nmodule.exports = function (useSourceMap) {\n var list = []; // return the list of modules as css string\n\n list.toString = function toString() {\n return this.map(function (item) {\n var content = cssWithMappingToString(item, useSourceMap);\n\n if (item[2]) {\n return \"@media \".concat(item[2], \" {\").concat(content, \"}\");\n }\n\n return content;\n }).join('');\n }; // import a list of modules into the list\n // eslint-disable-next-line func-names\n\n\n list.i = function (modules, mediaQuery, dedupe) {\n if (typeof modules === 'string') {\n // eslint-disable-next-line no-param-reassign\n modules = [[null, modules, '']];\n }\n\n var alreadyImportedModules = {};\n\n if (dedupe) {\n for (var i = 0; i < this.length; i++) {\n // eslint-disable-next-line prefer-destructuring\n var id = this[i][0];\n\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n\n for (var _i = 0; _i < modules.length; _i++) {\n var item = [].concat(modules[_i]);\n\n if (dedupe && alreadyImportedModules[item[0]]) {\n // eslint-disable-next-line no-continue\n continue;\n }\n\n if (mediaQuery) {\n if (!item[2]) {\n item[2] = mediaQuery;\n } else {\n item[2] = \"\".concat(mediaQuery, \" and \").concat(item[2]);\n }\n }\n\n list.push(item);\n }\n };\n\n return list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n var content = item[1] || ''; // eslint-disable-next-line prefer-destructuring\n\n var cssMapping = item[3];\n\n if (!cssMapping) {\n return content;\n }\n\n if (useSourceMap && typeof btoa === 'function') {\n var sourceMapping = toComment(cssMapping);\n var sourceURLs = cssMapping.sources.map(function (source) {\n return \"/*# sourceURL=\".concat(cssMapping.sourceRoot || '').concat(source, \" */\");\n });\n return [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n }\n\n return [content].join('\\n');\n} // Adapted from convert-source-map (MIT)\n\n\nfunction toComment(sourceMap) {\n // eslint-disable-next-line no-undef\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n return \"/*# \".concat(data, \" */\");\n}","module.exports = require(\"stickyfill\");","import { darken, desaturate, lighten, readableColor, transparentize } from 'polished';\nconst defaultTheme: ThemeInterface = {\n spacing: {\n unit: 5,\n sectionHorizontal: ({\n spacing\n }) => spacing.unit * 8,\n sectionVertical: ({\n spacing\n }) => spacing.unit * 8\n },\n breakpoints: {\n small: '50rem',\n medium: '85rem',\n large: '105rem'\n },\n colors: {\n tonalOffset: 0.3,\n primary: {\n main: '#232E72',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.primary.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.primary.main),\n contrastText: ({\n colors\n }) => readableColor(colors.primary.main)\n },\n success: {\n main: '#00aa13',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.success.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.success.main),\n contrastText: ({\n colors\n }) => readableColor(colors.success.main)\n },\n warning: {\n main: '#d4ad03',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.warning.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.warning.main),\n contrastText: '#ffffff'\n },\n error: {\n main: '#e53935',\n light: ({\n colors\n }) => lighten(colors.tonalOffset, colors.error.main),\n dark: ({\n colors\n }) => darken(colors.tonalOffset, colors.error.main),\n contrastText: ({\n colors\n }) => readableColor(colors.error.main)\n },\n text: {\n primary: '#333333',\n secondary: ({\n colors\n }) => lighten(colors.tonalOffset, colors.text.primary)\n },\n border: {\n dark: 'rgba(0,0,0, 0.1)',\n light: '#ffffff'\n },\n responses: {\n success: {\n color: ({\n colors\n }) => colors.success.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.success.main)\n },\n error: {\n color: ({\n colors\n }) => colors.error.main,\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.error.main)\n },\n redirect: {\n color: '#ffa500',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.redirect.color)\n },\n info: {\n color: '#87ceeb',\n backgroundColor: ({\n colors\n }) => transparentize(0.9, colors.responses.info.color)\n }\n },\n http: {\n get: '#078db3',\n post: '#006353',\n put: '#eeb111',\n options: '#7e929f',\n patch: '#8cc53e',\n delete: '#f05822',\n basic: '#999',\n link: '#31bbb6',\n head: '#725ea6'\n }\n },\n schema: {\n linesColor: theme => lighten(theme.colors.tonalOffset, desaturate(theme.colors.tonalOffset, theme.colors.primary.main)),\n defaultDetailsWidth: '75%',\n typeNameColor: theme => theme.colors.text.secondary,\n typeTitleColor: theme => theme.schema.typeNameColor,\n requireLabelColor: theme => theme.colors.error.main,\n labelsTextSize: '0.9em',\n nestingSpacing: '1em',\n nestedBackground: '#fafafa',\n arrow: {\n size: '1.1em',\n color: theme => theme.colors.text.secondary\n }\n },\n typography: {\n fontSize: '14px',\n lineHeight: '1.5em',\n fontWeightRegular: '400',\n fontWeightBold: '600',\n fontWeightLight: '300',\n fontFamily: resolveFontFamily(),\n smoothing: 'antialiased',\n optimizeSpeed: true,\n headings: {\n fontFamily: resolveFontFamily(),\n fontWeight: '400',\n lineHeight: '1.6em'\n },\n code: {\n fontSize: '13px',\n fontFamily: 'Courier, monospace',\n lineHeight: ({\n typography\n }) => typography.lineHeight,\n fontWeight: ({\n typography\n }) => typography.fontWeightRegular,\n color: '#e53935',\n backgroundColor: 'rgba(38, 50, 56, 0.05)',\n wrap: false\n },\n links: {\n color: ({\n colors\n }) => colors.primary.main,\n visited: ({\n typography\n }) => typography.links.color,\n hover: ({\n typography\n }) => lighten(0.2, typography.links.color)\n }\n },\n menu: {\n width: '260px',\n backgroundColor: '#FFFFFF',\n textColor: '#232E72',\n activeTextColor: theme => theme.menu.textColor !== defaultTheme.menu!.textColor ? theme.menu.textColor : theme.colors.primary.main,\n groupItems: {\n textTransform: 'uppercase'\n },\n level1Items: {\n textTransform: 'none'\n },\n arrow: {\n size: '1.5em',\n color: theme => theme.menu.textColor\n }\n },\n logo: {\n maxHeight: ({\n menu\n }) => menu.width,\n maxWidth: ({\n menu\n }) => menu.width,\n gutter: '2px'\n },\n rightPanel: {\n backgroundColor: '#3C3C3C',\n width: '40%',\n textColor: '#ffffff'\n },\n codeSample: {\n backgroundColor: ({\n rightPanel\n }) => darken(0.1, rightPanel.backgroundColor)\n }\n};\n\nfunction resolveFontFamily() {\n return '' + '\"OTSans\", ' + '-apple-system, ' + 'system-ui, ' + 'BlinkMacSystemFont, ' + '\"Segoe UI\", Roboto, ' + '\"Helvetica Neue\", ' + 'Arial, ' + 'sans-serif';\n}\n\nexport default defaultTheme;\nexport function resolveTheme(theme: ThemeInterface): ResolvedThemeInterface {\n const resolvedValues = {};\n let counter = 0;\n\n const setProxy = (obj, path: string) => {\n Object.keys(obj).forEach(k => {\n const currentPath = (path ? path + '.' : '') + k;\n const val = obj[k];\n\n if (typeof val === 'function') {\n Object.defineProperty(obj, k, {\n get() {\n if (!resolvedValues[currentPath]) {\n counter++;\n\n if (counter > 1000) {\n throw new Error(`Theme probably contains circular dependency at ${currentPath}: ${val.toString()}`);\n }\n\n resolvedValues[currentPath] = val(theme);\n }\n\n return resolvedValues[currentPath];\n },\n\n enumerable: true\n });\n } else if (typeof val === 'object') {\n setProxy(val, currentPath);\n }\n });\n };\n\n setProxy(theme, '');\n return JSON.parse(JSON.stringify(theme));\n}\nexport interface ColorSetting {\n main: string;\n light: string;\n dark: string;\n contrastText: string;\n}\nexport interface HTTPResponseColos {\n color: string;\n backgroundColor: string;\n}\nexport interface FontSettings {\n fontSize: string;\n fontWeight: string;\n fontFamily: string;\n lineHeight: string;\n color: string;\n}\nexport interface ResolvedThemeInterface {\n spacing: {\n unit: number;\n sectionHorizontal: number;\n sectionVertical: number;\n };\n breakpoints: {\n small: string;\n medium: string;\n large: string;\n };\n colors: {\n tonalOffset: number;\n primary: ColorSetting;\n success: ColorSetting;\n warning: ColorSetting;\n error: ColorSetting;\n border: {\n light: string;\n dark: string;\n };\n text: {\n primary: string;\n secondary: string;\n };\n responses: {\n success: HTTPResponseColos;\n error: HTTPResponseColos;\n redirect: HTTPResponseColos;\n info: HTTPResponseColos;\n };\n http: {\n get: string;\n post: string;\n put: string;\n options: string;\n patch: string;\n delete: string;\n basic: string;\n link: string;\n head: string;\n };\n };\n schema: {\n linesColor: string;\n defaultDetailsWidth: string;\n typeNameColor: string;\n typeTitleColor: string;\n requireLabelColor: string;\n labelsTextSize: string;\n nestingSpacing: string;\n nestedBackground: string;\n arrow: {\n size: string;\n color: string;\n };\n };\n typography: {\n fontSize: string;\n lineHeight: string;\n fontWeightLight: string;\n fontWeightRegular: string;\n fontWeightBold: string;\n fontFamily: string;\n smoothing: string;\n optimizeSpeed: boolean;\n code: FontSettings & {\n backgroundColor: string;\n wrap: boolean;\n };\n headings: {\n fontFamily: string;\n fontWeight: string;\n lineHeight: string;\n };\n links: {\n color: string;\n visited: string;\n hover: string;\n };\n };\n menu: {\n width: string;\n backgroundColor: string;\n textColor: string;\n activeTextColor: string;\n groupItems: {\n textTransform: string;\n };\n level1Items: {\n textTransform: string;\n };\n arrow: {\n size: string;\n color: string;\n };\n };\n logo: {\n maxHeight: string;\n maxWidth: string;\n gutter: string;\n };\n rightPanel: {\n backgroundColor: string;\n textColor: string;\n width: string;\n };\n codeSample: {\n backgroundColor: string;\n };\n extensionsHook?: (name: string, props: any) => string;\n}\nexport type primitive = string | number | boolean | undefined | null;\nexport type AdvancedThemeDeep = T extends primitive ? T | ((theme: ResolvedThemeInterface) => T) : AdvancedThemeObject;\nexport type AdvancedThemeObject = { [P in keyof T]?: AdvancedThemeDeep };\nexport type ThemeInterface = AdvancedThemeObject;","export const IS_BROWSER = typeof window !== 'undefined' && 'HTMLElement' in window;\nexport function querySelector(selector: string): Element | null {\n if (typeof document !== 'undefined') {\n return document.querySelector(selector);\n }\n\n return null;\n}\n/**\n * Drop everything inside <...> (i.e., tags/elements), and keep the text.\n * Unlike browser innerText, this removes newlines; it also doesn't handle\n * un-encoded `<` or `>` characters very well, so don't feed it malformed HTML\n */\n\nexport function html2Str(html: string): string {\n return html.split(/<[^>]+>/).map(chunk => {\n return chunk.trim();\n }).filter(trimmedChunk => {\n return trimmedChunk.length > 0;\n }).join(' ');\n} // scrollIntoViewIfNeeded polyfill\n\nif (typeof Element !== 'undefined' && !(Element as any).prototype.scrollIntoViewIfNeeded) {\n (Element as any).prototype.scrollIntoViewIfNeeded = function (centerIfNeeded) {\n centerIfNeeded = arguments.length === 0 ? true : !!centerIfNeeded;\n const parent = this.parentNode;\n const parentComputedStyle = window.getComputedStyle(parent, undefined);\n const parentBorderTopWidth = parseInt(parentComputedStyle.getPropertyValue('border-top-width'), 10);\n const parentBorderLeftWidth = parseInt(parentComputedStyle.getPropertyValue('border-left-width'), 10);\n const overTop = this.offsetTop - parent.offsetTop < parent.scrollTop;\n const overBottom = this.offsetTop - parent.offsetTop + this.clientHeight - parentBorderTopWidth > parent.scrollTop + parent.clientHeight;\n const overLeft = this.offsetLeft - parent.offsetLeft < parent.scrollLeft;\n const overRight = this.offsetLeft - parent.offsetLeft + this.clientWidth - parentBorderLeftWidth > parent.scrollLeft + parent.clientWidth;\n const alignWithTop = overTop && !overBottom;\n\n if ((overTop || overBottom) && centerIfNeeded) {\n parent.scrollTop = this.offsetTop - parent.offsetTop - parent.clientHeight / 2 - parentBorderTopWidth + this.clientHeight / 2;\n }\n\n if ((overLeft || overRight) && centerIfNeeded) {\n parent.scrollLeft = this.offsetLeft - parent.offsetLeft - parent.clientWidth / 2 - parentBorderLeftWidth + this.clientWidth / 2;\n }\n\n if ((overTop || overBottom || overLeft || overRight) && !centerIfNeeded) {\n this.scrollIntoView(alignWithTop);\n }\n };\n}","import slugify from 'slugify';\nimport { format, parse } from 'url';\n/**\n * Maps over array passing `isLast` bool to iterator as the second argument\n */\n\nexport function mapWithLast(array: T[], iteratee: (item: T, isLast: boolean) => P) {\n const res: P[] = [];\n\n for (let i = 0; i < array.length - 1; i++) {\n res.push(iteratee(array[i], false));\n }\n\n if (array.length !== 0) {\n res.push(iteratee(array[array.length - 1], true));\n }\n\n return res;\n}\n/**\n * Creates an object with the same keys as object and values generated by running each\n * own enumerable string keyed property of object thru iteratee.\n * The iteratee is invoked with three arguments: (value, key, object).\n *\n * @param object the object to iterate over\n * @param iteratee the function invoked per iteration.\n */\n\nexport function mapValues(object: Dict, iteratee: (val: T, key: string, obj: Dict) => P): Dict

{\n const res: {\n [key: string]: P;\n } = {};\n\n for (const key in object) {\n if (object.hasOwnProperty(key)) {\n res[key] = iteratee(object[key], key, object);\n }\n }\n\n return res;\n}\n/**\n * flattens collection using `prop` field as a children\n * @param collectionItems collection items\n * @param prop item property with child elements\n */\n\nexport function flattenByProp(collectionItems: T[], prop: P): T[] {\n const res: T[] = [];\n\n const iterate = (items: T[]) => {\n for (const item of items) {\n res.push(item);\n\n if (item[prop]) {\n iterate(((item[prop] as any) as T[]));\n }\n }\n };\n\n iterate(collectionItems);\n return res;\n}\nexport function stripTrailingSlash(path: string): string {\n if (path.endsWith('/')) {\n return path.substring(0, path.length - 1);\n }\n\n return path;\n}\nexport function isNumeric(n: any): n is number {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nexport function appendToMdHeading(md: string, heading: string, content: string) {\n // if heading is already in md and append to the end of it\n const testRegex = new RegExp(`(^|\\\\n)#\\\\s?${heading}\\\\s*\\\\n`, 'i');\n const replaceRegex = new RegExp(`((\\\\n|^)#\\\\s*${heading}\\\\s*(\\\\n|$)(?:.|\\\\n)*?)(\\\\n#|$)`, 'i');\n\n if (testRegex.test(md)) {\n return md.replace(replaceRegex, `$1\\n\\n${content}\\n$4`);\n } else {\n // else append heading itself\n const br = md === '' || md.endsWith('\\n\\n') ? '' : md.endsWith('\\n') ? '\\n' : '\\n\\n';\n return `${md}${br}# ${heading}\\n\\n${content}`;\n }\n} // credits https://stackoverflow.com/a/46973278/1749888\n\nexport const mergeObjects = (target: any, ...sources: any[]): any => {\n if (!sources.length) {\n return target;\n }\n\n const source = sources.shift();\n\n if (source === undefined) {\n return target;\n }\n\n if (isMergebleObject(target) && isMergebleObject(source)) {\n Object.keys(source).forEach((key: string) => {\n if (isMergebleObject(source[key])) {\n if (!target[key]) {\n target[key] = {};\n }\n\n mergeObjects(target[key], source[key]);\n } else {\n target[key] = source[key];\n }\n });\n }\n\n return mergeObjects(target, ...sources);\n};\n\nconst isObject = (item: any): boolean => {\n return item !== null && typeof item === 'object';\n};\n\nconst isMergebleObject = (item): boolean => {\n return isObject(item) && !Array.isArray(item);\n};\n/**\n * slugify() returns empty string when failed to slugify.\n * so try to return minimum slugified-string with failed one which keeps original value\n * the regex codes are referenced with https://gist.github.com/mathewbyrne/1280286\n */\n\n\nexport function safeSlugify(value: string): string {\n return slugify(value) || value.toString().toLowerCase().replace(/\\s+/g, '-') // Replace spaces with -\n .replace(/&/g, '-and-') // Replace & with 'and'\n .replace(/\\--+/g, '-') // Replace multiple - with single -\n .replace(/^-+/, '') // Trim - from start of text\n .replace(/-+$/, ''); // Trim - from end of text\n}\nexport function isAbsoluteUrl(url: string) {\n return /(?:^[a-z][a-z0-9+.-]*:|\\/\\/)/i.test(url);\n}\n/**\n * simple resolve URL which doesn't break on strings with url fragments\n * e.g. resolveUrl('http://test.com:{port}', 'path') results in http://test.com:{port}/path\n */\n\nexport function resolveUrl(url: string, to: string) {\n let res;\n\n if (to.startsWith('//')) {\n const {\n protocol: specProtocol\n } = parse(url);\n res = `${specProtocol || 'https:'}${to}`;\n } else if (isAbsoluteUrl(to)) {\n res = to;\n } else if (!to.startsWith('/')) {\n res = stripTrailingSlash(url) + '/' + to;\n } else {\n const urlObj = parse(url);\n res = format({ ...urlObj,\n pathname: to\n });\n }\n\n return stripTrailingSlash(res);\n}\nexport function getBasePath(serverUrl: string): string {\n try {\n return parseURL(serverUrl).pathname;\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\nexport function titleize(text: string) {\n return text.charAt(0).toUpperCase() + text.slice(1);\n}\nexport function removeQueryString(serverUrl: string): string {\n try {\n const url = parseURL(serverUrl);\n url.search = '';\n return url.toString();\n } catch (e) {\n // when using with redoc-cli serverUrl can be empty resulting in crash\n return serverUrl;\n }\n}\n\nfunction parseURL(url: string) {\n if (typeof URL === 'undefined') {\n // node\n return new (require('url').URL)(url);\n } else {\n return new URL(url);\n }\n}\n\nexport function unescapeHTMLChars(str: string): string {\n return str.replace(/&#(\\d+);/g, (_m, code) => String.fromCharCode(parseInt(code, 10)));\n}","export interface LabelsConfig {\n enum: string;\n enumSingleValue: string;\n enumArray: string;\n default: string;\n deprecated: string;\n example: string;\n nullable: string;\n recursive: string;\n arrayOf: string;\n}\nexport type LabelsConfigRaw = Partial;\nconst labels: LabelsConfig = {\n enum: 'Enum',\n enumSingleValue: 'Value',\n enumArray: 'Items',\n default: 'Default',\n deprecated: 'Deprecated',\n example: 'Example',\n nullable: 'Nullable',\n recursive: 'Recursive',\n arrayOf: 'Array of '\n};\nexport function setRedocLabels(_labels?: LabelsConfigRaw) {\n Object.assign(labels, _labels);\n}\nexport function l(key: keyof LabelsConfig, idx?: number): string {\n const label = labels[key];\n\n if (idx !== undefined) {\n return label[idx];\n }\n\n return label;\n}","import defaultTheme, { ResolvedThemeInterface, resolveTheme, ThemeInterface } from '../theme';\nimport { querySelector } from '../utils/dom';\nimport { isNumeric, mergeObjects } from '../utils/helpers';\nimport { LabelsConfigRaw, setRedocLabels } from './Labels';\nimport { MDXComponentMeta } from './MarkdownRenderer';\nexport interface RedocRawOptions {\n theme?: ThemeInterface;\n scrollYOffset?: number | string | (() => number);\n hideHostname?: boolean | string;\n expandResponses?: string | 'all';\n requiredPropsFirst?: boolean | string;\n sortPropsAlphabetically?: boolean | string;\n noAutoAuth?: boolean | string;\n nativeScrollbars?: boolean | string;\n pathInMiddlePanel?: boolean | string;\n untrustedSpec?: boolean | string;\n hideLoading?: boolean | string;\n hideDownloadButton?: boolean | string;\n disableSearch?: boolean | string;\n onlyRequiredInSamples?: boolean | string;\n showExtensions?: boolean | string | string[];\n isOt2?: boolean;\n hasAdditionalDoc?: boolean;\n additionalDocUrl?: string;\n hideSingleRequestSampleTab?: boolean | string;\n menuToggle?: boolean | string;\n jsonSampleExpandLevel?: number | string | 'all';\n hideSchemaTitles?: boolean | string;\n payloadSampleIdx?: number;\n expandSingleSchemaField?: boolean | string;\n unstable_ignoreMimeParameters?: boolean;\n allowedMdComponents?: Dict;\n labels?: LabelsConfigRaw;\n enumSkipQuotes?: boolean | string;\n expandDefaultServerVariables?: boolean;\n}\n\nfunction argValueToBoolean(val?: string | boolean, defaultValue?: boolean): boolean {\n if (val === undefined) {\n return defaultValue || false;\n }\n\n if (typeof val === 'string') {\n return val === 'false' ? false : true;\n }\n\n return val;\n}\n\nfunction argValueToString(val?: string | undefined, defaultValue?: string): string | undefined {\n if (val === undefined) {\n return defaultValue || '';\n }\n\n if (typeof val === 'string') {\n return val;\n }\n}\n\nexport class RedocNormalizedOptions {\n static normalizeExpandResponses(value: RedocRawOptions['expandResponses']) {\n if (value === 'all') {\n return 'all';\n }\n\n if (typeof value === 'string') {\n const res = {};\n value.split(',').forEach(code => {\n res[code.trim()] = true;\n });\n return res;\n } else if (value !== undefined) {\n console.warn(`expandResponses must be a string but received value \"${value}\" of type ${typeof value}`);\n }\n\n return {};\n }\n\n static normalizeHideHostname(value: RedocRawOptions['hideHostname']): boolean {\n return !!value;\n }\n\n static normalizeScrollYOffset(value: RedocRawOptions['scrollYOffset']): () => number {\n // just number is not valid selector and leads to crash so checking if isNumeric here\n if (typeof value === 'string' && !isNumeric(value)) {\n const el = querySelector(value);\n\n if (!el) {\n console.warn('scrollYOffset value is a selector to non-existing element. Using offset 0 by default');\n }\n\n const bottom = el && el.getBoundingClientRect().bottom || 0;\n return () => bottom;\n } else if (typeof value === 'number' || isNumeric(value)) {\n return () => typeof value === 'number' ? value : parseFloat(value);\n } else if (typeof value === 'function') {\n return () => {\n const res = value();\n\n if (typeof res !== 'number') {\n console.warn(`scrollYOffset should return number but returned value \"${res}\" of type ${typeof res}`);\n }\n\n return res;\n };\n } else if (value !== undefined) {\n console.warn('Wrong value for scrollYOffset ReDoc option: should be string, number or function');\n }\n\n return () => 0;\n }\n\n static normalizeShowExtensions(value: RedocRawOptions['showExtensions']): string[] | boolean {\n if (typeof value === 'undefined') {\n return false;\n }\n\n if (value === '') {\n return true;\n }\n\n if (typeof value === 'string') {\n return value.split(',').map(ext => ext.trim());\n }\n\n return value;\n }\n\n static normalizePayloadSampleIdx(value: RedocRawOptions['payloadSampleIdx']): number {\n if (typeof value === 'number') {\n return Math.max(0, value); // always greater or equal than 0\n }\n\n if (typeof value === 'string') {\n return isFinite(value) ? parseInt(value, 10) : 0;\n }\n\n return 0;\n }\n\n private static normalizeJsonSampleExpandLevel(level?: number | string | 'all'): number {\n if (level === 'all') {\n return +Infinity;\n }\n\n if (!isNaN(Number(level))) {\n return Math.ceil(Number(level));\n }\n\n return 2;\n }\n\n theme: ResolvedThemeInterface;\n scrollYOffset: () => number;\n hideHostname: boolean;\n expandResponses: {\n [code: string]: boolean;\n } | 'all';\n requiredPropsFirst: boolean;\n sortPropsAlphabetically: boolean;\n noAutoAuth: boolean;\n nativeScrollbars: boolean;\n pathInMiddlePanel: boolean;\n untrustedSpec: boolean;\n hideDownloadButton: boolean;\n disableSearch: boolean;\n onlyRequiredInSamples: boolean;\n showExtensions: boolean | string[];\n isOt2: boolean;\n hasAdditionalDoc: boolean;\n additionalDocUrl: string | undefined;\n hideSingleRequestSampleTab: boolean;\n menuToggle: boolean;\n jsonSampleExpandLevel: number;\n enumSkipQuotes: boolean;\n hideSchemaTitles: boolean;\n payloadSampleIdx: number;\n expandSingleSchemaField: boolean;\n /* tslint:disable-next-line */\n\n unstable_ignoreMimeParameters: boolean;\n allowedMdComponents: Dict;\n expandDefaultServerVariables: boolean;\n\n constructor(raw: RedocRawOptions, defaults: RedocRawOptions = {}) {\n raw = { ...defaults,\n ...raw\n };\n const hook = raw.theme && raw.theme.extensionsHook;\n this.theme = resolveTheme(mergeObjects(({} as any), defaultTheme, { ...raw.theme,\n extensionsHook: undefined\n }));\n this.theme.extensionsHook = (hook as any); // do not support dynamic labels changes. Labels should be configured before\n\n setRedocLabels(raw.labels);\n this.scrollYOffset = RedocNormalizedOptions.normalizeScrollYOffset(raw.scrollYOffset);\n this.hideHostname = RedocNormalizedOptions.normalizeHideHostname(raw.hideHostname);\n this.expandResponses = RedocNormalizedOptions.normalizeExpandResponses(raw.expandResponses);\n this.requiredPropsFirst = argValueToBoolean(raw.requiredPropsFirst);\n this.sortPropsAlphabetically = argValueToBoolean(raw.sortPropsAlphabetically);\n this.noAutoAuth = argValueToBoolean(raw.noAutoAuth);\n this.nativeScrollbars = argValueToBoolean(raw.nativeScrollbars);\n this.pathInMiddlePanel = argValueToBoolean(raw.pathInMiddlePanel);\n this.untrustedSpec = argValueToBoolean(raw.untrustedSpec);\n this.hideDownloadButton = argValueToBoolean(raw.hideDownloadButton);\n this.disableSearch = argValueToBoolean(raw.disableSearch);\n this.onlyRequiredInSamples = argValueToBoolean(raw.onlyRequiredInSamples);\n this.showExtensions = RedocNormalizedOptions.normalizeShowExtensions(raw.showExtensions);\n this.isOt2 = argValueToBoolean(raw.isOt2);\n this.hasAdditionalDoc = argValueToBoolean(raw.hasAdditionalDoc);\n this.additionalDocUrl = argValueToString(raw.additionalDocUrl);\n this.hideSingleRequestSampleTab = argValueToBoolean(raw.hideSingleRequestSampleTab);\n this.menuToggle = argValueToBoolean(raw.menuToggle, true);\n this.jsonSampleExpandLevel = RedocNormalizedOptions.normalizeJsonSampleExpandLevel(raw.jsonSampleExpandLevel);\n this.enumSkipQuotes = argValueToBoolean(raw.enumSkipQuotes);\n this.hideSchemaTitles = argValueToBoolean(raw.hideSchemaTitles);\n this.payloadSampleIdx = RedocNormalizedOptions.normalizePayloadSampleIdx(raw.payloadSampleIdx);\n this.expandSingleSchemaField = argValueToBoolean(raw.expandSingleSchemaField); // eslint-disable-next-line @typescript-eslint/camelcase\n\n this.unstable_ignoreMimeParameters = argValueToBoolean(raw.unstable_ignoreMimeParameters);\n this.allowedMdComponents = raw.allowedMdComponents || {};\n this.expandDefaultServerVariables = argValueToBoolean(raw.expandDefaultServerVariables);\n }\n\n}","import * as styledComponents from 'styled-components';\nimport { ResolvedThemeInterface } from './theme';\nexport { ResolvedThemeInterface };\nconst {\n default: styled,\n css,\n createGlobalStyle,\n keyframes,\n ThemeProvider\n} = ((styledComponents as any) as styledComponents.ThemedStyledComponentsModule);\nexport const media = {\n lessThan(breakpoint, print?: boolean) {\n return (...args) => css`\n @media ${print ? 'print, ' : ''} screen and (max-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n greaterThan(breakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[breakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n },\n\n between(firstBreakpoint, secondBreakpoint) {\n return (...args) => css`\n @media (min-width: ${props => props.theme.breakpoints[firstBreakpoint]}) and (max-width: ${props => props.theme.breakpoints[secondBreakpoint]}) {\n ${(css as any)(...args)};\n }\n `;\n }\n\n};\nexport { css, createGlobalStyle, keyframes, ThemeProvider };\nexport default styled;\nexport function extensionsHook(styledName: string) {\n return props => {\n if (!props.theme.extensionsHook) {\n return;\n }\n\n return props.theme.extensionsHook(styledName, props);\n };\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst ErrorWrapper = styled.div`\n padding: 20px;\n color: red;\n`;\nexport class ErrorBoundary extends React.Component<{}, {\n error?: Error;\n}> {\n constructor(props) {\n super(props);\n this.state = {\n error: undefined\n };\n }\n\n componentDidCatch(error) {\n this.setState({\n error\n });\n return false;\n }\n\n render() {\n if (this.state.error) {\n return \n

Something went wrong...

\n {this.state.error.message} \n

\n

\n Stack trace\n
{this.state.error.stack}
\n
\n

\n ReDoc Version: {__REDOC_VERSION__}
\n Commit: {__REDOC_REVISION__}\n ;\n }\n\n return React.Children.only(this.props.children);\n }\n\n}","import * as React from 'react';\nimport styled, { keyframes } from '../../styled-components';\n\nconst _Spinner = (props: {\n className?: string;\n color: string;\n}) => \n \n \n ;\n\nconst rotate = keyframes`\n 0% {\n transform: rotate(0deg); }\n 100% {\n transform: rotate(360deg);\n }\n`;\nexport const Spinner = styled(_Spinner)`\n animation: 1.5s ${rotate} linear infinite;\n width: 42px;\n height: 42px;\n content: '';\n display: inline-block;\n margin-left: -25px;\n\n path:not(#rotator) {\n fill: ${props => props.color};\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { Spinner } from './Spinner.svg';\nconst LoadingMessage = styled.div<{\n color: string;\n}>`\n font-family: helvetica, sans;\n width: 100%;\n text-align: center;\n font-size: 25px;\n margin: 30px 0 20px 0;\n color: ${props => props.color};\n`;\nexport interface LoadingProps {\n color: string;\n}\nexport class Loading extends React.PureComponent {\n render() {\n return
\n \n \n
;\n }\n\n}","import * as JsonSchemaRefParser from 'json-schema-ref-parser';\n/* tslint:disable-next-line:no-implicit-dependencies */\n\nimport { convertObj } from 'swagger2openapi';\nimport { OpenAPISpec } from '../types';\nexport async function loadAndBundleSpec(specUrlOrObject: object | string): Promise {\n const parser = new JsonSchemaRefParser();\n const spec = (await parser.bundle(specUrlOrObject, ({\n resolve: {\n http: {\n withCredentials: false\n }\n }\n } as object)) as any);\n\n if (spec.swagger !== undefined) {\n return convertSwagger2OpenAPI(spec);\n } else {\n return spec;\n }\n}\nexport function convertSwagger2OpenAPI(spec: any): Promise {\n console.warn('[ReDoc Compatibility mode]: Converting OpenAPI 2.0 to OpenAPI 3.0');\n return new Promise((resolve, reject) => convertObj(spec, {\n patch: true,\n warnOnly: true,\n text: '{}'\n }, (err, res) => {\n // TODO: log any warnings\n if (err) {\n return reject(err);\n }\n\n resolve(res && (res.openapi as any));\n }));\n}","'use strict';\n\nimport * as JsonPointerLib from 'json-pointer';\nconst origParse = JsonPointerLib.parse;\n/**\n * Wrapper for JsonPointer. Provides common operations\n */\n\nexport class JsonPointer {\n /**\n * returns last JsonPointer token\n * if level > 1 returns levels last (second last/third last)\n * @example\n * // returns subpath\n * JsonPointerHelper.baseName('/path/0/subpath')\n * // returns foo\n * JsonPointerHelper.baseName('/path/foo/subpath', 2)\n */\n static baseName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return tokens[tokens.length - level];\n }\n /**\n * returns dirname of pointer\n * if level > 1 returns corresponding dirname in the hierarchy\n * @example\n * // returns /path/0\n * JsonPointerHelper.dirName('/path/0/subpath')\n * // returns /path\n * JsonPointerHelper.dirName('/path/foo/subpath', 2)\n */\n\n\n static dirName(pointer, level = 1) {\n const tokens = JsonPointer.parse(pointer);\n return JsonPointerLib.compile(tokens.slice(0, tokens.length - level));\n }\n /**\n * returns relative path tokens\n * @example\n * // returns ['subpath']\n * JsonPointerHelper.relative('/path/0', '/path/0/subpath')\n * // returns ['foo', 'subpath']\n * JsonPointerHelper.relative('/path', '/path/foo/subpath')\n */\n\n\n static relative(from, to): string[] {\n const fromTokens = JsonPointer.parse(from);\n const toTokens = JsonPointer.parse(to);\n return toTokens.slice(fromTokens.length);\n }\n /**\n * overridden JsonPointer original parse to take care of prefixing '#' symbol\n * that is not valid JsonPointer\n */\n\n\n static parse(pointer) {\n let ptr = pointer;\n\n if (ptr.charAt(0) === '#') {\n ptr = ptr.substring(1);\n }\n\n return origParse(ptr);\n }\n /**\n * Creates a JSON pointer path, by joining one or more tokens to a base path.\n *\n * @param {string} base - The base path\n * @param {string|string[]} tokens - The token(s) to append (e.g. [\"name\", \"first\"])\n * @returns {string}\n */\n\n\n static join(base, tokens) {\n // TODO: optimize\n const baseTokens = JsonPointer.parse(base);\n const resTokens = baseTokens.concat(tokens);\n return JsonPointerLib.compile(resTokens);\n }\n\n static get(object: object, pointer: string) {\n return JsonPointerLib.get(object, pointer);\n }\n\n static compile(tokens: string[]) {\n return JsonPointerLib.compile(tokens);\n }\n\n static escape(pointer: string) {\n return JsonPointerLib.escape(pointer);\n }\n\n}\n(JsonPointerLib as any).parse = JsonPointer.parse;\nObject.assign(JsonPointer, JsonPointerLib);\nexport default JsonPointer;","import { dirname } from 'path';\nimport * as URLtemplate from 'url-template';\nimport { FieldModel } from '../services/models';\nimport { OpenAPIParser } from '../services/OpenAPIParser';\nimport { OpenAPIEncoding, OpenAPIMediaType, OpenAPIOperation, OpenAPIParameter, OpenAPIParameterStyle, OpenAPISchema, OpenAPIServer, Referenced } from '../types';\nimport { IS_BROWSER } from './dom';\nimport { isNumeric, removeQueryString, resolveUrl } from './helpers';\n\nfunction isWildcardStatusCode(statusCode: string | number): statusCode is string {\n return typeof statusCode === 'string' && /\\dxx/i.test(statusCode);\n}\n\nexport function isStatusCode(statusCode: string) {\n return statusCode === 'default' || isNumeric(statusCode) || isWildcardStatusCode(statusCode);\n}\nexport function getStatusCodeType(statusCode: string | number, defaultAsError = false): string {\n if (statusCode === 'default') {\n return defaultAsError ? 'error' : 'success';\n }\n\n let code = typeof statusCode === 'string' ? parseInt(statusCode, 10) : statusCode;\n\n if (isWildcardStatusCode(statusCode)) {\n code *= 100; // parseInt('2xx') parses to 2\n }\n\n if (code < 100 || code > 599) {\n throw new Error('invalid HTTP code');\n }\n\n let res = 'success';\n\n if (code >= 300 && code < 400) {\n res = 'redirect';\n } else if (code >= 400) {\n res = 'error';\n } else if (code < 200) {\n res = 'info';\n }\n\n return res;\n}\nconst operationNames = {\n get: true,\n post: true,\n put: true,\n head: true,\n patch: true,\n delete: true,\n options: true\n};\nexport function isOperationName(key: string): boolean {\n return key in operationNames;\n}\nexport function getOperationSummary(operation: OpenAPIOperation): string {\n return operation.summary || operation.operationId || operation.description && operation.description.substring(0, 50) || '';\n}\nconst schemaKeywordTypes = {\n multipleOf: 'number',\n maximum: 'number',\n exclusiveMaximum: 'number',\n minimum: 'number',\n exclusiveMinimum: 'number',\n maxLength: 'string',\n minLength: 'string',\n pattern: 'string',\n items: 'array',\n maxItems: 'array',\n minItems: 'array',\n uniqueItems: 'array',\n maxProperties: 'object',\n minProperties: 'object',\n required: 'object',\n additionalProperties: 'object',\n properties: 'object'\n};\nexport function detectType(schema: OpenAPISchema): string {\n if (schema.type !== undefined) {\n return schema.type;\n }\n\n const keywords = Object.keys(schemaKeywordTypes);\n\n for (const keyword of keywords) {\n const type = schemaKeywordTypes[keyword];\n\n if (schema[keyword] !== undefined) {\n return type;\n }\n }\n\n return 'any';\n}\nexport function isPrimitiveType(schema: OpenAPISchema, type: string | undefined = schema.type) {\n if (schema.oneOf !== undefined || schema.anyOf !== undefined) {\n return false;\n }\n\n if (type === 'object') {\n return schema.properties !== undefined ? Object.keys(schema.properties).length === 0 : schema.additionalProperties === undefined;\n }\n\n if (type === 'array') {\n if (schema.items === undefined) {\n return true;\n }\n\n return false;\n }\n\n return true;\n}\nexport function isJsonLike(contentType: string): boolean {\n return contentType.search(/json/i) !== -1;\n}\nexport function isFormUrlEncoded(contentType: string): boolean {\n return contentType === 'application/x-www-form-urlencoded';\n}\n\nfunction delimitedEncodeField(fieldVal: any, fieldName: string, delimiter: string): string {\n if (Array.isArray(fieldVal)) {\n return fieldVal.map(v => v.toString()).join(delimiter);\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${k}${delimiter}${fieldVal[k]}`).join(delimiter);\n } else {\n return fieldName + '=' + fieldVal.toString();\n }\n}\n\nfunction deepObjectEncodeField(fieldVal: any, fieldName: string): string {\n if (Array.isArray(fieldVal)) {\n console.warn('deepObject style cannot be used with array value:' + fieldVal.toString());\n return '';\n } else if (typeof fieldVal === 'object') {\n return Object.keys(fieldVal).map(k => `${fieldName}[${k}]=${fieldVal[k]}`).join('&');\n } else {\n console.warn('deepObject style cannot be used with non-object value:' + fieldVal.toString());\n return '';\n }\n}\n\nfunction serializeFormValue(name: string, explode: boolean, value: any) {\n // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n const safeName = '__redoc_param_name__';\n const suffix = explode ? '*' : '';\n const template = URLtemplate.parse(`{?${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).substring(1).replace(/__redoc_param_name__/g, name);\n}\n/*\n * Should be used only for url-form-encoded body payloads\n * To be used for parameters should be extended with other style values\n */\n\n\nexport function urlFormEncodePayload(payload: object, encoding: {\n [field: string]: OpenAPIEncoding;\n} = {}) {\n if (Array.isArray(payload)) {\n throw new Error('Payload must have fields: ' + payload.toString());\n } else {\n return Object.keys(payload).map(fieldName => {\n const fieldVal = payload[fieldName];\n const {\n style = 'form',\n explode = true\n } = encoding[fieldName] || {};\n\n switch (style) {\n case 'form':\n return serializeFormValue(fieldName, explode, fieldVal);\n\n case 'spaceDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '%20');\n\n case 'pipeDelimited':\n return delimitedEncodeField(fieldVal, fieldName, '|');\n\n case 'deepObject':\n return deepObjectEncodeField(fieldVal, fieldName);\n\n default:\n // TODO implement rest of styles for path parameters\n console.warn('Incorrect or unsupported encoding style: ' + style);\n return '';\n }\n }).join('&');\n }\n}\n\nfunction serializePathParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n const suffix = explode ? '*' : '';\n let prefix = '';\n\n if (style === 'label') {\n prefix = '.';\n } else if (style === 'matrix') {\n prefix = ';';\n } // Use RFC6570 safe name ([a-zA-Z0-9_]) and replace with our name later\n // e.g. URI.template doesn't parse names with hyphen (-) which are valid query param names\n\n\n const safeName = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${prefix}${safeName}${suffix}}`);\n return template.expand({\n [safeName]: value\n }).replace(/__redoc_param_name__/g, name);\n}\n\nfunction serializeQueryParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n case 'spaceDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style spaceDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('%20')}`;\n\n case 'pipeDelimited':\n if (!Array.isArray(value)) {\n console.warn('The style pipeDelimited is only applicable to arrays');\n return '';\n }\n\n if (explode) {\n return serializeFormValue(name, explode, value);\n }\n\n return `${name}=${value.join('|')}`;\n\n case 'deepObject':\n if (!explode || Array.isArray(value) || typeof value !== 'object') {\n console.warn('The style deepObject is only applicable for objects with explode=true');\n return '';\n }\n\n return deepObjectEncodeField(value, name);\n\n default:\n console.warn('Unexpected style for query: ' + style);\n return '';\n }\n}\n\nfunction serializeHeaderParameter(style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'simple':\n const suffix = explode ? '*' : ''; // name is not important here, so use RFC6570 safe name ([a-zA-Z0-9_])\n\n const name = '__redoc_param_name__';\n const template = URLtemplate.parse(`{${name}${suffix}}`);\n return decodeURIComponent(template.expand({\n [name]: value\n }));\n\n default:\n console.warn('Unexpected style for header: ' + style);\n return '';\n }\n}\n\nfunction serializeCookieParameter(name: string, style: OpenAPIParameterStyle, explode: boolean, value: any): string {\n switch (style) {\n case 'form':\n return serializeFormValue(name, explode, value);\n\n default:\n console.warn('Unexpected style for cookie: ' + style);\n return '';\n }\n}\n\nexport function serializeParameterValueWithMime(value: any, mime: string): string {\n if (isJsonLike(mime)) {\n return JSON.stringify(value);\n } else {\n console.warn(`Parameter serialization as ${mime} is not supported`);\n return '';\n }\n}\nexport function serializeParameterValue(parameter: OpenAPIParameter & {\n serializationMime?: string;\n}, value: any): string {\n const {\n name,\n style,\n explode = false,\n serializationMime\n } = parameter;\n\n if (serializationMime) {\n switch (parameter.in) {\n case 'path':\n case 'header':\n return serializeParameterValueWithMime(value, serializationMime);\n\n case 'cookie':\n case 'query':\n return `${name}=${serializeParameterValueWithMime(value, serializationMime)}`;\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n }\n\n if (!style) {\n console.warn(`Missing style attribute or content for parameter ${name}`);\n return '';\n }\n\n switch (parameter.in) {\n case 'path':\n return serializePathParameter(name, style, explode, value);\n\n case 'query':\n return serializeQueryParameter(name, style, explode, value);\n\n case 'header':\n return serializeHeaderParameter(style, explode, value);\n\n case 'cookie':\n return serializeCookieParameter(name, style, explode, value);\n\n default:\n console.warn('Unexpected parameter location: ' + parameter.in);\n return '';\n }\n}\nexport function langFromMime(contentType: string): string {\n if (contentType.search(/xml/i) !== -1) {\n return 'xml';\n }\n\n return 'clike';\n}\nexport function isNamedDefinition(pointer?: string): boolean {\n return /^#\\/components\\/schemas\\/[^\\/]+$/.test(pointer || '');\n}\n\nfunction humanizeMultipleOfConstraint(multipleOf: number | undefined): string | undefined {\n if (multipleOf === undefined) {\n return;\n }\n\n const strigifiedMultipleOf = multipleOf.toString(10);\n\n if (!/^0\\.0*1$/.test(strigifiedMultipleOf)) {\n return `multiple of ${strigifiedMultipleOf}`;\n }\n\n return `decimal places <= ${strigifiedMultipleOf.split('.')[1].length}`;\n}\n\nfunction humanizeRangeConstraint(description: string, min: number | undefined, max: number | undefined): string | undefined {\n let stringRange;\n\n if (min !== undefined && max !== undefined) {\n if (min === max) {\n stringRange = `${min} ${description}`;\n } else {\n stringRange = `[ ${min} .. ${max} ] ${description}`;\n }\n } else if (max !== undefined) {\n stringRange = `<= ${max} ${description}`;\n } else if (min !== undefined) {\n if (min === 1) {\n stringRange = 'non-empty';\n } else {\n stringRange = `>= ${min} ${description}`;\n }\n }\n\n return stringRange;\n}\n\nexport function humanizeConstraints(schema: OpenAPISchema): string[] {\n const res: string[] = [];\n const stringRange = humanizeRangeConstraint('characters', schema.minLength, schema.maxLength);\n\n if (stringRange !== undefined) {\n res.push(stringRange);\n }\n\n const arrayRange = humanizeRangeConstraint('items', schema.minItems, schema.maxItems);\n\n if (arrayRange !== undefined) {\n res.push(arrayRange);\n }\n\n const multipleOfConstraint = humanizeMultipleOfConstraint(schema.multipleOf);\n\n if (multipleOfConstraint !== undefined) {\n res.push(multipleOfConstraint);\n }\n\n let numberRange;\n\n if (schema.minimum !== undefined && schema.maximum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '( ' : '[ ';\n numberRange += schema.minimum;\n numberRange += ' .. ';\n numberRange += schema.maximum;\n numberRange += schema.exclusiveMaximum ? ' )' : ' ]';\n } else if (schema.maximum !== undefined) {\n numberRange = schema.exclusiveMaximum ? '< ' : '<= ';\n numberRange += schema.maximum;\n } else if (schema.minimum !== undefined) {\n numberRange = schema.exclusiveMinimum ? '> ' : '>= ';\n numberRange += schema.minimum;\n }\n\n if (numberRange !== undefined) {\n res.push(numberRange);\n }\n\n return res;\n}\nexport function sortByRequired(fields: FieldModel[], order: string[] = []) {\n const unrequiredFields: FieldModel[] = [];\n const orderedFields: FieldModel[] = [];\n const unorderedFields: FieldModel[] = [];\n fields.forEach(field => {\n if (field.required) {\n order.includes(field.name) ? orderedFields.push(field) : unorderedFields.push(field);\n } else {\n unrequiredFields.push(field);\n }\n });\n orderedFields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n return [...orderedFields, ...unorderedFields, ...unrequiredFields];\n}\nexport function sortByField(fields: FieldModel[], param: keyof Pick) {\n return [...fields].sort((a, b) => {\n return a[param].localeCompare(b[param]);\n });\n}\nexport function mergeParams(parser: OpenAPIParser, pathParams: Array> = [], operationParams: Array> = []): Array> {\n const operationParamNames = {};\n operationParams.forEach(param => {\n param = parser.shalowDeref(param);\n operationParamNames[param.name + '_' + param.in] = true;\n }); // filter out path params overridden by operation ones with the same name\n\n pathParams = pathParams.filter(param => {\n param = parser.shalowDeref(param);\n return !operationParamNames[param.name + '_' + param.in];\n });\n return pathParams.concat(operationParams);\n}\nexport function mergeSimilarMediaTypes(types: Dict): Dict {\n const mergedTypes = {};\n Object.keys(types).forEach(name => {\n const mime = types[name]; // ignore content type parameters (e.g. charset) and merge\n\n const normalizedMimeName = name.split(';')[0].trim();\n\n if (!mergedTypes[normalizedMimeName]) {\n mergedTypes[normalizedMimeName] = mime;\n return;\n }\n\n mergedTypes[normalizedMimeName] = { ...mergedTypes[normalizedMimeName],\n ...mime\n };\n });\n return mergedTypes;\n}\nexport function expandDefaultServerVariables(url: string, variables: object = {}) {\n return url.replace(/(?:{)(\\w+)(?:})/g, (match, name) => variables[name] && variables[name].default || match);\n}\nexport function normalizeServers(specUrl: string | undefined, servers: OpenAPIServer[]): OpenAPIServer[] {\n const getHref = () => {\n if (!IS_BROWSER) {\n return '';\n }\n\n const href = window.location.href;\n return href.endsWith('.html') ? dirname(href) : href;\n };\n\n const baseUrl = specUrl === undefined ? removeQueryString(getHref()) : dirname(specUrl);\n\n if (servers.length === 0) {\n // Behaviour defined in OpenAPI spec: https://github.com/OAI/OpenAPI-Specification/blob/master/versions/3.0.0.md#openapi-object\n servers = [{\n url: '/'\n }];\n }\n\n function normalizeUrl(url: string): string {\n return resolveUrl(baseUrl, url);\n }\n\n return servers.map(server => {\n return { ...server,\n url: normalizeUrl(server.url),\n description: server.description || ''\n };\n });\n}\nexport const SECURITY_DEFINITIONS_COMPONENT_NAME = 'security-definitions';\nexport const SECURITY_DEFINITIONS_JSX_NAME = 'SecurityDefinitions';\nexport const SCHEMA_DEFINITION_JSX_NAME = 'SchemaDefinition';\nexport let SECURITY_SCHEMES_SECTION_PREFIX = 'section/Authentication/';\nexport function setSecuritySchemePrefix(prefix: string) {\n SECURITY_SCHEMES_SECTION_PREFIX = prefix;\n}\nexport const shortenHTTPVerb = verb => ({\n delete: 'del',\n options: 'opts'\n})[verb] || verb;\nexport function isRedocExtension(key: string): boolean {\n const redocExtensions = {\n 'x-circular-ref': true,\n 'x-code-samples': true,\n 'x-displayName': true,\n 'x-examples': true,\n 'x-ignoredHeaderParameters': true,\n 'x-logo': true,\n 'x-nullable': true,\n 'x-servers': true,\n 'x-tagGroups': true,\n 'x-traitTag': true,\n 'x-additionalPropertiesName': true\n };\n return key in redocExtensions;\n}\nexport function extractExtensions(obj: object, showExtensions: string[] | true): Dict {\n return Object.keys(obj).filter(key => {\n if (showExtensions === true) {\n return key.startsWith('x-') && !isRedocExtension(key);\n }\n\n return key.startsWith('x-') && showExtensions.indexOf(key) > -1;\n }).reduce((acc, key) => {\n acc[key] = obj[key];\n return acc;\n }, {});\n}\nexport function pluralizeType(displayType: string): string {\n return displayType.split(' or ').map(type => type.replace(/^(string|object|number|integer|array|boolean)s?( ?.*)/, '$1s$2')).join(' or ');\n}","import * as Prism from 'prismjs';\nimport 'prismjs/components/prism-bash.js';\nimport 'prismjs/components/prism-c.js';\nimport 'prismjs/components/prism-clike.js';\nimport 'prismjs/components/prism-coffeescript.js';\nimport 'prismjs/components/prism-cpp.js';\nimport 'prismjs/components/prism-csharp.js';\nimport 'prismjs/components/prism-go.js';\nimport 'prismjs/components/prism-http.js';\nimport 'prismjs/components/prism-java.js';\nimport 'prismjs/components/prism-lua.js';\nimport 'prismjs/components/prism-markup-templating.js'; // dep of php\n\nimport 'prismjs/components/prism-markup.js'; // xml\n\nimport 'prismjs/components/prism-objectivec.js';\nimport 'prismjs/components/prism-perl.js';\nimport 'prismjs/components/prism-php.js';\nimport 'prismjs/components/prism-python.js';\nimport 'prismjs/components/prism-ruby.js';\nimport 'prismjs/components/prism-scala.js';\nimport 'prismjs/components/prism-sql.js';\nimport 'prismjs/components/prism-swift.js';\nconst DEFAULT_LANG = 'clike';\nPrism.languages.insertBefore('javascript', 'string', ({\n 'property string': {\n pattern: /([{,]\\s*)\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,\n lookbehind: true\n }\n} as any), (undefined as any));\nPrism.languages.insertBefore('javascript', 'punctuation', {\n property: {\n pattern: /([{,]\\s*)[a-z]\\w*(?=\\s*:)/i,\n lookbehind: true\n }\n}, (undefined as any));\n/**\n * map language names to Prism.js names\n */\n\nexport function mapLang(lang: string): string {\n return {\n json: 'js',\n 'c++': 'cpp',\n 'c#': 'csharp',\n 'objective-c': 'objectivec',\n shell: 'bash',\n viml: 'vim'\n }[lang] || DEFAULT_LANG;\n}\n/**\n * Highlight source code string using Prism.js\n * @param source source code to highlight\n * @param lang highlight language\n * @return highlighted source code as **html string**\n */\n\nexport function highlight(source: string, lang: string = DEFAULT_LANG): string {\n lang = lang.toLowerCase();\n let grammar = Prism.languages[lang];\n\n if (!grammar) {\n grammar = Prism.languages[mapLang(lang)];\n }\n\n return Prism.highlight(source, grammar, lang);\n}","function throttle(func, wait) {\n let context;\n let args;\n let result;\n let timeout: any = null;\n let previous = 0;\n\n const later = () => {\n previous = new Date().getTime();\n timeout = null;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n };\n\n return function () {\n const now = new Date().getTime();\n const remaining = wait - (now - previous);\n context = this; // eslint-disable-next-line prefer-rest-params\n\n args = arguments;\n\n if (remaining <= 0 || remaining > wait) {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n\n previous = now;\n result = func.apply(context, args);\n\n if (!timeout) {\n context = args = null;\n }\n } else if (!timeout) {\n timeout = setTimeout(later, remaining);\n }\n\n return result;\n };\n}\n\nexport function Throttle(delay: number) {\n return (_, _2, desc: PropertyDescriptor) => {\n desc.value = throttle(desc.value, delay);\n };\n}","export function debugTime(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.time(label);\n }\n}\nexport function debugTimeEnd(label: string) {\n if (process.env.NODE_ENV !== 'production') {\n console.timeEnd(label);\n }\n}","// source: https://github.com/andreypopp/memoize-decorator\nconst SENTINEL = {};\nexport function memoize(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (typeof descriptor.value === 'function') {\n return ((_memoizeMethod(target, name, descriptor) as any) as TypedPropertyDescriptor);\n } else if (typeof descriptor.get === 'function') {\n return (_memoizeGetter(target, name, descriptor) as TypedPropertyDescriptor);\n } else {\n throw new Error('@memoize decorator can be applied to methods or getters, got ' + String(descriptor.value) + ' instead');\n }\n}\n\nfunction _memoizeGetter(target: any, name: string, descriptor: PropertyDescriptor) {\n const memoizedName = `_memoized_${name}`;\n const get = descriptor.get!;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n get() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = get.call(this);\n }\n\n return this[memoizedName];\n }\n\n };\n}\n\nfunction _memoizeMethod(target: any, name: string, descriptor: TypedPropertyDescriptor) {\n if (!descriptor.value || (descriptor.value as any).length > 0) {\n throw new Error('@memoize decorator can only be applied to methods of zero arguments');\n }\n\n const memoizedName = `_memoized_${name}`;\n const value = descriptor.value;\n target[memoizedName] = SENTINEL;\n return { ...descriptor,\n\n value() {\n if (this[memoizedName] === SENTINEL) {\n this[memoizedName] = (value as any).call(this);\n }\n\n return (this[memoizedName] as any);\n }\n\n };\n}","export * from './JsonPointer';\nexport * from './openapi';\nexport * from './helpers';\nexport * from './highlight';\nexport * from './loadAndBundleSpec';\nexport * from './dom';\nexport * from './decorators';\nexport * from './debug';\nexport * from './memoize';","import { bind, debounce } from 'decko';\nimport { EventEmitter } from 'eventemitter3';\nimport { IS_BROWSER } from '../utils/';\nconst EVENT = 'hashchange';\nexport class HistoryService {\n private _emiter;\n\n constructor() {\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n get currentId(): string {\n return IS_BROWSER ? decodeURIComponent(window.location.hash.substring(1)) : '';\n }\n\n linkForId(id: string) {\n if (!id) {\n return '';\n }\n\n return '#' + id;\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n emit = () => {\n this._emiter.emit(EVENT, this.currentId);\n };\n\n bind() {\n if (IS_BROWSER) {\n window.addEventListener('hashchange', this.emit, false);\n }\n }\n\n dispose() {\n if (IS_BROWSER) {\n window.removeEventListener('hashchange', this.emit);\n }\n }\n\n @bind\n @debounce\n replace(id: string | null, rewriteHistory: boolean = false) {\n if (!IS_BROWSER) {\n return;\n }\n\n if (id == null || id === this.currentId) {\n return;\n }\n\n if (rewriteHistory) {\n window.history.replaceState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n return;\n }\n\n window.history.pushState(null, '', window.location.href.split('#')[0] + this.linkForId(id));\n this.emit();\n }\n\n}\nexport const history = new HistoryService();\n\nif (module.hot) {\n module.hot.dispose(() => {\n history.dispose();\n });\n}","import * as Mark from 'mark.js';\nexport class MarkerService {\n map: Map = new Map();\n private prevTerm: string = '';\n\n add(el: HTMLElement) {\n this.map.set(el, new Mark(el));\n }\n\n delete(el: Element) {\n this.map.delete(el);\n }\n\n addOnly(elements: Element[]) {\n this.map.forEach((inst, elem) => {\n if (elements.indexOf(elem) === -1) {\n inst.unmark();\n this.map.delete(elem);\n }\n });\n\n for (const el of elements) {\n if (!this.map.has(el)) {\n this.map.set(el, new Mark((el as HTMLElement)));\n }\n }\n }\n\n clearAll() {\n this.unmark();\n this.map.clear();\n }\n\n mark(term?: string) {\n if (!term && !this.prevTerm) {\n return;\n }\n\n this.map.forEach(val => {\n val.unmark();\n val.mark(term || this.prevTerm);\n });\n this.prevTerm = term || this.prevTerm;\n }\n\n unmark() {\n this.map.forEach(val => val.unmark());\n this.prevTerm = '';\n }\n\n}","import * as marked from 'marked';\nimport { highlight, safeSlugify, unescapeHTMLChars } from '../utils';\nimport { AppStore } from './AppStore';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst renderer = new marked.Renderer();\nmarked.setOptions({\n renderer,\n highlight: (str, lang) => {\n return highlight(str, lang);\n }\n});\nexport const LEGACY_REGEXP = '^ {0,3}\\\\s*$'; // prettier-ignore\n\nexport const MDX_COMPONENT_REGEXP = '(?:^ {0,3}<({component})([\\\\s\\\\S]*?)>([\\\\s\\\\S]*?)' // with children\n+ '|^ {0,3}<({component})([\\\\s\\\\S]*?)(?:/>|\\\\n{2,}))'; // self-closing\n\nexport const COMPONENT_REGEXP = '(?:' + LEGACY_REGEXP + '|' + MDX_COMPONENT_REGEXP + ')';\nexport interface MDXComponentMeta {\n component: React.ComponentType;\n propsSelector: (store?: AppStore) => any;\n props?: object;\n}\nexport interface MarkdownHeading {\n id: string;\n name: string;\n level: number;\n items?: MarkdownHeading[];\n description?: string;\n}\nexport function buildComponentComment(name: string) {\n return ``;\n}\nexport class MarkdownRenderer {\n static containsComponent(rawText: string, componentName: string) {\n const compRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, componentName), 'gmi');\n return compRegexp.test(rawText);\n }\n\n static getTextBeforeHading(md: string, heading: string): string {\n const headingLinePos = md.search(new RegExp(`^##?\\\\s+${heading}`, 'm'));\n\n if (headingLinePos > -1) {\n return md.substring(0, headingLinePos);\n }\n\n return md;\n }\n\n headings: MarkdownHeading[] = [];\n currentTopHeading: MarkdownHeading;\n private headingEnhanceRenderer: marked.Renderer;\n private originalHeadingRule: typeof marked.Renderer.prototype.heading;\n\n constructor(public options?: RedocNormalizedOptions) {\n this.headingEnhanceRenderer = new marked.Renderer();\n this.originalHeadingRule = this.headingEnhanceRenderer.heading.bind(this.headingEnhanceRenderer);\n this.headingEnhanceRenderer.heading = this.headingRule;\n }\n\n saveHeading(name: string, level: number, container: MarkdownHeading[] = this.headings, parentId?: string): MarkdownHeading {\n name = unescapeHTMLChars(name);\n const item = {\n id: parentId ? `${parentId}/${safeSlugify(name)}` : `section/${safeSlugify(name)}`,\n name,\n level,\n items: []\n };\n container.push(item);\n return item;\n }\n\n flattenHeadings(container?: MarkdownHeading[]): MarkdownHeading[] {\n if (container === undefined) {\n return [];\n }\n\n const res: MarkdownHeading[] = [];\n\n for (const heading of container) {\n res.push(heading);\n res.push(...this.flattenHeadings(heading.items));\n }\n\n return res;\n }\n\n attachHeadingsDescriptions(rawText: string) {\n const buildRegexp = (heading: MarkdownHeading) => {\n return new RegExp(`##?\\\\s+${heading.name.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&')}`);\n };\n\n const flatHeadings = this.flattenHeadings(this.headings);\n\n if (flatHeadings.length < 1) {\n return;\n }\n\n let prevHeading = flatHeadings[0];\n let prevRegexp = buildRegexp(prevHeading);\n let prevPos = rawText.search(prevRegexp);\n\n for (let i = 1; i < flatHeadings.length; i++) {\n const heading = flatHeadings[i];\n const regexp = buildRegexp(heading);\n const currentPos = rawText.substr(prevPos + 1).search(regexp) + prevPos + 1;\n prevHeading.description = rawText.substring(prevPos, currentPos).replace(prevRegexp, '').trim();\n prevHeading = heading;\n prevRegexp = regexp;\n prevPos = currentPos;\n }\n\n prevHeading.description = rawText.substring(prevPos).replace(prevRegexp, '').trim();\n }\n\n headingRule = (text: string, level: 1 | 2 | 3 | 4 | 5 | 6, raw: string, slugger: marked.Slugger) => {\n if (level === 1) {\n this.currentTopHeading = this.saveHeading(text, level);\n } else if (level === 2) {\n this.saveHeading(text, level, this.currentTopHeading && this.currentTopHeading.items, this.currentTopHeading && this.currentTopHeading.id);\n }\n\n return this.originalHeadingRule(text, level, raw, slugger);\n };\n\n renderMd(rawText: string, extractHeadings: boolean = false): string {\n const opts = extractHeadings ? {\n renderer: this.headingEnhanceRenderer\n } : undefined;\n const res = marked(rawText.toString(), opts);\n return res;\n }\n\n extractHeadings(rawText: string): MarkdownHeading[] {\n this.renderMd(rawText, true);\n this.attachHeadingsDescriptions(rawText);\n const res = this.headings;\n this.headings = [];\n return res;\n } // regexp-based 👎: remark is slow and too big so for now using marked + regexps soup\n\n\n renderMdWithComponents(rawText: string): Array {\n const components = this.options && this.options.allowedMdComponents;\n\n if (!components || Object.keys(components).length === 0) {\n return [this.renderMd(rawText)];\n }\n\n const names = Object.keys(components).join('|');\n const componentsRegexp = new RegExp(COMPONENT_REGEXP.replace(/{component}/g, names), 'mig');\n const htmlParts: string[] = [];\n const componentDefs: MDXComponentMeta[] = [];\n let match = componentsRegexp.exec(rawText);\n let lasxtIdx = 0;\n\n while (match) {\n htmlParts.push(rawText.substring(lasxtIdx, match.index));\n lasxtIdx = componentsRegexp.lastIndex;\n const compName = match[1] || match[2] || match[5];\n const componentMeta = components[compName];\n const props = match[3] || match[6];\n const children = match[4];\n\n if (componentMeta) {\n componentDefs.push({\n component: componentMeta.component,\n propsSelector: componentMeta.propsSelector,\n props: { ...parseProps(props),\n ...componentMeta.props,\n children\n }\n });\n }\n\n match = componentsRegexp.exec(rawText);\n }\n\n htmlParts.push(rawText.substring(lasxtIdx));\n const res: any[] = [];\n\n for (let i = 0; i < htmlParts.length; i++) {\n const htmlPart = htmlParts[i];\n\n if (htmlPart) {\n res.push(this.renderMd(htmlPart));\n }\n\n if (componentDefs[i]) {\n res.push(componentDefs[i]);\n }\n }\n\n return res;\n }\n\n}\n\nfunction parseProps(props: string): object {\n if (!props) {\n return {};\n }\n\n const regex = /([\\w-]+)\\s*=\\s*(?:{([^}]+?)}|\"([^\"]+?)\")/gim;\n const parsed = {};\n let match; // tslint:disable-next-line\n\n while ((match = regex.exec(props)) !== null) {\n if (match[3]) {\n // string prop match (in double quotes)\n parsed[match[1]] = match[3];\n } else if (match[2]) {\n // jsx prop match (in curly braces)\n let val;\n\n try {\n val = JSON.parse(match[2]);\n } catch (e) {\n /* noop */\n }\n\n parsed[match[1]] = val;\n }\n }\n\n return parsed;\n}","import { OpenAPIContact, OpenAPIInfo, OpenAPILicense } from '../../types';\nimport { IS_BROWSER } from '../../utils/';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class ApiInfoModel implements OpenAPIInfo {\n title: string;\n version: string;\n description: string;\n termsOfService?: string;\n contact?: OpenAPIContact;\n license?: OpenAPILicense;\n downloadLink?: string;\n downloadFileName?: string;\n\n constructor(private parser: OpenAPIParser) {\n Object.assign(this, parser.spec.info);\n this.description = parser.spec.info.description || '';\n const firstHeadingLinePos = this.description.search(/^##?\\s+/m);\n\n if (firstHeadingLinePos > -1) {\n this.description = this.description.substring(0, firstHeadingLinePos);\n }\n\n this.downloadLink = this.getDownloadLink();\n this.downloadFileName = this.getDownloadFileName();\n }\n\n private getDownloadLink(): string | undefined {\n if (this.parser.specUrl) {\n return this.parser.specUrl;\n }\n\n if (IS_BROWSER && window.Blob && window.URL && window.URL.createObjectURL) {\n const blob = new Blob([JSON.stringify(this.parser.spec, null, 2)], {\n type: 'application/json'\n });\n return window.URL.createObjectURL(blob);\n }\n }\n\n private getDownloadFileName(): string | undefined {\n if (!this.parser.specUrl) {\n return 'swagger.json';\n }\n\n return undefined;\n }\n\n}","import { OpenAPISecurityScheme, Referenced } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport class SecuritySchemeModel {\n id: string;\n sectionId: string;\n type: OpenAPISecurityScheme['type'];\n description: string;\n apiKey?: {\n name: string;\n in: OpenAPISecurityScheme['in'];\n };\n http?: {\n scheme: string;\n bearerFormat?: string;\n };\n flows: OpenAPISecurityScheme['flows'];\n openId?: {\n connectUrl: string;\n };\n\n constructor(parser: OpenAPIParser, id: string, scheme: Referenced) {\n const info = parser.deref(scheme);\n this.id = id;\n this.sectionId = SECURITY_SCHEMES_SECTION_PREFIX + id;\n this.type = info.type;\n this.description = info.description || '';\n\n if (info.type === 'apiKey') {\n this.apiKey = {\n name: info.name!,\n in: info.in\n };\n }\n\n if (info.type === 'http') {\n this.http = {\n scheme: info.scheme!,\n bearerFormat: info.bearerFormat\n };\n }\n\n if (info.type === 'openIdConnect') {\n this.openId = {\n connectUrl: info.openIdConnectUrl!\n };\n }\n\n if (info.type === 'oauth2' && info.flows) {\n this.flows = info.flows;\n }\n }\n\n}\nexport class SecuritySchemesModel {\n schemes: SecuritySchemeModel[];\n\n constructor(parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = Object.keys(schemes).map(name => new SecuritySchemeModel(parser, name, schemes[name]));\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIRef, OpenAPISchema, OpenAPISpec, Referenced } from '../types';\nimport { appendToMdHeading, IS_BROWSER } from '../utils/';\nimport { JsonPointer } from '../utils/JsonPointer';\nimport { isNamedDefinition, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { buildComponentComment, MarkdownRenderer } from './MarkdownRenderer';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type MergedOpenAPISchema = OpenAPISchema & {\n parentRefs?: string[];\n};\n/**\n * Helper class to keep track of visited references to avoid\n * endless recursion because of circular refs\n */\n\nclass RefCounter {\n _counter = {};\n\n reset(): void {\n this._counter = {};\n }\n\n visit(ref: string): void {\n this._counter[ref] = this._counter[ref] ? this._counter[ref] + 1 : 1;\n }\n\n exit(ref: string): void {\n this._counter[ref] = this._counter[ref] && this._counter[ref] - 1;\n }\n\n visited(ref: string): boolean {\n return !!this._counter[ref];\n }\n\n}\n/**\n * Loads and keeps spec. Provides raw spec operations\n */\n\n\nexport class OpenAPIParser {\n specUrl?: string;\n spec: OpenAPISpec;\n mergeRefs: Set;\n private _refCounter: RefCounter = new RefCounter();\n\n constructor(spec: OpenAPISpec, specUrl?: string, private options: RedocNormalizedOptions = new RedocNormalizedOptions({})) {\n this.validate(spec);\n this.preprocess(spec);\n this.spec = spec;\n this.mergeRefs = new Set();\n const href = IS_BROWSER ? window.location.href : '';\n\n if (typeof specUrl === 'string') {\n this.specUrl = urlResolve(href, specUrl);\n }\n }\n\n validate(spec: any) {\n if (spec.openapi === undefined) {\n throw new Error('Document must be valid OpenAPI 3.0.0 definition');\n }\n }\n\n preprocess(spec: OpenAPISpec) {\n if (!this.options.noAutoAuth && spec.info && spec.components && spec.components.securitySchemes) {\n // Automatically inject Authentication section with SecurityDefinitions component\n const description = spec.info.description || '';\n\n if (!MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_COMPONENT_NAME) && !MarkdownRenderer.containsComponent(description, SECURITY_DEFINITIONS_JSX_NAME)) {\n const comment = buildComponentComment(SECURITY_DEFINITIONS_COMPONENT_NAME);\n spec.info.description = appendToMdHeading(description, 'Authentication', comment);\n }\n }\n }\n /**\n * get spec part by JsonPointer ($ref)\n */\n\n\n byRef = (ref: string): T | undefined => {\n let res;\n\n if (!this.spec) {\n return;\n }\n\n if (ref.charAt(0) !== '#') {\n ref = '#' + ref;\n }\n\n ref = decodeURIComponent(ref);\n\n try {\n res = JsonPointer.get(this.spec, ref);\n } catch (e) {// do nothing\n }\n\n return res || {};\n };\n /**\n * checks if the object is OpenAPI reference (contains $ref property)\n */\n\n isRef(obj: any): obj is OpenAPIRef {\n if (!obj) {\n return false;\n }\n\n return obj.$ref !== undefined && obj.$ref !== null;\n }\n /**\n * resets visited endpoints. should be run after\n */\n\n\n resetVisited() {\n if (process.env.NODE_ENV !== 'production') {\n // check in dev mode\n for (const k in this._refCounter._counter) {\n if (this._refCounter._counter[k] > 0) {\n console.warn('Not exited reference: ' + k);\n }\n }\n }\n\n this._refCounter = new RefCounter();\n }\n\n exitRef(ref: Referenced) {\n if (!this.isRef(ref)) {\n return;\n }\n\n this._refCounter.exit(ref.$ref);\n }\n /**\n * Resolve given reference object or return as is if it is not a reference\n * @param obj object to dereference\n * @param forceCircular whether to dereference even if it is circular ref\n */\n\n\n deref(obj: OpenAPIRef | T, forceCircular = false): T {\n if (this.isRef(obj)) {\n const resolved = this.byRef(obj.$ref)!;\n\n const visited = this._refCounter.visited(obj.$ref);\n\n this._refCounter.visit(obj.$ref);\n\n if (visited && !forceCircular) {\n // circular reference detected\n // tslint:disable-next-line\n return Object.assign({}, resolved, {\n 'x-circular-ref': true\n });\n } // deref again in case one more $ref is here\n\n\n if (this.isRef(resolved)) {\n const res = this.deref(resolved);\n this.exitRef(resolved);\n return res;\n }\n\n return resolved;\n }\n\n return obj;\n }\n\n shalowDeref(obj: OpenAPIRef | T): T {\n if (this.isRef(obj)) {\n return this.byRef(obj.$ref)!;\n }\n\n return obj;\n }\n /**\n * Merge allOf constraints.\n * @param schema schema with allOF\n * @param $ref pointer of the schema\n * @param forceCircular whether to dereference children even if it is a circular ref\n */\n\n\n mergeAllOf(schema: OpenAPISchema, $ref?: string, forceCircular: boolean = false, used$Refs = new Set()): MergedOpenAPISchema {\n if ($ref) {\n used$Refs.add($ref);\n }\n\n schema = this.hoistOneOfs(schema);\n\n if (schema.allOf === undefined) {\n return schema;\n }\n\n let receiver: MergedOpenAPISchema = { ...schema,\n allOf: undefined,\n parentRefs: [],\n title: schema.title || (isNamedDefinition($ref) ? JsonPointer.baseName($ref) : undefined)\n }; // avoid mutating inner objects\n\n if (receiver.properties !== undefined && typeof receiver.properties === 'object') {\n receiver.properties = { ...receiver.properties\n };\n }\n\n if (receiver.items !== undefined && typeof receiver.items === 'object') {\n receiver.items = { ...receiver.items\n };\n }\n\n const allOfSchemas = (schema.allOf.map(subSchema => {\n if (subSchema && subSchema.$ref && used$Refs.has(subSchema.$ref)) {\n return undefined;\n }\n\n const resolved = this.deref(subSchema, forceCircular);\n const subRef = subSchema.$ref || undefined;\n const subMerged = this.mergeAllOf(resolved, subRef, forceCircular, used$Refs);\n receiver.parentRefs!.push(...(subMerged.parentRefs || []));\n return {\n $ref: subRef,\n schema: subMerged\n };\n }).filter(child => child !== undefined) as Array<{\n $ref: string | undefined;\n schema: MergedOpenAPISchema;\n }>);\n\n for (const {\n $ref: subSchemaRef,\n schema: subSchema\n } of allOfSchemas) {\n if (receiver.type !== subSchema.type && receiver.type !== undefined && subSchema.type !== undefined) {\n throw new Error(`Incompatible types in allOf at \"${$ref}\"`);\n }\n\n if (subSchema.type !== undefined) {\n receiver.type = subSchema.type;\n }\n\n if (subSchema.properties !== undefined) {\n receiver.properties = receiver.properties || {};\n\n for (const prop in subSchema.properties) {\n if (!receiver.properties[prop]) {\n receiver.properties[prop] = subSchema.properties[prop];\n } else {\n // merge inner properties\n receiver.properties[prop] = this.mergeAllOf({\n allOf: [receiver.properties[prop], subSchema.properties[prop]]\n }, $ref + '/properties/' + prop);\n }\n }\n }\n\n if (subSchema.items !== undefined) {\n receiver.items = receiver.items || {}; // merge inner properties\n\n receiver.items = this.mergeAllOf({\n allOf: [receiver.items, subSchema.items]\n }, $ref + '/items');\n }\n\n if (subSchema.required !== undefined) {\n receiver.required = (receiver.required || []).concat(subSchema.required);\n } // merge rest of constraints\n // TODO: do more intelligent merge\n\n\n receiver = { ...subSchema,\n ...receiver\n };\n\n if (subSchemaRef) {\n receiver.parentRefs!.push(subSchemaRef);\n\n if (receiver.title === undefined && isNamedDefinition(subSchemaRef)) {// this is not so correct behaviour. commented out for now\n // ref: https://github.com/Redocly/redoc/issues/601\n // receiver.title = JsonPointer.baseName(subSchemaRef);\n }\n }\n }\n\n return receiver;\n }\n /**\n * Find all derived definitions among #/components/schemas from any of $refs\n * returns map of definition pointer to definition name\n * @param $refs array of references to find derived from\n */\n\n\n findDerived($refs: string[]): Dict {\n const res: Dict = {};\n const schemas = this.spec.components && this.spec.components.schemas || {};\n\n for (const defName in schemas) {\n const def = this.deref(schemas[defName]);\n\n if (def.allOf !== undefined && def.allOf.find(obj => obj.$ref !== undefined && $refs.indexOf(obj.$ref) > -1)) {\n res['#/components/schemas/' + defName] = [def['x-discriminator-value'] || defName];\n }\n }\n\n return res;\n }\n\n exitParents(shema: MergedOpenAPISchema) {\n for (const parent$ref of shema.parentRefs || []) {\n this.exitRef({\n $ref: parent$ref\n });\n }\n }\n\n private hoistOneOfs(schema: OpenAPISchema) {\n if (schema.allOf === undefined) {\n return schema;\n }\n\n const allOf = schema.allOf;\n\n for (let i = 0; i < allOf.length; i++) {\n const sub = allOf[i];\n\n if (Array.isArray(sub.oneOf)) {\n const beforeAllOf = allOf.slice(0, i);\n const afterAllOf = allOf.slice(i + 1);\n return {\n oneOf: sub.oneOf.map(part => {\n const merged = this.mergeAllOf({\n allOf: [...beforeAllOf, part, ...afterAllOf]\n }); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n this.exitParents(merged);\n return merged;\n })\n };\n }\n }\n\n return schema;\n }\n\n}","import { OpenAPIExternalDocumentation, OpenAPISpec } from '../types';\nimport { ContentItemModel, MenuBuilder } from './MenuBuilder';\nimport { ApiInfoModel } from './models/ApiInfo';\nimport { SecuritySchemesModel } from './models/SecuritySchemes';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\n/**\n * Store that contains all the specification related information in the form of tree\n */\n\nexport class SpecStore {\n parser: OpenAPIParser;\n info: ApiInfoModel;\n externalDocs?: OpenAPIExternalDocumentation;\n contentItems: ContentItemModel[];\n securitySchemes: SecuritySchemesModel;\n\n constructor(spec: OpenAPISpec, specUrl: string | undefined, private options: RedocNormalizedOptions) {\n this.parser = new OpenAPIParser(spec, specUrl, options);\n this.info = new ApiInfoModel(this.parser);\n this.externalDocs = this.parser.spec.externalDocs;\n this.contentItems = MenuBuilder.buildStructure(this.parser, this.options);\n this.securitySchemes = new SecuritySchemesModel(this.parser);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPITag } from '../../types';\nimport { safeSlugify } from '../../utils';\nimport { MarkdownHeading, MarkdownRenderer } from '../MarkdownRenderer';\nimport { ContentItemModel } from '../MenuBuilder';\nimport { IMenuItem, MenuItemGroupType } from '../MenuStore';\n/**\n * Operations Group model ready to be used by components\n */\n\nexport class GroupModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type: MenuItemGroupType;\n items: ContentItemModel[] = [];\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false;\n depth: number;\n level: number; //#endregion\n\n constructor(type: MenuItemGroupType, tagOrGroup: OpenAPITag | MarkdownHeading, parent?: GroupModel) {\n // markdown headings already have ids calculated as they are needed for heading anchors\n this.id = (tagOrGroup as MarkdownHeading).id || type + '/' + safeSlugify(tagOrGroup.name);\n this.type = type;\n this.name = tagOrGroup['x-displayName'] || tagOrGroup.name;\n this.level = (tagOrGroup as MarkdownHeading).level || 1; // remove sections from markdown, same as in ApiInfo\n\n this.description = tagOrGroup.description || '';\n const items = (tagOrGroup as MarkdownHeading).items;\n\n if (items && items.length) {\n this.description = MarkdownRenderer.getTextBeforeHading(this.description, items[0].name);\n }\n\n this.parent = parent;\n this.externalDocs = (tagOrGroup as OpenAPITag).externalDocs; // groups are active (expanded) by default\n\n if (this.type === 'group') {\n this.expanded = true;\n }\n }\n\n @action\n activate() {\n this.active = true;\n }\n\n @action\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n\n this.expanded = true;\n }\n\n @action\n collapse() {\n // disallow collapsing groups\n if (this.type === 'group') {\n return;\n }\n\n this.expanded = false;\n }\n\n @action\n deactivate() {\n this.active = false;\n }\n\n}","import { OpenAPISecurityRequirement, OpenAPISecurityScheme } from '../../types';\nimport { SECURITY_SCHEMES_SECTION_PREFIX } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nexport interface SecurityScheme extends OpenAPISecurityScheme {\n id: string;\n sectionId: string;\n scopes: string[];\n}\nexport class SecurityRequirementModel {\n schemes: SecurityScheme[];\n\n constructor(requirement: OpenAPISecurityRequirement, parser: OpenAPIParser) {\n const schemes = parser.spec.components && parser.spec.components.securitySchemes || {};\n this.schemes = (Object.keys(requirement || {}).map(id => {\n const scheme = parser.deref(schemes[id]);\n const scopes = requirement[id] || [];\n\n if (!scheme) {\n console.warn(`Non existing security scheme referenced: ${id}. Skipping`);\n return undefined;\n }\n\n return { ...scheme,\n id,\n sectionId: SECURITY_SCHEMES_SECTION_PREFIX + id,\n scopes\n };\n }).filter(scheme => scheme !== undefined) as SecurityScheme[]);\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIExternalDocumentation, OpenAPISchema, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MergedOpenAPISchema } from '../';\nimport { detectType, extractExtensions, humanizeConstraints, isNamedDefinition, isPrimitiveType, JsonPointer, pluralizeType, sortByField, sortByRequired } from '../../utils/';\nimport { l } from '../Labels'; // TODO: refactor this model, maybe use getters instead of copying all the values\n\nexport class SchemaModel {\n pointer: string;\n type: string;\n displayType: string;\n typePrefix: string = '';\n title: string;\n description: string;\n externalDocs?: OpenAPIExternalDocumentation;\n isPrimitive: boolean;\n isCircular: boolean = false;\n format?: string;\n displayFormat?: string;\n nullable: boolean;\n deprecated: boolean;\n pattern?: string;\n example?: any;\n enum: any[];\n default?: any;\n readOnly: boolean;\n writeOnly: boolean;\n constraints: string[];\n fields?: FieldModel[];\n items?: SchemaModel;\n oneOf?: SchemaModel[];\n oneOfType: string;\n discriminatorProp: string;\n @observable\n activeOneOf: number = 0;\n rawSchema: OpenAPISchema;\n schema: MergedOpenAPISchema;\n extensions?: Dict;\n /**\n * @param isChild if schema discriminator Child\n * When true forces dereferencing in allOfs even if circular\n */\n\n constructor(parser: OpenAPIParser, schemaOrRef: Referenced, pointer: string, private options: RedocNormalizedOptions, isChild: boolean = false) {\n this.pointer = schemaOrRef.$ref || pointer || '';\n this.rawSchema = parser.deref(schemaOrRef);\n this.schema = parser.mergeAllOf(this.rawSchema, this.pointer, isChild);\n this.init(parser, isChild);\n parser.exitRef(schemaOrRef);\n parser.exitParents(this.schema);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(this.schema, options.showExtensions);\n }\n }\n /**\n * Set specified alternative schema as active\n * @param idx oneOf index\n */\n\n\n @action\n activateOneOf(idx: number) {\n this.activeOneOf = idx;\n }\n\n init(parser: OpenAPIParser, isChild: boolean) {\n const schema = this.schema;\n this.isCircular = schema['x-circular-ref'];\n this.title = schema.title || isNamedDefinition(this.pointer) && JsonPointer.baseName(this.pointer) || '';\n this.description = schema.description || '';\n this.type = schema.type || detectType(schema);\n this.format = schema.format;\n this.nullable = !!schema.nullable;\n this.enum = schema.enum || [];\n this.example = schema.example;\n this.deprecated = !!schema.deprecated;\n this.pattern = schema.pattern;\n this.externalDocs = schema.externalDocs;\n this.constraints = humanizeConstraints(schema);\n this.displayType = this.type;\n this.displayFormat = this.format;\n this.isPrimitive = isPrimitiveType(schema, this.type);\n this.default = schema.default;\n this.readOnly = !!schema.readOnly;\n this.writeOnly = !!schema.writeOnly;\n\n if (this.isCircular) {\n return;\n }\n\n if (!isChild && getDiscriminator(schema) !== undefined) {\n this.initDiscriminator(schema, parser);\n return;\n } else if (isChild && Array.isArray(schema.oneOf) && schema.oneOf.find(s => s.$ref === this.pointer)) {\n // we hit allOf of the schema with the parent discriminator\n delete schema.oneOf;\n }\n\n if (schema.oneOf !== undefined) {\n this.initOneOf(schema.oneOf, parser);\n this.oneOfType = 'One of';\n\n if (schema.anyOf !== undefined) {\n console.warn(`oneOf and anyOf are not supported on the same level. Skipping anyOf at ${this.pointer}`);\n }\n\n return;\n }\n\n if (schema.anyOf !== undefined) {\n this.initOneOf(schema.anyOf, parser);\n this.oneOfType = 'Any of';\n return;\n }\n\n if (this.type === 'object') {\n this.fields = buildFields(parser, schema, this.pointer, this.options);\n } else if (this.type === 'array' && schema.items) {\n this.items = new SchemaModel(parser, schema.items, this.pointer + '/items', this.options);\n this.displayType = pluralizeType(this.items.displayType);\n this.displayFormat = this.items.format;\n this.typePrefix = this.items.typePrefix + l('arrayOf');\n this.title = this.title || this.items.title;\n this.isPrimitive = this.items.isPrimitive;\n\n if (this.example === undefined && this.items.example !== undefined) {\n this.example = [this.items.example];\n }\n\n if (this.items.isPrimitive) {\n this.enum = this.items.enum;\n }\n }\n }\n\n private initOneOf(oneOf: OpenAPISchema[], parser: OpenAPIParser) {\n this.oneOf = oneOf!.map((variant, idx) => {\n const derefVariant = parser.deref(variant);\n const merged = parser.mergeAllOf(derefVariant, this.pointer + '/oneOf/' + idx); // try to infer title\n\n const title = isNamedDefinition(variant.$ref) && !merged.title ? JsonPointer.baseName(variant.$ref) : merged.title;\n const schema = new SchemaModel(parser, ( // merge base schema into each of oneOf's subschemas\n { // variant may already have allOf so merge it to not get overwritten\n ...merged,\n title,\n allOf: [{ ...this.schema,\n oneOf: undefined,\n anyOf: undefined\n }]\n } as OpenAPISchema), this.pointer + '/oneOf/' + idx, this.options);\n parser.exitRef(variant); // each oneOf should be independent so exiting all the parent refs\n // otherwise it will cause false-positive recursive detection\n\n parser.exitParents(merged);\n return schema;\n });\n this.displayType = this.oneOf.map(schema => {\n let name = schema.typePrefix + (schema.title ? `${schema.title} (${schema.displayType})` : schema.displayType);\n\n if (name.indexOf(' or ') > -1) {\n name = `(${name})`;\n }\n\n return name;\n }).join(' or ');\n }\n\n private initDiscriminator(schema: OpenAPISchema & {\n parentRefs?: string[];\n }, parser: OpenAPIParser) {\n const discriminator = getDiscriminator(schema)!;\n this.discriminatorProp = discriminator.propertyName;\n const implicitInversedMapping = parser.findDerived([...(schema.parentRefs || []), this.pointer]);\n\n if (schema.oneOf) {\n for (const variant of schema.oneOf) {\n if (variant.$ref === undefined) {\n continue;\n }\n\n const name = JsonPointer.baseName(variant.$ref);\n implicitInversedMapping[variant.$ref] = name;\n }\n }\n\n const mapping = discriminator.mapping || {};\n const explicitInversedMapping = {};\n\n for (const name in mapping) {\n const $ref = mapping[name];\n\n if (Array.isArray(explicitInversedMapping[$ref])) {\n explicitInversedMapping[$ref].push(name);\n } else {\n // overrides implicit mapping here\n explicitInversedMapping[$ref] = [name];\n }\n }\n\n const inversedMapping = { ...implicitInversedMapping,\n ...explicitInversedMapping\n };\n const refs: Array<{\n $ref;\n name;\n }> = [];\n\n for (const $ref of Object.keys(inversedMapping)) {\n const names = inversedMapping[$ref];\n\n if (Array.isArray(names)) {\n for (const name of names) {\n refs.push({\n $ref,\n name\n });\n }\n } else {\n refs.push({\n $ref,\n name: names\n });\n }\n }\n\n this.oneOf = refs.map(({\n $ref,\n name\n }) => {\n const innerSchema = new SchemaModel(parser, parser.byRef($ref)!, $ref, this.options, true);\n innerSchema.title = name;\n return innerSchema;\n });\n }\n\n}\n\nfunction buildFields(parser: OpenAPIParser, schema: OpenAPISchema, $ref: string, options: RedocNormalizedOptions): FieldModel[] {\n const props = schema.properties || {};\n const additionalProps = schema.additionalProperties;\n const defaults = schema.default || {};\n let fields = Object.keys(props || []).map(fieldName => {\n let field = props[fieldName];\n\n if (!field) {\n console.warn(`Field \"${fieldName}\" is invalid, skipping.\\n Field must be an object but got ${typeof field} at \"${$ref}\"`);\n field = {};\n }\n\n const required = schema.required === undefined ? false : schema.required.indexOf(fieldName) > -1;\n return new FieldModel(parser, {\n name: fieldName,\n required,\n schema: { ...field,\n default: field.default === undefined ? defaults[fieldName] : field.default\n }\n }, $ref + '/properties/' + fieldName, options);\n });\n\n if (options.sortPropsAlphabetically) {\n fields = sortByField(fields, 'name');\n }\n\n if (options.requiredPropsFirst) {\n // if not sort alphabetically sort in the order from required keyword\n fields = sortByRequired(fields, !options.sortPropsAlphabetically ? schema.required : undefined);\n }\n\n if (typeof additionalProps === 'object' || additionalProps === true) {\n fields.push(new FieldModel(parser, {\n name: (typeof additionalProps === 'object' ? additionalProps['x-additionalPropertiesName'] || 'property name' : 'property name').concat('*'),\n required: false,\n schema: additionalProps === true ? {} : additionalProps,\n kind: 'additionalProperties'\n }, $ref + '/additionalProperties', options));\n }\n\n return fields;\n}\n\nfunction getDiscriminator(schema: OpenAPISchema): OpenAPISchema['discriminator'] {\n return schema.discriminator || schema['x-discriminator'];\n}","import { action, observable } from 'mobx';\nimport { OpenAPIParameter, OpenAPIParameterLocation, OpenAPIParameterStyle, Referenced } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { extractExtensions } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { SchemaModel } from './Schema';\n\nfunction getDefaultStyleValue(parameterLocation: OpenAPIParameterLocation): OpenAPIParameterStyle {\n switch (parameterLocation) {\n case 'header':\n return 'simple';\n\n case 'query':\n return 'form';\n\n case 'path':\n return 'simple';\n\n default:\n return 'form';\n }\n}\n/**\n * Field or Parameter model ready to be used by components\n */\n\n\nexport class FieldModel {\n @observable\n expanded: boolean | undefined;\n schema: SchemaModel;\n name: string;\n required: boolean;\n description: string;\n example?: string;\n deprecated: boolean;\n in?: OpenAPIParameterLocation;\n kind: string;\n extensions?: Dict;\n explode: boolean;\n style?: OpenAPIParameterStyle;\n serializationMime?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced & {\n name?: string;\n kind?: string;\n }, pointer: string, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.kind = infoOrRef.kind || 'field';\n this.name = infoOrRef.name || info.name;\n this.in = info.in;\n this.required = !!info.required;\n let fieldSchema = info.schema;\n let serializationMime = '';\n\n if (!fieldSchema && info.in && info.content) {\n serializationMime = Object.keys(info.content)[0];\n fieldSchema = info.content[serializationMime] && info.content[serializationMime].schema;\n }\n\n this.schema = new SchemaModel(parser, fieldSchema || {}, pointer, options);\n this.description = info.description === undefined ? this.schema.description || '' : info.description;\n this.example = info.example || this.schema.example;\n\n if (serializationMime) {\n this.serializationMime = serializationMime;\n } else if (info.style) {\n this.style = info.style;\n } else if (this.in) {\n this.style = getDefaultStyleValue(this.in);\n }\n\n this.explode = !!info.explode;\n this.deprecated = info.deprecated === undefined ? !!this.schema.deprecated : info.deprecated;\n parser.exitRef(infoOrRef);\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(info, options.showExtensions);\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { resolve as urlResolve } from 'url';\nimport { OpenAPIEncoding, OpenAPIExample, Referenced } from '../../types';\nimport { isFormUrlEncoded, isJsonLike, urlFormEncodePayload } from '../../utils/openapi';\nimport { OpenAPIParser } from '../OpenAPIParser';\nconst externalExamplesCache: {\n [url: string]: Promise;\n} = {};\nexport class ExampleModel {\n value: any;\n summary?: string;\n description?: string;\n externalValueUrl?: string;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, public mime: string, encoding?: {\n [field: string]: OpenAPIEncoding;\n }) {\n const example = parser.deref(infoOrRef);\n this.value = example.value;\n this.summary = example.summary;\n this.description = example.description;\n\n if (example.externalValue) {\n this.externalValueUrl = urlResolve(parser.specUrl || '', example.externalValue);\n }\n\n parser.exitRef(infoOrRef);\n\n if (isFormUrlEncoded(mime) && this.value && typeof this.value === 'object') {\n this.value = urlFormEncodePayload(this.value, encoding);\n }\n }\n\n getExternalValue(mimeType: string): Promise {\n if (!this.externalValueUrl) {\n return Promise.resolve(undefined);\n }\n\n if (externalExamplesCache[this.externalValueUrl]) {\n return externalExamplesCache[this.externalValueUrl];\n }\n\n externalExamplesCache[this.externalValueUrl] = fetch(this.externalValueUrl).then(res => {\n return res.text().then(txt => {\n if (!res.ok) {\n return Promise.reject(new Error(txt));\n }\n\n if (isJsonLike(mimeType)) {\n try {\n return JSON.parse(txt);\n } catch (e) {\n return txt;\n }\n } else {\n return txt;\n }\n });\n });\n return externalExamplesCache[this.externalValueUrl];\n }\n\n}","import * as Sampler from 'openapi-sampler';\nimport { OpenAPIMediaType } from '../../types';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { SchemaModel } from './Schema';\nimport { isJsonLike, mapValues } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { ExampleModel } from './Example';\nexport class MediaTypeModel {\n examples?: {\n [name: string]: ExampleModel;\n };\n schema?: SchemaModel;\n name: string;\n isRequestType: boolean;\n onlyRequiredInSamples: boolean;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, name: string, isRequestType: boolean, info: OpenAPIMediaType, options: RedocNormalizedOptions) {\n this.name = name;\n this.isRequestType = isRequestType;\n this.schema = info.schema && new SchemaModel(parser, info.schema, '', options);\n this.onlyRequiredInSamples = options.onlyRequiredInSamples;\n\n if (info.examples !== undefined) {\n this.examples = mapValues(info.examples, example => new ExampleModel(parser, example, name, info.encoding));\n } else if (info.example !== undefined) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: parser.shalowDeref(info.example)\n }, name, info.encoding)\n };\n } else if (isJsonLike(name)) {\n this.generateExample(parser, info);\n }\n }\n\n generateExample(parser: OpenAPIParser, info: OpenAPIMediaType) {\n const samplerOptions = {\n skipReadOnly: this.isRequestType,\n skipNonRequired: this.isRequestType && this.onlyRequiredInSamples,\n skipWriteOnly: !this.isRequestType\n };\n\n if (this.schema && this.schema.oneOf) {\n this.examples = {};\n\n for (const subSchema of this.schema.oneOf) {\n const sample = Sampler.sample(subSchema.rawSchema, samplerOptions, parser.spec);\n\n if (this.schema.discriminatorProp && typeof sample === 'object' && sample) {\n sample[this.schema.discriminatorProp] = subSchema.title;\n }\n\n this.examples[subSchema.title] = new ExampleModel(parser, {\n value: sample\n }, this.name, info.encoding);\n }\n } else if (this.schema) {\n this.examples = {\n default: new ExampleModel(parser, {\n value: Sampler.sample(info.schema, samplerOptions, parser.spec)\n }, this.name, info.encoding)\n };\n }\n }\n\n}","import { action, computed, observable } from 'mobx';\nimport { OpenAPIMediaType } from '../../types';\nimport { MediaTypeModel } from './MediaType';\nimport { mergeSimilarMediaTypes } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\n/**\n * MediaContent model ready to be sued by React components\n * Contains multiple MediaTypes and keeps track of the currently active one\n */\n\nexport class MediaContentModel {\n mediaTypes: MediaTypeModel[];\n @observable\n activeMimeIdx = 0;\n /**\n * @param isRequestType needed to know if skipe RO/RW fields in objects\n */\n\n constructor(parser: OpenAPIParser, info: Dict, public isRequestType: boolean, options: RedocNormalizedOptions) {\n if (options.unstable_ignoreMimeParameters) {\n info = mergeSimilarMediaTypes(info);\n }\n\n this.mediaTypes = Object.keys(info).map(name => {\n const mime = info[name]; // reset deref cache just in case something is left there\n\n parser.resetVisited();\n return new MediaTypeModel(parser, name, isRequestType, mime, options);\n });\n }\n /**\n * Set active media type by index\n * @param idx media type index\n */\n\n\n @action\n activate(idx: number) {\n this.activeMimeIdx = idx;\n }\n\n @computed\n get active() {\n return this.mediaTypes[this.activeMimeIdx];\n }\n\n get hasSample(): boolean {\n return this.mediaTypes.filter(mime => !!mime.examples).length > 0;\n }\n\n}","import { OpenAPIRequestBody, Referenced } from '../../types';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { MediaContentModel } from './MediaContent';\nexport class RequestBodyModel {\n description: string;\n required: boolean;\n content?: MediaContentModel;\n\n constructor(parser: OpenAPIParser, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n const info = parser.deref(infoOrRef);\n this.description = info.description || '';\n this.required = !!info.required;\n parser.exitRef(infoOrRef);\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, true, options);\n }\n }\n\n}","import { action, observable } from 'mobx';\nimport { OpenAPIResponse, Referenced } from '../../types';\nimport { getStatusCodeType } from '../../utils';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nexport class ResponseModel {\n @observable\n expanded: boolean;\n content?: MediaContentModel;\n code: string;\n summary: string;\n description: string;\n type: string;\n headers: FieldModel[] = [];\n\n constructor(parser: OpenAPIParser, code: string, defaultAsError: boolean, infoOrRef: Referenced, options: RedocNormalizedOptions) {\n this.expanded = options.expandResponses === 'all' || options.expandResponses[code];\n const info = parser.deref(infoOrRef);\n parser.exitRef(infoOrRef);\n this.code = code;\n\n if (info.content !== undefined) {\n this.content = new MediaContentModel(parser, info.content, false, options);\n }\n\n if (info['x-summary'] !== undefined) {\n this.summary = info['x-summary'];\n this.description = info.description || '';\n } else {\n this.summary = info.description || '';\n this.description = '';\n }\n\n this.type = getStatusCodeType(code, defaultAsError);\n const headers = info.headers;\n\n if (headers !== undefined) {\n this.headers = Object.keys(headers).map(name => {\n const header = headers[name];\n return new FieldModel(parser, { ...header,\n name\n }, '', options);\n });\n }\n }\n\n @action\n toggle() {\n this.expanded = !this.expanded;\n }\n\n}","import { action, observable } from 'mobx';\nimport { IMenuItem } from '../MenuStore';\nimport { GroupModel } from './Group.model';\nimport { SecurityRequirementModel } from './SecurityRequirement';\nimport { OpenAPIExternalDocumentation, OpenAPIPath, OpenAPIServer, OpenAPIXCodeSample } from '../../types';\nimport { extractExtensions, getOperationSummary, getStatusCodeType, isStatusCode, JsonPointer, memoize, mergeParams, normalizeServers, sortByField, sortByRequired } from '../../utils';\nimport { ContentItemModel, ExtendedOpenAPIOperation } from '../MenuBuilder';\nimport { OpenAPIParser } from '../OpenAPIParser';\nimport { RedocNormalizedOptions } from '../RedocNormalizedOptions';\nimport { FieldModel } from './Field';\nimport { MediaContentModel } from './MediaContent';\nimport { RequestBodyModel } from './RequestBody';\nimport { ResponseModel } from './Response';\ninterface XPayloadSample {\n lang: 'payload';\n label: string;\n requestBodyContent: MediaContentModel;\n source: string;\n}\nexport function isPayloadSample(sample: XPayloadSample | OpenAPIXCodeSample): sample is XPayloadSample {\n return sample.lang === 'payload' && (sample as any).requestBodyContent;\n}\n/**\n * Operation model ready to be used by components\n */\n\nexport class OperationModel implements IMenuItem {\n //#region IMenuItem fields\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n type = ('operation' as 'operation');\n parent?: GroupModel;\n externalDocs?: OpenAPIExternalDocumentation;\n items: ContentItemModel[] = [];\n depth: number;\n @observable\n ready?: boolean = true;\n @observable\n active: boolean = false;\n @observable\n expanded: boolean = false; //#endregion\n\n pointer: string;\n operationId?: string;\n httpVerb: string;\n deprecated: boolean;\n path: string;\n servers: OpenAPIServer[];\n security: SecurityRequirementModel[];\n extensions: Dict;\n\n constructor(private parser: OpenAPIParser, private operationSpec: ExtendedOpenAPIOperation, parent: GroupModel | undefined, private options: RedocNormalizedOptions) {\n this.pointer = JsonPointer.compile(['paths', operationSpec.pathName, operationSpec.httpVerb]);\n this.id = operationSpec.operationId !== undefined ? 'operation/' + operationSpec.operationId : parent !== undefined ? parent.id + this.pointer : this.pointer;\n this.name = getOperationSummary(operationSpec);\n this.description = operationSpec.description;\n this.parent = parent;\n this.externalDocs = operationSpec.externalDocs;\n this.deprecated = !!operationSpec.deprecated;\n this.httpVerb = operationSpec.httpVerb;\n this.deprecated = !!operationSpec.deprecated;\n this.operationId = operationSpec.operationId;\n this.path = operationSpec.pathName;\n const pathInfo = parser.byRef(JsonPointer.compile(['paths', operationSpec.pathName]));\n this.servers = normalizeServers(parser.specUrl, operationSpec.servers || pathInfo && pathInfo.servers || parser.spec.servers || []);\n this.security = (operationSpec.security || parser.spec.security || []).map(security => new SecurityRequirementModel(security, parser));\n\n if (options.showExtensions) {\n this.extensions = extractExtensions(operationSpec, options.showExtensions);\n }\n }\n /**\n * set operation as active (used by side menu)\n */\n\n\n @action\n activate() {\n this.active = true;\n }\n /**\n * set operation as inactive (used by side menu)\n */\n\n\n @action\n deactivate() {\n this.active = false;\n }\n\n expand() {\n if (this.parent) {\n this.parent.expand();\n }\n }\n\n collapse() {\n /* do nothing */\n }\n\n @memoize\n get requestBody() {\n return this.operationSpec.requestBody && new RequestBodyModel(this.parser, this.operationSpec.requestBody, this.options);\n }\n\n @memoize\n get codeSamples() {\n let samples: Array = this.operationSpec['x-code-samples'] || [];\n const requestBodyContent = this.requestBody && this.requestBody.content;\n\n if (requestBodyContent && requestBodyContent.hasSample) {\n const insertInx = Math.min(samples.length, this.options.payloadSampleIdx);\n samples = [...samples.slice(0, insertInx), {\n lang: 'payload',\n label: 'Payload',\n source: '',\n requestBodyContent\n }, ...samples.slice(insertInx)];\n }\n\n return samples;\n }\n\n @memoize\n get parameters() {\n const _parameters = mergeParams(this.parser, this.operationSpec.pathParameters, this.operationSpec.parameters // TODO: fix pointer\n ).map(paramOrRef => new FieldModel(this.parser, paramOrRef, this.pointer, this.options));\n\n if (this.options.sortPropsAlphabetically) {\n return sortByField(_parameters, 'name');\n }\n\n if (this.options.requiredPropsFirst) {\n return sortByRequired(_parameters);\n }\n\n return _parameters;\n }\n\n @memoize\n get responses() {\n let hasSuccessResponses = false;\n return Object.keys(this.operationSpec.responses || []).filter(code => {\n if (code === 'default') {\n return true;\n }\n\n if (getStatusCodeType(code) === 'success') {\n hasSuccessResponses = true;\n }\n\n return isStatusCode(code);\n }) // filter out other props (e.g. x-props)\n .map(code => {\n return new ResponseModel(this.parser, code, hasSuccessResponses, this.operationSpec.responses[code], this.options);\n });\n }\n\n}","export * from '../SpecStore';\nexport * from './Group.model';\nexport * from './Operation';\nexport * from './RequestBody';\nexport * from './Example';\nexport * from './MediaContent';\nexport * from './MediaType';\nexport * from './Response';\nexport * from './Schema';\nexport * from './Field';\nexport * from './ApiInfo';\nexport * from './SecuritySchemes';","import { OpenAPIOperation, OpenAPIParameter, OpenAPISpec, OpenAPITag, Referenced } from '../types';\nimport { isOperationName, SECURITY_DEFINITIONS_COMPONENT_NAME, setSecuritySchemePrefix } from '../utils';\nimport { MarkdownRenderer } from './MarkdownRenderer';\nimport { GroupModel, OperationModel } from './models';\nimport { OpenAPIParser } from './OpenAPIParser';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nexport type TagInfo = OpenAPITag & {\n operations: ExtendedOpenAPIOperation[];\n used?: boolean;\n};\nexport type ExtendedOpenAPIOperation = {\n pathName: string;\n httpVerb: string;\n pathParameters: Array>;\n} & OpenAPIOperation;\nexport type TagsInfoMap = Dict;\nexport interface TagGroup {\n name: string;\n tags: string[];\n}\nexport const GROUP_DEPTH = 0;\nexport type ContentItemModel = GroupModel | OperationModel;\nexport class MenuBuilder {\n /**\n * Builds page content structure based on tags\n */\n static buildStructure(parser: OpenAPIParser, options: RedocNormalizedOptions): ContentItemModel[] {\n const spec = parser.spec;\n const items: ContentItemModel[] = [];\n const tagsMap = MenuBuilder.getTagsWithOperations(spec);\n items.push(...MenuBuilder.addMarkdownItems(spec.info.description || '', undefined, 1, options));\n\n if (spec['x-tagGroups'] && spec['x-tagGroups'].length > 0) {\n items.push(...MenuBuilder.getTagGroupsItems(parser, undefined, spec['x-tagGroups'], tagsMap, options));\n } else {\n items.push(...MenuBuilder.getTagsItems(parser, tagsMap, undefined, undefined, options));\n }\n\n return items;\n }\n /**\n * extracts items from markdown description\n * @param description - markdown source\n */\n\n\n static addMarkdownItems(description: string, parent: GroupModel | undefined, initialDepth: number, options: RedocNormalizedOptions): ContentItemModel[] {\n const renderer = new MarkdownRenderer(options);\n const headings = renderer.extractHeadings(description || '');\n\n if (headings.length && parent && parent.description) {\n parent.description = MarkdownRenderer.getTextBeforeHading(parent.description, headings[0].name);\n }\n\n const mapHeadingsDeep = (_parent, items, depth = 1) => items.map(heading => {\n const group = new GroupModel('section', heading, _parent);\n group.depth = depth;\n\n if (heading.items) {\n group.items = mapHeadingsDeep(group, heading.items, depth + 1);\n }\n\n if (MarkdownRenderer.containsComponent(group.description || '', SECURITY_DEFINITIONS_COMPONENT_NAME)) {\n setSecuritySchemePrefix(group.id + '/');\n }\n\n return group;\n });\n\n return mapHeadingsDeep(parent, headings, initialDepth);\n }\n /**\n * Returns array of OperationsGroup items for the tag groups (x-tagGroups vendor extension)\n * @param tags value of `x-tagGroups` vendor extension\n */\n\n\n static getTagGroupsItems(parser: OpenAPIParser, parent: GroupModel | undefined, groups: TagGroup[], tags: TagsInfoMap, options: RedocNormalizedOptions): GroupModel[] {\n const res: GroupModel[] = [];\n\n for (const group of groups) {\n const item = new GroupModel('group', group, parent);\n item.depth = GROUP_DEPTH;\n item.items = MenuBuilder.getTagsItems(parser, tags, item, group, options);\n res.push(item);\n } // TODO checkAllTagsUsedInGroups\n\n\n return res;\n }\n /**\n * Returns array of OperationsGroup items for the tags of the group or for all tags\n * @param tagsMap tags info returned from `getTagsWithOperations`\n * @param parent parent item\n * @param group group which this tag belongs to. if not provided gets all tags\n */\n\n\n static getTagsItems(parser: OpenAPIParser, tagsMap: TagsInfoMap, parent: GroupModel | undefined, group: TagGroup | undefined, options: RedocNormalizedOptions): ContentItemModel[] {\n let tagNames;\n\n if (group === undefined) {\n tagNames = Object.keys(tagsMap); // all tags\n } else {\n tagNames = group.tags;\n }\n\n const tags = tagNames.map(tagName => {\n if (!tagsMap[tagName]) {\n console.warn(`Non-existing tag \"${tagName}\" is added to the group \"${group!.name}\"`);\n return null;\n }\n\n tagsMap[tagName].used = true;\n return tagsMap[tagName];\n });\n const res: Array = [];\n\n for (const tag of tags) {\n if (!tag) {\n continue;\n }\n\n const item = new GroupModel('tag', tag, parent);\n item.depth = GROUP_DEPTH + 1; // don't put empty tag into content, instead put its operations\n\n if (tag.name === '') {\n const items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, undefined, tag, item.depth + 1, options)];\n res.push(...items);\n continue;\n }\n\n item.items = [...MenuBuilder.addMarkdownItems(tag.description || '', item, item.depth + 1, options), ...this.getOperationsItems(parser, item, tag, item.depth + 1, options)];\n res.push(item);\n }\n\n return res;\n }\n /**\n * Returns array of Operation items for the tag\n * @param parent parent OperationsGroup\n * @param tag tag info returned from `getTagsWithOperations`\n * @param depth items depth\n */\n\n\n static getOperationsItems(parser: OpenAPIParser, parent: GroupModel | undefined, tag: TagInfo, depth: number, options: RedocNormalizedOptions): OperationModel[] {\n if (tag.operations.length === 0) {\n return [];\n }\n\n const res: OperationModel[] = [];\n\n for (const operationInfo of tag.operations) {\n const operation = new OperationModel(parser, operationInfo, parent, options);\n operation.depth = depth;\n res.push(operation);\n }\n\n return res;\n }\n /**\n * collects tags and maps each tag to list of operations belonging to this tag\n */\n\n\n static getTagsWithOperations(spec: OpenAPISpec): TagsInfoMap {\n const tags: TagsInfoMap = {};\n\n for (const tag of spec.tags || []) {\n tags[tag.name] = { ...tag,\n operations: []\n };\n }\n\n const paths = spec.paths;\n\n for (const pathName of Object.keys(paths)) {\n const path = paths[pathName];\n const operations = Object.keys(path).filter(isOperationName);\n\n for (const operationName of operations) {\n const operationInfo = path[operationName];\n let operationTags = operationInfo.tags;\n\n if (!operationTags || !operationTags.length) {\n // empty tag\n operationTags = [''];\n }\n\n for (const tagName of operationTags) {\n let tag = tags[tagName];\n\n if (tag === undefined) {\n tag = {\n name: tagName,\n operations: []\n };\n tags[tagName] = tag;\n }\n\n if (tag['x-traitTag']) {\n continue;\n }\n\n tag.operations.push({ ...operationInfo,\n pathName,\n httpVerb: operationName,\n pathParameters: path.parameters || []\n });\n }\n }\n }\n\n return tags;\n }\n\n}","import { action, observable } from 'mobx';\nimport { querySelector } from '../utils/dom';\nimport { SpecStore } from './models';\nimport { history as historyInst, HistoryService } from './HistoryService';\nimport { ScrollService } from './ScrollService';\nimport { flattenByProp, SECURITY_SCHEMES_SECTION_PREFIX } from '../utils';\nimport { GROUP_DEPTH } from './MenuBuilder';\nexport type MenuItemGroupType = 'group' | 'tag' | 'section';\nexport type MenuItemType = MenuItemGroupType | 'operation';\n/** Generic interface for MenuItems */\n\nexport interface IMenuItem {\n id: string;\n absoluteIdx?: number;\n name: string;\n description?: string;\n depth: number;\n active: boolean;\n expanded: boolean;\n items: IMenuItem[];\n parent?: IMenuItem;\n deprecated?: boolean;\n type: MenuItemType;\n deactivate(): void;\n activate(): void;\n collapse(): void;\n expand(): void;\n}\nexport const SECTION_ATTR = 'data-section-id';\n/**\n * Stores all side-menu related information\n */\n\nexport class MenuStore {\n /**\n * Statically try update scroll position\n * Used before hydrating from server-side rendered html to scroll page faster\n */\n static updateOnHistory(id: string = historyInst.currentId, scroll: ScrollService) {\n if (!id) {\n return;\n }\n\n scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n /**\n * active item absolute index (when flattened). -1 means nothing is selected\n */\n\n\n @observable\n activeItemIdx: number = -1;\n /**\n * whether sidebar with menu is opened or not\n */\n\n @observable\n sideBarOpened: boolean = false;\n items: IMenuItem[];\n flatItems: IMenuItem[];\n /**\n * cached flattened menu items to support absolute indexing\n */\n\n private _unsubscribe: () => void;\n private _hashUnsubscribe: () => void;\n /**\n *\n * @param spec [SpecStore](#SpecStore) which contains page content structure\n * @param scroll scroll service instance used by this menu\n */\n\n constructor(spec: SpecStore, public scroll: ScrollService, public history: HistoryService) {\n this.items = spec.contentItems;\n this.flatItems = flattenByProp(this.items || [], 'items');\n this.flatItems.forEach((item, idx) => item.absoluteIdx = idx);\n this.subscribe();\n }\n\n subscribe() {\n this._unsubscribe = this.scroll.subscribe(this.updateOnScroll);\n this._hashUnsubscribe = this.history.subscribe(this.updateOnHistory);\n }\n\n @action\n toggleSidebar() {\n this.sideBarOpened = this.sideBarOpened ? false : true;\n }\n\n @action\n closeSidebar() {\n this.sideBarOpened = false;\n }\n /**\n * update active items on scroll\n * @param isScrolledDown whether last scroll was downside\n */\n\n\n updateOnScroll = (isScrolledDown: boolean): void => {\n const step = isScrolledDown ? 1 : -1;\n let itemIdx = this.activeItemIdx;\n\n while (true) {\n if (itemIdx === -1 && !isScrolledDown) {\n break;\n }\n\n if (itemIdx >= this.flatItems.length - 1 && isScrolledDown) {\n break;\n }\n\n if (isScrolledDown) {\n const el = this.getElementAtOrFirstChild(itemIdx + 1);\n\n if (this.scroll.isElementBellow(el)) {\n break;\n }\n } else {\n const el = this.getElementAt(itemIdx);\n\n if (this.scroll.isElementAbove(el)) {\n break;\n }\n }\n\n itemIdx += step;\n }\n\n this.activate(this.flatItems[itemIdx], true, true);\n };\n /**\n * update active items on hash change\n * @param id current hash\n */\n\n updateOnHistory = (id: string = this.history.currentId) => {\n if (!id) {\n return;\n }\n\n let item: IMenuItem | undefined;\n item = this.flatItems.find(i => i.id === id);\n\n if (item) {\n this.activateAndScroll(item, false);\n } else {\n if (id.startsWith(SECURITY_SCHEMES_SECTION_PREFIX)) {\n item = this.flatItems.find(i => SECURITY_SCHEMES_SECTION_PREFIX.startsWith(i.id));\n this.activate(item);\n }\n\n this.scroll.scrollIntoViewBySelector(`[${SECTION_ATTR}=\"${id}\"]`);\n }\n };\n /**\n * get section/operation DOM Node related to the item or null if it doesn't exist\n * @param idx item absolute index\n */\n\n getElementAt(idx: number): Element | null {\n const item = this.flatItems[idx];\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * get section/operation DOM Node related to the item or if it is group item, returns first item of the group\n * @param idx item absolute index\n */\n\n\n getElementAtOrFirstChild(idx: number): Element | null {\n let item = this.flatItems[idx];\n\n if (item && item.type === 'group') {\n item = item.items[0];\n }\n\n return item && querySelector(`[${SECTION_ATTR}=\"${item.id}\"]`) || null;\n }\n /**\n * current active item\n */\n\n\n get activeItem(): IMenuItem {\n return this.flatItems[this.activeItemIdx] || undefined;\n }\n\n getItemById = (id: string) => {\n return this.flatItems.find(item => item.id === id);\n };\n /**\n * activate menu item\n * @param item item to activate\n * @param updateLocation [true] whether to update location\n * @param rewriteHistory [false] whether to rewrite browser history (do not create new entry)\n */\n\n @action\n activate(item: IMenuItem | undefined, updateLocation: boolean = true, rewriteHistory: boolean = false) {\n if ((this.activeItem && this.activeItem.id) === (item && item.id)) {\n return;\n }\n\n if (item && item.type === 'group') {\n return;\n }\n\n this.deactivate(this.activeItem);\n\n if (!item) {\n this.history.replace('', rewriteHistory);\n return;\n } // do not allow activating group items\n // TODO: control over options\n\n\n if (item.depth <= GROUP_DEPTH) {\n return;\n }\n\n this.activeItemIdx = item.absoluteIdx!;\n\n if (updateLocation) {\n this.history.replace(item.id, rewriteHistory);\n }\n\n item.activate();\n item.expand();\n }\n /**\n * makes item and all the parents not active\n * @param item item to deactivate\n */\n\n\n deactivate(item: IMenuItem | undefined) {\n if (item === undefined) {\n return;\n }\n\n item.deactivate();\n\n while (item !== undefined) {\n item.collapse();\n item = item.parent;\n }\n }\n /**\n * activate menu item and scroll to it\n * @see MenuStore.activate\n */\n\n\n @action.bound\n activateAndScroll(item: IMenuItem | undefined, updateLocation?: boolean, rewriteHistory?: boolean) {\n // item here can be a copy from search results so find corresponding item from menu\n const menuItem = item && this.getItemById(item.id) || item;\n this.activate(menuItem, updateLocation, rewriteHistory);\n this.scrollToActive();\n\n if (!menuItem || !menuItem.items.length) {\n this.closeSidebar();\n }\n }\n /**\n * scrolls to active section\n */\n\n\n scrollToActive(): void {\n this.scroll.scrollIntoView(this.getElementAt(this.activeItemIdx));\n }\n\n dispose() {\n this._unsubscribe();\n\n this._hashUnsubscribe();\n }\n\n}","import { bind } from 'decko';\nimport * as EventEmitter from 'eventemitter3';\nimport { IS_BROWSER, querySelector, Throttle } from '../utils';\nimport { RedocNormalizedOptions } from './RedocNormalizedOptions';\nconst EVENT = 'scroll';\nexport class ScrollService {\n private _scrollParent: Window | HTMLElement | undefined;\n private _emiter: EventEmitter;\n private _prevOffsetY = 0;\n\n constructor(private options: RedocNormalizedOptions) {\n this._scrollParent = IS_BROWSER ? window : undefined;\n this._emiter = new EventEmitter();\n this.bind();\n }\n\n bind() {\n this._prevOffsetY = this.scrollY();\n\n if (this._scrollParent) {\n this._scrollParent.addEventListener('scroll', this.handleScroll);\n }\n }\n\n dispose() {\n if (this._scrollParent) {\n this._scrollParent.removeEventListener('scroll', this.handleScroll);\n }\n\n this._emiter.removeAllListeners(EVENT);\n }\n\n scrollY(): number {\n if (typeof HTMLElement !== 'undefined' && this._scrollParent instanceof HTMLElement) {\n return this._scrollParent.scrollTop;\n } else if (this._scrollParent !== undefined) {\n return (this._scrollParent as Window).pageYOffset;\n } else {\n return 0;\n }\n }\n\n isElementBellow(el: Element | null) {\n if (el === null) {\n return;\n }\n\n return el.getBoundingClientRect().top > this.options.scrollYOffset();\n }\n\n isElementAbove(el: Element | null) {\n if (el === null) {\n return;\n }\n\n const top = el.getBoundingClientRect().top;\n return (top > 0 ? Math.floor(top) : Math.ceil(top)) <= this.options.scrollYOffset();\n }\n\n subscribe(cb): () => void {\n const emmiter = this._emiter.addListener(EVENT, cb);\n\n return () => emmiter.removeListener(EVENT, cb);\n }\n\n scrollIntoView(element: Element | null) {\n if (element === null) {\n return;\n }\n\n element.scrollIntoView();\n\n if (this._scrollParent && this._scrollParent.scrollBy) {\n // adding 1 account rounding errors in case scrollYOffset is float-number\n (this._scrollParent.scrollBy as any)(0, -this.options.scrollYOffset() + 1);\n }\n }\n\n scrollIntoViewBySelector(selector: string) {\n const element = querySelector(selector);\n this.scrollIntoView(element);\n }\n\n @bind\n @Throttle(100)\n handleScroll() {\n const scrollY = this.scrollY();\n const isScrolledDown = scrollY - this._prevOffsetY > 0;\n this._prevOffsetY = this.scrollY();\n\n this._emiter.emit(EVENT, isScrolledDown);\n }\n\n}","import { IS_BROWSER } from '../utils/';\nimport { IMenuItem } from './MenuStore';\nimport { OperationModel } from './models';\nimport Worker from './SearchWorker.worker';\n\nfunction getWorker() {\n let worker: new () => Worker;\n\n if (IS_BROWSER) {\n try {\n // tslint:disable-next-line\n worker = require('workerize-loader?inline&fallback=false!./SearchWorker.worker');\n } catch (e) {\n worker = require('./SearchWorker.worker').default;\n }\n } else {\n worker = require('./SearchWorker.worker').default;\n }\n\n return new worker();\n}\n\nexport class SearchStore {\n searchWorker = getWorker();\n\n indexItems(groups: Array) {\n const recurse = items => {\n items.forEach(group => {\n if (group.type !== 'group') {\n this.add(group.name, group.description || '', group.id);\n }\n\n recurse(group.items);\n });\n };\n\n recurse(groups);\n this.searchWorker.done();\n }\n\n add(title: string, body: string, meta?: T) {\n this.searchWorker.add(title, body, meta);\n }\n\n dispose() {\n (this.searchWorker as any).terminate();\n }\n\n search(q: string) {\n return this.searchWorker.search(q);\n }\n\n async toJS() {\n return this.searchWorker.toJS();\n }\n\n load(state: any) {\n this.searchWorker.load(state);\n }\n\n}","import { SECTION_ATTR } from '../services/MenuStore';\nimport styled, { media } from '../styled-components';\nexport const MiddlePanel = styled.div<{\n compact?: boolean;\n}>`\n width: calc(100% - ${props => props.theme.rightPanel.width});\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${({\n compact,\n theme\n}) => media.lessThan('medium', true)`\n width: 100%;\n padding: ${`${compact ? 0 : theme.spacing.sectionVertical}px ${theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const Section = styled.div.attrs(props => ({\n [SECTION_ATTR]: props.id\n}))<{\n underlined?: boolean;\n}>`\n padding: ${props => props.theme.spacing.sectionVertical}px 0;\n\n &:last-child {\n min-height: calc(100vh + 1px);\n }\n\n & > &:last-child {\n min-height: initial;\n }\n\n ${media.lessThan('medium', true)`\n padding: 0;\n `}\n ${(props: any) => props.underlined && `\n position: relative;\n\n &:not(:last-of-type):after {\n position: absolute;\n bottom: 0;\n width: 100%;\n display: block;\n content: '';\n border-bottom: 1px solid rgba(0, 0, 0, 0.2);\n }\n ` || ''}\n`;\nexport const RightPanel = styled.div`\n width: ${props => props.theme.rightPanel.width};\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n padding: 0 ${props => props.theme.spacing.sectionHorizontal}px;\n\n ${media.lessThan('medium', true)`\n width: 100%;\n padding: ${props => `${props.theme.spacing.sectionVertical}px ${props.theme.spacing.sectionHorizontal}px`};\n `};\n`;\nexport const DarkRightPanel = styled(RightPanel)`\n background-color: ${props => props.theme.rightPanel.backgroundColor};\n`;\nexport const Row = styled.div`\n display: flex;\n width: 100%;\n padding: 0;\n\n ${media.lessThan('medium', true)`\n flex-direction: column;\n `};\n`;","import styled, { css, extensionsHook } from '../styled-components';\nconst headerFontSize = {\n 1: '1.85714em',\n 2: '1.57143em',\n 3: '1.27em'\n};\nexport const headerCommonMixin = level => css`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-weight: ${({\n theme\n}) => theme.typography.headings.fontWeight};\n font-size: ${headerFontSize[level]};\n line-height: ${({\n theme\n}) => theme.typography.headings.lineHeight};\n`;\nexport const H1 = styled.h1`\n ${headerCommonMixin(1)};\n color: ${({\n theme\n}) => theme.colors.primary.main};\n\n ${extensionsHook('H1')};\n`;\nexport const H2 = styled.h2`\n ${headerCommonMixin(2)};\n color: black;\n\n ${extensionsHook('H2')};\n`;\nexport const H3 = styled.h2`\n ${headerCommonMixin(3)};\n color: black;\n\n ${extensionsHook('H3')};\n`;\nexport const RightPanelHeader = styled.h3`\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n\n ${extensionsHook('RightPanelHeader')};\n`;\nexport const UnderlinedHeader = styled.h5`\n border-bottom: 1px solid rgba(38, 50, 56, 0.3);\n margin: 1em 0 1em 0;\n color: rgba(38, 50, 56, 0.5);\n font-weight: normal;\n text-transform: uppercase;\n font-size: 0.929em;\n line-height: 20px;\n\n ${extensionsHook('UnderlinedHeader')};\n`;","import * as memoize from 'memoize-one/dist/memoize-one.cjs'; // fixme: https://github.com/alexreardon/memoize-one/issues/37\n\nimport { Component, createContext } from 'react';\nimport { AppStore } from '../services/';\nimport { RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { loadAndBundleSpec } from '../utils';\nexport interface StoreBuilderProps {\n specUrl?: string;\n spec?: object;\n store?: AppStore;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => void;\n children: (props: {\n loading: boolean;\n store?: AppStore;\n }) => any;\n}\nexport interface StoreBuilderState {\n error?: Error;\n loading: boolean;\n resolvedSpec?: any;\n prevSpec?: any;\n prevSpecUrl?: string;\n}\nconst {\n Provider,\n Consumer\n} = createContext(undefined);\nexport { Provider as StoreProvider, Consumer as StoreConsumer };\nexport class StoreBuilder extends Component {\n static getDerivedStateFromProps(nextProps: StoreBuilderProps, prevState: StoreBuilderState) {\n if (nextProps.specUrl !== prevState.prevSpecUrl || nextProps.spec !== prevState.prevSpec) {\n return {\n loading: true,\n resolvedSpec: null,\n prevSpec: nextProps.spec,\n prevSpecUrl: nextProps.specUrl\n };\n }\n\n return null;\n }\n\n state: StoreBuilderState = {\n loading: true,\n resolvedSpec: null\n };\n\n @memoize\n makeStore(spec, specUrl, options) {\n if (!spec) {\n return undefined;\n }\n\n try {\n return new AppStore(spec, specUrl, options);\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n throw e;\n }\n }\n\n componentDidMount() {\n this.load();\n }\n\n componentDidUpdate() {\n if (this.state.resolvedSpec === null) {\n this.load();\n } else if (!this.state.loading && this.props.onLoaded) {\n // may run multiple time\n this.props.onLoaded();\n }\n }\n\n async load() {\n const {\n specUrl,\n spec\n } = this.props;\n\n try {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl!);\n this.setState({\n resolvedSpec,\n loading: false\n });\n } catch (e) {\n if (this.props.onLoaded) {\n this.props.onLoaded(e);\n }\n\n this.setState({\n error: e\n });\n }\n }\n\n render() {\n if (this.state.error) {\n throw this.state.error;\n }\n\n const {\n specUrl,\n options\n } = this.props;\n const {\n loading,\n resolvedSpec\n } = this.state;\n return this.props.children({\n loading,\n store: this.makeStore(resolvedSpec, specUrl, options)\n });\n }\n\n}","import * as React from 'react';\nimport { StoreConsumer } from '../components/StoreBuilder';\nimport styled, { css } from '../styled-components';\nimport { HistoryService } from '../services';\nexport const StyledLink = styled.a`\n text-decoration: none;\n`; // tslint:disable-next-line\n\nexport const linkifyMixin = className => css`\n ${className} {\n cursor: pointer;\n margin-left: -20px;\n padding: 0;\n line-height: 1;\n width: 20px;\n display: inline-block;\n }\n ${className}:before {\n content: '';\n width: 15px;\n height: 15px;\n background-size: contain;\n background-image: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZlcnNpb249IjEuMSIgeD0iMCIgeT0iMCIgd2lkdGg9IjUxMiIgaGVpZ2h0PSI1MTIiIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBlbmFibGUtYmFja2dyb3VuZD0ibmV3IDAgMCA1MTIgNTEyIiB4bWw6c3BhY2U9InByZXNlcnZlIj48cGF0aCBmaWxsPSIjMDEwMTAxIiBkPSJNNDU5LjcgMjMzLjRsLTkwLjUgOTAuNWMtNTAgNTAtMTMxIDUwLTE4MSAwIC03LjktNy44LTE0LTE2LjctMTkuNC0yNS44bDQyLjEtNDIuMWMyLTIgNC41LTMuMiA2LjgtNC41IDIuOSA5LjkgOCAxOS4zIDE1LjggMjcuMiAyNSAyNSA2NS42IDI0LjkgOTAuNSAwbDkwLjUtOTAuNWMyNS0yNSAyNS02NS42IDAtOTAuNSAtMjQuOS0yNS02NS41LTI1LTkwLjUgMGwtMzIuMiAzMi4yYy0yNi4xLTEwLjItNTQuMi0xMi45LTgxLjYtOC45bDY4LjYtNjguNmM1MC01MCAxMzEtNTAgMTgxIDBDNTA5LjYgMTAyLjMgNTA5LjYgMTgzLjQgNDU5LjcgMjMzLjR6TTIyMC4zIDM4Mi4ybC0zMi4yIDMyLjJjLTI1IDI0LjktNjUuNiAyNC45LTkwLjUgMCAtMjUtMjUtMjUtNjUuNiAwLTkwLjVsOTAuNS05MC41YzI1LTI1IDY1LjUtMjUgOTAuNSAwIDcuOCA3LjggMTIuOSAxNy4yIDE1LjggMjcuMSAyLjQtMS40IDQuOC0yLjUgNi44LTQuNWw0Mi4xLTQyYy01LjQtOS4yLTExLjYtMTgtMTkuNC0yNS44IC01MC01MC0xMzEtNTAtMTgxIDBsLTkwLjUgOTAuNWMtNTAgNTAtNTAgMTMxIDAgMTgxIDUwIDUwIDEzMSA1MCAxODEgMGw2OC42LTY4LjZDMjc0LjYgMzk1LjEgMjQ2LjQgMzkyLjMgMjIwLjMgMzgyLjJ6Ii8+PC9zdmc+Cg==');\n opacity: 0.5;\n visibility: hidden;\n display: inline-block;\n vertical-align: middle;\n }\n\n h1:hover > ${className}::before, h2:hover > ${className}::before, ${className}:hover::before {\n visibility: visible;\n }\n`;\n\nconst isModifiedEvent = event => !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n\nexport class Link extends React.Component<{\n to: string;\n className?: string;\n children?: any;\n}> {\n navigate = (history: HistoryService, event) => {\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && // ignore everything but left clicks\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n history.replace(this.props.to);\n }\n };\n\n render() {\n return \n {store => \n {this.props.children}\n }\n ;\n }\n\n}\nconst StyledShareLink = styled(Link)`\n ${linkifyMixin('&')};\n`;\nexport function ShareLink(props: {\n to: string;\n}) {\n return ;\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst directionMap = {\n left: '90deg',\n right: '-90deg',\n up: '-180deg',\n down: '0'\n};\n\nclass IntShelfIcon extends React.PureComponent<{\n className?: string;\n float?: 'left' | 'right';\n size?: string;\n color?: string;\n direction: 'left' | 'right' | 'up' | 'down';\n style?: React.CSSProperties;\n}> {\n render() {\n return \n \n ;\n }\n\n}\n\nexport const ShelfIcon = styled(IntShelfIcon)`\n height: ${props => props.size || '18px'};\n width: ${props => props.size || '18px'};\n vertical-align: middle;\n float: ${props => props.float || ''};\n transition: transform 0.2s ease-out;\n transform: rotateZ(${props => directionMap[props.direction || 'down']});\n\n polygon {\n fill: ${props => props.color && props.theme.colors[props.color] && props.theme.colors[props.color].main || props.color};\n }\n`;\nexport const Badge = styled.span<{\n type: string;\n}>`\n display: inline-block;\n padding: 0 5px;\n margin: 0;\n background-color: ${props => props.theme.colors[props.type].main};\n color: ${props => props.theme.colors[props.type].contrastText};\n font-size: ${props => props.theme.typography.code.fontSize};\n vertical-align: text-top;\n`;","import { css } from '../styled-components';\nexport const deprecatedCss = css`\n text-decoration: line-through;\n color: #bdccd3;\n`;","// import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { deprecatedCss } from './mixins';\nexport const PropertiesTableCaption = styled.caption`\n text-align: right;\n font-size: 0.9em;\n font-weight: normal;\n color: ${props => props.theme.colors.text.secondary};\n`;\nexport const PropertyCell = styled.td<{\n kind?: string;\n}>`\n border-left: 1px solid ${props => props.theme.schema.linesColor};\n box-sizing: border-box;\n position: relative;\n padding: 10px 10px 10px 0;\n\n tr:first-of-type > &,\n tr.last > & {\n border-left-width: 0;\n background-position: top left;\n background-repeat: no-repeat;\n background-size: 1px 100%;\n }\n\n tr:first-of-type > & {\n background-image: linear-gradient(\n to bottom,\n transparent 0%,\n transparent 22px,\n ${props => props.theme.schema.linesColor} 22px,\n ${props => props.theme.schema.linesColor} 100%\n );\n }\n\n tr.last > & {\n background-image: linear-gradient(\n to bottom,\n ${props => props.theme.schema.linesColor} 0%,\n ${props => props.theme.schema.linesColor} 22px,\n transparent 22px,\n transparent 100%\n );\n }\n\n tr.last + tr > & {\n border-left-color: transparent;\n }\n\n tr.last:first-child > & {\n background: none;\n border-left-color: transparent;\n }\n`;\nexport const PropertyCellWithInner = styled(PropertyCell)`\n padding: 0;\n`;\nexport const PropertyNameCell = styled(PropertyCell)`\n vertical-align: top;\n line-height: 20px;\n white-space: nowrap;\n font-size: 0.929em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n\n &.deprecated {\n ${deprecatedCss};\n }\n\n ${({\n kind\n}) => kind !== 'field' ? 'font-style: italic' : ''};\n\n ${extensionsHook('PropertyNameCell')};\n`;\nexport const PropertyDetailsCell = styled.td`\n border-bottom: 1px solid #9fb4be;\n padding: 10px 0;\n width: ${props => props.theme.schema.defaultDetailsWidth};\n box-sizing: border-box;\n\n tr.expanded & {\n border-bottom: none;\n }\n`;\nexport const PropertyBullet = styled.span`\n color: ${props => props.theme.schema.linesColor};\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-right: 10px;\n\n &::before {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 10px;\n height: 1px;\n background: ${props => props.theme.schema.linesColor};\n }\n\n &::after {\n content: '';\n display: inline-block;\n vertical-align: middle;\n width: 1px;\n background: ${props => props.theme.schema.linesColor};\n height: 7px;\n }\n`;\nexport const InnerPropertiesWrap = styled.div`\n padding: ${({\n theme\n}) => theme.schema.nestingSpacing};\n`;\nexport const PropertiesTable = styled.table`\n border-collapse: separate;\n border-radius: 3px;\n font-size: ${props => props.theme.typography.fontSize};\n\n border-spacing: 0;\n width: 100%;\n\n > tr {\n vertical-align: middle;\n }\n\n &\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n margin: ${({\n theme\n}) => theme.schema.nestingSpacing};\n margin-right: 0;\n background: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap},\n &\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap}\n ${InnerPropertiesWrap} {\n background: #ffffff;\n }\n`;","import styled from '../styled-components';\nexport const OneOfList = styled.ul`\n margin: 0 0 3px 0;\n padding: 0;\n list-style: none;\n display: inline-block;\n`;\nexport const OneOfLabel = styled.span`\n font-size: 0.9em;\n margin-right: 10px;\n color: ${props => props.theme.colors.primary.main};\n font-family: ${props => props.theme.typography.headings.fontFamily};\n}\n`;\nexport const OneOfButton = styled.li<{\n active: boolean;\n}>`\n display: inline-block;\n margin-right: 10px;\n margin-bottom: 5px;\n font-size: 0.8em;\n cursor: pointer;\n border: 1px solid ${props => props.theme.colors.primary.main};\n padding: 2px 10px;\n\n ${props => {\n if (props.active) {\n return `\n color: white;\n background-color: ${props.theme.colors.primary.main};\n `;\n } else {\n return `\n color: ${props.theme.colors.primary.main};\n background-color: white;\n `;\n }\n}}\n`;\nexport const ArrayOpenningLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ' [';\n }\n`;\nexport const ArrayClosingLabel = styled.div`\n font-size: 0.9em;\n font-family: ${props => props.theme.typography.code.fontFamily};\n &::after {\n content: ']';\n }\n`;","import Dropdown from 'react-dropdown';\nimport styled from '../styled-components';\nexport interface DropdownOption {\n label: string;\n value: string;\n}\nexport interface DropdownProps {\n options: DropdownOption[];\n value: DropdownOption;\n onChange: (val: DropdownOption) => void;\n}\nexport const StyledDropdown = styled(Dropdown)`\n min-width: 100px;\n display: inline-block;\n position: relative;\n width: auto;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n\n .Dropdown-control {\n font-family: ${props => props.theme.typography.headings.fontFamily};\n position: relative;\n font-size: 0.929em;\n width: 100%;\n line-height: 1.5em;\n vertical-align: middle;\n cursor: pointer;\n border-color: rgba(38, 50, 56, 0.5);\n color: #263238;\n outline: none;\n padding: 0.15em 1.5em 0.2em 0.5em;\n border-radius: 2px;\n border-width: 1px;\n border-style: solid;\n margin-top: 5px;\n background: white;\n\n box-sizing: border-box;\n\n &:hover {\n border-color: ${props => props.theme.colors.primary.main};\n color: ${props => props.theme.colors.primary.main};\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12);\n }\n }\n\n .Dropdown-arrow {\n border-color: ${props => props.theme.colors.primary.main} transparent transparent;\n border-style: solid;\n border-width: 0.35em 0.35em 0;\n content: ' ';\n display: block;\n height: 0;\n position: absolute;\n right: 0.3em;\n top: 50%;\n margin-top: -0.125em;\n width: 0;\n }\n\n .Dropdown-menu {\n position: absolute;\n margin-top: 2px;\n left: 0;\n right: 0;\n\n z-index: 10;\n min-width: 100px;\n\n background: white;\n border: 1px solid rgba(38, 50, 56, 0.2);\n box-shadow: 0px 2px 4px 0px rgba(34, 36, 38, 0.12), 0px 2px 10px 0px rgba(34, 36, 38, 0.08);\n\n max-height: 220px;\n overflow: auto;\n }\n\n .Dropdown-option {\n font-size: 0.9em;\n color: #263238;\n cursor: pointer;\n padding: 0.4em;\n\n &.is-selected {\n background-color: rgba(0, 0, 0, 0.05);\n }\n\n &:hover {\n background-color: rgba(38, 50, 56, 0.12);\n }\n }\n`;\nexport const SimpleDropdown = styled(StyledDropdown)`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.969em;\n\n .Dropdown-control {\n font-size: 1em;\n border: none;\n padding: 0 1.2em 0 0;\n background: transparent;\n\n &:hover {\n color: ${props => props.theme.colors.primary.main};\n box-shadow: none;\n }\n }\n`;\nexport const MimeLabel = styled.span`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n color: black;\n`;","import { darken } from 'polished';\nimport { Tabs as ReactTabs } from 'react-tabs';\nimport styled from '../styled-components';\nexport { Tab, TabList, TabPanel } from 'react-tabs';\nexport const Tabs = styled(ReactTabs)`\n > ul {\n list-style: none;\n padding: 0;\n margin: 0;\n margin: 0 -5px;\n\n > li {\n padding: 5px 10px;\n display: inline-block;\n\n background-color: ${({\n theme\n}) => theme.codeSample.backgroundColor};\n border-bottom: 1px solid rgba(0, 0, 0, 0.5);\n cursor: pointer;\n text-align: center;\n outline: none;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n margin: 0\n ${({\n theme\n}) => `${theme.spacing.unit}px ${theme.spacing.unit}px ${theme.spacing.unit}px`};\n border: 1px solid ${({\n theme\n}) => darken(0.05, theme.codeSample.backgroundColor)};\n border-radius: 5px;\n min-width: 60px;\n font-size: 0.9em;\n font-weight: bold;\n\n &.react-tabs__tab--selected {\n color: ${props => props.theme.colors.text.primary};\n background: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n\n &:only-child {\n flex: none;\n min-width: 100px;\n }\n\n &.tab-success {\n color: ${props => props.theme.colors.responses.success.color};\n }\n\n &.tab-redirect {\n color: ${props => props.theme.colors.responses.redirect.color};\n }\n\n &.tab-info {\n color: ${props => props.theme.colors.responses.info.color};\n }\n\n &.tab-error {\n color: ${props => props.theme.colors.responses.error.color};\n }\n }\n }\n > .react-tabs__tab-panel {\n background: ${({\n theme\n}) => theme.codeSample.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n }\n`;\nexport const SmallTabs = styled(Tabs)`\n > ul {\n display: block;\n > li {\n padding: 2px 5px;\n min-width: auto;\n margin: 0 15px 0 0;\n font-size: 13px;\n font-weight: normal;\n border-bottom: 1px dashed;\n color: ${({\n theme\n}) => darken(theme.colors.tonalOffset, theme.rightPanel.textColor)};\n border-radius: 0;\n background: none;\n\n &:last-child {\n margin-right: 0;\n }\n\n &.react-tabs__tab--selected {\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n background: none;\n }\n }\n }\n > .react-tabs__tab-panel {\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 2}px 0;\n }\n }\n`;","import styled, { extensionsHook } from '../styled-components';\nexport const PrismDiv = styled.div`\n /**\n * Based on prism-dark.css\n */\n\n code[class*='language-'],\n pre[class*='language-'] {\n /* color: white;\n background: none; */\n text-shadow: 0 -0.1em 0.2em black;\n text-align: left;\n white-space: pre;\n word-spacing: normal;\n word-break: normal;\n word-wrap: normal;\n line-height: 1.5;\n\n -moz-tab-size: 4;\n -o-tab-size: 4;\n tab-size: 4;\n\n -webkit-hyphens: none;\n -moz-hyphens: none;\n -ms-hyphens: none;\n hyphens: none;\n }\n\n @media print {\n code[class*='language-'],\n pre[class*='language-'] {\n text-shadow: none;\n }\n }\n\n /* Code blocks */\n pre[class*='language-'] {\n padding: 1em;\n margin: 0.5em 0;\n overflow: auto;\n }\n\n .token.comment,\n .token.prolog,\n .token.doctype,\n .token.cdata {\n color: hsl(30, 20%, 50%);\n }\n\n .token.punctuation {\n opacity: 0.7;\n }\n\n .namespace {\n opacity: 0.7;\n }\n\n .token.property,\n .token.tag,\n .token.number,\n .token.constant,\n .token.symbol {\n color: #4a8bb3;\n }\n\n .token.boolean {\n color: firebrick;\n }\n\n .token.selector,\n .token.attr-name,\n .token.string,\n .token.char,\n .token.builtin,\n .token.inserted {\n color: #a0fbaa;\n & + a,\n & + a:visited {\n color: #4ed2ba;\n text-decoration: underline;\n }\n }\n\n /* .property.token.string {\n color: white;\n } */\n\n .token.operator,\n .token.entity,\n .token.url,\n .token.variable {\n color: hsl(40, 90%, 60%);\n }\n\n .token.atrule,\n .token.attr-value,\n .token.keyword {\n color: hsl(350, 40%, 70%);\n }\n\n .token.regex,\n .token.important {\n color: #e90;\n }\n\n .token.important,\n .token.bold {\n font-weight: bold;\n }\n .token.italic {\n font-style: italic;\n }\n\n .token.entity {\n cursor: help;\n }\n\n .token.deleted {\n color: red;\n }\n\n ${extensionsHook('Prism')};\n`;","import styled from '../styled-components';\nimport { PrismDiv } from './PrismDiv';\nexport const SampleControls = styled.div`\n opacity: 0.4;\n transition: opacity 0.3s ease;\n text-align: right;\n\n > span {\n display: inline-block;\n padding: 2px 10px;\n cursor: pointer;\n\n :hover {\n background: rgba(255, 255, 255, 0.1);\n }\n }\n`;\nexport const SampleControlsWrap = styled.div`\n &:hover ${SampleControls} {\n opacity: 1;\n }\n`;\nexport const StyledPre = styled(PrismDiv.withComponent('pre'))`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n overflow-x: auto;\n margin: 0;\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n`;","import * as React from 'react';\nimport { RedocNormalizedOptions } from '../services/RedocNormalizedOptions';\nexport const OptionsContext = React.createContext(new RedocNormalizedOptions({}));\nexport const OptionsProvider = OptionsContext.Provider;\nexport const OptionsConsumer = OptionsContext.Consumer;","import * as React from 'react';\nimport PerfectScrollbarType, * as PerfectScrollbarNamespace from 'perfect-scrollbar';\nimport psStyles from 'perfect-scrollbar/css/perfect-scrollbar.css';\nimport { OptionsContext } from '../components/OptionsProvider';\nimport styled, { createGlobalStyle } from '../styled-components';\n/*\n * perfect scrollbar umd bundle uses exports assignment while module uses default export\n * so when bundled with webpack default export works but with jest it crashes\n * That's why the following ugly fix is required\n */\n\nconst PerfectScrollbarConstructor = PerfectScrollbarNamespace.default || ((PerfectScrollbarNamespace as any) as PerfectScrollbarType);\nconst PSStyling = createGlobalStyle`${psStyles && psStyles.toString()}`;\nconst StyledScrollWrapper = styled.div`\n position: relative;\n`;\nexport interface PerfectScrollbarProps {\n options?: PerfectScrollbarType.Options;\n className?: string;\n updateFn?: (fn) => void;\n}\nexport class PerfectScrollbar extends React.Component {\n private _container: HTMLElement;\n private inst: PerfectScrollbarType;\n\n componentDidMount() {\n const offset = this._container.parentElement && this._container.parentElement.scrollTop || 0;\n this.inst = new PerfectScrollbarConstructor(this._container, this.props.options || {});\n\n if (this._container.scrollTo) {\n this._container.scrollTo(0, offset);\n }\n }\n\n componentDidUpdate() {\n this.inst.update();\n }\n\n componentWillUnmount() {\n this.inst.destroy();\n }\n\n handleRef = ref => {\n this._container = ref;\n };\n\n render() {\n const {\n children,\n className,\n updateFn\n } = this.props;\n\n if (updateFn) {\n updateFn(this.componentDidUpdate.bind(this));\n }\n\n return <>\n \n \n {children}\n \n ;\n }\n\n}\nexport function PerfectScrollbarWrap(props: PerfectScrollbarProps & {\n children: JSX.Element[] | JSX.Element;\n}) {\n return \n {options => !options.nativeScrollbars ? {props.children} :
\n {props.children}\n
}\n
;\n}","export * from './panels';\nexport * from './headers';\nexport * from './linkify';\nexport * from './shelfs';\nexport * from './fields-layout';\nexport * from './schema';\nexport * from './dropdown';\nexport * from './mixins';\nexport * from './tabs';\nexport * from './samples';\nexport * from './perfect-scrollbar';","import * as React from 'react';\nimport { DropdownProps, MimeLabel, SimpleDropdown } from '../../common-elements/dropdown';\nexport interface DropdownOrLabelProps extends DropdownProps {\n Label?: React.ComponentClass;\n Dropdown?: React.ComponentClass;\n}\nexport function DropdownOrLabel(props: DropdownOrLabelProps): JSX.Element {\n const {\n Label = MimeLabel,\n Dropdown = SimpleDropdown\n } = props;\n\n if (props.options.length === 1) {\n return ;\n }\n\n return ;\n}","import { headerCommonMixin, linkifyMixin } from '../../common-elements';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport styled, { css, extensionsHook, ResolvedThemeInterface } from '../../styled-components';\nimport { StyledComponent } from 'styled-components';\nexport const linksCss = css`\n a {\n text-decoration: none;\n color: ${props => props.theme.typography.links.color};\n\n &:visited {\n color: ${props => props.theme.typography.links.visited};\n }\n\n &:hover {\n color: ${props => props.theme.typography.links.hover};\n }\n }\n`;\nexport const StyledMarkdownBlock = styled((PrismDiv as StyledComponent<'div', ResolvedThemeInterface, {\n compact?: boolean;\n inline?: boolean;\n}>))`\n\n font-family: ${props => props.theme.typography.fontFamily};\n font-weight: ${props => props.theme.typography.fontWeightRegular};\n line-height: ${props => props.theme.typography.lineHeight};\n\n p {\n &:last-child {\n margin-bottom: 0;\n }\n }\n\n ${({\n compact\n}) => compact && `\n p:first-child {\n margin-top: 0;\n }\n p:last-child {\n margin-bottom: 0;\n }\n `}\n\n ${({\n inline\n}) => inline && ` p {\n display: inline-block;\n }`}\n\n h1 {\n ${headerCommonMixin(1)};\n color: ${props => props.theme.colors.primary.main};\n margin-top: 0;\n }\n\n h2 {\n ${headerCommonMixin(2)};\n color: ${props => props.theme.colors.text.primary};\n }\n\n code {\n color: ${({\n theme\n}) => theme.typography.code.color};\n background-color: ${({\n theme\n}) => theme.typography.code.backgroundColor};\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n border-radius: 2px;\n border: 1px solid rgba(38, 50, 56, 0.1);\n padding: 0 ${({\n theme\n}) => theme.spacing.unit}px;\n font-size: ${props => props.theme.typography.code.fontSize};\n font-weight: ${({\n theme\n}) => theme.typography.code.fontWeight};\n\n word-break: break-word;\n }\n\n pre {\n font-family: ${props => props.theme.typography.code.fontFamily};\n white-space:${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n background-color: #263238;\n color: white;\n padding: ${props => props.theme.spacing.unit * 4}px;\n overflow-x: auto;\n line-height: normal;\n border-radius: 0px\n border: 1px solid rgba(38, 50, 56, 0.1);\n\n code {\n background-color: transparent;\n color: white;\n padding: 0;\n\n &:before,\n &:after {\n content: none;\n }\n }\n }\n\n blockquote {\n margin: 0;\n margin-bottom: 1em;\n padding: 0 15px;\n color: #777;\n border-left: 4px solid #ddd;\n }\n\n img {\n max-width: 100%;\n box-sizing: content-box;\n }\n\n ul,\n ol {\n padding-left: 2em;\n margin: 0;\n margin-bottom: 1em;\n\n ul, ol {\n margin-bottom: 0;\n margin-top: 0;\n }\n }\n\n table {\n display: block;\n width: 100%;\n overflow: auto;\n word-break: normal;\n word-break: keep-all;\n border-collapse: collapse;\n border-spacing: 0;\n margin-top: 1.5em;\n margin-bottom: 1.5em;\n }\n\n table tr {\n background-color: #fff;\n border-top: 1px solid #ccc;\n\n &:nth-child(2n) {\n background-color: ${({\n theme\n}) => theme.schema.nestedBackground};\n }\n }\n\n table th,\n table td {\n padding: 6px 13px;\n border: 1px solid #ddd;\n }\n\n table th {\n text-align: left;\n font-weight: bold;\n }\n\n ${linkifyMixin('.share-link')};\n\n ${linksCss}\n\n ${extensionsHook('Markdown')};\n`;","import * as DOMPurify from 'dompurify';\nimport * as React from 'react';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StylingMarkdownProps } from './Markdown';\nimport { StyledMarkdownBlock } from './styled.elements';\nconst StyledMarkdownSpan = StyledMarkdownBlock.withComponent('span');\n\nconst sanitize = (untrustedSpec, html) => untrustedSpec ? DOMPurify.sanitize(html) : html;\n\nexport function SanitizedMarkdownHTML(props: StylingMarkdownProps & {\n html: string;\n className?: string;\n 'data-role'?: string;\n}) {\n const Wrap = props.inline ? StyledMarkdownSpan : StyledMarkdownBlock;\n return \n {options => }\n ;\n}","import * as React from 'react';\nimport { MarkdownRenderer } from '../../services';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nexport interface StylingMarkdownProps {\n compact?: boolean;\n inline?: boolean;\n}\nexport interface BaseMarkdownProps {\n sanitize?: boolean;\n source: string;\n}\nexport type MarkdownProps = BaseMarkdownProps & StylingMarkdownProps & {\n source: string;\n className?: string;\n 'data-role'?: string;\n};\nexport class Markdown extends React.Component {\n render() {\n const {\n source,\n inline,\n compact,\n className,\n 'data-role': dataRole\n } = this.props;\n const renderer = new MarkdownRenderer();\n return ;\n }\n\n}","import * as React from 'react';\nimport styled from '../styled-components';\nconst Wrapper = styled.div`\n position: relative;\n`;\nconst Tip = styled.div`\n position: absolute;\n min-width: 80px;\n max-width: 500px;\n background: #fff;\n bottom: 100%;\n left: 50%;\n margin-bottom: 10px;\n transform: translateX(-50%);\n\n border-radius: 4px;\n padding: 0.3em 0.6em;\n text-align: center;\n box-shadow: 0px 0px 5px 0px rgba(204, 204, 204, 1);\n`;\nconst Content = styled.div`\n background: #fff;\n color: #000;\n display: inline;\n font-size: 0.85em;\n white-space: nowrap;\n`;\nconst Arrow = styled.div`\n position: absolute;\n width: 0;\n height: 0;\n bottom: -5px;\n left: 50%;\n margin-left: -5px;\n border-left: solid transparent 5px;\n border-right: solid transparent 5px;\n border-top: solid #fff 5px;\n`;\nconst Gap = styled.div`\n position: absolute;\n width: 100%;\n height: 20px;\n bottom: -20px;\n`;\nexport interface TooltipProps {\n open: boolean;\n title: string;\n}\nexport class Tooltip extends React.Component {\n render() {\n const {\n open,\n title,\n children\n } = this.props;\n return \n {children}\n {open && \n {title}\n \n \n }\n ;\n }\n\n}","const isSupported = typeof document !== 'undefined' && document.queryCommandSupported && document.queryCommandSupported('copy');\nexport class ClipboardService {\n static isSupported(): boolean {\n return isSupported;\n }\n\n static selectElement(element: any): void {\n let range;\n let selection;\n\n if ((document.body as any).createTextRange) {\n range = (document.body as any).createTextRange();\n range.moveToElementText(element);\n range.select();\n } else if (document.createRange && window.getSelection) {\n selection = window.getSelection();\n range = document.createRange();\n range.selectNodeContents(element);\n selection.removeAllRanges();\n selection.addRange(range);\n }\n }\n\n static deselect(): void {\n if ((document as any).selection) {\n (document as any).selection.empty();\n } else if (window.getSelection) {\n const selection = window.getSelection();\n\n if (selection) {\n selection.removeAllRanges();\n }\n }\n }\n\n static copySelected(): boolean {\n let result;\n\n try {\n result = document.execCommand('copy');\n } catch (err) {\n result = false;\n }\n\n return result;\n }\n\n static copyElement(element: any): boolean {\n ClipboardService.selectElement(element);\n const res = ClipboardService.copySelected();\n\n if (res) {\n ClipboardService.deselect();\n }\n\n return res;\n }\n\n static copyCustom(text: string): boolean {\n const textArea = document.createElement('textarea');\n textArea.style.position = 'fixed';\n textArea.style.top = '0';\n textArea.style.left = '0'; // Ensure it has a small width and height. Setting to 1px / 1em\n // doesn't work as this gives a negative w/h on some browsers.\n\n textArea.style.width = '2em';\n textArea.style.height = '2em'; // We don't need padding, reducing the size if it does flash render.\n\n textArea.style.padding = '0'; // Clean up any borders.\n\n textArea.style.border = 'none';\n textArea.style.outline = 'none';\n textArea.style.boxShadow = 'none'; // Avoid flash of white box if rendered for any reason.\n\n textArea.style.background = 'transparent';\n textArea.value = text;\n document.body.appendChild(textArea);\n textArea.select();\n const res = ClipboardService.copySelected();\n document.body.removeChild(textArea);\n return res;\n }\n\n}","import * as React from 'react';\nimport { Tooltip } from '../common-elements/Tooltip';\nimport { ClipboardService } from '../services/ClipboardService';\nexport interface CopyButtonWrapperProps {\n data: any;\n children: (props: {\n renderCopyButton: () => React.ReactNode;\n }) => React.ReactNode;\n}\nexport class CopyButtonWrapper extends React.PureComponent {\n constructor(props) {\n super(props);\n this.state = {\n tooltipShown: false\n };\n }\n\n render() {\n return this.props.children({\n renderCopyButton: this.renderCopyButton\n });\n }\n\n copy = () => {\n const content = typeof this.props.data === 'string' ? this.props.data : JSON.stringify(this.props.data, null, 2);\n ClipboardService.copyCustom(content);\n this.showTooltip();\n };\n renderCopyButton = () => {\n return \n \n Copy\n \n ;\n };\n\n showTooltip() {\n this.setState({\n tooltipShown: true\n });\n setTimeout(() => {\n this.setState({\n tooltipShown: false\n });\n }, 1500);\n }\n\n}","let level = 1;\nexport function jsonToHTML(json, maxExpandLevel) {\n level = 1;\n let output = '';\n output += '
';\n output += '';\n output += valueToHTML(json, maxExpandLevel);\n output += '';\n output += '
';\n return output;\n}\n\nfunction htmlEncode(t) {\n return t !== undefined ? t.toString().replace(/&/g, '&').replace(/\"/g, '"').replace(//g, '>') : '';\n}\n\nfunction stringifyStringLiteral(str: string) {\n return JSON.stringify(str).slice(1, -1);\n}\n\nfunction decorateWithSpan(value, className) {\n return '' + htmlEncode(value) + '';\n}\n\nfunction punctuation(val) {\n return '' + val + '';\n}\n\nfunction valueToHTML(value, maxExpandLevel: number) {\n const valueType = typeof value;\n let output = '';\n\n if (value === undefined || value === null) {\n output += decorateWithSpan('null', 'token keyword');\n } else if (value && value.constructor === Array) {\n level++;\n output += arrayToHTML(value, maxExpandLevel);\n level--;\n } else if (value && value.constructor === Date) {\n output += decorateWithSpan('\"' + value.toISOString() + '\"', 'token string');\n } else if (valueType === 'object') {\n level++;\n output += objectToHTML(value, maxExpandLevel);\n level--;\n } else if (valueType === 'number') {\n output += decorateWithSpan(value, 'token number');\n } else if (valueType === 'string') {\n if (/^(http|https):\\/\\/[^\\s]+$/.test(value)) {\n output += decorateWithSpan('\"', 'token string') + '' + htmlEncode(stringifyStringLiteral(value)) + '' + decorateWithSpan('\"', 'token string');\n } else {\n output += decorateWithSpan('\"' + stringifyStringLiteral(value) + '\"', 'token string');\n }\n } else if (valueType === 'boolean') {\n output += decorateWithSpan(value, 'token boolean');\n }\n\n return output;\n}\n\nfunction arrayToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n let output = `
${punctuation('[')}
    `;\n let hasContents = false;\n const length = json.length;\n\n for (let i = 0; i < length; i++) {\n hasContents = true;\n output += '
  • ';\n output += valueToHTML(json[i], maxExpandLevel);\n\n if (i < length - 1) {\n output += ',';\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation(']')}`;\n\n if (!hasContents) {\n output = punctuation('[ ]');\n }\n\n return output;\n}\n\nfunction objectToHTML(json, maxExpandLevel: number) {\n const collapsed = level > maxExpandLevel ? 'collapsed' : '';\n const keys = Object.keys(json);\n const length = keys.length;\n let output = `
${punctuation('{')}
    `;\n let hasContents = false;\n\n for (let i = 0; i < length; i++) {\n const key = keys[i];\n hasContents = true;\n output += '
  • ';\n output += '\"' + htmlEncode(key) + '\": ';\n output += valueToHTML(json[key], maxExpandLevel);\n\n if (i < length - 1) {\n output += punctuation(',');\n }\n\n output += '
  • ';\n }\n\n output += `
${punctuation('}')}`;\n\n if (!hasContents) {\n output = punctuation('{ }');\n }\n\n return output;\n}","import { css } from '../../styled-components';\nexport const jsonStyles = css`\n .redoc-json > .collapser {\n display: none;\n }\n\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: ${props => props.theme.typography.code.fontSize};\n\n white-space: ${({\n theme\n}) => theme.typography.code.wrap ? 'pre-wrap' : 'pre'};\n contain: content;\n overflow-x: auto;\n\n .callback-function {\n color: gray;\n }\n\n .collapser:after {\n content: '-';\n cursor: pointer;\n }\n\n .collapsed > .collapser:after {\n content: '+';\n cursor: pointer;\n }\n\n .ellipsis:after {\n content: ' … ';\n }\n\n .collapsible {\n margin-left: 2em;\n }\n\n .hoverable {\n padding-top: 1px;\n padding-bottom: 1px;\n padding-left: 2px;\n padding-right: 2px;\n border-radius: 2px;\n }\n\n .hovered {\n background-color: rgba(235, 238, 249, 1);\n }\n\n .collapser {\n padding-right: 6px;\n padding-left: 6px;\n }\n\n ul {\n list-style-type: none;\n padding: 0px;\n margin: 0px 0px 0px 26px;\n }\n\n li {\n position: relative;\n display: block;\n }\n\n .hoverable {\n display: inline-block;\n }\n\n .selected {\n outline-style: solid;\n outline-width: 1px;\n outline-style: dotted;\n }\n\n .collapsed > .collapsible {\n display: none;\n }\n\n .ellipsis {\n display: none;\n }\n\n .collapsed > .ellipsis {\n display: inherit;\n }\n\n .collapser {\n position: absolute;\n top: 1px;\n left: -1.5em;\n cursor: default;\n user-select: none;\n -webkit-user-select: none;\n }\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { SampleControls } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nimport { PrismDiv } from '../../common-elements/PrismDiv';\nimport { jsonToHTML } from '../../utils/jsonToHtml';\nimport { OptionsContext } from '../OptionsProvider';\nimport { jsonStyles } from './style';\nexport interface JsonProps {\n data: any;\n className?: string;\n}\nconst JsonViewerWrap = styled.div`\n &:hover > ${SampleControls} {\n opacity: 1;\n }\n`;\n\nclass Json extends React.PureComponent {\n node: HTMLDivElement;\n\n render() {\n return {this.renderInner};\n }\n\n renderInner = ({\n renderCopyButton\n }) => \n \n {renderCopyButton()}\n Expand all \n Collapse all \n \n \n {options => this.node = node!} dangerouslySetInnerHTML={{\n __html: jsonToHTML(this.props.data, options.jsonSampleExpandLevel)\n }} />}\n \n ;\n expandAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const collapsed of Array.prototype.slice.call(elements)) {\n (collapsed.parentNode as Element)!.classList.remove('collapsed');\n }\n };\n collapseAll = () => {\n const elements = this.node.getElementsByClassName('collapsible');\n\n for (const expanded of Array.prototype.slice.call(elements)) {\n // const collapsed = elements[i];\n if ((expanded.parentNode as Element)!.classList.contains('redoc-json')) {\n continue;\n }\n\n (expanded.parentNode as Element)!.classList.add('collapsed');\n }\n };\n clickListener = (event: MouseEvent) => {\n let collapsed;\n const target = (event.target as HTMLElement);\n\n if (target.className === 'collapser') {\n collapsed = target.parentElement!.getElementsByClassName('collapsible')[0];\n\n if (collapsed.parentElement.classList.contains('collapsed')) {\n collapsed.parentElement.classList.remove('collapsed');\n } else {\n collapsed.parentElement.classList.add('collapsed');\n }\n }\n };\n\n componentDidMount() {\n this.node!.addEventListener('click', this.clickListener);\n }\n\n componentWillUnmount() {\n this.node!.removeEventListener('click', this.clickListener);\n }\n\n}\n\nexport const JsonViewer = styled(Json)`\n ${jsonStyles};\n`;","import * as React from 'react';\nimport { highlight } from '../../utils';\nimport { SampleControls, SampleControlsWrap, StyledPre } from '../../common-elements';\nimport { CopyButtonWrapper } from '../../common-elements/CopyButtonWrapper';\nexport interface SourceCodeProps {\n source: string;\n lang: string;\n}\nexport class SourceCode extends React.PureComponent {\n render() {\n const {\n source,\n lang\n } = this.props;\n return ;\n }\n\n}\nexport class SourceCodeWithCopy extends React.PureComponent {\n render() {\n return \n {({\n renderCopyButton\n }) => \n {renderCopyButton()}\n \n }\n ;\n }\n\n}","import * as React from 'react';\nimport { isJsonLike, langFromMime } from '../../utils/openapi';\nimport { JsonViewer } from '../JsonViewer/JsonViewer';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nexport interface ExampleValueProps {\n value: any;\n mimeType: string;\n}\nexport function ExampleValue({\n value,\n mimeType\n}: ExampleValueProps) {\n if (isJsonLike(mimeType)) {\n return ;\n } else {\n if (typeof value === 'object') {\n // just in case example was cached as json but used as non-json\n value = JSON.stringify(value, null, 2);\n }\n\n return ;\n }\n}","import { useEffect, useRef, useState } from 'react';\nimport { ExampleModel } from '../../services/models/Example';\nexport function useExternalExample(example: ExampleModel, mimeType: string) {\n const [, setIsLoading] = useState(true); // to trigger component reload\n\n const value = useRef(undefined);\n const prevRef = useRef(undefined);\n\n if (prevRef.current !== example) {\n value.current = undefined;\n }\n\n prevRef.current = example;\n useEffect(() => {\n const load = async () => {\n setIsLoading(true);\n\n try {\n value.current = await example.getExternalValue(mimeType);\n } catch (e) {\n value.current = e;\n }\n\n setIsLoading(false);\n };\n\n load();\n }, [example, mimeType]);\n return value.current;\n}","import * as React from 'react';\nimport { StyledPre } from '../../common-elements/samples';\nimport { ExampleModel } from '../../services/models';\nimport { ExampleValue } from './ExampleValue';\nimport { useExternalExample } from './exernalExampleHook';\nexport interface ExampleProps {\n example: ExampleModel;\n mimeType: string;\n}\nexport function Example({\n example,\n mimeType\n}: ExampleProps) {\n if (example.value === undefined && example.externalValueUrl) {\n return ;\n } else {\n return ;\n }\n}\nexport function ExternalExample({\n example,\n mimeType\n}: ExampleProps) {\n const value = useExternalExample(example, mimeType);\n\n if (value === undefined) {\n return Loading...;\n }\n\n if (value instanceof Error) {\n return \n Error loading external example:
\n \n {example.externalValueUrl}\n \n
;\n }\n\n return ;\n}","// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport ReactDropdown from 'react-dropdown';\nimport { transparentize } from 'polished';\nimport styled from '../../styled-components';\nimport { StyledDropdown } from '../../common-elements';\nexport const MimeLabel = styled.div`\n padding: 12px;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n margin: 0 0 10px 0;\n display: block;\n`;\nexport const DropdownLabel = styled.span`\n font-family: ${({\n theme\n}) => theme.typography.headings.fontFamily};\n font-size: 12px;\n position: absolute;\n z-index: 1;\n top: -11px;\n left: 12px;\n font-weight: ${({\n theme\n}) => theme.typography.fontWeightBold};\n color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.textColor)};\n`;\nexport const DropdownWrapper = styled.div`\n position: relative;\n`;\nexport const InvertedSimpleDropdown = styled(StyledDropdown)`\n margin-left: 10px;\n text-transform: none;\n font-size: 0.929em;\n margin: 0 0 10px 0;\n display: block;\n background-color: ${({\n theme\n}) => transparentize(0.6, theme.rightPanel.backgroundColor)};\n .Dropdown-control {\n margin-top: 0;\n }\n .Dropdown-control,\n .Dropdown-control:hover {\n font-size: 1em;\n border: none;\n padding: 0.9em 1.6em 0.9em 0.9em;\n background: transparent;\n color: ${({\n theme\n}) => theme.rightPanel.textColor};\n box-shadow: none;\n\n .Dropdown-arrow {\n border-top-color: ${({\n theme\n}) => theme.rightPanel.textColor};\n }\n }\n .Dropdown-menu {\n margin: 0;\n margin-top: 2px;\n }\n`;\nexport const NoSampleLabel = styled.div`\n font-family: ${props => props.theme.typography.code.fontFamily};\n font-size: 12px;\n color: #ee807f;\n`;","import * as React from 'react';\nimport styled from '../../styled-components';\nimport { DropdownProps } from '../../common-elements';\nimport { MediaTypeModel } from '../../services/models';\nimport { Markdown } from '../Markdown/Markdown';\nimport { Example } from './Example';\nimport { DropdownLabel, DropdownWrapper, NoSampleLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n mediaType: MediaTypeModel;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n}\ninterface MediaTypeSamplesState {\n activeIdx: number;\n}\nexport class MediaTypeSamples extends React.Component {\n state = {\n activeIdx: 0\n };\n switchMedia = ({\n value\n }) => {\n this.setState({\n activeIdx: parseInt(value, 10)\n });\n };\n\n render() {\n const {\n activeIdx\n } = this.state;\n const examples = this.props.mediaType.examples || {};\n const mimeType = this.props.mediaType.name;\n const noSample = No sample;\n const examplesNames = Object.keys(examples);\n\n if (examplesNames.length === 0) {\n return noSample;\n }\n\n if (examplesNames.length > 1) {\n const options = examplesNames.map((name, idx) => {\n return {\n label: examples[name].summary || name,\n value: idx.toString()\n };\n });\n const example = examples[examplesNames[activeIdx]];\n const description = example.description;\n return \n \n Example\n {this.props.renderDropdown({\n value: options[activeIdx],\n options,\n onChange: this.switchMedia\n })}\n \n
\n {description && }\n \n
\n
;\n } else {\n const example = examples[examplesNames[0]];\n return \n {example.description && }\n \n ;\n }\n }\n\n}\nconst SamplesWrapper = styled.div`\n margin-top: 15px;\n`;","import { transparentize } from 'polished';\nimport styled, { extensionsHook } from '../styled-components';\nimport { PropertyNameCell } from './fields-layout';\nimport { ShelfIcon } from './shelfs';\nexport const ClickablePropertyNameCell = styled(PropertyNameCell)`\n cursor: pointer;\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.schema.arrow.size};\n width: ${({\n theme\n}) => theme.schema.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.schema.arrow.color};\n }\n }\n`;\nexport const FieldLabel = styled.span`\n vertical-align: middle;\n font-size: ${({\n theme\n}) => theme.typography.code.fontSize};\n line-height: 20px;\n`;\nexport const TypePrefix = styled(FieldLabel)`\n color: ${props => transparentize(0.2, props.theme.schema.typeNameColor)};\n`;\nexport const TypeName = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeNameColor};\n`;\nexport const TypeTitle = styled(FieldLabel)`\n color: ${props => props.theme.schema.typeTitleColor};\n word-break: break-word;\n`;\nexport const TypeFormat = TypeName;\nexport const RequiredLabel = styled(FieldLabel.withComponent('div'))`\n color: ${props => props.theme.schema.requireLabelColor};\n font-size: ${props => props.theme.schema.labelsTextSize};\n font-weight: normal;\n margin-left: 20px;\n line-height: 1;\n`;\nexport const RecursiveLabel = styled(FieldLabel)`\n color: ${({\n theme\n}) => theme.colors.warning.main};\n font-size: 13px;\n`;\nexport const NullableLabel = styled(FieldLabel)`\n color: #3195a6;\n font-size: 13px;\n`;\nexport const PatternLabel = styled(FieldLabel)`\n color: #3195a6;\n &::before,\n &::after {\n font-weight: bold;\n }\n`;\nexport const ExampleValue = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.text.primary)};\n color: ${transparentize(0.1, theme.colors.text.primary)};\n\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.text.primary)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ExampleValue')};\n`;\nexport const ExtensionValue = styled(ExampleValue)``;\nexport const ConstraintItem = styled(FieldLabel)`\n border-radius: 2px;\n ${({\n theme\n}) => `\n background-color: ${transparentize(0.95, theme.colors.primary.light)};\n color: ${transparentize(0.1, theme.colors.primary.main)};\n\n margin: 0 ${theme.spacing.unit}px;\n padding: 0 ${theme.spacing.unit}px;\n border: 1px solid ${transparentize(0.9, theme.colors.primary.main)};\n font-family: ${theme.typography.code.fontFamily};\n}`};\n & + & {\n margin-left: 0;\n }\n ${extensionsHook('ConstraintItem')};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { OpenAPIExternalDocumentation } from '../../types';\nimport { linksCss } from '../Markdown/styled.elements';\nconst LinkWrap = styled.div<{\n compact?: boolean;\n}>`\n ${linksCss};\n ${({\n compact\n}) => !compact ? 'margin: 1em 0' : ''}\n`;\n@observer\nexport class ExternalDocumentation extends React.Component<{\n externalDocs: OpenAPIExternalDocumentation;\n compact?: boolean;\n}> {\n render() {\n const {\n externalDocs\n } = this.props;\n\n if (!externalDocs || !externalDocs.url) {\n return null;\n }\n\n return \n {externalDocs.description || externalDocs.url}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface EnumValuesProps {\n values: string[];\n type: string;\n}\nexport class EnumValues extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n values,\n type\n } = this.props;\n const {\n enumSkipQuotes\n } = this.context;\n\n if (!values.length) {\n return null;\n }\n\n return
\n \n {type === 'array' ? l('enumArray') : ''}{' '}\n {values.length === 1 ? l('enumSingleValue') : l('enum')}:\n {' '}\n {values.map((value, idx) => {\n const exampleValue = enumSkipQuotes ? value : JSON.stringify(value);\n return \n {exampleValue}{' '}\n ;\n })}\n
;\n }\n\n}","import * as React from 'react';\nimport { ExtensionValue, FieldLabel } from '../../common-elements/fields';\nimport styled from '../../styled-components';\nimport { OptionsContext } from '../OptionsProvider';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst Extension = styled(StyledMarkdownBlock)`\n margin: 2px 0;\n`;\nexport interface ExtensionsProps {\n extensions: {\n [k: string]: any;\n };\n}\nexport class Extensions extends React.PureComponent {\n render() {\n const exts = this.props.extensions;\n return \n {options => <>\n {options.showExtensions && Object.keys(exts).map(key => \n {key.substring(2)}: {' '}\n \n {typeof exts[key] === 'string' ? exts[key] : JSON.stringify(exts[key])}\n \n )}\n }\n ;\n }\n\n}","import * as React from 'react';\nimport { ConstraintItem } from '../../common-elements/fields';\nexport interface ConstraintsViewProps {\n constraints: string[];\n}\nexport class ConstraintsView extends React.PureComponent {\n render() {\n if (this.props.constraints.length === 0) {\n return null;\n }\n\n return \n {' '}\n {this.props.constraints.map(constraint => {constraint} )}\n ;\n }\n\n}","import * as React from 'react';\nimport { ExampleValue, FieldLabel } from '../../common-elements/fields';\nexport interface FieldDetailProps {\n value?: any;\n label: string;\n raw?: boolean;\n}\nexport class FieldDetail extends React.PureComponent {\n render() {\n if (this.props.value === undefined) {\n return null;\n }\n\n const value = this.props.raw ? this.props.value : JSON.stringify(this.props.value);\n return
\n {this.props.label} {value}\n
;\n }\n\n}","import * as React from 'react';\nimport { NullableLabel, PatternLabel, RecursiveLabel, TypeFormat, TypeName, TypePrefix, TypeTitle } from '../../common-elements/fields';\nimport { serializeParameterValue } from '../../utils/openapi';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { EnumValues } from './EnumValues';\nimport { Extensions } from './Extensions';\nimport { FieldProps } from './Field';\nimport { ConstraintsView } from './FieldContstraints';\nimport { FieldDetail } from './FieldDetail';\nimport { Badge } from '../../common-elements/';\nimport { l } from '../../services/Labels';\nimport { OptionsContext } from '../OptionsProvider';\nexport class FieldDetails extends React.PureComponent {\n static contextType = OptionsContext;\n\n render() {\n const {\n showExamples,\n field,\n renderDiscriminatorSwitch\n } = this.props;\n const {\n enumSkipQuotes,\n hideSchemaTitles\n } = this.context;\n const {\n schema,\n description,\n example,\n deprecated\n } = field;\n const rawDefault = !!enumSkipQuotes || field.in === 'header'; // having quotes around header field default values is confusing and inappropriate\n\n let exampleField: JSX.Element | null = null;\n\n if (showExamples && example !== undefined) {\n const label = l('example') + ':';\n\n if (field.in && (field.style || field.serializationMime)) {\n // decode for better readability in examples: see https://github.com/Redocly/redoc/issues/1138\n const serializedValue = decodeURIComponent(serializeParameterValue(field, example));\n exampleField = ;\n } else {\n exampleField = ;\n }\n }\n\n return
\n
\n {schema.typePrefix}\n {schema.displayType}\n {schema.displayFormat && \n {' '}\n <\n {schema.displayFormat}\n >{' '}\n }\n {schema.title && !hideSchemaTitles && ({schema.title}) }\n \n {schema.nullable && {l('nullable')} }\n {schema.pattern && {schema.pattern} }\n {schema.isCircular && {l('recursive')} }\n
\n {deprecated &&
\n {l('deprecated')} \n
}\n \n {!renderDiscriminatorSwitch && }{' '}\n {exampleField}\n {}\n
\n \n
\n {schema.externalDocs && }\n {renderDiscriminatorSwitch && renderDiscriminatorSwitch(this.props) || null}\n
;\n }\n\n}","import * as React from 'react';\nimport { Schema, SchemaProps } from './Schema';\nimport { ArrayClosingLabel, ArrayOpenningLabel } from '../../common-elements';\nimport styled from '../../styled-components';\nconst PaddedSchema = styled.div`\n padding-left: ${({\n theme\n}) => theme.spacing.unit * 2}px;\n`;\nexport class ArraySchema extends React.PureComponent {\n render() {\n const itemsSchema = this.props.schema.items!;\n return
\n Array \n \n \n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ClickablePropertyNameCell, RequiredLabel } from '../../common-elements/fields';\nimport { FieldDetails } from './FieldDetails';\nimport { InnerPropertiesWrap, PropertyBullet, PropertyCellWithInner, PropertyDetailsCell, PropertyNameCell } from '../../common-elements/fields-layout';\nimport { ShelfIcon } from '../../common-elements/';\nimport { FieldModel } from '../../services/models';\nimport { Schema, SchemaOptions } from '../Schema/Schema';\nexport interface FieldProps extends SchemaOptions {\n className?: string;\n isLast?: boolean;\n showExamples?: boolean;\n field: FieldModel;\n expandByDefault?: boolean;\n renderDiscriminatorSwitch?: (opts: FieldProps) => JSX.Element;\n}\n@observer\nexport class Field extends React.Component {\n toggle = () => {\n if (this.props.field.expanded === undefined && this.props.expandByDefault) {\n this.props.field.expanded = false;\n } else {\n this.props.field.toggle();\n }\n };\n\n render() {\n const {\n className,\n field,\n isLast,\n expandByDefault\n } = this.props;\n const {\n name,\n deprecated,\n required,\n kind\n } = field;\n const withSubSchema = !field.schema.isPrimitive && !field.schema.isCircular;\n const expanded = field.expanded === undefined ? expandByDefault : field.expanded;\n const paramName = withSubSchema ? \n \n {name}\n \n {required && required }\n : \n \n {name}\n {required && required }\n ;\n return <>\n \n {paramName}\n \n \n \n \n {expanded && withSubSchema && \n \n \n \n \n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownOption, StyledDropdown } from '../../common-elements/dropdown';\nimport { SchemaModel } from '../../services/models';\n@observer\nexport class DiscriminatorDropdown extends React.Component<{\n parent: SchemaModel;\n enumValues: string[];\n}> {\n sortOptions(options: DropdownOption[], enumValues: string[]): void {\n if (enumValues.length === 0) {\n return;\n }\n\n const enumOrder = {};\n enumValues.forEach((enumItem, idx) => {\n enumOrder[enumItem] = idx;\n });\n options.sort((a, b) => {\n return enumOrder[a.label] > enumOrder[b.label] ? 1 : -1;\n });\n }\n\n render() {\n const {\n parent,\n enumValues\n } = this.props;\n\n if (parent.oneOf === undefined) {\n return null;\n }\n\n const options = parent.oneOf.map((subSchema, idx) => {\n return {\n value: idx.toString(),\n label: subSchema.title\n };\n });\n const activeItem = options[parent.activeOneOf];\n this.sortOptions(options, enumValues);\n return ;\n }\n\n changeActiveChild = ({\n value\n }) => {\n const idx = parseInt(value, 10);\n this.props.parent.activateOneOf(idx);\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { SchemaModel } from '../../services/models';\nimport { PropertiesTable, PropertiesTableCaption } from '../../common-elements/fields-layout';\nimport { Field } from '../Fields/Field';\nimport { DiscriminatorDropdown } from './DiscriminatorDropdown';\nimport { SchemaProps } from './Schema';\nimport { mapWithLast } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface ObjectSchemaProps extends SchemaProps {\n discriminator?: {\n fieldName: string;\n parentSchema: SchemaModel;\n };\n}\n@observer\nexport class ObjectSchema extends React.Component {\n static contextType = OptionsContext;\n\n get parentSchema() {\n return this.props.discriminator!.parentSchema;\n }\n\n render() {\n const {\n schema: {\n fields = []\n },\n showTitle,\n discriminator\n } = this.props;\n const needFilter = this.props.skipReadOnly || this.props.skipWriteOnly;\n const filteredFields = needFilter ? fields.filter(item => {\n return !(this.props.skipReadOnly && item.schema.readOnly || this.props.skipWriteOnly && item.schema.writeOnly);\n }) : fields;\n const expandByDefault = this.context.expandSingleSchemaField && filteredFields.length === 1;\n return \n {showTitle && {this.props.schema.title}}\n \n {mapWithLast(filteredFields, (field, isLast) => {\n return ) || undefined} className={field.expanded ? 'expanded' : undefined} showExamples={false} skipReadOnly={this.props.skipReadOnly} skipWriteOnly={this.props.skipWriteOnly} showTitle={this.props.showTitle} />;\n })}\n \n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OneOfButton as StyledOneOfButton, OneOfLabel, OneOfList } from '../../common-elements/schema';\nimport { SchemaModel } from '../../services/models';\nimport { Schema, SchemaProps } from './Schema';\nexport interface OneOfButtonProps {\n subSchema: SchemaModel;\n idx: number;\n schema: SchemaModel;\n}\n@observer\nexport class OneOfButton extends React.Component {\n render() {\n const {\n idx,\n schema,\n subSchema\n } = this.props;\n return \n {subSchema.title || subSchema.typePrefix + subSchema.displayType}\n ;\n }\n\n activateOneOf = () => {\n this.props.schema.activateOneOf(this.props.idx);\n };\n}\n@observer\nexport class OneOfSchema extends React.Component {\n render() {\n const {\n schema: {\n oneOf\n },\n schema\n } = this.props;\n\n if (oneOf === undefined) {\n return null;\n }\n\n return
\n {schema.oneOfType} \n \n {oneOf.map((subSchema, idx) => )}\n \n \n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { RecursiveLabel, TypeName, TypeTitle } from '../../common-elements/fields';\nimport { FieldDetails } from '../Fields/FieldDetails';\nimport { FieldModel, SchemaModel } from '../../services/models';\nimport { ArraySchema } from './ArraySchema';\nimport { ObjectSchema } from './ObjectSchema';\nimport { OneOfSchema } from './OneOfSchema';\nimport { l } from '../../services/Labels';\nexport interface SchemaOptions {\n showTitle?: boolean;\n skipReadOnly?: boolean;\n skipWriteOnly?: boolean;\n}\nexport interface SchemaProps extends SchemaOptions {\n schema: SchemaModel;\n}\n@observer\nexport class Schema extends React.Component> {\n render() {\n const {\n schema\n } = this.props;\n\n if (!schema) {\n return Schema not provided ;\n }\n\n const {\n type,\n oneOf,\n discriminatorProp,\n isCircular\n } = schema;\n\n if (isCircular) {\n return
\n {schema.displayType}\n {schema.title && {schema.title} }\n {l('recursive')} \n
;\n }\n\n if (discriminatorProp !== undefined) {\n if (!oneOf || !oneOf.length) {\n throw new Error(`Looks like you are using discriminator wrong: you don't have any definition inherited from the ${schema.title}`);\n }\n\n return ;\n }\n\n if (oneOf !== undefined) {\n return ;\n }\n\n switch (type) {\n case 'object':\n return ;\n\n case 'array':\n return ;\n } // TODO: maybe adjust FieldDetails to accept schema\n\n\n const field = (({\n schema,\n name: '',\n required: false,\n description: schema.description,\n externalDocs: schema.externalDocs,\n deprecated: false,\n toggle: () => null,\n expanded: false\n } as any) as FieldModel); // cast needed for hot-loader to not fail\n\n return
\n \n
;\n }\n\n}","export * from './Schema';\nexport * from './ObjectSchema';\nexport * from './OneOfSchema';\nexport * from './ArraySchema';\nexport * from './DiscriminatorDropdown';","import * as React from 'react';\nimport { DarkRightPanel, MiddlePanel, MimeLabel, Row, Section } from '../../common-elements';\nimport { MediaTypeModel, OpenAPIParser, RedocNormalizedOptions } from '../../services';\nimport styled from '../../styled-components';\nimport { OpenAPIMediaType } from '../../types';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypeSamples } from '../PayloadSamples/MediaTypeSamples';\nimport { InvertedSimpleDropdown } from '../PayloadSamples/styled.elements';\nimport { Schema } from '../Schema';\nexport interface ObjectDescriptionProps {\n schemaRef: string;\n exampleRef?: string;\n showReadOnly?: boolean;\n showWriteOnly?: boolean;\n parser: OpenAPIParser;\n options: RedocNormalizedOptions;\n}\nexport class SchemaDefinition extends React.PureComponent {\n private static getMediaType(schemaRef: string, exampleRef?: string): OpenAPIMediaType {\n if (!schemaRef) {\n return {};\n }\n\n const info: OpenAPIMediaType = {\n schema: {\n $ref: schemaRef\n }\n };\n\n if (exampleRef) {\n info.examples = {\n example: {\n $ref: exampleRef\n }\n };\n }\n\n return info;\n }\n\n private _mediaModel: MediaTypeModel;\n\n private get mediaModel() {\n const {\n parser,\n schemaRef,\n exampleRef,\n options\n } = this.props;\n\n if (!this._mediaModel) {\n this._mediaModel = new MediaTypeModel(parser, 'json', false, SchemaDefinition.getMediaType(schemaRef, exampleRef), options);\n }\n\n return this._mediaModel;\n }\n\n render() {\n const {\n showReadOnly = true,\n showWriteOnly = false\n } = this.props;\n return
\n \n \n \n \n \n \n \n \n \n \n
;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}\nconst MediaSamplesWrap = styled.div`\n background: ${({\n theme\n}) => theme.codeSample.backgroundColor};\n & > div,\n & > pre {\n padding: ${props => props.theme.spacing.unit * 4}px;\n margin: 0;\n }\n\n & > div > pre {\n padding: 0;\n }\n`;","import * as React from 'react';\nimport { SecuritySchemesModel } from '../../services/models';\nimport { H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { OpenAPISecurityScheme } from '../../types';\nimport { titleize } from '../../utils/helpers';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nconst AUTH_TYPES = {\n oauth2: 'OAuth2',\n apiKey: 'API Key',\n http: 'HTTP',\n openIdConnect: 'Open ID Connect'\n};\nexport interface OAuthFlowProps {\n type: string;\n flow: OpenAPISecurityScheme['flows'][keyof OpenAPISecurityScheme['flows']];\n}\nexport class OAuthFlow extends React.PureComponent {\n render() {\n const {\n type,\n flow\n } = this.props;\n return \n {type} OAuth Flow \n \n {type === 'implicit' || type === 'authorizationCode' ?
\n Authorization URL: \n {(flow as any).authorizationUrl}\n
: null}\n {type === 'password' || type === 'clientCredentials' || type === 'authorizationCode' ?
\n Token URL: \n {(flow as any).tokenUrl}\n
: null}\n {flow!.refreshUrl &&
\n Refresh URL: \n {flow!.refreshUrl}\n
}\n
\n Scopes: \n
\n
    \n {Object.keys(flow!.scopes || {}).map(scope =>
  • \n {scope} - \n
  • )}\n
\n \n ;\n }\n\n}\nexport interface SecurityDefsProps {\n securitySchemes: SecuritySchemesModel;\n}\nexport class SecurityDefs extends React.PureComponent {\n render() {\n return this.props.securitySchemes.schemes.map(scheme =>
\n \n \n

\n \n {scheme.id}\n

\n \n \n \n \n \n \n \n \n {scheme.apiKey ? \n \n \n : scheme.http ? [\n \n \n , scheme.http.scheme === 'bearer' && scheme.http.bearerFormat && \n \n \n ] : scheme.openId ? \n \n \n : scheme.flows ? Object.keys(scheme.flows).map(type => ) : null}\n \n
Security Scheme Type {AUTH_TYPES[scheme.type] || scheme.type}
{titleize(scheme.apiKey.in || '')} parameter name: {scheme.apiKey.name}
HTTP Authorization Scheme {scheme.http.scheme}
Bearer format "{scheme.http.bearerFormat}"
Connect URL \n \n {scheme.openId.connectUrl}\n \n
\n
\n
\n
\n
);\n }\n\n}","import { Lambda, observe } from 'mobx';\nimport { OpenAPISpec } from '../types';\nimport { loadAndBundleSpec } from '../utils/loadAndBundleSpec';\nimport { history } from './HistoryService';\nimport { MarkerService } from './MarkerService';\nimport { MenuStore } from './MenuStore';\nimport { SpecStore } from './models';\nimport { RedocNormalizedOptions, RedocRawOptions } from './RedocNormalizedOptions';\nimport { ScrollService } from './ScrollService';\nimport { SearchStore } from './SearchStore';\nimport { SchemaDefinition } from '../components/SchemaDefinition/SchemaDefinition';\nimport { SecurityDefs } from '../components/SecuritySchemes/SecuritySchemes';\nimport { SCHEMA_DEFINITION_JSX_NAME, SECURITY_DEFINITIONS_COMPONENT_NAME, SECURITY_DEFINITIONS_JSX_NAME } from '../utils/openapi';\nimport { IS_BROWSER } from '../utils';\nexport interface StoreState {\n menu: {\n activeItemIdx: number;\n };\n spec: {\n url?: string;\n data: any;\n };\n searchIndex: any;\n options: RedocRawOptions;\n}\nexport async function createStore(spec: object, specUrl: string | undefined, options: RedocRawOptions = {}) {\n const resolvedSpec = await loadAndBundleSpec(spec || specUrl);\n return new AppStore(resolvedSpec, specUrl, options);\n}\nexport class AppStore {\n /**\n * deserialize store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO:\n static fromJS(state: StoreState): AppStore {\n const inst = new AppStore(state.spec.data, state.spec.url, state.options, false);\n inst.menu.activeItemIdx = state.menu.activeItemIdx || 0;\n inst.menu.activate(inst.menu.flatItems[inst.menu.activeItemIdx]);\n\n if (!inst.options.disableSearch) {\n inst.search!.load(state.searchIndex);\n }\n\n return inst;\n }\n\n menu: MenuStore;\n spec: SpecStore;\n rawOptions: RedocRawOptions;\n options: RedocNormalizedOptions;\n search?: SearchStore;\n marker = new MarkerService();\n private scroll: ScrollService;\n private disposer: Lambda | null = null;\n\n constructor(spec: OpenAPISpec, specUrl?: string, options: RedocRawOptions = {}, createSearchIndex: boolean = true) {\n this.rawOptions = options;\n this.options = new RedocNormalizedOptions(options, DEFAULT_OPTIONS);\n this.scroll = new ScrollService(this.options); // update position statically based on hash (in case of SSR)\n\n MenuStore.updateOnHistory(history.currentId, this.scroll);\n this.spec = new SpecStore(spec, specUrl, this.options);\n this.menu = new MenuStore(this.spec, this.scroll, history);\n\n if (!this.options.disableSearch) {\n this.search = new SearchStore();\n\n if (createSearchIndex) {\n this.search.indexItems(this.menu.items);\n }\n\n this.disposer = observe(this.menu, 'activeItemIdx', change => {\n this.updateMarkOnMenu((change.newValue as number));\n });\n }\n }\n\n onDidMount() {\n this.menu.updateOnHistory();\n this.updateMarkOnMenu(this.menu.activeItemIdx);\n }\n\n dispose() {\n this.scroll.dispose();\n this.menu.dispose();\n\n if (this.search) {\n this.search.dispose();\n }\n\n if (this.disposer != null) {\n this.disposer();\n }\n }\n /**\n * serializes store\n * **SUPER HACKY AND NOT OPTIMAL IMPLEMENTATION**\n */\n // TODO: improve\n\n\n async toJS(): Promise {\n return {\n menu: {\n activeItemIdx: this.menu.activeItemIdx\n },\n spec: {\n url: this.spec.parser.specUrl,\n data: this.spec.parser.spec\n },\n searchIndex: this.search ? await this.search.toJS() : undefined,\n options: this.rawOptions\n };\n }\n\n private updateMarkOnMenu(idx: number) {\n const start = Math.max(0, idx);\n const end = Math.min(this.menu.flatItems.length, start + 5);\n const elements: Element[] = [];\n\n for (let i = start; i < end; i++) {\n const elem = this.menu.getElementAt(i);\n\n if (!elem) {\n continue;\n }\n\n elements.push(elem);\n }\n\n if (idx === -1 && IS_BROWSER) {\n const $description = document.querySelector('[data-role=\"redoc-description\"]');\n if ($description) elements.push($description);\n }\n\n this.marker.addOnly(elements);\n this.marker.mark();\n }\n\n}\nconst DEFAULT_OPTIONS: RedocRawOptions = {\n allowedMdComponents: {\n [SECURITY_DEFINITIONS_COMPONENT_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SECURITY_DEFINITIONS_JSX_NAME]: {\n component: SecurityDefs,\n propsSelector: (store: AppStore) => ({\n securitySchemes: store.spec.securitySchemes\n })\n },\n [SCHEMA_DEFINITION_JSX_NAME]: {\n component: SchemaDefinition,\n propsSelector: (store: AppStore) => ({\n parser: store.spec.parser,\n options: store.options\n })\n }\n }\n};","export * from './AppStore';\nexport * from './OpenAPIParser';\nexport * from './MarkdownRenderer';\nexport * from './MenuStore';\nexport * from './ScrollService';\nexport * from './SpecStore';\nexport * from './ClipboardService';\nexport * from './HistoryService';\nexport * from './models';\nexport * from './RedocNormalizedOptions';\nexport * from './MenuBuilder';\nexport * from './SearchStore';\nexport * from './MarkerService';","import { H1, MiddlePanel } from '../../common-elements';\nimport styled, { extensionsHook } from '../../styled-components';\nconst delimiterWidth = 15;\nexport const ApiInfoWrap = MiddlePanel;\nexport const ApiHeader = styled(H1)`\n margin-top: 0;\n margin-bottom: 0.5em;\n display: flex;\n\n ${extensionsHook('ApiHeader')};\n`;\nexport const AdditionalDocLink = styled.a`\n text-decoration:none\n font-size: 16px;\n color: #0084CE;\n &:hover {\n color: #00639B;\n }\n`;\nexport const DownloadButton = styled.a`\n border-radius: 16px;\n color: #FFFFFF;\n font-weight: normal;\n font-size: 14px;\n text-align: center;\n margin-left: 0.5em;\n padding: 6px 24px;\n display: inline-block;\n text-decoration: none;\n cursor: pointer;\n background: #0084CE;\n &:hover {\n background: #339DD8;\n color: #FFFFFF;\n }\n &:active {\n background: #00639B;\n color: #FFFFFF;\n }\n\n ${extensionsHook('DownloadButton')};\n`;\nexport const InfoSpan = styled.span`\n &::before {\n content: '|';\n display: inline-block;\n opacity: 0.5;\n width: ${delimiterWidth}px;\n text-align: center;\n }\n\n &:last-child::after {\n display: none;\n }\n`;\nexport const InfoSpanBoxWrap = styled.div`\n overflow: hidden;\n`;\nexport const InfoSpanBox = styled.div`\n display: flex;\n flex-wrap: wrap;\n // hide separator on new lines: idea from https://stackoverflow.com/a/31732902/1749888\n margin-left: -${delimiterWidth}px;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { AppStore } from '../../services/AppStore';\nimport { MiddlePanel, Row, Section } from '../../common-elements/';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Markdown } from '../Markdown/Markdown';\nimport { StyledMarkdownBlock } from '../Markdown/styled.elements';\nimport { AdditionalDocLink, ApiHeader, DownloadButton, InfoSpan, InfoSpanBox, InfoSpanBoxWrap } from './styled.elements';\nexport interface ApiInfoProps {\n store: AppStore;\n}\n@observer\nexport class ApiInfo extends React.Component {\n state = {\n gotoIconColor: '#0084CE',\n gotoTextColor: '#0084CE'\n };\n handleHoverState = () => {\n this.setState({\n gotoIconColor: '#339DD8',\n gotoTextColor: '#339DD8'\n });\n };\n handleActiveState = () => {\n this.setState({\n gotoIconColor: '#00639B',\n gotoTextColor: '#00639B'\n });\n };\n handleLeaveState = () => {\n this.setState({\n gotoIconColor: '#0084CE',\n gotoTextColor: '#0084CE'\n });\n };\n handleDownloadClick = e => {\n if (!e.target.href) {\n e.target.href = this.props.store.spec.info.downloadLink;\n }\n };\n\n render() {\n const {\n store\n } = this.props;\n const {\n info,\n externalDocs\n } = store.spec;\n const hideDownloadButton = store.options.hideDownloadButton;\n const downloadFilename = info.downloadFileName;\n const downloadLink = info.downloadLink;\n const license = info.license && \n License: {info.license.name}\n || null;\n const website = info.contact && info.contact.url && \n URL: {info.contact.url}\n || null;\n const email = info.contact && info.contact.email && \n {info.contact.name || 'E-mail'}:{' '}\n {info.contact.email}\n || null;\n const terms = info.termsOfService && \n Terms of Service\n || null;\n const version = info.version && ({info.version}) || null;\n const hasAdditionalDoc = store.options.hasAdditionalDoc;\n return
\n \n \n \n
\n {info.title} {version}\n
\n {hasAdditionalDoc ?
\n \n \n \n \n \n \n \n \n Additional Docs\n \n \n
: null}\n
\n {!hideDownloadButton &&

\n Download OpenAPI specification:\n \n Download\n \n

}\n \n {(info.license || info.contact || info.termsOfService) && \n \n {email} {website} {license} {terms}\n \n || null}\n \n \n {externalDocs && }\n
\n
\n
;\n }\n\n}","export { ApiInfo } from './ApiInfo';","import styled from '../../styled-components';\nexport const ApiBackToText = styled.a`\n text-decoration:none\n padding: 50px 0 37px 15px;\n color: #0084CE;\n font-weight: 400;\n font-size: 16px;\n line-height: 24px;\n display: flex;\n align-items: center;\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ApiBackToText } from './styled.elements';\n@observer\nexport class ApiBackTo extends React.Component<{\n isOt2: boolean;\n}> {\n state = {\n backTextColor: '#0084CE'\n };\n handleHoverState = () => {\n this.setState({\n backTextColor: '#339DD8'\n });\n };\n handleActiveState = () => {\n this.setState({\n backTextColor: '#00639B'\n });\n };\n handleLeaveState = () => {\n this.setState({\n backTextColor: '#0084CE'\n });\n };\n\n render() {\n const {\n isOt2\n } = this.props;\n return
\n \n \n \n \n\n {isOt2 ? OT2 services : OpenText products}\n \n
;\n }\n\n}","import * as classnames from 'classnames';\nimport { darken } from 'polished';\nimport { deprecatedCss, ShelfIcon } from '../../common-elements';\nimport styled, { css } from '../../styled-components';\nexport const OperationBadge = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `operation-type ${props.type}`\n}))<{\n type: string;\n}>`\n width: 32px;\n display: inline-block;\n height: ${props => props.theme.typography.code.fontSize};\n line-height: ${props => props.theme.typography.code.fontSize};\n background-color: #333;\n border-radius: 3px;\n background-repeat: no-repeat;\n background-position: 6px 4px;\n font-size: 7px;\n font-family: Verdana; // web-safe\n color: white;\n text-transform: uppercase;\n text-align: center;\n font-weight: bold;\n vertical-align: middle;\n margin-right: 6px;\n margin-top: 2px;\n\n &.get {\n background-color: ${props => props.theme.colors.http.get};\n }\n\n &.post {\n background-color: ${props => props.theme.colors.http.post};\n }\n\n &.put {\n background-color: ${props => props.theme.colors.http.put};\n }\n\n &.options {\n background-color: ${props => props.theme.colors.http.options};\n }\n\n &.patch {\n background-color: ${props => props.theme.colors.http.patch};\n }\n\n &.delete {\n background-color: ${props => props.theme.colors.http.delete};\n }\n\n &.basic {\n background-color: ${props => props.theme.colors.http.basic};\n }\n\n &.link {\n background-color: ${props => props.theme.colors.http.link};\n }\n\n &.head {\n background-color: ${props => props.theme.colors.http.head};\n }\n`;\n\nfunction menuItemActiveBg(depth, {\n theme\n}): string {\n if (depth > 1) {\n return darken(0.1, theme.menu.backgroundColor);\n } else if (depth === 1) {\n return darken(0.05, theme.menu.backgroundColor);\n } else {\n return '';\n }\n}\n\nexport const MenuItemUl = styled.ul<{\n expanded: boolean;\n}>`\n margin: 0;\n padding: 0;\n\n & & {\n font-size: 0.929em;\n }\n\n ${props => props.expanded ? '' : 'display: none;'};\n`;\nexport const MenuItemLi = styled.li<{\n depth: number;\n}>`\n list-style: none inside none;\n overflow: hidden;\n text-overflow: ellipsis;\n padding: 0;\n ${props => props.depth === 0 ? 'margin-top: 15px' : ''};\n`;\nexport const menuItemDepth = {\n 0: css`\n opacity: 0.7;\n text-transform: ${({\n theme\n }) => theme.menu.groupItems.textTransform};\n font-size: 0.8em;\n padding-bottom: 0;\n cursor: default;\n color: ${props => props.theme.menu.textColor};\n `,\n 1: css`\n font-size: 0.929em;\n text-transform: ${({\n theme\n }) => theme.menu.level1Items.textTransform};\n &:hover {\n color: ${props => props.theme.menu.activeTextColor};\n }\n `,\n 2: css`\n color: ${props => props.theme.menu.textColor};\n `\n};\nexport interface MenuItemLabelType {\n depth: number;\n active: boolean;\n deprecated?: boolean;\n type?: string;\n}\nexport const MenuItemLabel = styled.label.attrs((props: MenuItemLabelType) => ({\n role: 'menuitem',\n className: classnames('-depth' + props.depth, {\n active: props.active\n })\n}))`\n cursor: pointer;\n color: ${props => props.active ? props.theme.menu.activeTextColor : props.theme.menu.textColor};\n margin: 0;\n padding: 12.5px ${props => props.theme.spacing.unit * 4}px;\n ${({\n depth,\n type,\n theme\n}) => type === 'section' && depth > 1 && 'padding-left: ' + theme.spacing.unit * 8 + 'px;' || ''}\n display: flex;\n justify-content: space-between;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n ${props => menuItemDepth[props.depth]};\n background-color: ${props => props.active ? menuItemActiveBg(props.depth, props) : ''};\n\n ${props => props.deprecated && deprecatedCss || ''};\n\n &:hover {\n background-color: ${props => menuItemActiveBg(props.depth, props)};\n }\n\n ${ShelfIcon} {\n height: ${({\n theme\n}) => theme.menu.arrow.size};\n width: ${({\n theme\n}) => theme.menu.arrow.size};\n polygon {\n fill: ${({\n theme\n}) => theme.menu.arrow.color};\n }\n }\n`;\nexport const MenuItemTitle = styled.span<{\n width?: string;\n}>`\n display: inline-block;\n vertical-align: middle;\n width: ${props => props.width ? props.width : 'auto'};\n overflow: hidden;\n text-overflow: ellipsis;\n`;\nexport const RedocAttribution = styled.div`\n ${({\n theme\n}) => `\n font-size: 0.8em;\n margin-top: ${theme.spacing.unit * 2}px;\n padding: 0 ${theme.spacing.unit * 4}px;\n text-align: left;\n\n opacity: 0.7;\n\n a,\n a:visited,\n a:hover {\n color: ${theme.menu.textColor} !important;\n border-top: 1px solid ${darken(0.1, theme.menu.backgroundColor)};\n padding: ${theme.spacing.unit}px 0;\n display: block;\n }\n`};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem } from '../../services';\nimport { MenuItem } from './MenuItem';\nimport { MenuItemUl } from './styled.elements';\nexport interface MenuItemsProps {\n items: IMenuItem[];\n expanded?: boolean;\n onActivate?: (item: IMenuItem) => void;\n style?: React.CSSProperties;\n root?: boolean;\n className?: string;\n}\n@observer\nexport class MenuItems extends React.Component {\n render() {\n const {\n items,\n root,\n className\n } = this.props;\n const expanded = this.props.expanded == null ? true : this.props.expanded;\n return \n {items.map((item, idx) => )}\n ;\n }\n\n}","// import { observe } from 'mobx';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ShelfIcon } from '../../common-elements/shelfs';\nimport { IMenuItem, OperationModel } from '../../services';\nimport { shortenHTTPVerb } from '../../utils/openapi';\nimport { MenuItems } from './MenuItems';\nimport { MenuItemLabel, MenuItemLi, MenuItemTitle, OperationBadge } from './styled.elements';\nexport interface MenuItemProps {\n item: IMenuItem;\n onActivate?: (item: IMenuItem) => void;\n withoutChildren?: boolean;\n}\n@observer\nexport class MenuItem extends React.Component {\n ref = React.createRef();\n activate = (evt: React.MouseEvent) => {\n this.props.onActivate!(this.props.item);\n evt.stopPropagation();\n };\n\n componentDidMount() {\n this.scrollIntoViewIfActive();\n }\n\n componentDidUpdate() {\n this.scrollIntoViewIfActive();\n }\n\n scrollIntoViewIfActive() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item,\n withoutChildren\n } = this.props;\n return \n {item.type === 'operation' ? : \n \n {item.name}\n {this.props.children}\n \n {item.depth > 0 && item.items.length > 0 && || null}\n }\n {!withoutChildren && item.items && item.items.length > 0 && }\n ;\n }\n\n}\nexport interface OperationMenuItemContentProps {\n item: OperationModel;\n}\n@observer\nexport class OperationMenuItemContent extends React.Component {\n ref = React.createRef();\n\n componentDidUpdate() {\n if (this.props.item.active && this.ref.current) {\n this.ref.current.scrollIntoViewIfNeeded();\n }\n }\n\n render() {\n const {\n item\n } = this.props;\n return \n {shortenHTTPVerb(item.httpVerb)}\n \n {item.name}\n {this.props.children}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { darken, getLuminance, lighten } from 'polished';\nimport styled from '../../styled-components';\nimport { MenuItemLabel } from '../SideMenu/styled.elements';\nexport const SearchWrap = styled.div`\n padding: 5px 0;\n`;\nexport const SearchInput = styled.input.attrs(() => ({\n className: 'search-input'\n}))`\n width: calc(100% - ${props => props.theme.spacing.unit * 8}px);\n box-sizing: border-box;\n margin: 0 ${props => props.theme.spacing.unit * 4}px;\n padding: 5px ${props => props.theme.spacing.unit * 2}px 5px\n ${props => props.theme.spacing.unit * 4}px;\n border: 0;\n border-bottom: 1px solid\n ${({\n theme\n}) => (getLuminance(theme.menu.backgroundColor) > 0.5 ? darken : lighten)(0.1, theme.menu.backgroundColor)};\n font-family: ${({\n theme\n}) => theme.typography.fontFamily};\n font-weight: bold;\n font-size: 13px;\n color: ${props => props.theme.menu.textColor};\n background-color: transparent;\n outline: none;\n`;\nexport const SearchIcon = styled((props: {\n className?: string;\n}) => \n \n ).attrs({\n className: 'search-icon'\n})`\n position: absolute;\n left: ${props => props.theme.spacing.unit * 4}px;\n height: 1.8em;\n width: 0.9em;\n\n path {\n fill: ${props => props.theme.menu.textColor};\n }\n`;\nexport const SearchResultsBox = styled.div`\n padding: ${props => props.theme.spacing.unit}px 0;\n background-color: ${({\n theme\n}) => darken(0.05, theme.menu.backgroundColor)}};\n color: ${props => props.theme.menu.textColor};\n min-height: 150px;\n max-height: 250px;\n border-top: ${({\n theme\n}) => darken(0.1, theme.menu.backgroundColor)}};\n border-bottom: ${({\n theme\n}) => darken(0.1, theme.menu.backgroundColor)}};\n margin-top: 10px;\n line-height: 1.4;\n font-size: 0.9em;\n\n ${MenuItemLabel} {\n padding-top: 6px;\n padding-bottom: 6px;\n\n &:hover,\n &.active {\n background-color: ${({\n theme\n}) => darken(0.1, theme.menu.backgroundColor)};\n }\n\n > svg {\n display: none;\n }\n }\n`;\nexport const ClearIcon = styled.i`\n position: absolute;\n display: inline-block;\n width: ${props => props.theme.spacing.unit * 2}px;\n text-align: center;\n right: ${props => props.theme.spacing.unit * 4}px;\n line-height: 2em;\n vertical-align: middle;\n margin-right: 2px;\n cursor: pointer;\n font-style: normal;\n color: '#666';\n`;","import * as React from 'react';\nimport { IMenuItem } from '../../services/MenuStore';\nimport { SearchStore } from '../../services/SearchStore';\nimport { MenuItem } from '../SideMenu/MenuItem';\nimport { MarkerService } from '../../services/MarkerService';\nimport { SearchResult } from '../../services/SearchWorker.worker';\nimport { bind, debounce } from 'decko';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\nimport { ClearIcon, SearchIcon, SearchInput, SearchResultsBox, SearchWrap } from './styled.elements';\nexport interface SearchBoxProps {\n search: SearchStore;\n marker: MarkerService;\n getItemById: (id: string) => IMenuItem | undefined;\n onActivate: (item: IMenuItem) => void;\n className?: string;\n}\nexport interface SearchBoxState {\n results: SearchResult[];\n term: string;\n activeItemIdx: number;\n}\nexport class SearchBox extends React.PureComponent {\n activeItemRef: MenuItem | null = null;\n\n constructor(props) {\n super(props);\n this.state = {\n results: [],\n term: '',\n activeItemIdx: -1\n };\n }\n\n clearResults(term: string) {\n this.setState({\n results: [],\n term\n });\n this.props.marker.unmark();\n }\n\n clear = () => {\n this.setState({\n results: [],\n term: '',\n activeItemIdx: -1\n });\n this.props.marker.unmark();\n };\n handleKeyDown = (event: React.KeyboardEvent) => {\n if (event.keyCode === 27) {\n // ESQ\n this.clear();\n }\n\n if (event.keyCode === 40) {\n // Arrow down\n this.setState({\n activeItemIdx: Math.min(this.state.activeItemIdx + 1, this.state.results.length - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 38) {\n // Arrow up\n this.setState({\n activeItemIdx: Math.max(0, this.state.activeItemIdx - 1)\n });\n event.preventDefault();\n }\n\n if (event.keyCode === 13) {\n // enter\n const activeResult = this.state.results[this.state.activeItemIdx];\n\n if (activeResult) {\n const item = this.props.getItemById(activeResult.meta);\n\n if (item) {\n this.props.onActivate(item);\n }\n }\n }\n };\n\n setResults(results: SearchResult[], term: string) {\n this.setState({\n results\n });\n this.props.marker.mark(term);\n }\n\n @bind\n @debounce(400)\n searchCallback(searchTerm: string) {\n this.props.search.search(searchTerm).then(res => {\n this.setResults(res, searchTerm);\n });\n }\n\n search = (event: React.ChangeEvent) => {\n const q = event.target.value;\n\n if (q.length < 3) {\n this.clearResults(q);\n return;\n }\n\n this.setState({\n term: q\n }, () => this.searchCallback(this.state.term));\n };\n\n render() {\n const {\n activeItemIdx\n } = this.state;\n const results = this.state.results.map(res => ({\n item: this.props.getItemById(res.meta)!,\n score: res.score\n }));\n results.sort((a, b) => b.score - a.score);\n return \n {this.state.term && ×}\n \n \n {results.length > 0 && \n \n {results.map((res, idx) => )}\n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { IMenuItem, MenuStore } from '../../services/MenuStore';\nimport { OptionsContext } from '../OptionsProvider';\nimport { MenuItems } from './MenuItems';\nimport { PerfectScrollbarWrap } from '../../common-elements/perfect-scrollbar';\n@observer\nexport class SideMenu extends React.Component<{\n menu: MenuStore;\n className?: string;\n}> {\n static contextType = OptionsContext;\n private _updateScroll?: () => void;\n\n render() {\n const store = this.props.menu;\n return \n \n ;\n }\n\n activate = (item: IMenuItem) => {\n if (item && item.active && this.context.menuToggle) {\n return item.expanded ? item.collapse() : item.expand();\n }\n\n this.props.menu.activateAndScroll(item, true);\n setTimeout(() => {\n if (this._updateScroll) {\n this._updateScroll();\n }\n });\n };\n private saveScrollUpdate = upd => {\n this._updateScroll = upd;\n };\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const AnimatedChevronButton = ({\n open\n}: {\n open: boolean;\n}) => {\n const iconOffset = open ? 8 : -4;\n return \n \n \n ;\n}; // adapted from reactjs.org\n\nconst ChevronSvg = ({\n size = 10,\n className = '',\n style\n}) => \n \n \n \n ;\n\nconst ChevronContainer = styled.div`\n user-select: none;\n width: 20px;\n height: 20px;\n align-self: center;\n display: flex;\n flex-direction: column;\n color: ${props => props.theme.colors.primary.main};\n`;","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MenuStore } from '../../services/MenuStore';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../../services/RedocNormalizedOptions';\nimport styled, { media } from '../../styled-components';\nimport { IS_BROWSER } from '../../utils/index';\nimport { OptionsContext } from '../OptionsProvider';\nimport { AnimatedChevronButton } from './ChevronSvg';\nlet Stickyfill;\n\nif (IS_BROWSER) {\n Stickyfill = require('stickyfill');\n}\n\nexport interface StickySidebarProps {\n className?: string;\n scrollYOffset?: RedocRawOptions['scrollYOffset']; // passed directly or via context\n\n menu: MenuStore;\n}\nexport interface StickySidebarState {\n offsetTop?: string;\n}\nconst stickyfill = Stickyfill && Stickyfill();\nconst StyledStickySidebar = styled.div<{\n open?: boolean;\n}>`\n width: ${props => props.theme.menu.width};\n background-color: ${props => props.theme.menu.backgroundColor};\n overflow: hidden;\n display: flex;\n flex-direction: column;\n\n backface-visibility: hidden;\n /* contain: strict; TODO: breaks layout since Chrome 80*/\n\n height: 100vh;\n position: sticky;\n position: -webkit-sticky;\n top: 0;\n\n ${media.lessThan('small')`\n position: fixed;\n z-index: 20;\n width: 100%;\n background: ${({\n theme\n}) => theme.menu.backgroundColor};\n display: ${props => props.open ? 'flex' : 'none'};\n `};\n\n @media print {\n display: none;\n }\n`;\nconst FloatingButton = styled.div`\n outline: none;\n user-select: none;\n background-color: #f2f2f2;\n color: ${props => props.theme.colors.primary.main};\n display: none;\n cursor: pointer;\n position: fixed;\n right: 20px;\n z-index: 100;\n border-radius: 50%;\n box-shadow: 0 0 20px rgba(0, 0, 0, 0.3);\n ${media.lessThan('small')`\n display: flex;\n `};\n\n bottom: 44px;\n\n width: 60px;\n height: 60px;\n padding: 0 20px;\n\n @media print {\n display: none;\n }\n`;\n@observer\nexport class StickyResponsiveSidebar extends React.Component {\n static contextType = OptionsContext;\n context!: React.ContextType;\n state: StickySidebarState = {\n offsetTop: '0px'\n };\n stickyElement: Element;\n\n componentDidMount() {\n if (stickyfill) {\n stickyfill.add(this.stickyElement);\n } // rerender when hydrating from SSR\n // see https://github.com/facebook/react/issues/8017#issuecomment-256351955\n\n\n this.setState({\n offsetTop: this.getScrollYOffset(this.context)\n });\n }\n\n componentWillUnmount() {\n if (stickyfill) {\n stickyfill.remove(this.stickyElement);\n }\n }\n\n getScrollYOffset(options: RedocNormalizedOptions) {\n let top;\n\n if (this.props.scrollYOffset !== undefined) {\n top = RedocNormalizedOptions.normalizeScrollYOffset(this.props.scrollYOffset)();\n } else {\n top = options.scrollYOffset();\n }\n\n return top + 'px';\n }\n\n render() {\n const open = this.props.menu.sideBarOpened;\n const top = this.state.offsetTop;\n return <>\n {\n this.stickyElement = (el as any);\n }}>\n {this.props.children}\n \n \n \n \n ;\n }\n\n private toggleNavMenu = () => {\n this.props.menu.toggleSidebar();\n };\n}","import styled, { media } from '../../styled-components';\nexport const RedocWrap = styled.div`\n ${({\n theme\n}) => `\n font-family: ${theme.typography.fontFamily};\n font-size: ${theme.typography.fontSize};\n font-weight: ${theme.typography.fontWeightRegular};\n line-height: ${theme.typography.lineHeight};\n color: ${theme.colors.text.primary};\n display: flex;\n position: relative;\n text-align: left;\n\n -webkit-font-smoothing: ${theme.typography.smoothing};\n font-smoothing: ${theme.typography.smoothing};\n ${theme.typography.optimizeSpeed && 'text-rendering: optimizeSpeed !important' || ''};\n\n tap-highlight-color: rgba(0, 0, 0, 0);\n text-size-adjust: 100%;\n\n * {\n box-sizing: border-box;\n -webkit-tap-highlight-color: rgba(255, 255, 255, 0);\n }\n`};\n`;\nexport const ApiContentWrap = styled.div`\n z-index: 1;\n position: relative;\n overflow: hidden;\n width: calc(100% - ${props => props.theme.menu.width});\n ${media.lessThan('small', true)`\n width: 100%;\n `};\n\n contain: layout;\n`;\nexport const BackgroundStub = styled.div`\n background: ${({\n theme\n}) => theme.rightPanel.backgroundColor};\n position: absolute;\n top: 0;\n bottom: 0;\n right: 0;\n width: ${({\n theme\n}) => {\n if (theme.rightPanel.width.endsWith('%')) {\n const percents = parseInt(theme.rightPanel.width, 10);\n return `calc((100% - ${theme.menu.width}) * ${percents / 100})`;\n } else {\n return theme.rightPanel.width;\n }\n}};\n ${media.lessThan('medium', true)`\n display: none;\n `};\n`;","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { ContentItems } from '../../../src/components';\nimport { AppStore } from '../../services';\nimport { ThemeProvider } from '../../styled-components';\nimport { ApiInfo } from '../ApiInfo/';\nimport { ApiBackTo } from '../ApiBackTo/ApiBackTo';\nimport { OptionsProvider } from '../OptionsProvider';\nimport { SearchBox } from '../SearchBox/SearchBox';\nimport { SideMenu } from '../SideMenu/SideMenu';\nimport { StickyResponsiveSidebar } from '../StickySidebar/StickyResponsiveSidebar';\nimport { StoreProvider } from '../StoreBuilder';\nimport { ApiContentWrap, BackgroundStub, RedocWrap } from './styled.elements';\nexport interface RedocProps {\n store: AppStore;\n}\nexport class Redoc extends React.Component {\n static propTypes = {\n store: PropTypes.instanceOf(AppStore).isRequired\n };\n\n componentDidMount() {\n this.props.store.onDidMount();\n }\n\n componentWillUnmount() {\n this.props.store.dispose();\n }\n\n render() {\n const {\n store: {\n menu,\n options,\n search,\n marker\n }\n } = this.props;\n const store = this.props.store;\n return \n \n \n \n \n \n {!options.disableSearch && || null}\n \n \n \n \n \n \n \n \n \n \n ;\n }\n\n}","import * as PropTypes from 'prop-types';\nimport * as React from 'react';\nimport { RedocNormalizedOptions, RedocRawOptions } from '../services/RedocNormalizedOptions';\nimport { ErrorBoundary } from './ErrorBoundary';\nimport { Loading } from './Loading/Loading';\nimport { Redoc } from './Redoc/Redoc';\nimport { StoreBuilder } from './StoreBuilder';\nexport interface RedocStandaloneProps {\n spec?: object;\n specUrl?: string;\n options?: RedocRawOptions;\n onLoaded?: (e?: Error) => any;\n}\nexport class RedocStandalone extends React.PureComponent {\n static propTypes = {\n spec: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n specUrl: (props, _, componentName) => {\n if (!props.spec && !props.specUrl) {\n return new Error(`One of props 'spec' or 'specUrl' was not specified in '${componentName}'.`);\n }\n\n return null;\n },\n options: PropTypes.any,\n onLoaded: PropTypes.any\n };\n\n render() {\n const {\n spec,\n specUrl,\n options = {},\n onLoaded\n } = this.props;\n const hideLoading = options.hideLoading !== undefined;\n const normalizedOpts = new RedocNormalizedOptions(options);\n return \n \n {({\n loading,\n store\n }) => !loading ? : hideLoading ? null : }\n \n ;\n }\n\n}","import * as React from 'react';\nimport styled from '../../styled-components';\nexport const LogoImgEl = styled.img`\n max-height: ${props => props.theme.logo.maxHeight};\n max-width: ${props => props.theme.logo.maxWidth};\n padding: ${props => props.theme.logo.gutter};\n width: 100%;\n display: block;\n`;\nexport const LogoWrap = styled.div`\n text-align: center;\n`;\nconst Link = styled.a`\n display: inline-block;\n`;\nexport const LinkWrap = url => Component => {Component};","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OpenAPIInfo } from '../../types';\nimport { LinkWrap, LogoImgEl, LogoWrap } from './styled.elements';\n@observer\nexport class ApiLogo extends React.Component<{\n info: OpenAPIInfo;\n}> {\n render() {\n const {\n info\n } = this.props;\n const logoInfo = info['x-logo'];\n\n if (!logoInfo || !logoInfo.url) {\n return null;\n }\n\n const logoHref = logoInfo.href || info.contact && info.contact.url; // Use the english word logo if no alt text is provided\n\n const altText = logoInfo.altText ? logoInfo.altText : 'logo';\n const logo = ;\n return \n {logoHref ? LinkWrap(logoHref)(logo) : logo}\n ;\n }\n\n}","import * as React from 'react';\nimport { AppStore, MarkdownRenderer, RedocNormalizedOptions } from '../../services';\nimport { BaseMarkdownProps } from './Markdown';\nimport { SanitizedMarkdownHTML } from './SanitizedMdBlock';\nimport { OptionsConsumer } from '../OptionsProvider';\nimport { StoreConsumer } from '../StoreBuilder';\nexport interface AdvancedMarkdownProps extends BaseMarkdownProps {\n htmlWrap?: (part: JSX.Element) => JSX.Element;\n}\nexport class AdvancedMarkdown extends React.Component {\n render() {\n return \n {options => {store => this.renderWithOptionsAndStore(options, store)}}\n ;\n }\n\n renderWithOptionsAndStore(options: RedocNormalizedOptions, store?: AppStore) {\n const {\n source,\n htmlWrap = i => i\n } = this.props;\n\n if (!store) {\n throw new Error('When using components in markdown, store prop must be provided');\n }\n\n const renderer = new MarkdownRenderer(options);\n const parts = renderer.renderMdWithComponents(source);\n\n if (!parts.length) {\n return null;\n }\n\n return parts.map((part, idx) => {\n if (typeof part === 'string') {\n return React.cloneElement(htmlWrap(), {\n key: idx\n });\n }\n\n return ;\n });\n }\n\n}","import * as React from 'react';\nimport { ClipboardService } from '../../services';\nexport class SelectOnClick extends React.PureComponent {\n private child: HTMLDivElement | null;\n handleClick = () => {\n ClipboardService.selectElement(this.child);\n };\n\n render() {\n const {\n children\n } = this.props;\n return
this.child = el} onClick={this.handleClick}>\n {children}\n
;\n }\n\n}","import styled from '../../styled-components';\nexport const OperationEndpointWrap = styled.div`\n cursor: pointer;\n position: relative;\n margin-bottom: 5px;\n`;\nexport const ServerRelativeURL = styled.span`\n font-family: ${props => props.theme.typography.code.fontFamily};\n margin-left: 10px;\n flex: 1;\n overflow-x: hidden;\n text-overflow: ellipsis;\n`;\nexport const EndpointInfo = styled.div<{\n expanded?: boolean;\n inverted?: boolean;\n}>`\n padding: 10px 30px 10px ${props => props.inverted ? '10px' : '20px'};\n border-radius: ${props => props.inverted ? '0' : '4px 4px 0 0'};\n background-color: ${props => props.inverted ? 'transparent' : props.theme.codeSample.backgroundColor};\n display: flex;\n white-space: nowrap;\n align-items: center;\n border: ${props => props.inverted ? '0' : '1px solid transparent'};\n border-bottom: ${props => props.inverted ? '1px solid #ccc' : '0'};\n transition: border-color 0.25s ease;\n\n ${props => props.expanded && !props.inverted && `border-color: ${props.theme.colors.border.dark};` || ''}\n\n .${ServerRelativeURL} {\n color: ${props => props.inverted ? props.theme.colors.text.primary : '#ffffff'}\n }\n`;\nexport const HttpVerb = styled.span.attrs((props: {\n type: string;\n}) => ({\n className: `http-verb ${props.type}`\n}))<{\n type: string;\n}>`\n font-size: 0.929em;\n line-height: 20px;\n background-color: ${(props: any) => props.theme.colors.http[props.type] || '#999999'};\n color: #ffffff;\n padding: 3px 10px;\n text-transform: uppercase;\n font-family: ${props => props.theme.typography.headings.fontFamily};\n margin: 0;\n`;\nexport const ServersOverlay = styled.div<{\n expanded: boolean;\n}>`\n position: absolute;\n width: 100%;\n z-index: 100;\n background: #fafafa;\n color: #263238;\n box-sizing: border-box;\n box-shadow: 0px 0px 6px rgba(0, 0, 0, 0.33);\n overflow: hidden;\n border-bottom-left-radius: 4px;\n border-bottom-right-radius: 4px;\n transition: all 0s ease;\n\n ${props => props.expanded ? '' : 'transform: translateY(-50%) scaleY(0);'}\n`;\nexport const ServerItem = styled.div`\n padding: 10px;\n`;\nexport const ServerUrl = styled.div`\n padding: 5px;\n border: 1px solid #ccc;\n background: #fff;\n word-break: break-all;\n color: ${props => props.theme.colors.primary.main};\n > span {\n color: ${props => props.theme.colors.text.primary};\n }\n`;","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { OperationModel } from '../../services';\nimport { Markdown } from '../Markdown/Markdown';\nimport { OptionsContext } from '../OptionsProvider';\nimport { SelectOnClick } from '../SelectOnClick/SelectOnClick';\nimport { expandDefaultServerVariables, getBasePath } from '../../utils';\nimport { EndpointInfo, HttpVerb, OperationEndpointWrap, ServerItem, ServerRelativeURL, ServersOverlay, ServerUrl } from './styled.elements';\nexport interface EndpointProps {\n operation: OperationModel;\n hideHostname?: boolean;\n inverted?: boolean;\n}\nexport interface EndpointState {\n expanded: boolean;\n}\nexport class Endpoint extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false\n };\n }\n\n toggle = () => {\n this.setState({\n expanded: !this.state.expanded\n });\n };\n\n render() {\n const {\n operation,\n inverted,\n hideHostname\n } = this.props;\n const {\n expanded\n } = this.state; // TODO: highlight server variables, e.g. https://{user}.test.com\n\n return \n {options => \n \n {operation.httpVerb}{' '}\n {operation.path}\n \n \n \n {operation.servers.map(server => {\n const normalizedUrl = options.expandDefaultServerVariables ? expandDefaultServerVariables(server.url, server.variables) : server.url;\n return \n \n \n \n \n {hideHostname || options.hideHostname ? getBasePath(normalizedUrl) : normalizedUrl}\n \n {operation.path}\n \n \n ;\n })}\n \n }\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { DropdownProps } from '../../common-elements/dropdown';\nimport { MediaContentModel, MediaTypeModel, SchemaModel } from '../../services/models';\nimport { DropdownLabel, DropdownWrapper } from '../PayloadSamples/styled.elements';\nexport interface MediaTypeChildProps {\n schema: SchemaModel;\n mime?: string;\n}\nexport interface MediaTypesSwitchProps {\n content?: MediaContentModel;\n withLabel?: boolean;\n renderDropdown: (props: DropdownProps) => JSX.Element;\n children: (activeMime: MediaTypeModel) => JSX.Element;\n}\n@observer\nexport class MediaTypesSwitch extends React.Component {\n switchMedia = ({\n value\n }) => {\n if (this.props.content) {\n this.props.content.activate(parseInt(value, 10));\n }\n };\n\n render() {\n const {\n content\n } = this.props;\n\n if (!content || !content.mediaTypes || !content.mediaTypes.length) {\n return null;\n }\n\n const activeMimeIdx = content.activeMimeIdx;\n const options = content.mediaTypes.map((mime, idx) => {\n return {\n label: mime.name,\n value: idx.toString()\n };\n });\n\n const Wrapper = ({\n children\n }) => this.props.withLabel ? \n Content type\n {children}\n : children;\n\n return <>\n \n {this.props.renderDropdown({\n value: options[activeMimeIdx],\n options,\n onChange: this.switchMedia\n })}\n \n {this.props.children(content.active)}\n ;\n }\n\n}","// @ts-ignore\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nimport ReactDropdown from 'react-dropdown';\nimport { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MediaTypeSamples } from './MediaTypeSamples';\nimport { MediaContentModel } from '../../services/models';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { InvertedSimpleDropdown, MimeLabel } from './styled.elements';\nexport interface PayloadSamplesProps {\n content: MediaContentModel;\n}\n@observer\nexport class PayloadSamples extends React.Component {\n render() {\n const mimeContent = this.props.content;\n\n if (mimeContent === undefined) {\n return null;\n }\n\n return \n {mediaType => }\n ;\n }\n\n private renderDropdown = props => {\n return ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { isPayloadSample, OperationModel, RedocNormalizedOptions } from '../../services';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nimport { SourceCodeWithCopy } from '../SourceCode/SourceCode';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { OptionsContext } from '../OptionsProvider';\nexport interface RequestSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class RequestSamples extends React.Component {\n static contextType = OptionsContext;\n context: RedocNormalizedOptions;\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const samples = operation.codeSamples;\n const hasSamples = samples.length > 0;\n const hideTabList = samples.length === 1 ? this.context.hideSingleRequestSampleTab : false;\n return hasSamples &&
\n Request samples \n\n \n \n {samples.map(sample => \n {isPayloadSample(sample) ?
\n \n
: }\n
)}\n
\n
|| null;\n }\n\n}","export class Constants {\n static readonly OTX_EXTENSION_KEY = 'x-opentext-other';\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { MiddlePanel, Row } from '../../../src/common-elements';\ninterface ContentPanelProps {\n content: string;\n}\n@observer\nexport class ContentPanel extends React.Component {\n render() {\n return <>\n \n \n

\n {this.props.content}\n

\n
\n
\n ;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseSamples } from '../../../src/components';\nimport { Endpoint } from '../../../src/components/Endpoint/Endpoint';\nimport { RequestSamples } from '../../../src/components/RequestSamples/RequestSamples';\nimport { RedocNormalizedOptions } from '../../../src/services';\nimport { Constants } from '../../../src/services/Constants';\nimport { OperationModel } from '../../../src/services/models';\nimport { ContentPanel } from './/ContentPanel';\ninterface RightPanelContentProps {\n operation: OperationModel;\n options: RedocNormalizedOptions;\n}\n@observer\nexport class OperationPanel extends React.Component {\n render() {\n if (this.shouldShowOtherInfoPanel()) {\n return ;\n } else {\n return <>\n {!this.props.options.pathInMiddlePanel && }\n \n \n ;\n }\n }\n\n private shouldShowOtherInfoPanel() {\n return this.props.options.showExtensions && this.props.operation.extensions[Constants.OTX_EXTENSION_KEY];\n }\n\n}","import * as React from 'react';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { Field } from '../Fields/Field';\nimport { mapWithLast } from '../../utils';\nexport interface ParametersGroupProps {\n place: string;\n parameters: FieldModel[];\n}\nexport class ParametersGroup extends React.PureComponent {\n render() {\n const {\n place,\n parameters\n } = this.props;\n\n if (!parameters || !parameters.length) {\n return null;\n }\n\n return
\n {place} Parameters\n \n \n {mapWithLast(parameters, (field, isLast) => )}\n \n \n
;\n }\n\n}","import * as React from 'react';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { ParametersGroup } from './ParametersGroup';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { MediaContentModel } from '../../services';\nimport { FieldModel, RequestBodyModel } from '../../services/models';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\n\nfunction safePush(obj, prop, item) {\n if (!obj[prop]) {\n obj[prop] = [];\n }\n\n obj[prop].push(item);\n}\n\nexport interface ParametersProps {\n parameters?: FieldModel[];\n body?: RequestBodyModel;\n}\nconst PARAM_PLACES = ['path', 'query', 'cookie', 'header'];\nexport class Parameters extends React.PureComponent {\n orderParams(params: FieldModel[]): Dict {\n const res = {};\n params.forEach(param => {\n safePush(res, param.in, param);\n });\n return res;\n }\n\n render() {\n const {\n body,\n parameters = []\n } = this.props;\n\n if (body === undefined && parameters === undefined) {\n return null;\n }\n\n const paramsMap = this.orderParams(parameters);\n const paramsPlaces = parameters.length > 0 ? PARAM_PLACES : [];\n const bodyContent = body && body.content;\n const bodyDescription = body && body.description;\n return <>\n {paramsPlaces.map(place => )}\n {bodyContent && }\n ;\n }\n\n}\n\nfunction DropdownWithinHeader(props) {\n return \n Request Body schema: \n ;\n}\n\nfunction BodyContent(props: {\n content: MediaContentModel;\n description?: string;\n}): JSX.Element {\n const {\n content,\n description\n } = props;\n return \n {({\n schema\n }) => {\n return <>\n {description !== undefined && }\n \n ;\n }}\n ;\n}","import * as React from 'react';\nimport { ShelfIcon } from '../../common-elements';\nimport { Markdown } from '../Markdown/Markdown';\nexport interface ResponseTitleProps {\n code: string;\n title: string;\n type: string;\n empty?: boolean;\n opened?: boolean;\n className?: string;\n onClick?: () => void;\n}\nexport class ResponseTitle extends React.PureComponent {\n render() {\n const {\n title,\n type,\n empty,\n code,\n opened,\n className,\n onClick\n } = this.props;\n return
\n {!empty && }\n {code} \n \n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport { UnderlinedHeader } from '../../common-elements';\nimport styled from '../../styled-components';\nimport { ResponseTitle } from './ResponseTitle';\nexport const StyledResponseTitle = styled(ResponseTitle)`\n padding: 10px;\n border-radius: 6px;\n margin-bottom: 4px;\n line-height: 1.5em;\n background-color: #f2f2f2;\n cursor: pointer;\n\n color: ${props => props.theme.colors.responses[props.type].color};\n background-color: ${props => props.theme.colors.responses[props.type].backgroundColor};\n\n ${props => props.empty && `\ncursor: default;\n&::before {\n content: \"—\";\n font-weight: bold;\n width: 1.5em;\n text-align: center;\n display: inline-block;\n}\n` || ''};\n`;\nexport const ResponseDetailsWrap = styled.div`\n padding: 10px;\n`;\nexport const HeadersCaption = styled(UnderlinedHeader.withComponent('caption'))`\n text-align: left;\n margin-top: 1em;\n caption-side: top;\n`;","import * as React from 'react';\nimport { PropertiesTable } from '../../common-elements/fields-layout';\nimport { FieldModel } from '../../services/models';\nimport { mapWithLast } from '../../utils';\nimport { Field } from '../Fields/Field';\nimport { HeadersCaption } from './styled.elements';\nexport interface ResponseHeadersProps {\n headers?: FieldModel[];\n}\nexport class ResponseHeaders extends React.PureComponent {\n render() {\n const {\n headers\n } = this.props;\n\n if (headers === undefined || headers.length === 0) {\n return null;\n }\n\n return \n Response Headers \n \n {mapWithLast(headers, (header, isLast) => )}\n \n ;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { UnderlinedHeader } from '../../common-elements';\nimport { DropdownOrLabel } from '../DropdownOrLabel/DropdownOrLabel';\nimport { MediaTypesSwitch } from '../MediaTypeSwitch/MediaTypesSwitch';\nimport { Schema } from '../Schema';\nimport { Markdown } from '../Markdown/Markdown';\nimport { ResponseHeaders } from './ResponseHeaders';\nexport class ResponseDetails extends React.PureComponent<{\n response: ResponseModel;\n}> {\n render() {\n const {\n description,\n headers,\n content\n } = this.props.response;\n return <>\n {description && }\n \n \n {({\n schema\n }) => {\n return ;\n }}\n \n ;\n }\n\n private renderDropdown = props => {\n return \n Response Schema: \n ;\n };\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport { ResponseDetails } from './ResponseDetails';\nimport { ResponseDetailsWrap, StyledResponseTitle } from './styled.elements';\n@observer\nexport class ResponseView extends React.Component<{\n response: ResponseModel;\n}> {\n toggle = () => {\n this.props.response.toggle();\n };\n\n render() {\n const {\n headers,\n type,\n summary,\n description,\n code,\n expanded,\n content\n } = this.props.response;\n const mimes = content === undefined ? [] : content.mediaTypes.filter(mime => mime.schema !== undefined);\n const empty = headers.length === 0 && mimes.length === 0 && !description;\n return
\n \n {expanded && !empty && \n \n }\n
;\n }\n\n}","import * as React from 'react';\nimport { ResponseModel } from '../../services/models';\nimport styled from '../../styled-components';\nimport { ResponseView } from './Response';\nconst ResponsesHeader = styled.h3`\n font-size: 18px;\n padding: 0.2em 0;\n margin: 3em 0 1.1em;\n color: #253137;\n font-weight: normal;\n`;\nexport interface ResponseListProps {\n responses: ResponseModel[];\n}\nexport class ResponsesList extends React.PureComponent {\n render() {\n const {\n responses\n } = this.props;\n\n if (!responses || responses.length === 0) {\n return null;\n }\n\n return
\n Responses \n {responses.map(response => {\n return ;\n })}\n
;\n }\n\n}","// import { transparentize } from 'polished';\nimport * as React from 'react';\nimport styled from '../../styled-components';\nimport { Link, UnderlinedHeader } from '../../common-elements/';\nimport { SecurityRequirementModel } from '../../services/models/SecurityRequirement';\nimport { linksCss } from '../Markdown/styled.elements';\nconst ScopeName = styled.code`\n font-size: ${props => props.theme.typography.code.fontSize};\n font-family: ${props => props.theme.typography.code.fontFamily};\n border: 1px solid ${({\n theme\n}) => theme.colors.border.dark};\n margin: 0 3px;\n padding: 0.2em;\n display: inline-block;\n line-height: 1;\n\n &:after {\n content: ',';\n }\n &:last-child:after {\n content: none;\n }\n`;\nconst SecurityRequirementAndWrap = styled.span`\n &:after {\n content: ' AND ';\n font-weight: bold;\n }\n\n &:last-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nconst SecurityRequirementOrWrap = styled.span`\n &:before {\n content: '( ';\n font-weight: bold;\n }\n &:after {\n content: ' ) OR ';\n font-weight: bold;\n }\n &:last-child:after {\n content: ' )';\n }\n\n &:only-child:before,\n &:only-child:after {\n content: none;\n }\n\n ${linksCss};\n`;\nexport interface SecurityRequirementProps {\n security: SecurityRequirementModel;\n}\nexport class SecurityRequirement extends React.PureComponent {\n render() {\n const security = this.props.security;\n return \n {security.schemes.map(scheme => {\n return \n {scheme.id}\n {scheme.scopes.length > 0 && ' ('}\n {scheme.scopes.map(scope => {scope})}\n {scheme.scopes.length > 0 && ') '}\n ;\n })}\n ;\n }\n\n}\nconst AuthHeaderColumn = styled.div`\n flex: 1;\n`;\nconst SecuritiesColumn = styled.div`\n width: ${props => props.theme.schema.defaultDetailsWidth};\n`;\nconst AuthHeader = styled(UnderlinedHeader)`\n display: inline-block;\n margin: 0;\n`;\nconst Wrap = styled.div`\n width: 100%;\n display: flex;\n margin: 1em 0;\n`;\nexport interface SecurityRequirementsProps {\n securities: SecurityRequirementModel[];\n}\nexport class SecurityRequirements extends React.PureComponent {\n render() {\n const securities = this.props.securities;\n\n if (!securities.length) {\n return null;\n }\n\n return \n \n Authorizations: \n \n \n {securities.map((security, idx) => )}\n \n ;\n }\n\n}","export * from './MenuItem';\nexport * from './MenuItems';\nexport * from './SideMenu';\nexport * from './styled.elements';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationPanel } from '../RightPanelContent/OperationPanel';\nimport { Badge, DarkRightPanel, H2, MiddlePanel, Row } from '../../common-elements';\nimport { OperationModel as OperationType } from '../../services/models';\nimport styled from '../../styled-components';\nimport { Endpoint } from '../Endpoint/Endpoint';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { Extensions } from '../Fields/Extensions';\nimport { Markdown } from '../Markdown/Markdown';\nimport { shortenHTTPVerb } from '../../utils';\nimport { OptionsContext } from '../OptionsProvider';\nimport { Parameters } from '../Parameters/Parameters';\nimport { ResponsesList } from '../Responses/ResponsesList';\nimport { SecurityRequirements } from '../SecurityRequirement/SecurityRequirement';\nimport { OperationBadge } from '../SideMenu';\nconst OperationRow = styled(Row)`\n backface-visibility: hidden;\n contain: content;\n\n overflow: hidden;\n`;\nconst Description = styled.div`\n margin-bottom: ${({\n theme\n}) => theme.spacing.unit * 6}px;\n`;\nexport interface OperationProps {\n operation: OperationType;\n}\n@observer\nexport class Operation extends React.Component {\n render() {\n const {\n operation\n } = this.props;\n const {\n name: summary,\n description,\n deprecated,\n externalDocs\n } = operation;\n const hasDescription = !!(description || externalDocs);\n return \n {options => \n \n
\n
\n {shortenHTTPVerb(operation.httpVerb)}\n
\n
\n
\n

\n {summary} {deprecated && Deprecated }\n

\n
\n
\n {options.pathInMiddlePanel && }\n {hasDescription && \n {description !== undefined && }\n {externalDocs && }\n }\n
\n
\n
\n \n \n \n \n
\n \n \n \n
}\n
;\n }\n\n}","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { ExternalDocumentation } from '../ExternalDocumentation/ExternalDocumentation';\nimport { AdvancedMarkdown } from '../Markdown/AdvancedMarkdown';\nimport { H1, H2, MiddlePanel, Row, Section, ShareLink } from '../../common-elements';\nimport { ContentItemModel } from '../../services/MenuBuilder';\nimport { GroupModel, OperationModel } from '../../services/models';\nimport { Operation } from '../Operation/Operation';\n@observer\nexport class ContentItems extends React.Component<{\n items: ContentItemModel[];\n}> {\n render() {\n const items = this.props.items;\n\n if (items.length === 0) {\n return null;\n }\n\n return items.map(item => );\n }\n\n}\nexport interface ContentItemProps {\n item: ContentItemModel;\n}\n@observer\nexport class ContentItem extends React.Component {\n render() {\n const item = this.props.item;\n let content;\n const {\n type\n } = item;\n\n switch (type) {\n case 'group':\n content = null;\n break;\n\n case 'tag':\n case 'section':\n content = ;\n break;\n\n case 'operation':\n content = ;\n break;\n\n default:\n content = ;\n }\n\n return <>\n {content &&
\n {content}\n
}\n {item.items && }\n ;\n }\n\n}\n\nconst middlePanelWrap = component => {component};\n\n@observer\nexport class SectionItem extends React.Component {\n render() {\n const {\n name,\n description,\n externalDocs,\n level\n } = (this.props.item as GroupModel);\n const Header = level === 2 ? H2 : H1;\n return <>\n \n \n
\n \n {name}\n
\n
\n
\n \n {externalDocs && \n \n \n \n }\n ;\n }\n\n}\n@observer\nexport class OperationItem extends React.Component<{\n item: OperationModel;\n}> {\n render() {\n return ;\n }\n\n}","export * from './JsonViewer';","import { observer } from 'mobx-react';\nimport * as React from 'react';\nimport { OperationModel } from '../../services/models';\nimport { RightPanelHeader, Tab, TabList, TabPanel, Tabs } from '../../common-elements';\nimport { PayloadSamples } from '../PayloadSamples/PayloadSamples';\nexport interface ResponseSamplesProps {\n operation: OperationModel;\n}\n@observer\nexport class ResponseSamples extends React.Component {\n operation: OperationModel;\n\n render() {\n const {\n operation\n } = this.props;\n const responses = operation.responses.filter(response => {\n return response.content && response.content.hasSample;\n });\n return responses.length > 0 &&
\n Response samples \n\n \n \n {responses.map(response => \n {response.code}\n )}\n \n {responses.map(response => \n
\n \n
\n
)}\n
\n
|| null;\n }\n\n}","export * from './RedocStandalone';\nexport * from './Redoc/Redoc';\nexport * from './ApiInfo/ApiInfo';\nexport * from './ApiLogo/ApiLogo';\nexport * from './ContentItems/ContentItems';\nexport { ApiContentWrap, BackgroundStub, RedocWrap } from './Redoc/styled.elements';\nexport * from './Schema/';\nexport * from './SearchBox/SearchBox';\nexport * from './Operation/Operation';\nexport * from './Loading/Loading';\nexport * from './JsonViewer';\nexport * from './Markdown/Markdown';\nexport { StyledMarkdownBlock } from './Markdown/styled.elements';\nexport * from './SecuritySchemes/SecuritySchemes';\nexport * from './Responses/Response';\nexport * from './Responses/ResponseDetails';\nexport * from './Responses/ResponseHeaders';\nexport * from './Responses/ResponsesList';\nexport * from './Responses/ResponseTitle';\nexport * from './ResponseSamples/ResponseSamples';\nexport * from './PayloadSamples/PayloadSamples';\nexport * from './MediaTypeSwitch/MediaTypesSwitch';\nexport * from './ErrorBoundary';\nexport * from './StoreBuilder';\nexport * from './OptionsProvider';\nexport * from './SideMenu/';\nexport * from './StickySidebar/StickyResponsiveSidebar';\nexport * from './SearchBox/SearchBox';\nexport * from './SchemaDefinition/SchemaDefinition';\nexport * from './SourceCode/SourceCode';","export * from './components';\nexport { MiddlePanel, Row, RightPanel, Section } from './common-elements/';\nexport * from './services';\nexport * from './utils';\nexport * from './styled-components';\nexport { default as styled } from './styled-components';"],"sourceRoot":""} \ No newline at end of file diff --git a/bundles/redoc.standalone.js b/bundles/redoc.standalone.js index 9ac33371..5f664c73 100644 --- a/bundles/redoc.standalone.js +++ b/bundles/redoc.standalone.js @@ -1,7 +1,7 @@ /*! * ReDoc - OpenAPI/Swagger-generated API Reference Documentation * ------------------------------------------------------------- - * Version: "20.2.4" + * Version: "20.2.5" * Repo: https://github.com/Redocly/redoc */ !function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("null"),function(){try{return require("esprima")}catch(e){}}()):"function"==typeof define&&define.amd?define(["null","esprima"],t):"object"==typeof exports?exports.Redoc=t(require("null"),function(){try{return require("esprima")}catch(e){}}()):e.Redoc=t(e.null,e.esprima)}(this,(function(e,t){return function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=147)}([function(e,t,n){"use strict";e.exports=n(213)},function(e,t,n){"use strict";n.r(t),n.d(t,"__extends",(function(){return o})),n.d(t,"__assign",(function(){return i})),n.d(t,"__rest",(function(){return a})),n.d(t,"__decorate",(function(){return s})),n.d(t,"__param",(function(){return l})),n.d(t,"__metadata",(function(){return c})),n.d(t,"__awaiter",(function(){return u})),n.d(t,"__generator",(function(){return p})),n.d(t,"__exportStar",(function(){return f})),n.d(t,"__values",(function(){return d})),n.d(t,"__read",(function(){return h})),n.d(t,"__spread",(function(){return m})),n.d(t,"__spreadArrays",(function(){return g})),n.d(t,"__await",(function(){return y})),n.d(t,"__asyncGenerator",(function(){return v})),n.d(t,"__asyncDelegator",(function(){return b})),n.d(t,"__asyncValues",(function(){return x})),n.d(t,"__makeTemplateObject",(function(){return w})),n.d(t,"__importStar",(function(){return k})),n.d(t,"__importDefault",(function(){return O})),n.d(t,"__classPrivateFieldGet",(function(){return E})),n.d(t,"__classPrivateFieldSet",(function(){return _})); @@ -119,7 +119,7 @@ function s(){for(var e=0,t=0,n=arguments.length;t0?a-4:a;for(n=0;n>16&255,l[u++]=t>>8&255,l[u++]=255&t;2===s&&(t=o[e.charCodeAt(n)]<<2|o[e.charCodeAt(n+1)]>>4,l[u++]=255&t);1===s&&(t=o[e.charCodeAt(n)]<<10|o[e.charCodeAt(n+1)]<<4|o[e.charCodeAt(n+2)]>>2,l[u++]=t>>8&255,l[u++]=255&t);return l},t.fromByteArray=function(e){for(var t,n=e.length,o=n%3,i=[],a=0,s=n-o;as?s:a+16383));1===o?(t=e[n-1],i.push(r[t>>2]+r[t<<4&63]+"==")):2===o&&(t=(e[n-2]<<8)+e[n-1],i.push(r[t>>10]+r[t>>4&63]+r[t<<2&63]+"="));return i.join("")};for(var r=[],o=[],i="undefined"!=typeof Uint8Array?Uint8Array:Array,a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",s=0,l=a.length;s0)throw new Error("Invalid string. Length must be a multiple of 4");var n=e.indexOf("=");return-1===n&&(n=t),[n,n===t?0:4-n%4]}function u(e,t,n){for(var o,i,a=[],s=t;s>18&63]+r[i>>12&63]+r[i>>6&63]+r[63&i]);return a.join("")}o["-".charCodeAt(0)]=62,o["_".charCodeAt(0)]=63},function(e,t){t.read=function(e,t,n,r,o){var i,a,s=8*o-r-1,l=(1<>1,u=-7,p=n?o-1:0,f=n?-1:1,d=e[t+p];for(p+=f,i=d&(1<<-u)-1,d>>=-u,u+=s;u>0;i=256*i+e[t+p],p+=f,u-=8);for(a=i&(1<<-u)-1,i>>=-u,u+=r;u>0;a=256*a+e[t+p],p+=f,u-=8);if(0===i)i=1-c;else{if(i===l)return a?NaN:1/0*(d?-1:1);a+=Math.pow(2,r),i-=c}return(d?-1:1)*a*Math.pow(2,i-r)},t.write=function(e,t,n,r,o,i){var a,s,l,c=8*i-o-1,u=(1<>1,f=23===o?Math.pow(2,-24)-Math.pow(2,-77):0,d=r?0:i-1,h=r?1:-1,m=t<0||0===t&&1/t<0?1:0;for(t=Math.abs(t),isNaN(t)||t===1/0?(s=isNaN(t)?1:0,a=u):(a=Math.floor(Math.log(t)/Math.LN2),t*(l=Math.pow(2,-a))<1&&(a--,l*=2),(t+=a+p>=1?f/l:f*Math.pow(2,1-p))*l>=2&&(a++,l/=2),a+p>=u?(s=0,a=u):a+p>=1?(s=(t*l-1)*Math.pow(2,o),a+=p):(s=t*Math.pow(2,p-1)*Math.pow(2,o),a=0));o>=8;e[n+d]=255&s,d+=h,s/=256,o-=8);for(a=a<0;e[n+d]=255&a,d+=h,a/=256,c-=8);e[n+d-h]|=128*m}},function(e,t,n){"use strict";(function(t){e.exports={order:100,allowEmpty:!0,canParse:".json",parse:function(e){return new Promise((function(n,r){var o=e.data;t.isBuffer(o)&&(o=o.toString()),"string"==typeof o?0===o.trim().length?n(void 0):n(JSON.parse(o)):n(o)}))}}}).call(this,n(12).Buffer)},function(e,t,n){"use strict";(function(t){var r=n(118);e.exports={order:200,allowEmpty:!0,canParse:[".yaml",".yml",".json"],parse:function(e){return new Promise((function(n,o){var i=e.data;t.isBuffer(i)&&(i=i.toString()),n("string"==typeof i?r.parse(i):i)}))}}}).call(this,n(12).Buffer)},function(e,t,n){"use strict";var r=n(231);e.exports=r},function(e,t,n){"use strict";var r=n(232),o=n(251);function i(e){return function(){throw new Error("Function "+e+" is deprecated and cannot be used.")}}e.exports.Type=n(5),e.exports.Schema=n(34),e.exports.FAILSAFE_SCHEMA=n(79),e.exports.JSON_SCHEMA=n(120),e.exports.CORE_SCHEMA=n(119),e.exports.DEFAULT_SAFE_SCHEMA=n(58),e.exports.DEFAULT_FULL_SCHEMA=n(80),e.exports.load=r.load,e.exports.loadAll=r.loadAll,e.exports.safeLoad=r.safeLoad,e.exports.safeLoadAll=r.safeLoadAll,e.exports.dump=o.dump,e.exports.safeDump=o.safeDump,e.exports.YAMLException=n(57),e.exports.MINIMAL_SCHEMA=n(79),e.exports.SAFE_SCHEMA=n(58),e.exports.DEFAULT_SCHEMA=n(80),e.exports.scan=i("scan"),e.exports.parse=i("parse"),e.exports.compose=i("compose"),e.exports.addConstructor=i("addConstructor")},function(e,t,n){"use strict";var r=n(46),o=n(57),i=n(233),a=n(58),s=n(80),l=Object.prototype.hasOwnProperty,c=/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F-\x84\x86-\x9F\uFFFE\uFFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])|(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]/,u=/[\x85\u2028\u2029]/,p=/[,\[\]\{\}]/,f=/^(?:!|!!|![a-z\-]+!)$/i,d=/^(?:!|[^,\[\]\{\}])(?:%[0-9a-f]{2}|[0-9a-z\-#;\/\?:@&=\+\$,_\.!~\*'\(\)\[\]])*$/i;function h(e){return Object.prototype.toString.call(e)}function m(e){return 10===e||13===e}function g(e){return 9===e||32===e}function y(e){return 9===e||32===e||10===e||13===e}function v(e){return 44===e||91===e||93===e||123===e||125===e}function b(e){var t;return 48<=e&&e<=57?e-48:97<=(t=32|e)&&t<=102?t-97+10:-1}function x(e){return 48===e?"\0":97===e?"":98===e?"\b":116===e||9===e?"\t":110===e?"\n":118===e?"\v":102===e?"\f":114===e?"\r":101===e?"":32===e?" ":34===e?'"':47===e?"/":92===e?"\\":78===e?"…":95===e?" ":76===e?"\u2028":80===e?"\u2029":""}function w(e){return e<=65535?String.fromCharCode(e):String.fromCharCode(55296+(e-65536>>10),56320+(e-65536&1023))}for(var k=new Array(256),O=new Array(256),E=0;E<256;E++)k[E]=x(E)?1:0,O[E]=x(E);function _(e,t){this.input=e,this.filename=t.filename||null,this.schema=t.schema||s,this.onWarning=t.onWarning||null,this.legacy=t.legacy||!1,this.json=t.json||!1,this.listener=t.listener||null,this.implicitTypes=this.schema.compiledImplicit,this.typeMap=this.schema.compiledTypeMap,this.length=e.length,this.position=0,this.line=0,this.lineStart=0,this.lineIndent=0,this.documents=[]}function S(e,t){return new o(t,new i(e.filename,e.input,e.position,e.line,e.position-e.lineStart))}function T(e,t){throw S(e,t)}function j(e,t){e.onWarning&&e.onWarning.call(null,S(e,t))}var C={YAML:function(e,t,n){var r,o,i;null!==e.version&&T(e,"duplication of %YAML directive"),1!==n.length&&T(e,"YAML directive accepts exactly one argument"),null===(r=/^([0-9]+)\.([0-9]+)$/.exec(n[0]))&&T(e,"ill-formed argument of the YAML directive"),o=parseInt(r[1],10),i=parseInt(r[2],10),1!==o&&T(e,"unacceptable YAML version of the document"),e.version=n[0],e.checkLineBreaks=i<2,1!==i&&2!==i&&j(e,"unsupported YAML version of the document")},TAG:function(e,t,n){var r,o;2!==n.length&&T(e,"TAG directive accepts exactly two arguments"),r=n[0],o=n[1],f.test(r)||T(e,"ill-formed tag handle (first argument) of the TAG directive"),l.call(e.tagMap,r)&&T(e,'there is a previously declared suffix for "'+r+'" tag handle'),d.test(o)||T(e,"ill-formed tag prefix (second argument) of the TAG directive"),e.tagMap[r]=o}};function A(e,t,n,r){var o,i,a,s;if(t1&&(e.result+=r.repeat("\n",t-1))}function D(e,t){var n,r,o=e.tag,i=e.anchor,a=[],s=!1;for(null!==e.anchor&&(e.anchorMap[e.anchor]=a),r=e.input.charCodeAt(e.position);0!==r&&45===r&&y(e.input.charCodeAt(e.position+1));)if(s=!0,e.position++,N(e,!0,-1)&&e.lineIndent<=t)a.push(null),r=e.input.charCodeAt(e.position);else if(n=e.line,U(e,t,3,!1,!0),a.push(e.result),N(e,!0,-1),r=e.input.charCodeAt(e.position),(e.line===n||e.lineIndent>t)&&0!==r)T(e,"bad indentation of a sequence entry");else if(e.lineIndentt?x=1:e.lineIndent===t?x=0:e.lineIndentt?x=1:e.lineIndent===t?x=0:e.lineIndentt)&&(U(e,t,4,!0,o)&&(m?d=e.result:h=e.result),m||(P(e,u,p,f,d,h,i,a),f=d=h=null),N(e,!0,-1),s=e.input.charCodeAt(e.position)),e.lineIndent>t&&0!==s)T(e,"bad indentation of a mapping entry");else if(e.lineIndent=0))break;0===i?T(e,"bad explicit indentation width of a block scalar; it cannot be less than one"):u?T(e,"repeat of an indentation width identifier"):(p=t+i-1,u=!0)}if(g(a)){do{a=e.input.charCodeAt(++e.position)}while(g(a));if(35===a)do{a=e.input.charCodeAt(++e.position)}while(!m(a)&&0!==a)}for(;0!==a;){for(R(e),e.lineIndent=0,a=e.input.charCodeAt(e.position);(!u||e.lineIndentp&&(p=e.lineIndent),m(a))f++;else{if(e.lineIndent0){for(o=a,i=0;o>0;o--)(a=b(s=e.input.charCodeAt(++e.position)))>=0?i=(i<<4)+a:T(e,"expected hexadecimal character");e.result+=w(i),e.position++}else T(e,"unknown escape sequence");n=r=e.position}else m(s)?(A(e,n,r,!0),M(e,N(e,!1,t)),n=r=e.position):e.position===e.lineStart&&L(e)?T(e,"unexpected end of the document within a double quoted scalar"):(e.position++,r=e.position)}T(e,"unexpected end of the stream within a double quoted scalar")}(e,d)?_=!0:!function(e){var t,n,r;if(42!==(r=e.input.charCodeAt(e.position)))return!1;for(r=e.input.charCodeAt(++e.position),t=e.position;0!==r&&!y(r)&&!v(r);)r=e.input.charCodeAt(++e.position);return e.position===t&&T(e,"name of an alias node must contain at least one character"),n=e.input.slice(t,e.position),e.anchorMap.hasOwnProperty(n)||T(e,'unidentified alias "'+n+'"'),e.result=e.anchorMap[n],N(e,!0,-1),!0}(e)?function(e,t,n){var r,o,i,a,s,l,c,u,p=e.kind,f=e.result;if(y(u=e.input.charCodeAt(e.position))||v(u)||35===u||38===u||42===u||33===u||124===u||62===u||39===u||34===u||37===u||64===u||96===u)return!1;if((63===u||45===u)&&(y(r=e.input.charCodeAt(e.position+1))||n&&v(r)))return!1;for(e.kind="scalar",e.result="",o=i=e.position,a=!1;0!==u;){if(58===u){if(y(r=e.input.charCodeAt(e.position+1))||n&&v(r))break}else if(35===u){if(y(e.input.charCodeAt(e.position-1)))break}else{if(e.position===e.lineStart&&L(e)||n&&v(u))break;if(m(u)){if(s=e.line,l=e.lineStart,c=e.lineIndent,N(e,!1,-1),e.lineIndent>=t){a=!0,u=e.input.charCodeAt(e.position);continue}e.position=i,e.line=s,e.lineStart=l,e.lineIndent=c;break}}a&&(A(e,o,i,!1),M(e,e.line-s),o=i=e.position,a=!1),g(u)||(i=e.position+1),u=e.input.charCodeAt(++e.position)}return A(e,o,i,!1),!!e.result||(e.kind=p,e.result=f,!1)}(e,d,1===n)&&(_=!0,null===e.tag&&(e.tag="?")):(_=!0,null===e.tag&&null===e.anchor||T(e,"alias node should not have any properties")),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):0===x&&(_=c&&D(e,h))),null!==e.tag&&"!"!==e.tag)if("?"===e.tag){for(u=0,p=e.implicitTypes.length;u tag; it should be "'+f.kind+'", not "'+e.kind+'"'),f.resolve(e.result)?(e.result=f.construct(e.result),null!==e.anchor&&(e.anchorMap[e.anchor]=e.result)):T(e,"cannot resolve a node with !<"+e.tag+"> explicit tag")):T(e,"unknown tag !<"+e.tag+">");return null!==e.listener&&e.listener("close",e),null!==e.tag||null!==e.anchor||_}function B(e){var t,n,r,o,i=e.position,a=!1;for(e.version=null,e.checkLineBreaks=e.legacy,e.tagMap={},e.anchorMap={};0!==(o=e.input.charCodeAt(e.position))&&(N(e,!0,-1),o=e.input.charCodeAt(e.position),!(e.lineIndent>0||37!==o));){for(a=!0,o=e.input.charCodeAt(++e.position),t=e.position;0!==o&&!y(o);)o=e.input.charCodeAt(++e.position);for(r=[],(n=e.input.slice(t,e.position)).length<1&&T(e,"directive name must not be less than one character in length");0!==o;){for(;g(o);)o=e.input.charCodeAt(++e.position);if(35===o){do{o=e.input.charCodeAt(++e.position)}while(0!==o&&!m(o));break}if(m(o))break;for(t=e.position;0!==o&&!y(o);)o=e.input.charCodeAt(++e.position);r.push(e.input.slice(t,e.position))}0!==o&&R(e),l.call(C,n)?C[n](e,n,r):j(e,'unknown document directive "'+n+'"')}N(e,!0,-1),0===e.lineIndent&&45===e.input.charCodeAt(e.position)&&45===e.input.charCodeAt(e.position+1)&&45===e.input.charCodeAt(e.position+2)?(e.position+=3,N(e,!0,-1)):a&&T(e,"directives end mark is expected"),U(e,e.lineIndent-1,4,!1,!0),N(e,!0,-1),e.checkLineBreaks&&u.test(e.input.slice(i,e.position))&&j(e,"non-ASCII line breaks are interpreted as content"),e.documents.push(e.result),e.position===e.lineStart&&L(e)?46===e.input.charCodeAt(e.position)&&(e.position+=3,N(e,!0,-1)):e.position0&&-1==="\0\r\n…\u2028\u2029".indexOf(this.buffer.charAt(o-1));)if(o-=1,this.position-o>t/2-1){n=" ... ",o+=5;break}for(i="",a=this.position;at/2-1){i=" ... ",a-=5;break}return s=this.buffer.slice(o,a),r.repeat(" ",e)+n+s+i+"\n"+r.repeat(" ",e+this.position-o+n.length)+"^"},o.prototype.toString=function(e){var t,n="";return this.name&&(n+='in "'+this.name+'" '),n+="at line "+(this.line+1)+", column "+(this.column+1),e||(t=this.getSnippet())&&(n+=":\n"+t),n},e.exports=o},function(e,t,n){"use strict";var r=n(5);e.exports=new r("tag:yaml.org,2002:str",{kind:"scalar",construct:function(e){return null!==e?e:""}})},function(e,t,n){"use strict";var r=n(5);e.exports=new r("tag:yaml.org,2002:seq",{kind:"sequence",construct:function(e){return null!==e?e:[]}})},function(e,t,n){"use strict";var r=n(5);e.exports=new r("tag:yaml.org,2002:map",{kind:"mapping",construct:function(e){return null!==e?e:{}}})},function(e,t,n){"use strict";var r=n(5);e.exports=new r("tag:yaml.org,2002:null",{kind:"scalar",resolve:function(e){if(null===e)return!0;var t=e.length;return 1===t&&"~"===e||4===t&&("null"===e||"Null"===e||"NULL"===e)},construct:function(){return null},predicate:function(e){return null===e},represent:{canonical:function(){return"~"},lowercase:function(){return"null"},uppercase:function(){return"NULL"},camelcase:function(){return"Null"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(5);e.exports=new r("tag:yaml.org,2002:bool",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t=e.length;return 4===t&&("true"===e||"True"===e||"TRUE"===e)||5===t&&("false"===e||"False"===e||"FALSE"===e)},construct:function(e){return"true"===e||"True"===e||"TRUE"===e},predicate:function(e){return"[object Boolean]"===Object.prototype.toString.call(e)},represent:{lowercase:function(e){return e?"true":"false"},uppercase:function(e){return e?"TRUE":"FALSE"},camelcase:function(e){return e?"True":"False"}},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(46),o=n(5);function i(e){return 48<=e&&e<=55}function a(e){return 48<=e&&e<=57}e.exports=new o("tag:yaml.org,2002:int",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=e.length,o=0,s=!1;if(!r)return!1;if("-"!==(t=e[o])&&"+"!==t||(t=e[++o]),"0"===t){if(o+1===r)return!0;if("b"===(t=e[++o])){for(o++;o=0?"0b"+e.toString(2):"-0b"+e.toString(2).slice(1)},octal:function(e){return e>=0?"0"+e.toString(8):"-0"+e.toString(8).slice(1)},decimal:function(e){return e.toString(10)},hexadecimal:function(e){return e>=0?"0x"+e.toString(16).toUpperCase():"-0x"+e.toString(16).toUpperCase().slice(1)}},defaultStyle:"decimal",styleAliases:{binary:[2,"bin"],octal:[8,"oct"],decimal:[10,"dec"],hexadecimal:[16,"hex"]}})},function(e,t,n){"use strict";var r=n(46),o=n(5),i=new RegExp("^(?:[-+]?(?:0|[1-9][0-9_]*)(?:\\.[0-9_]*)?(?:[eE][-+]?[0-9]+)?|\\.[0-9_]+(?:[eE][-+]?[0-9]+)?|[-+]?[0-9][0-9_]*(?::[0-5]?[0-9])+\\.[0-9_]*|[-+]?\\.(?:inf|Inf|INF)|\\.(?:nan|NaN|NAN))$");var a=/^[-+]?[0-9]+e/;e.exports=new o("tag:yaml.org,2002:float",{kind:"scalar",resolve:function(e){return null!==e&&!(!i.test(e)||"_"===e[e.length-1])},construct:function(e){var t,n,r,o;return n="-"===(t=e.replace(/_/g,"").toLowerCase())[0]?-1:1,o=[],"+-".indexOf(t[0])>=0&&(t=t.slice(1)),".inf"===t?1===n?Number.POSITIVE_INFINITY:Number.NEGATIVE_INFINITY:".nan"===t?NaN:t.indexOf(":")>=0?(t.split(":").forEach((function(e){o.unshift(parseFloat(e,10))})),t=0,r=1,o.forEach((function(e){t+=e*r,r*=60})),n*t):n*parseFloat(t,10)},predicate:function(e){return"[object Number]"===Object.prototype.toString.call(e)&&(e%1!=0||r.isNegativeZero(e))},represent:function(e,t){var n;if(isNaN(e))switch(t){case"lowercase":return".nan";case"uppercase":return".NAN";case"camelcase":return".NaN"}else if(Number.POSITIVE_INFINITY===e)switch(t){case"lowercase":return".inf";case"uppercase":return".INF";case"camelcase":return".Inf"}else if(Number.NEGATIVE_INFINITY===e)switch(t){case"lowercase":return"-.inf";case"uppercase":return"-.INF";case"camelcase":return"-.Inf"}else if(r.isNegativeZero(e))return"-0.0";return n=e.toString(10),a.test(n)?n.replace("e",".e"):n},defaultStyle:"lowercase"})},function(e,t,n){"use strict";var r=n(5),o=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9])-([0-9][0-9])$"),i=new RegExp("^([0-9][0-9][0-9][0-9])-([0-9][0-9]?)-([0-9][0-9]?)(?:[Tt]|[ \\t]+)([0-9][0-9]?):([0-9][0-9]):([0-9][0-9])(?:\\.([0-9]*))?(?:[ \\t]*(Z|([-+])([0-9][0-9]?)(?::([0-9][0-9]))?))?$");e.exports=new r("tag:yaml.org,2002:timestamp",{kind:"scalar",resolve:function(e){return null!==e&&(null!==o.exec(e)||null!==i.exec(e))},construct:function(e){var t,n,r,a,s,l,c,u,p=0,f=null;if(null===(t=o.exec(e))&&(t=i.exec(e)),null===t)throw new Error("Date resolve error");if(n=+t[1],r=+t[2]-1,a=+t[3],!t[4])return new Date(Date.UTC(n,r,a));if(s=+t[4],l=+t[5],c=+t[6],t[7]){for(p=t[7].slice(0,3);p.length<3;)p+="0";p=+p}return t[9]&&(f=6e4*(60*+t[10]+ +(t[11]||0)),"-"===t[9]&&(f=-f)),u=new Date(Date.UTC(n,r,a,s,l,c,p)),f&&u.setTime(u.getTime()-f),u},instanceOf:Date,represent:function(e){return e.toISOString()}})},function(e,t,n){"use strict";var r=n(5);e.exports=new r("tag:yaml.org,2002:merge",{kind:"scalar",resolve:function(e){return"<<"===e||null===e}})},function(e,t,n){"use strict";var r;try{r=n(12).Buffer}catch(e){}var o=n(5),i="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\n\r";e.exports=new o("tag:yaml.org,2002:binary",{kind:"scalar",resolve:function(e){if(null===e)return!1;var t,n,r=0,o=e.length,a=i;for(n=0;n64)){if(t<0)return!1;r+=6}return r%8==0},construct:function(e){var t,n,o=e.replace(/[\r\n=]/g,""),a=o.length,s=i,l=0,c=[];for(t=0;t>16&255),c.push(l>>8&255),c.push(255&l)),l=l<<6|s.indexOf(o.charAt(t));return 0===(n=a%4*6)?(c.push(l>>16&255),c.push(l>>8&255),c.push(255&l)):18===n?(c.push(l>>10&255),c.push(l>>2&255)):12===n&&c.push(l>>4&255),r?r.from?r.from(c):new r(c):c},predicate:function(e){return r&&r.isBuffer(e)},represent:function(e){var t,n,r="",o=0,a=e.length,s=i;for(t=0;t>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]),o=(o<<8)+e[t];return 0===(n=a%3)?(r+=s[o>>18&63],r+=s[o>>12&63],r+=s[o>>6&63],r+=s[63&o]):2===n?(r+=s[o>>10&63],r+=s[o>>4&63],r+=s[o<<2&63],r+=s[64]):1===n&&(r+=s[o>>2&63],r+=s[o<<4&63],r+=s[64],r+=s[64]),r}})},function(e,t,n){"use strict";var r=n(5),o=Object.prototype.hasOwnProperty,i=Object.prototype.toString;e.exports=new r("tag:yaml.org,2002:omap",{kind:"sequence",resolve:function(e){if(null===e)return!0;var t,n,r,a,s,l=[],c=e;for(t=0,n=c.length;t3)return!1;if("/"!==t[t.length-r.length-1])return!1}return!0},construct:function(e){var t=e,n=/\/([gim]*)$/.exec(e),r="";return"/"===t[0]&&(n&&(r=n[1]),t=t.slice(1,t.length-r.length-1)),new RegExp(t,r)},predicate:function(e){return"[object RegExp]"===Object.prototype.toString.call(e)},represent:function(e){var t="/"+e.source+"/";return e.global&&(t+="g"),e.multiline&&(t+="m"),e.ignoreCase&&(t+="i"),t}})},function(e,t,n){"use strict";var r;try{r=n(250)}catch(e){"undefined"!=typeof window&&(r=window.esprima)}var o=n(5);e.exports=new o("tag:yaml.org,2002:js/function",{kind:"scalar",resolve:function(e){if(null===e)return!1;try{var t="("+e+")",n=r.parse(t,{range:!0});return"Program"===n.type&&1===n.body.length&&"ExpressionStatement"===n.body[0].type&&("ArrowFunctionExpression"===n.body[0].expression.type||"FunctionExpression"===n.body[0].expression.type)}catch(e){return!1}},construct:function(e){var t,n="("+e+")",o=r.parse(n,{range:!0}),i=[];if("Program"!==o.type||1!==o.body.length||"ExpressionStatement"!==o.body[0].type||"ArrowFunctionExpression"!==o.body[0].expression.type&&"FunctionExpression"!==o.body[0].expression.type)throw new Error("Failed to resolve function");return o.body[0].expression.params.forEach((function(e){i.push(e.name)})),t=o.body[0].expression.body.range,"BlockStatement"===o.body[0].expression.body.type?new Function(i,n.slice(t[0]+1,t[1]-1)):new Function(i,"return "+n.slice(t[0],t[1]))},predicate:function(e){return"[object Function]"===Object.prototype.toString.call(e)},represent:function(e){return e.toString()}})},function(e,n){if(void 0===t){var r=new Error("Cannot find module 'esprima'");throw r.code="MODULE_NOT_FOUND",r}e.exports=t},function(e,t){e.exports=function(){}},function(e,t){e.exports=function(e){var t=/(%?)(%([jds]))/g,n=Array.prototype.slice.call(arguments,1);return n.length&&(e=e.replace(t,(function(e,t,r,o){var i=n.shift();switch(o){case"s":i=""+i;break;case"d":i=Number(i);break;case"j":i=JSON.stringify(i)}return t?(n.unshift(i),e):i}))),n.length&&(e+=" "+n.join(" ")),""+(e=e.replace(/%{2,2}/g,"%"))}},function(e,t,n){"use strict";(function(t){var n=/\.(txt|htm|html|md|xml|js|min|map|css|scss|less|svg)$/i;e.exports={order:300,allowEmpty:!0,encoding:"utf8",canParse:function(e){return("string"==typeof e.data||t.isBuffer(e.data))&&n.test(e.url)},parse:function(e){if("string"==typeof e.data)return e.data;if(t.isBuffer(e.data))return e.data.toString(this.encoding);throw new Error("data is not text")}}}).call(this,n(12).Buffer)},function(e,t,n){"use strict";(function(t){var n=/\.(jpeg|jpg|gif|png|bmp|ico)$/i;e.exports={order:400,allowEmpty:!0,canParse:function(e){return t.isBuffer(e.data)&&n.test(e.url)},parse:function(e){return t.isBuffer(e.data)?e.data:new t(e.data)}}}).call(this,n(12).Buffer)},function(e,t,n){"use strict";var r=n(256),o=n(26),i=n(24);e.exports={order:100,canRead:function(e){return i.isFileSystemPath(e.url)},read:function(e){return new Promise((function(t,n){var a;try{a=i.toFileSystemPath(e.url)}catch(t){n(o.uri(t,"Malformed URI: %s",e.url))}try{r.readFile(a,(function(e,r){e?n(o(e,'Error opening file "%s"',a)):t(r)}))}catch(e){n(o(e,'Error opening file "%s"',a))}}))}}},function(e,t){},function(e,t,n){"use strict";(function(t,r){var o=n(81),i=n(270),a=n(26),s=n(24);e.exports={order:200,headers:null,timeout:5e3,redirects:5,withCredentials:!1,canRead:function(e){return s.isHttp(e.url)},read:function(e){var n=s.parse(e.url);return t.browser&&!n.protocol&&(n.protocol=s.parse(location.href).protocol),function e(t,n,l){return new Promise((function(c,u){t=s.parse(t),(l=l||[]).push(t.href),function(e,t){return new Promise((function(n,a){var s=("https:"===e.protocol?i:o).get({hostname:e.hostname,port:e.port,path:e.path,auth:e.auth,protocol:e.protocol,headers:t.headers||{},withCredentials:t.withCredentials});"function"==typeof s.setTimeout&&s.setTimeout(t.timeout),s.on("timeout",(function(){s.abort()})),s.on("error",a),s.once("response",(function(e){e.body=new r(0),e.on("data",(function(t){e.body=r.concat([e.body,new r(t)])})),e.on("error",a),e.on("end",(function(){n(e)}))}))}))}(t,n).then((function(o){if(o.statusCode>=400)throw a({status:o.statusCode},"HTTP ERROR %d",o.statusCode);if(o.statusCode>=300)if(l.length>n.redirects)u(a({status:o.statusCode},"Error downloading %s. \nToo many redirects: \n %s",l[0],l.join(" \n ")));else{if(!o.headers.location)throw a({status:o.statusCode},"HTTP %d redirect with no location header",o.statusCode);var i=s.resolve(t,o.headers.location);e(i,n,l).then(c,u)}else c(o.body||new r(0))})).catch((function(e){u(a(e,"Error downloading",t.href))}))}))}(n,this)}}}).call(this,n(11),n(12).Buffer)},function(e,t,n){(function(t,r,o){var i=n(121),a=n(27),s=n(122),l=n(123),c=n(267),u=s.IncomingMessage,p=s.readyStates;var f=e.exports=function(e){var n,r=this;l.Writable.call(r),r._opts=e,r._body=[],r._headers={},e.auth&&r.setHeader("Authorization","Basic "+new t(e.auth).toString("base64")),Object.keys(e.headers).forEach((function(t){r.setHeader(t,e.headers[t])}));var o=!0;if("disable-fetch"===e.mode||"requestTimeout"in e&&!i.abortController)o=!1,n=!0;else if("prefer-streaming"===e.mode)n=!1;else if("allow-wrong-content-type"===e.mode)n=!i.overrideMimeType;else{if(e.mode&&"default"!==e.mode&&"prefer-fast"!==e.mode)throw new Error("Invalid value for opts.mode");n=!0}r._mode=function(e,t){return i.fetch&&t?"fetch":i.mozchunkedarraybuffer?"moz-chunked-arraybuffer":i.msstream?"ms-stream":i.arraybuffer&&e?"arraybuffer":i.vbArray&&e?"text:vbarray":"text"}(n,o),r._fetchTimer=null,r.on("finish",(function(){r._onFinish()}))};a(f,l.Writable),f.prototype.setHeader=function(e,t){var n=e.toLowerCase();-1===d.indexOf(n)&&(this._headers[n]={name:e,value:t})},f.prototype.getHeader=function(e){var t=this._headers[e.toLowerCase()];return t?t.value:null},f.prototype.removeHeader=function(e){delete this._headers[e.toLowerCase()]},f.prototype._onFinish=function(){var e=this;if(!e._destroyed){var n=e._opts,a=e._headers,s=null;"GET"!==n.method&&"HEAD"!==n.method&&(s=i.arraybuffer?c(t.concat(e._body)):i.blobConstructor?new r.Blob(e._body.map((function(e){return c(e)})),{type:(a["content-type"]||{}).value||""}):t.concat(e._body).toString());var l=[];if(Object.keys(a).forEach((function(e){var t=a[e].name,n=a[e].value;Array.isArray(n)?n.forEach((function(e){l.push([t,e])})):l.push([t,n])})),"fetch"===e._mode){var u=null;if(i.abortController){var f=new AbortController;u=f.signal,e._fetchAbortController=f,"requestTimeout"in n&&0!==n.requestTimeout&&(e._fetchTimer=r.setTimeout((function(){e.emit("requestTimeout"),e._fetchAbortController&&e._fetchAbortController.abort()}),n.requestTimeout))}r.fetch(e._opts.url,{method:e._opts.method,headers:l,body:s||void 0,mode:"cors",credentials:n.withCredentials?"include":"same-origin",signal:u}).then((function(t){e._fetchResponse=t,e._connect()}),(function(t){r.clearTimeout(e._fetchTimer),e._destroyed||e.emit("error",t)}))}else{var d=e._xhr=new r.XMLHttpRequest;try{d.open(e._opts.method,e._opts.url,!0)}catch(t){return void o.nextTick((function(){e.emit("error",t)}))}"responseType"in d&&(d.responseType=e._mode.split(":")[0]),"withCredentials"in d&&(d.withCredentials=!!n.withCredentials),"text"===e._mode&&"overrideMimeType"in d&&d.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in n&&(d.timeout=n.requestTimeout,d.ontimeout=function(){e.emit("requestTimeout")}),l.forEach((function(e){d.setRequestHeader(e[0],e[1])})),e._response=null,d.onreadystatechange=function(){switch(d.readyState){case p.LOADING:case p.DONE:e._onXHRProgress()}},"moz-chunked-arraybuffer"===e._mode&&(d.onprogress=function(){e._onXHRProgress()}),d.onerror=function(){e._destroyed||e.emit("error",new Error("XHR error"))};try{d.send(s)}catch(t){return void o.nextTick((function(){e.emit("error",t)}))}}}},f.prototype._onXHRProgress=function(){(function(e){try{var t=e.status;return null!==t&&0!==t}catch(e){return!1}})(this._xhr)&&!this._destroyed&&(this._response||this._connect(),this._response._onXHRProgress())},f.prototype._connect=function(){var e=this;e._destroyed||(e._response=new u(e._xhr,e._fetchResponse,e._mode,e._fetchTimer),e._response.on("error",(function(t){e.emit("error",t)})),e.emit("response",e._response))},f.prototype._write=function(e,t,n){this._body.push(e),n()},f.prototype.abort=f.prototype.destroy=function(){this._destroyed=!0,r.clearTimeout(this._fetchTimer),this._response&&(this._response._destroyed=!0),this._xhr?this._xhr.abort():this._fetchAbortController&&this._fetchAbortController.abort()},f.prototype.end=function(e,t,n){"function"==typeof e&&(n=e,e=void 0),l.Writable.prototype.end.call(this,e,t,n)},f.prototype.flushHeaders=function(){},f.prototype.setTimeout=function(){},f.prototype.setNoDelay=function(){},f.prototype.setSocketKeepAlive=function(){};var d=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]}).call(this,n(12).Buffer,n(7),n(11))},function(e,t){},function(e,t,n){"use strict";var r=n(82).Buffer,o=n(261);e.exports=function(){function e(){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.head=null,this.tail=null,this.length=0}return e.prototype.push=function(e){var t={data:e,next:null};this.length>0?this.tail.next=t:this.head=t,this.tail=t,++this.length},e.prototype.unshift=function(e){var t={data:e,next:this.head};0===this.length&&(this.tail=t),this.head=t,++this.length},e.prototype.shift=function(){if(0!==this.length){var e=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,e}},e.prototype.clear=function(){this.head=this.tail=null,this.length=0},e.prototype.join=function(e){if(0===this.length)return"";for(var t=this.head,n=""+t.data;t=t.next;)n+=e+t.data;return n},e.prototype.concat=function(e){if(0===this.length)return r.alloc(0);if(1===this.length)return this.head.data;for(var t,n,o,i=r.allocUnsafe(e>>>0),a=this.head,s=0;a;)t=a.data,n=i,o=s,t.copy(n,o),s+=a.data.length,a=a.next;return i},e}(),o&&o.inspect&&o.inspect.custom&&(e.exports.prototype[o.inspect.custom]=function(){var e=o.inspect({length:this.length});return this.constructor.name+" "+e})},function(e,t){},function(e,t,n){(function(e){var r=void 0!==e&&e||"undefined"!=typeof self&&self||window,o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,r,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,r,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(r,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(263),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(7))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var r,o,i,a,s,l=1,c={},u=!1,p=e.document,f=Object.getPrototypeOf&&Object.getPrototypeOf(e);f=f&&f.setTimeout?f:e,"[object process]"==={}.toString.call(e.process)?r=function(e){t.nextTick((function(){h(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((i=new MessageChannel).port1.onmessage=function(e){h(e.data)},r=function(e){i.port2.postMessage(e)}):p&&"onreadystatechange"in p.createElement("script")?(o=p.documentElement,r=function(e){var t=p.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,o.removeChild(t),t=null},o.appendChild(t)}):r=function(e){setTimeout(h,0,e)}:(a="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),r=function(t){e.postMessage(a+t,"*")}),f.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n0&&t[0]&&(n=n.filter((function(n){return-1!==t.indexOf(e[n].pathType)}))),n.map((function(t){return{encoded:t,decoded:"file"===e[t].pathType?i.toFileSystemPath(t,!0):t}}))}e.exports=a,a.prototype.paths=function(e){var t=s(this._$refs,arguments);return t.map((function(e){return e.decoded}))},a.prototype.values=function(e){var t=this._$refs,n=s(t,arguments);return n.reduce((function(e,n){return e[n.decoded]=t[n.encoded].value,e}),{})},a.prototype.toJSON=a.prototype.values,a.prototype.exists=function(e,t){try{return this._resolve(e,t),!0}catch(e){return!1}},a.prototype.get=function(e,t){return this._resolve(e,t).value},a.prototype.set=function(e,t){var n=i.resolve(this._root$Ref.path,e),o=i.stripHash(n),a=this._$refs[o];if(!a)throw r('Error resolving $ref pointer "%s". \n"%s" not found.',e,o);a.set(n,t)},a.prototype._add=function(e){var t=i.stripHash(e),n=new o;return n.path=t,n.$refs=this,this._$refs[t]=n,this._root$Ref=this._root$Ref||n,n},a.prototype._resolve=function(e,t){var n=i.resolve(this._root$Ref.path,e),o=i.stripHash(n),a=this._$refs[o];if(!a)throw r('Error resolving $ref pointer "%s". \n"%s" not found.',e,o);return a.resolve(n,t,e)},a.prototype._get$Ref=function(e){e=i.resolve(this._root$Ref.path,e);var t=i.stripHash(e);return this._$refs[t]}},function(e,t,n){"use strict";function r(e,t,n,r){var o=e[t];if("function"==typeof o)return o.apply(e,[n,r]);if(!r){if(o instanceof RegExp)return o.test(n.url);if("string"==typeof o)return o===n.extension;if(Array.isArray(o))return-1!==o.indexOf(n.extension)}return o}t.all=function(e){return Object.keys(e).filter((function(t){return"object"==typeof e[t]})).map((function(t){return e[t].name=t,e[t]}))},t.filter=function(e,t,n){return e.filter((function(e){return!!r(e,t,n)}))},t.sort=function(e){return e.forEach((function(e){e.order=e.order||Number.MAX_SAFE_INTEGER})),e.sort((function(e,t){return e.order-t.order}))},t.run=function(e,t,n){var o,i,a=0;return new Promise((function(s,l){function c(){if(!(o=e[a++]))return l(i);try{var s=r(o,t,n,u);s&&"function"==typeof s.then?s.then(p,f):void 0!==s&&p(s)}catch(e){f(e)}}function u(e,t){e?f(e):p(t)}function p(e){s({plugin:o,result:e})}function f(e){i=e,c()}c()}))}},function(e,t,n){"use strict";var r=n(117);e.exports=function(e){var t,n,o,i;"function"==typeof(e=Array.prototype.slice.call(e))[e.length-1]&&(i=e.pop());"string"==typeof e[0]?(t=e[0],"object"==typeof e[2]?(n=e[1],o=e[2]):(n=void 0,o=e[1])):(t="",n=e[0],o=e[1]);o instanceof r||(o=new r(o));return{path:t,schema:n,options:o,callback:i}}},function(e,t,n){"use strict";var r=n(60),o=n(83),i=n(131),a=n(24);function s(e,t,n,i){var a=[];return e&&"object"==typeof e&&(r.isExternal$Ref(e)?a.push(l(e,t,n,i)):Object.keys(e).forEach((function(c){var u=o.join(t,c),p=e[c];r.isExternal$Ref(p)?a.push(l(p,u,n,i)):a=a.concat(s(p,u,n,i))}))),a}function l(e,t,n,r){var o=a.resolve(t,e.$ref),l=a.stripHash(o);return(e=n._$refs[l])?Promise.resolve(e.value):i(o,n,r).then((function(e){var t=s(e,l+"#",n,r);return Promise.all(t)}))}e.exports=function(e,t){if(!t.resolve.external)return Promise.resolve();try{var n=s(e.schema,e.$refs._root$Ref.path+"#",e.$refs,t);return Promise.all(n)}catch(e){return Promise.reject(e)}}},function(e,t,n){"use strict";var r=n(60),o=n(83),i=n(24);function a(e,t,n,i,l,c,u,p){var f=null===t?e:e[t];f&&"object"==typeof f&&(r.isAllowed$Ref(f)?s(e,t,n,i,l,c,u,p):Object.keys(f).sort((function(e,t){return"definitions"===e?-1:"definitions"===t?1:e.length-t.length})).forEach((function(e){var t=o.join(n,e),d=o.join(i,e),h=f[e];r.isAllowed$Ref(h)?s(f,e,n,d,l,c,u,p):a(f,e,t,d,l,c,u,p)})))}function s(e,t,n,s,l,c,u,p){var f=null===t?e:e[t],d=i.resolve(n,f.$ref),h=u._resolve(d,p),m=o.parse(s).length,g=i.stripHash(h.path),y=i.getHash(h.path),v=g!==u._root$Ref.path,b=r.isExtended$Ref(f);l+=h.indirections;var x=function(e,t,n){for(var r=0;r1&&console.warn("Replacing with",u),m++}}else{var g=p(c(t,e[n]));if(i.verbose>1&&console.warn((!1===g?h.colour.red:h.colour.green)+"Fragment resolution",e[n],h.colour.normal),!1===g){if(r.parent[r.pkey]={},i.fatal){var y=new Error("Fragment $ref resolution failed "+e[n]);if(!i.promise)throw y;i.promise.reject(y)}}else m++,r.parent[r.pkey]=g,f[e[n]]=r.path.replace("/%24ref","")}else if(l.protocol){u=a.resolve(o,e[n]).toString();i.verbose>1&&console.warn(h.colour.yellow+"Rewriting external url ref",e[n],"as",u,h.colour.normal),e["x-miro"]=e[n],e[n]=u}else if(!e["x-miro"]){u=a.resolve(o,e[n]).toString();i.verbose>1&&console.warn(h.colour.yellow+"Rewriting external ref",e[n],"as",u,h.colour.normal),e["x-miro"]=e[n],e[n]=u}}));return u(e,{},(function(e,t,n){d(e,t)&&void 0!==e.$fixed&&delete e.$fixed})),i.verbose>1&&console.warn("Finished fragment resolution"),e}function g(e,t){if(!t.filters||!t.filters.length)return e;for(var n=0,r=t.filters;n1&&(d="#"+h[1],t=h[0]),f=f.join("/");var y,v,b,x,w,k=a.parse(t),O=(y=k.protocol,v=u.protocol,y&&y.length>2?y:v&&v.length>2?v:"file:");if(b="file:"===O?i.resolve(f?f+"/":"",t):a.resolve(f?f+"/":"",t),n.cache[b]){n.verbose&&console.warn("CACHED",b,d);var E=p(n.cache[b]),_=n.externalRef=E;if(d&&!1===(_=c(_,d))&&(_={},n.fatal)){var S=new Error("Cached $ref resolution failed "+b+d);if(!n.promise)throw S;n.promise.reject(S)}return _=g(_=m(_,E,t,d,b,n),n),r(p(_),b,n),Promise.resolve(_)}return n.verbose&&console.warn("GET",b,d),n.handlers&&n.handlers[O]?n.handlers[O](f,t,d,n).then((function(e){return n.externalRef=e,e=g(e,n),n.cache[b]=e,r(e,b,n),e})).catch((function(e){throw n.verbose&&console.warn(e),e})):O&&O.startsWith("http")?s(b,{agent:n.agent}).then((function(e){if(200!==e.status)throw new Error("Received status code "+e.status);return e.text()})).then((function(e){try{var o=l.parse(e,{schema:"core",prettyErrors:!0});if(e=n.externalRef=o,n.cache[b]=p(e),d&&!1===(e=c(e,d))&&(e={},n.fatal)){var i=new Error("Remote $ref resolution failed "+b+d);if(!n.promise)throw i;n.promise.reject(i)}e=g(e=m(e,o,t,d,b,n),n)}catch(i){if(n.verbose&&console.warn(i),!n.promise||!n.fatal)throw i;n.promise.reject(i)}return r(e,b,n),e})).catch((function(e){if(n.verbose&&console.warn(e),n.cache[b]={},!n.promise||!n.fatal)throw e;n.promise.reject(e)})):(x=b,w=n.encoding||"utf8",new Promise((function(e,t){o.readFile(x,w,(function(n,r){n?t(n):e(r)}))}))).then((function(e){try{var o=l.parse(e,{schema:"core",prettyErrors:!0});if(e=n.externalRef=o,n.cache[b]=p(e),d&&!1===(e=c(e,d))&&(e={},n.fatal)){var i=new Error("File $ref resolution failed "+b+d);if(!n.promise)throw i;n.promise.reject(i)}e=g(e=m(e,o,t,d,b,n),n)}catch(i){if(n.verbose&&console.warn(i),!n.promise||!n.fatal)throw i;n.promise.reject(i)}return r(e,b,n),e})).catch((function(e){if(n.verbose&&console.warn(e),!n.promise||!n.fatal)throw e;n.promise.reject(e)}))}function v(e){return new Promise((function(t,n){(function(e){return new Promise((function(t,n){function r(t,n,r){if(t[n]&&d(t[n],"$ref")){var i=t[n].$ref;if(!i.startsWith("#")){var a="";if(!o[i]){var s=Object.keys(o).find((function(e,t,n){return i.startsWith(e+"/")}));s&&(e.verbose&&console.warn("Found potential subschema at",s),a=(a="/"+(i.split("#")[1]||"").replace(s.split("#")[1]||"")).split("/undefined").join(""),i=s)}if(o[i]||(o[i]={resolved:!1,paths:[],extras:{},description:t[n].description}),o[i].resolved)if(e.rewriteRefs){var l=o[i].resolvedAt;e.verbose>1&&console.warn("Rewriting ref",i,l),t[n]["x-miro"]=i,t[n].$ref=l+a}else t[n]=p(o[i].data);else o[i].paths.push(r.path),o[i].extras[r.path]=a}}}var o=e.externalRefs;if(e.resolver.depth>0&&e.source===e.resolver.base)return t(o);u(e.openapi.definitions,{identityDetection:!0,path:"#/definitions"},r),u(e.openapi.components,{identityDetection:!0,path:"#/components"},r),u(e.openapi,{identityDetection:!0},r),t(o)}))})(e).then((function(t){var n=function(n){if(!t[n].resolved){var o=e.resolver.depth;o>0&&o++,e.resolver.actions[o].push((function(){return y(e.openapi,n,e,(function(e,o,i){if(!t[n].resolved){var a={};a.context=t[n],a.$ref=n,a.original=p(e),a.updated=e,a.source=o,i.externals.push(a),t[n].resolved=!0}var s=Object.assign({},i,{source:"",resolver:{actions:i.resolver.actions,depth:i.resolver.actions.length-1,base:i.resolver.base}});i.patch&&t[n].description&&!e.description&&"object"==typeof e&&(e.description=t[n].description),t[n].data=e;for(var l,u=(l=t[n].paths,r.__spreadArrays(new Set(l))),f=0,d=u=u.sort((function(e,t){var n=e.startsWith("#/components/")||e.startsWith("#/definitions/"),r=t.startsWith("#/components/")||t.startsWith("#/definitions/");return n&&!r?-1:r&&!n?1:0}));f1&&console.warn("Creating pointer to data at",h),c(i.openapi,h,{$ref:t[n].resolvedAt+t[n].extras[h],"x-miro":n+t[n].extras[h]});else{t[n].resolvedAt?i.verbose>1&&console.warn("Avoiding circular reference"):(t[n].resolvedAt=h,i.verbose>1&&console.warn("Creating initial clone of data at",h));var m=p(e);c(i.openapi,h,m)}}0===i.resolver.actions[s.resolver.depth].length&&i.resolver.actions[s.resolver.depth].push((function(){return v(s)}))}))}))}};for(var o in t)n(o)})).catch((function(t){e.verbose&&console.warn(t),n(t)}));var o={options:e};o.actions=e.resolver.actions[e.resolver.depth],t(o)}))}function b(e,t,n){e.resolver.actions.push([]),v(e).then((function(r){var o;(o=r.actions,o.reduce((function(e,t){return e.then((function(e){return t().then(Array.prototype.concat.bind(e))}))}),Promise.resolve([]))).then((function(){if(e.resolver.depth>=e.resolver.actions.length)return console.warn("Ran off the end of resolver actions"),t(!0);e.resolver.depth++,e.resolver.actions[e.resolver.depth].length?setTimeout((function(){b(r.options,t,n)}),0):(e.verbose>1&&console.warn(h.colour.yellow+"Finished external resolution!",h.colour.normal),e.resolveInternal&&(e.verbose>1&&console.warn(h.colour.yellow+"Starting internal resolution!",h.colour.normal),e.openapi=f(e.openapi,e.original,{verbose:e.verbose-1}),e.verbose>1&&console.warn(h.colour.yellow+"Finished internal resolution!",h.colour.normal)),u(e.openapi,{},(function(t,n,r){d(t,n)&&(e.preserveMiro||delete t["x-miro"])})),t(e))})).catch((function(t){e.verbose&&console.warn(t),n(t)}))})).catch((function(t){e.verbose&&console.warn(t),n(t)}))}function x(e){if(e.cache||(e.cache={}),e.source){var t=a.parse(e.source);(!t.protocol||t.protocol.length<=2)&&(e.source=i.resolve(e.source))}e.externals||(e.externals=[]),e.externalRefs||(e.externalRefs={}),e.rewriteRefs=!0,e.resolver={},e.resolver.depth=0,e.resolver.base=e.source,e.resolver.actions=[[]]}e.exports={optionalResolve:function(e){return x(e),new Promise((function(t,n){e.resolve?b(e,t,n):t(e)}))},resolve:function(e,t,n){return n||(n={}),n.openapi=e,n.source=t,n.resolve=!0,x(n),new Promise((function(e,t){b(n,e,t)}))}}},function(e,t,n){"use strict";var r=n(85).recurse,o=n(62).shallowClone,i=n(61).jptr,a=n(84).isRef;e.exports={dereference:function e(t,n,s){s||(s={}),s.cache||(s.cache={}),s.state||(s.state={}),s.state.identityDetection=!0,s.depth=s.depth?s.depth+1:1;var l=s.depth>1?t:o(t),c={data:l},u=s.depth>1?n:o(n);s.master||(s.master=l);for(var p=function(e){return e&&e.verbose?{warn:function(){var e=Array.prototype.slice.call(arguments);console.warn.apply(console,e)}}:{warn:function(){}}}(s),f=1;f>0;)f=0,r(c,s.state,(function(t,n,r){if(a(t,n)){var o,l=t[n];if(f++,s.cache[l])if((o=s.cache[l]).resolved)p.warn("Patching %s for %s",l,o.path),r.parent[r.pkey]=o.data,s.$ref&&"object"==typeof r.parent[r.pkey]&&(r.parent[r.pkey][s.$ref]=l);else{if(l===o.path)throw new Error("Tight circle at "+o.path);p.warn("Unresolved ref"),r.parent[r.pkey]=i(o.source,o.path),!1===r.parent[r.pkey]&&(r.parent[r.pkey]=i(o.source,o.key)),s.$ref&&"object"==typeof r.parent[r.pkey]&&(r.parent[s.$ref]=l)}else(o={}).path=r.path.split("/$ref")[0],o.key=l,p.warn("Dereffing %s at %s",l,o.path),o.source=u,o.data=i(o.source,o.key),!1===o.data&&(o.data=i(s.master,o.key),o.source=s.master),!1===o.data&&p.warn("Missing $ref target",o.key),s.cache[l]=o,o.data=r.parent[r.pkey]=e(i(o.source,o.key),o.source,s),s.$ref&&"object"==typeof r.parent[r.pkey]&&(r.parent[r.pkey][s.$ref]=l),o.resolved=!0}}));return c.data}}},function(e,t,n){"use strict";function r(){return{depth:0,seen:new WeakMap,top:!0,combine:!1,allowRefSiblings:!1}}e.exports={getDefaultState:r,walkSchema:function e(t,n,o,i){if(void 0===o.depth&&(o=r()),null==t)return t;if(void 0!==t.$ref){var a={$ref:t.$ref};return o.allowRefSiblings&&t.description&&(a.description=t.description),i(a,n,o),a}if(o.combine&&(t.allOf&&Array.isArray(t.allOf)&&1===t.allOf.length&&delete(t=Object.assign({},t.allOf[0],t)).allOf,t.anyOf&&Array.isArray(t.anyOf)&&1===t.anyOf.length&&delete(t=Object.assign({},t.anyOf[0],t)).anyOf,t.oneOf&&Array.isArray(t.oneOf)&&1===t.oneOf.length&&delete(t=Object.assign({},t.oneOf[0],t)).oneOf),i(t,n,o),o.seen.has(t))return t;if("object"==typeof t&&null!==t&&o.seen.set(t,!0),o.top=!1,o.depth++,void 0!==t.items&&(o.property="items",e(t.items,t,o,i)),t.additionalItems&&"object"==typeof t.additionalItems&&(o.property="additionalItems",e(t.additionalItems,t,o,i)),t.additionalProperties&&"object"==typeof t.additionalProperties&&(o.property="additionalProperties",e(t.additionalProperties,t,o,i)),t.properties)for(var s in t.properties){var l=t.properties[s];o.property="properties/"+s,e(l,t,o,i)}if(t.patternProperties)for(var s in t.patternProperties){l=t.patternProperties[s];o.property="patternProperties/"+s,e(l,t,o,i)}if(t.allOf)for(var c in t.allOf){l=t.allOf[c];o.property="allOf/"+c,e(l,t,o,i)}if(t.anyOf)for(var c in t.anyOf){l=t.anyOf[c];o.property="anyOf/"+c,e(l,t,o,i)}if(t.oneOf)for(var c in t.oneOf){l=t.oneOf[c];o.property="oneOf/"+c,e(l,t,o,i)}return t.not&&(o.property="not",e(t.not,t,o,i)),o.depth--,t}}},function(e,t,n){"use strict";var r=n(81);e.exports={statusCodes:Object.assign({},{default:"Default response","1XX":"Informational",103:"Early hints","2XX":"Successful","3XX":"Redirection","4XX":"Client Error","5XX":"Server Error","7XX":"Developer Error"},r.STATUS_CODES)}},function(e){e.exports=JSON.parse('{"name":"swagger2openapi","version":"5.3.4","description":"Convert Swagger 2.0 definitions to OpenApi 3.0 and validate","main":"index.js","bin":{"swagger2openapi":"./swagger2openapi.js","oas-validate":"./oas-validate.js","boast":"./boast.js"},"scripts":{"test":"mocha"},"browserify":{"transform":[["babelify",{"presets":["es2015"]}]]},"repository":{"url":"https://github.com/Mermade/oas-kit.git","type":"git"},"bugs":{"url":"https://github.com/mermade/oas-kit/issues"},"author":"Mike Ralphson ","license":"BSD-3-Clause","dependencies":{"better-ajv-errors":"^0.6.1","call-me-maybe":"^1.0.1","node-fetch-h2":"^2.3.0","node-readfiles":"^0.2.0","oas-kit-common":"^1.0.7","oas-resolver":"^2.2.8","oas-schema-walker":"^1.1.3","oas-validator":"^3.3.4","reftools":"^1.0.11","yaml":"^1.8.0","yargs":"^12.0.5"},"keywords":["swagger","openapi","openapi2","openapi3","converter","conversion","validator","validation","resolver","lint","linter"],"gitHead":"3c04d8c190507d806746d45042fcb8d579dfb237"}')},function(e,t){var n=Object.prototype.hasOwnProperty,r=Object.prototype.toString;e.exports=function(e,t,o){if("[object Function]"!==r.call(t))throw new TypeError("iterator must be a function");var i=e.length;if(i===+i)for(var a=0;a>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\((?:\([^)]+\)|[^()])+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},{pattern:/\$\{[^}]+\}/,greedy:!0,inside:{operator:/:[-=?+]?|[!\/]|##?|%%?|\^\^?|,,?/,punctuation:/[\[\]]/,environment:{pattern:RegExp("(\\{)"+t),lookbehind:!0,alias:"constant"}}},/\$(?:\w+|[#?*!@$])/],entity:/\\(?:[abceEfnrtv\\"]|O?[0-7]{1,3}|x[0-9a-fA-F]{1,2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})/};e.languages.bash={shebang:{pattern:/^#!\s*\/.*/,alias:"important"},comment:{pattern:/(^|[^"{\\$])#.*/,lookbehind:!0},"function-name":[{pattern:/(\bfunction\s+)\w+(?=(?:\s*\(?:\s*\))?\s*\{)/,lookbehind:!0,alias:"function"},{pattern:/\b\w+(?=\s*\(\s*\)\s*\{)/,alias:"function"}],"for-or-select":{pattern:/(\b(?:for|select)\s+)\w+(?=\s+in\s)/,alias:"variable",lookbehind:!0},"assign-left":{pattern:/(^|[\s;|&]|[<>]\()\w+(?=\+?=)/,inside:{environment:{pattern:RegExp("(^|[\\s;|&]|[<>]\\()"+t),lookbehind:!0,alias:"constant"}},alias:"variable",lookbehind:!0},string:[{pattern:/((?:^|[^<])<<-?\s*)(\w+?)\s*(?:\r?\n|\r)(?:[\s\S])*?(?:\r?\n|\r)\2/,lookbehind:!0,greedy:!0,inside:n},{pattern:/((?:^|[^<])<<-?\s*)(["'])(\w+)\2\s*(?:\r?\n|\r)(?:[\s\S])*?(?:\r?\n|\r)\3/,lookbehind:!0,greedy:!0},{pattern:/(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/,greedy:!0,inside:n}],environment:{pattern:RegExp("\\$?"+t),alias:"constant"},variable:n.variable,function:{pattern:/(^|[\s;|&]|[<>]\()(?:add|apropos|apt|aptitude|apt-cache|apt-get|aspell|automysqlbackup|awk|basename|bash|bc|bconsole|bg|bzip2|cal|cat|cfdisk|chgrp|chkconfig|chmod|chown|chroot|cksum|clear|cmp|column|comm|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|debootstrap|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|env|ethtool|expand|expect|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|git|gparted|grep|groupadd|groupdel|groupmod|groups|grub-mkconfig|gzip|halt|head|hg|history|host|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|ip|jobs|join|kill|killall|less|link|ln|locate|logname|logrotate|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|lynx|make|man|mc|mdadm|mkconfig|mkdir|mke2fs|mkfifo|mkfs|mkisofs|mknod|mkswap|mmv|more|most|mount|mtools|mtr|mutt|mv|nano|nc|netstat|nice|nl|nohup|notify-send|npm|nslookup|op|open|parted|passwd|paste|pathchk|ping|pkill|pnpm|popd|pr|printcap|printenv|ps|pushd|pv|quota|quotacheck|quotactl|ram|rar|rcp|reboot|remsync|rename|renice|rev|rm|rmdir|rpm|rsync|scp|screen|sdiff|sed|sendmail|seq|service|sftp|sh|shellcheck|shuf|shutdown|sleep|slocate|sort|split|ssh|stat|strace|su|sudo|sum|suspend|swapon|sync|tac|tail|tar|tee|time|timeout|top|touch|tr|traceroute|tsort|tty|umount|uname|unexpand|uniq|units|unrar|unshar|unzip|update-grub|uptime|useradd|userdel|usermod|users|uudecode|uuencode|v|vdir|vi|vim|virsh|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yarn|yes|zenity|zip|zsh|zypper)(?=$|[)\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&]|[<>]\()(?:if|then|else|elif|fi|for|while|in|case|esac|function|select|do|done|until)(?=$|[)\s;|&])/,lookbehind:!0},builtin:{pattern:/(^|[\s;|&]|[<>]\()(?:\.|:|break|cd|continue|eval|exec|exit|export|getopts|hash|pwd|readonly|return|shift|test|times|trap|umask|unset|alias|bind|builtin|caller|command|declare|echo|enable|help|let|local|logout|mapfile|printf|read|readarray|source|type|typeset|ulimit|unalias|set|shopt)(?=$|[)\s;|&])/,lookbehind:!0,alias:"class-name"},boolean:{pattern:/(^|[\s;|&]|[<>]\()(?:true|false)(?=$|[)\s;|&])/,lookbehind:!0},"file-descriptor":{pattern:/\B&\d\b/,alias:"important"},operator:{pattern:/\d?<>|>\||\+=|==?|!=?|=~|<<[<-]?|[&\d]?>>|\d?[<>]&?|&[>&]?|\|[&|]?|<=?|>=?/,inside:{"file-descriptor":{pattern:/^\d/,alias:"important"}}},punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];\\]/,number:{pattern:/(^|\s)(?:[1-9]\d*|0)(?:[.,]\d+)?\b/,lookbehind:!0}};for(var r=["comment","function-name","for-or-select","assign-left","string","environment","function","keyword","builtin","boolean","file-descriptor","operator","punctuation","number"],o=n.variable[1].inside,i=0;i>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?/,number:/(?:\b0x(?:[\da-f]+\.?[\da-f]*|\.[\da-f]+)(?:p[+-]?\d+)?|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),Prism.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete Prism.languages.c.boolean},function(e,t){Prism.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/(\b(?:class|interface|extends|implements|trait|instanceof|new)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/\w+(?=\()/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/[<>]=?|[!=]=?=?|--?|\+\+?|&&?|\|\|?|[?*/~^%]/,punctuation:/[{}[\];(),.:]/}},function(e,t){!function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"],e.languages.coffee=e.languages.coffeescript}(Prism)},function(e,t){Prism.languages.cpp=Prism.languages.extend("c",{"class-name":{pattern:/(\b(?:class|enum|struct)\s+)\w+/,lookbehind:!0},keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,number:{pattern:/(?:\b0b[01']+|\b0x(?:[\da-f']+\.?[\da-f']*|\.[\da-f']+)(?:p[+-]?[\d']+)?|(?:\b[\d']+\.?[\d']*|\B\.[\d']+)(?:e[+-]?[\d']+)?)[ful]*/i,greedy:!0},operator:/>>=?|<<=?|->|([-+&|:])\1|[?:~]|[-+*/%&|^!=<>]=?|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/,boolean:/\b(?:true|false)\b/}),Prism.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}})},function(e,t){Prism.languages.csharp=Prism.languages.extend("clike",{keyword:/\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i,operator:/>>=?|<<=?|[-=]>|([-+&|?])\1|~|[-+*/%&|^!=<>]=?/,punctuation:/\?\.?|::|[{}[\];(),.:]/}),Prism.languages.insertBefore("csharp","class-name",{"generic-method":{pattern:/\w+\s*<[^>\r\n]+?>\s*(?=\()/,inside:{function:/^\w+/,"class-name":{pattern:/\b[A-Z]\w*(?:\.\w+)*\b/,inside:{punctuation:/\./}},keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),Prism.languages.dotnet=Prism.languages.cs=Prism.languages.csharp},function(e,t){Prism.languages.go=Prism.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete Prism.languages.go["class-name"]},function(e,t){!function(e){e.languages.http={"request-line":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d+.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d+.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var t,n=e.languages,r={"application/javascript":n.javascript,"application/json":n.json||n.javascript,"application/xml":n.xml,"text/xml":n.xml,"text/html":n.html,"text/css":n.css},o={"application/json":!0,"application/xml":!0};function i(e){var t=e.replace(/^[a-z]+\//,"");return"(?:"+e+"|"+("\\w+/(?:[\\w.-]+\\+)+"+t+"(?![+\\w.-])")+")"}for(var a in r)if(r[a]){t=t||{};var s=o[a]?i(a):a;t[a.replace(/\//g,"-")]={pattern:RegExp("(content-type:\\s*"+s+"[\\s\\S]*?)(?:\\r?\\n|\\r){2}[\\s\\S]*","i"),lookbehind:!0,inside:r[a]}}t&&e.languages.insertBefore("http","header-name",t)}(Prism)},function(e,t){!function(e){var t=/\b(?:abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|exports|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|module|native|new|null|open|opens|package|private|protected|provides|public|requires|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|to|transient|transitive|try|uses|var|void|volatile|while|with|yield)\b/,n=/\b[A-Z](?:\w*[a-z]\w*)?\b/;e.languages.java=e.languages.extend("clike",{"class-name":[n,/\b[A-Z]\w*(?=\s+\w+\s*[;,=())])/],keyword:t,function:[e.languages.clike.function,{pattern:/(\:\:)[a-z_]\w*/,lookbehind:!0}],number:/\b0b[01][01_]*L?\b|\b0x[\da-f_]*\.?[\da-f_p+-]+\b|(?:\b\d[\d_]*\.?[\d_]*|\B\.\d[\d_]*)(?:e[+-]?\d[\d_]*)?[dfl]?/i,operator:{pattern:/(^|[^.])(?:<<=?|>>>?=?|->|--|\+\+|&&|\|\||::|[?:~]|[-+*/%&|^!=<>]=?)/m,lookbehind:!0}}),e.languages.insertBefore("java","string",{"triple-quoted-string":{pattern:/"""[ \t]*[\r\n](?:(?:"|"")?(?:\\.|[^"\\]))*"""/,greedy:!0,alias:"string"}}),e.languages.insertBefore("java","class-name",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0},namespace:{pattern:/(\b(?:exports|import(?:\s+static)?|module|open|opens|package|provides|requires|to|transitive|uses|with)\s+)[a-z]\w*(?:\.[a-z]\w*)+/,lookbehind:!0,inside:{punctuation:/\./}},generics:{pattern:/<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<(?:[\w\s,.&?]|<[\w\s,.&?]*>)*>)*>)*>/,inside:{"class-name":n,keyword:t,punctuation:/[<>(),.:]/,operator:/[?&|]/}}})}(Prism)},function(e,t){Prism.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/}},function(e,t){!function(e){function t(e,t){return"___"+e.toUpperCase()+t+"___"}Object.defineProperties(e.languages["markup-templating"]={},{buildPlaceholders:{value:function(n,r,o,i){if(n.language===r){var a=n.tokenStack=[];n.code=n.code.replace(o,(function(e){if("function"==typeof i&&!i(e))return e;for(var o,s=a.length;-1!==n.code.indexOf(o=t(r,s));)++s;return a[s]=e,o})),n.grammar=e.languages.markup}}},tokenizePlaceholders:{value:function(n,r){if(n.language===r&&n.tokenStack){n.grammar=e.languages[r];var o=0,i=Object.keys(n.tokenStack);!function a(s){for(var l=0;l=i.length);l++){var c=s[l];if("string"==typeof c||c.content&&"string"==typeof c.content){var u=i[o],p=n.tokenStack[u],f="string"==typeof c?c:c.content,d=t(r,u),h=f.indexOf(d);if(h>-1){++o;var m=f.substring(0,h),g=new e.Token(r,e.tokenize(p,n.grammar),"language-"+r,p),y=f.substring(h+d.length),v=[];m&&v.push.apply(v,a([m])),v.push(g),y&&v.push.apply(v,a([y])),"string"==typeof c?s.splice.apply(s,[l,1].concat(v)):c.content=v}}else c.content&&a(c.content)}return s}(n.tokens)}}}})}(Prism)},function(e,t){Prism.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype:{pattern:/"'[\]]|"[^"]*"|'[^']*')+(?:\[(?:(?!)*\]\s*)?>/i,greedy:!0},cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s(?:\s*[^\s>\/=]+(?:\s*=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+(?=[\s>]))|(?=[\s/>])))+)?\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=\s*(?:"[^"]*"|'[^']*'|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/^(\s*)["']|["']$/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},Prism.languages.markup.tag.inside["attr-value"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add("wrap",(function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})),Object.defineProperty(Prism.languages.markup.tag,"addInlined",{value:function(e,t){var n={};n["language-"+t]={pattern:/(^$)/i,lookbehind:!0,inside:Prism.languages[t]},n.cdata=/^$/i;var r={"included-cdata":{pattern://i,inside:n}};r["language-"+t]={pattern:/[\s\S]+/,inside:Prism.languages[t]};var o={};o[e]={pattern:RegExp(/(<__[\s\S]*?>)(?:\s*|[\s\S])*?(?=<\/__>)/.source.replace(/__/g,e),"i"),lookbehind:!0,greedy:!0,inside:r},Prism.languages.insertBefore("markup","cdata",o)}}),Prism.languages.xml=Prism.languages.extend("markup",{}),Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup},function(e,t){Prism.languages.objectivec=Prism.languages.extend("c",{keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),delete Prism.languages.objectivec["class-name"]},function(e,t){Prism.languages.perl={comment:[{pattern:/(^\s*)=\w+[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|return|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/}},function(e,t){!function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:__halt_compiler|abstract|and|array|as|break|callable|case|catch|class|clone|const|continue|declare|default|die|do|echo|else|elseif|empty|enddeclare|endfor|endforeach|endif|endswitch|endwhile|eval|exit|extends|final|finally|for|foreach|function|global|goto|if|implements|include|include_once|instanceof|insteadof|interface|isset|list|namespace|new|or|parent|print|private|protected|public|require|require_once|return|static|switch|throw|trait|try|unset|use|var|while|xor|yield)\b/i,boolean:{pattern:/\b(?:false|true)\b/i,alias:"constant"},constant:[/\b[A-Z_][A-Z0-9_]*\b/,/\b(?:null)\b/i],comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","comment",{delimiter:{pattern:/\?>$|^<\?(?:php(?=\s)|=)?/i,alias:"important"}}),e.languages.insertBefore("php","keyword",{variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}});var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:e.languages.php};e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:t}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:t}}}),delete e.languages.php.string,e.hooks.add("before-tokenize",(function(t){if(/<\?/.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/<\?(?:[^"'/#]|\/(?![*/])|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|(?:\/\/|#)(?:[^?\n\r]|\?(?!>))*(?=$|\?>|[\r\n])|\/\*[\s\S]*?(?:\*\/|$))*?(?:\?>|$)/gi)}})),e.hooks.add("after-tokenize",(function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")}))}(Prism)},function(e,t){Prism.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"string-interpolation":{pattern:/(?:f|rf|fr)(?:("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2)/i,greedy:!0,inside:{interpolation:{pattern:/((?:^|[^{])(?:{{)*){(?!{)(?:[^{}]|{(?!{)(?:[^{}]|{(?!{)(?:[^{}])+})+})+}/,lookbehind:!0,inside:{"format-spec":{pattern:/(:)[^:(){}]+(?=}$)/,lookbehind:!0},"conversion-option":{pattern:/![sra](?=[:}]$)/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}},"triple-quoted-string":{pattern:/(?:[rub]|rb|br)?("""|''')[\s\S]+?\1/i,greedy:!0,alias:"string"},string:{pattern:/(?:[rub]|rb|br)?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/i,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},decorator:{pattern:/(^\s*)@\w+(?:\.\w+)*/im,lookbehind:!0,alias:["annotation","punctuation"],inside:{punctuation:/\./}},keyword:/\b(?:and|as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|not|or|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]/,punctuation:/[{}[\];(),.:]/},Prism.languages.python["string-interpolation"].inside.interpolation.inside.rest=Prism.languages.python,Prism.languages.py=Prism.languages.python},function(e,t){!function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin\s[\s\S]*?^=end/m,greedy:!0}],"class-name":{pattern:/(\b(?:class)\s+|\bcatch\s+\()[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|extend|for|if|in|include|module|new|next|nil|not|or|prepend|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};delete e.languages.ruby.function,e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/(^|[^/])\/(?!\/)(?:\[.+?]|\\.|[^/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0},"method-definition":{pattern:/(\bdef\s+)[\w.]+/,lookbehind:!0,inside:{function:/\w+$/,rest:e.languages.ruby}}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:t}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:t}}],e.languages.rb=e.languages.ruby}(Prism)},function(e,t){Prism.languages.scala=Prism.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,"triple-quoted-string":{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete Prism.languages.scala["class-name"],delete Prism.languages.scala.function},function(e,t){Prism.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},variable:[{pattern:/@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,greedy:!0},/@[\w.$]+/],string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\]|\2\2)*\2/,greedy:!0,lookbehind:!0},function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/}},function(e,t){Prism.languages.swift=Prism.languages.extend("clike",{string:{pattern:/("|')(?:\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift},function(e,t,n){var r=n(304),o=["add","done","toJS","load","search"];e.exports=function(){var e=new Worker(URL.createObjectURL(new Blob(['/*!\n * ReDoc - OpenAPI/Swagger-generated API Reference Documentation\n * -------------------------------------------------------------\n * Version: "20.2.4"\n * Repo: https://github.com/Redocly/redoc\n */!function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r(r.s=97)}([function(e,t,r){(function(t){var r=function(e){return e&&e.Math==Math&&e};e.exports=r("object"==typeof globalThis&&globalThis)||r("object"==typeof window&&window)||r("object"==typeof self&&self)||r("object"==typeof t&&t)||Function("return this")()}).call(this,r(59))},function(e,t,r){var n=r(0),i=r(32),o=r(3),s=r(36),u=r(37),a=r(60),c=i("wks"),l=n.Symbol,f=a?l:l&&l.withoutSetter||s;e.exports=function(e){return o(c,e)||(u&&o(l,e)?c[e]=l[e]:c[e]=f("Symbol."+e)),c[e]}},function(e,t,r){var n=r(7);e.exports=function(e){if(!n(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t){var r={}.hasOwnProperty;e.exports=function(e,t){return r.call(e,t)}},function(e,t,r){var n,i;\n/**\n * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.8\n * Copyright (C) 2019 Oliver Nightingale\n * @license MIT\n */!function(){var o,s,u,a,c,l,f,p,h,d,y,v,m,g,x,w,b,S,P,k,O,E,L,T,Q,j,I=function(e){var t=new I.Builder;return t.pipeline.add(I.trimmer,I.stopWordFilter,I.stemmer),t.searchPipeline.add(I.stemmer),e.call(t,t),t.build()};I.version="2.3.8"\n/*!\n * lunr.utils\n * Copyright (C) 2019 Oliver Nightingale\n */,I.utils={},I.utils.warn=(o=this,function(e){o.console&&console.warn&&console.warn(e)}),I.utils.asString=function(e){return null==e?"":e.toString()},I.utils.clone=function(e){if(null==e)return e;for(var t=Object.create(null),r=Object.keys(e),n=0;n0){var a=I.utils.clone(t)||{};a.position=[s,u],a.index=i.length,i.push(new I.Token(r.slice(s,o),a))}s=o+1}}return i},I.tokenizer.separator=/[\\s\\-]+/\n/*!\n * lunr.Pipeline\n * Copyright (C) 2019 Oliver Nightingale\n */,I.Pipeline=function(){this._stack=[]},I.Pipeline.registeredFunctions=Object.create(null),I.Pipeline.registerFunction=function(e,t){t in this.registeredFunctions&&I.utils.warn("Overwriting existing registered function: "+t),e.label=t,I.Pipeline.registeredFunctions[e.label]=e},I.Pipeline.warnIfFunctionNotRegistered=function(e){e.label&&e.label in this.registeredFunctions||I.utils.warn("Function is not registered with pipeline. This may cause problems when serialising the index.\\n",e)},I.Pipeline.load=function(e){var t=new I.Pipeline;return e.forEach((function(e){var r=I.Pipeline.registeredFunctions[e];if(!r)throw new Error("Cannot load unregistered function: "+e);t.add(r)})),t},I.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach((function(e){I.Pipeline.warnIfFunctionNotRegistered(e),this._stack.push(e)}),this)},I.Pipeline.prototype.after=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");r+=1,this._stack.splice(r,0,t)},I.Pipeline.prototype.before=function(e,t){I.Pipeline.warnIfFunctionNotRegistered(t);var r=this._stack.indexOf(e);if(-1==r)throw new Error("Cannot find existingFn");this._stack.splice(r,0,t)},I.Pipeline.prototype.remove=function(e){var t=this._stack.indexOf(e);-1!=t&&this._stack.splice(t,1)},I.Pipeline.prototype.run=function(e){for(var t=this._stack.length,r=0;r1&&(oe&&(r=i),o!=e);)n=r-t,i=t+Math.floor(n/2),o=this.elements[2*i];return o==e||o>e?2*i:ou?c+=2:s==u&&(t+=r[a+1]*n[c+1],a+=2,c+=2);return t},I.Vector.prototype.similarity=function(e){return this.dot(e)/this.magnitude()||0},I.Vector.prototype.toArray=function(){for(var e=new Array(this.elements.length/2),t=1,r=0;t0){var o,s=i.str.charAt(0);s in i.node.edges?o=i.node.edges[s]:(o=new I.TokenSet,i.node.edges[s]=o),1==i.str.length&&(o.final=!0),n.push({node:o,editsRemaining:i.editsRemaining,str:i.str.slice(1)})}if(0!=i.editsRemaining){if("*"in i.node.edges)var u=i.node.edges["*"];else{u=new I.TokenSet;i.node.edges["*"]=u}if(0==i.str.length&&(u.final=!0),n.push({node:u,editsRemaining:i.editsRemaining-1,str:i.str}),i.str.length>1&&n.push({node:i.node,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)}),1==i.str.length&&(i.node.final=!0),i.str.length>=1){if("*"in i.node.edges)var a=i.node.edges["*"];else{a=new I.TokenSet;i.node.edges["*"]=a}1==i.str.length&&(a.final=!0),n.push({node:a,editsRemaining:i.editsRemaining-1,str:i.str.slice(1)})}if(i.str.length>1){var c,l=i.str.charAt(0),f=i.str.charAt(1);f in i.node.edges?c=i.node.edges[f]:(c=new I.TokenSet,i.node.edges[f]=c),1==i.str.length&&(c.final=!0),n.push({node:c,editsRemaining:i.editsRemaining-1,str:l+i.str.slice(2)})}}}return r},I.TokenSet.fromString=function(e){for(var t=new I.TokenSet,r=t,n=0,i=e.length;n=e;t--){var r=this.uncheckedNodes[t],n=r.child.toString();n in this.minimizedNodes?r.parent.edges[r.char]=this.minimizedNodes[n]:(r.child._str=n,this.minimizedNodes[n]=r.child),this.uncheckedNodes.pop()}}\n/*!\n * lunr.Index\n * Copyright (C) 2019 Oliver Nightingale\n */,I.Index=function(e){this.invertedIndex=e.invertedIndex,this.fieldVectors=e.fieldVectors,this.tokenSet=e.tokenSet,this.fields=e.fields,this.pipeline=e.pipeline},I.Index.prototype.search=function(e){return this.query((function(t){new I.QueryParser(e,t).parse()}))},I.Index.prototype.query=function(e){for(var t=new I.Query(this.fields),r=Object.create(null),n=Object.create(null),i=Object.create(null),o=Object.create(null),s=Object.create(null),u=0;u1?1:e},I.Builder.prototype.k1=function(e){this._k1=e},I.Builder.prototype.add=function(e,t){var r=e[this._ref],n=Object.keys(this._fields);this._documents[r]=t||{},this.documentCount+=1;for(var i=0;i=this.length)return I.QueryLexer.EOS;var e=this.str.charAt(this.pos);return this.pos+=1,e},I.QueryLexer.prototype.width=function(){return this.pos-this.start},I.QueryLexer.prototype.ignore=function(){this.start==this.pos&&(this.pos+=1),this.start=this.pos},I.QueryLexer.prototype.backup=function(){this.pos-=1},I.QueryLexer.prototype.acceptDigitRun=function(){var e,t;do{t=(e=this.next()).charCodeAt(0)}while(t>47&&t<58);e!=I.QueryLexer.EOS&&this.backup()},I.QueryLexer.prototype.more=function(){return this.pos1&&(e.backup(),e.emit(I.QueryLexer.TERM)),e.ignore(),e.more())return I.QueryLexer.lexText},I.QueryLexer.lexEditDistance=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.EDIT_DISTANCE),I.QueryLexer.lexText},I.QueryLexer.lexBoost=function(e){return e.ignore(),e.acceptDigitRun(),e.emit(I.QueryLexer.BOOST),I.QueryLexer.lexText},I.QueryLexer.lexEOS=function(e){e.width()>0&&e.emit(I.QueryLexer.TERM)},I.QueryLexer.termSeparator=I.tokenizer.separator,I.QueryLexer.lexText=function(e){for(;;){var t=e.next();if(t==I.QueryLexer.EOS)return I.QueryLexer.lexEOS;if(92!=t.charCodeAt(0)){if(":"==t)return I.QueryLexer.lexField;if("~"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexEditDistance;if("^"==t)return e.backup(),e.width()>0&&e.emit(I.QueryLexer.TERM),I.QueryLexer.lexBoost;if("+"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if("-"==t&&1===e.width())return e.emit(I.QueryLexer.PRESENCE),I.QueryLexer.lexText;if(t.match(I.QueryLexer.termSeparator))return I.QueryLexer.lexTerm}else e.escapeCharacter()}},I.QueryParser=function(e,t){this.lexer=new I.QueryLexer(e),this.query=t,this.currentClause={},this.lexemeIdx=0},I.QueryParser.prototype.parse=function(){this.lexer.run(),this.lexemes=this.lexer.lexemes;for(var e=I.QueryParser.parseClause;e;)e=e(this);return this.query},I.QueryParser.prototype.peekLexeme=function(){return this.lexemes[this.lexemeIdx]},I.QueryParser.prototype.consumeLexeme=function(){var e=this.peekLexeme();return this.lexemeIdx+=1,e},I.QueryParser.prototype.nextClause=function(){var e=this.currentClause;this.query.clause(e),this.currentClause={}},I.QueryParser.parseClause=function(e){var t=e.peekLexeme();if(null!=t)switch(t.type){case I.QueryLexer.PRESENCE:return I.QueryParser.parsePresence;case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:var r="expected either a field or a term, found "+t.type;throw t.str.length>=1&&(r+=" with value \'"+t.str+"\'"),new I.QueryParseError(r,t.start,t.end)}},I.QueryParser.parsePresence=function(e){var t=e.consumeLexeme();if(null!=t){switch(t.str){case"-":e.currentClause.presence=I.Query.presence.PROHIBITED;break;case"+":e.currentClause.presence=I.Query.presence.REQUIRED;break;default:var r="unrecognised presence operator\'"+t.str+"\'";throw new I.QueryParseError(r,t.start,t.end)}var n=e.peekLexeme();if(null==n){r="expecting term or field, found nothing";throw new I.QueryParseError(r,t.start,t.end)}switch(n.type){case I.QueryLexer.FIELD:return I.QueryParser.parseField;case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:r="expecting term or field, found \'"+n.type+"\'";throw new I.QueryParseError(r,n.start,n.end)}}},I.QueryParser.parseField=function(e){var t=e.consumeLexeme();if(null!=t){if(-1==e.query.allFields.indexOf(t.str)){var r=e.query.allFields.map((function(e){return"\'"+e+"\'"})).join(", "),n="unrecognised field \'"+t.str+"\', possible fields: "+r;throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.fields=[t.str];var i=e.peekLexeme();if(null==i){n="expecting term, found nothing";throw new I.QueryParseError(n,t.start,t.end)}switch(i.type){case I.QueryLexer.TERM:return I.QueryParser.parseTerm;default:n="expecting term, found \'"+i.type+"\'";throw new I.QueryParseError(n,i.start,i.end)}}},I.QueryParser.parseTerm=function(e){var t=e.consumeLexeme();if(null!=t){e.currentClause.term=t.str.toLowerCase(),-1!=t.str.indexOf("*")&&(e.currentClause.usePipeline=!1);var r=e.peekLexeme();if(null!=r)switch(r.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:var n="Unexpected lexeme type \'"+r.type+"\'";throw new I.QueryParseError(n,r.start,r.end)}else e.nextClause()}},I.QueryParser.parseEditDistance=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="edit distance must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.editDistance=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type \'"+i.type+"\'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},I.QueryParser.parseBoost=function(e){var t=e.consumeLexeme();if(null!=t){var r=parseInt(t.str,10);if(isNaN(r)){var n="boost must be numeric";throw new I.QueryParseError(n,t.start,t.end)}e.currentClause.boost=r;var i=e.peekLexeme();if(null!=i)switch(i.type){case I.QueryLexer.TERM:return e.nextClause(),I.QueryParser.parseTerm;case I.QueryLexer.FIELD:return e.nextClause(),I.QueryParser.parseField;case I.QueryLexer.EDIT_DISTANCE:return I.QueryParser.parseEditDistance;case I.QueryLexer.BOOST:return I.QueryParser.parseBoost;case I.QueryLexer.PRESENCE:return e.nextClause(),I.QueryParser.parsePresence;default:n="Unexpected lexeme type \'"+i.type+"\'";throw new I.QueryParseError(n,i.start,i.end)}else e.nextClause()}},void 0===(i="function"==typeof(n=function(){return I})?n.call(t,r,t,e):n)||(e.exports=i)}()},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,r){var n=r(8),i=r(9),o=r(22);e.exports=n?function(e,t,r){return i.f(e,t,o(1,r))}:function(e,t,r){return e[t]=r,e}},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,r){var n=r(5);e.exports=!n((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t,r){var n=r(8),i=r(34),o=r(2),s=r(35),u=Object.defineProperty;t.f=n?u:function(e,t,r){if(o(e),t=s(t,!0),o(r),i)try{return u(e,t,r)}catch(e){}if("get"in r||"set"in r)throw TypeError("Accessors not supported");return"value"in r&&(e[t]=r.value),e}},function(e,t,r){var n=r(0),i=r(6),o=r(3),s=r(20),u=r(23),a=r(16),c=a.get,l=a.enforce,f=String(String).split("String");(e.exports=function(e,t,r,u){var a=!!u&&!!u.unsafe,c=!!u&&!!u.enumerable,p=!!u&&!!u.noTargetGet;"function"==typeof r&&("string"!=typeof t||o(r,"name")||i(r,"name",t),l(r).source=f.join("string"==typeof t?t:"")),e!==n?(a?!p&&e[t]&&(c=!0):delete e[t],c?e[t]=r:i(e,t,r)):c?e[t]=r:s(t,r)})(Function.prototype,"toString",(function(){return"function"==typeof this&&c(this).source||u(this)}))},function(e,t,r){var n=r(40),i=r(0),o=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?o(n[e])||o(i[e]):n[e]&&n[e][t]||i[e]&&i[e][t]}},function(e,t){e.exports=!1},function(e,t){var r={}.toString;e.exports=function(e){return r.call(e).slice(8,-1)}},function(e,t){e.exports={}},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(String(e)+" is not a function");return e}},function(e,t,r){var n,i,o,s=r(61),u=r(0),a=r(7),c=r(6),l=r(3),f=r(24),p=r(25),h=u.WeakMap;if(s){var d=new h,y=d.get,v=d.has,m=d.set;n=function(e,t){return m.call(d,e,t),t},i=function(e){return y.call(d,e)||{}},o=function(e){return v.call(d,e)}}else{var g=f("state");p[g]=!0,n=function(e,t){return c(e,g,t),t},i=function(e){return l(e,g)?e[g]:{}},o=function(e){return l(e,g)}}e.exports={set:n,get:i,has:o,enforce:function(e){return o(e)?i(e):n(e,{})},getterFor:function(e){return function(t){var r;if(!a(t)||(r=i(t)).type!==e)throw TypeError("Incompatible receiver, "+e+" required");return r}}}},function(e,t,r){var n=r(0),i=r(28).f,o=r(6),s=r(10),u=r(20),a=r(67),c=r(43);e.exports=function(e,t){var r,l,f,p,h,d=e.target,y=e.global,v=e.stat;if(r=y?n:v?n[d]||u(d,{}):(n[d]||{}).prototype)for(l in t){if(p=t[l],f=e.noTargetGet?(h=i(r,l))&&h.value:r[l],!c(y?l:d+(v?".":"#")+l,e.forced)&&void 0!==f){if(typeof p==typeof f)continue;a(p,f)}(e.sham||f&&f.sham)&&o(p,"sham",!0),s(r,l,p,e)}}},function(e,t,r){var n=r(66),i=r(27);e.exports=function(e){return n(i(e))}},function(e,t,r){var n={};n[r(1)("toStringTag")]="z",e.exports="[object z]"===String(n)},function(e,t,r){var n=r(0),i=r(6);e.exports=function(e,t){try{i(n,e,t)}catch(r){n[e]=t}return t}},function(e,t,r){var n=r(0),i=r(7),o=n.document,s=i(o)&&i(o.createElement);e.exports=function(e){return s?o.createElement(e):{}}},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t,r){var n=r(33),i=Function.toString;"function"!=typeof n.inspectSource&&(n.inspectSource=function(e){return i.call(e)}),e.exports=n.inspectSource},function(e,t,r){var n=r(32),i=r(36),o=n("keys");e.exports=function(e){return o[e]||(o[e]=i(e))}},function(e,t){e.exports={}},function(e,t){var r=Math.ceil,n=Math.floor;e.exports=function(e){return isNaN(e=+e)?0:(e>0?n:r)(e)}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can\'t call method on "+e);return e}},function(e,t,r){var n=r(8),i=r(65),o=r(22),s=r(18),u=r(35),a=r(3),c=r(34),l=Object.getOwnPropertyDescriptor;t.f=n?l:function(e,t){if(e=s(e),t=u(t,!0),c)try{return l(e,t)}catch(e){}if(a(e,t))return o(!i.f.call(e,t),e[t])}},function(e,t){e.exports=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"]},function(e,t,r){var n=r(9).f,i=r(3),o=r(1)("toStringTag");e.exports=function(e,t,r){e&&!i(e=r?e:e.prototype,o)&&n(e,o,{configurable:!0,value:t})}},function(e,t,r){"use strict";var n=r(15),i=function(e){var t,r;this.promise=new e((function(e,n){if(void 0!==t||void 0!==r)throw TypeError("Bad Promise constructor");t=e,r=n})),this.resolve=n(t),this.reject=n(r)};e.exports.f=function(e){return new i(e)}},function(e,t,r){var n=r(12),i=r(33);(e.exports=function(e,t){return i[e]||(i[e]=void 0!==t?t:{})})("versions",[]).push({version:"3.6.4",mode:n?"pure":"global",copyright:"© 2020 Denis Pushkarev (zloirock.ru)"})},function(e,t,r){var n=r(0),i=r(20),o=n["__core-js_shared__"]||i("__core-js_shared__",{});e.exports=o},function(e,t,r){var n=r(8),i=r(5),o=r(21);e.exports=!n&&!i((function(){return 7!=Object.defineProperty(o("div"),"a",{get:function(){return 7}}).a}))},function(e,t,r){var n=r(7);e.exports=function(e,t){if(!n(e))return e;var r,i;if(t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;if("function"==typeof(r=e.valueOf)&&!n(i=r.call(e)))return i;if(!t&&"function"==typeof(r=e.toString)&&!n(i=r.call(e)))return i;throw TypeError("Can\'t convert object to primitive value")}},function(e,t){var r=0,n=Math.random();e.exports=function(e){return"Symbol("+String(void 0===e?"":e)+")_"+(++r+n).toString(36)}},function(e,t,r){var n=r(5);e.exports=!!Object.getOwnPropertySymbols&&!n((function(){return!String(Symbol())}))},function(e,t,r){var n=r(19),i=r(13),o=r(1)("toStringTag"),s="Arguments"==i(function(){return arguments}());e.exports=n?i:function(e){var t,r,n;return void 0===e?"Undefined":null===e?"Null":"string"==typeof(r=function(e,t){try{return e[t]}catch(e){}}(t=Object(e),o))?r:s?i(t):"Object"==(n=i(t))&&"function"==typeof t.callee?"Arguments":n}},function(e,t,r){"use strict";var n=r(17),i=r(73),o=r(45),s=r(78),u=r(30),a=r(6),c=r(10),l=r(1),f=r(12),p=r(14),h=r(44),d=h.IteratorPrototype,y=h.BUGGY_SAFARI_ITERATORS,v=l("iterator"),m=function(){return this};e.exports=function(e,t,r,l,h,g,x){i(r,t,l);var w,b,S,P=function(e){if(e===h&&T)return T;if(!y&&e in E)return E[e];switch(e){case"keys":case"values":case"entries":return function(){return new r(this,e)}}return function(){return new r(this)}},k=t+" Iterator",O=!1,E=e.prototype,L=E[v]||E["@@iterator"]||h&&E[h],T=!y&&L||P(h),Q="Array"==t&&E.entries||L;if(Q&&(w=o(Q.call(new e)),d!==Object.prototype&&w.next&&(f||o(w)===d||(s?s(w,d):"function"!=typeof w[v]&&a(w,v,m)),u(w,k,!0,!0),f&&(p[k]=m))),"values"==h&&L&&"values"!==L.name&&(O=!0,T=function(){return L.call(this)}),f&&!x||E[v]===T||a(E,v,T),p[t]=T,h)if(b={values:P("values"),keys:g?T:P("keys"),entries:P("entries")},x)for(S in b)(y||O||!(S in E))&&c(E,S,b[S]);else n({target:t,proto:!0,forced:y||O},b);return b}},function(e,t,r){var n=r(0);e.exports=n},function(e,t,r){var n=r(3),i=r(18),o=r(70).indexOf,s=r(25);e.exports=function(e,t){var r,u=i(e),a=0,c=[];for(r in u)!n(s,r)&&n(u,r)&&c.push(r);for(;t.length>a;)n(u,r=t[a++])&&(~o(c,r)||c.push(r));return c}},function(e,t,r){var n=r(26),i=Math.min;e.exports=function(e){return e>0?i(n(e),9007199254740991):0}},function(e,t,r){var n=r(5),i=/#|\\.prototype\\./,o=function(e,t){var r=u[s(e)];return r==c||r!=a&&("function"==typeof t?n(t):!!t)},s=o.normalize=function(e){return String(e).replace(i,".").toLowerCase()},u=o.data={},a=o.NATIVE="N",c=o.POLYFILL="P";e.exports=o},function(e,t,r){"use strict";var n,i,o,s=r(45),u=r(6),a=r(3),c=r(1),l=r(12),f=c("iterator"),p=!1;[].keys&&("next"in(o=[].keys())?(i=s(s(o)))!==Object.prototype&&(n=i):p=!0),null==n&&(n={}),l||a(n,f)||u(n,f,(function(){return this})),e.exports={IteratorPrototype:n,BUGGY_SAFARI_ITERATORS:p}},function(e,t,r){var n=r(3),i=r(74),o=r(24),s=r(75),u=o("IE_PROTO"),a=Object.prototype;e.exports=s?Object.getPrototypeOf:function(e){return e=i(e),n(e,u)?e[u]:"function"==typeof e.constructor&&e instanceof e.constructor?e.constructor.prototype:e instanceof Object?a:null}},function(e,t,r){var n,i=r(2),o=r(76),s=r(29),u=r(25),a=r(47),c=r(21),l=r(24),f=l("IE_PROTO"),p=function(){},h=function(e){return"