{"version":3,"sources":["webpack:///./node_modules/path-to-regexp/index.js","webpack:///./node_modules/path-to-regexp/node_modules/isarray/index.js"],"names":["isarray","module","exports","pathToRegexp","parse","compile","str","options","tokensToFunction","tokensToRegExp","PATH_REGEXP","RegExp","join","res","tokens","key","index","path","defaultDelimiter","delimiter","exec","m","escaped","offset","slice","length","next","prefix","name","capture","group","modifier","asterisk","push","partial","repeat","optional","pattern","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","replace","c","charCodeAt","toString","toUpperCase","matches","Array","i","flags","obj","opts","data","encode","pretty","encodeURIComponent","token","segment","value","TypeError","JSON","stringify","j","test","attachKeys","re","keys","sensitive","strict","end","route","endsWithDelimiter","groups","source","match","regexpToRegexp","parts","arrayToRegexp","stringToRegexp","isArray","arr","Object","prototype","call"],"mappings":"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","file":"npm.path-to-regexp.c920b4ddeb9b68365139.js","sourcesContent":["var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n"],"sourceRoot":""}