@tarojs/router 3.4.0 → 3.4.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.js +110 -92
- package/dist/index.js.map +1 -1
- package/dist/router.esm.js +111 -93
- package/dist/router.esm.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/universal-router/node_modules/path-to-regexp/index.js","../../../node_modules/universal-router/module.js","../../../node_modules/query-string/node_modules/strict-uri-encode/index.js","../../../node_modules/decode-uri-component/index.js","../../../node_modules/split-on-first/index.js","../../../node_modules/filter-obj/index.js","../../../node_modules/query-string/index.js"],"sourcesContent":["/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\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, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", 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) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\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 pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\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 * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = []\n var re = pathToRegexp(str, keys, options)\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname)\n if (!m) return false\n\n var path = m[0]\n var index = m.index\n var params = {}\n var decode = (options && options.decode) || decodeURIComponent\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1]\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n })\n } else {\n params[key.name] = decode(m[i], key)\n }\n }\n\n return { path: path, index: index, params: params }\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 (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n var validate = options ? options.validate !== false : true\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 continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\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 * 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 if (!keys) return path\n\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 pattern: null\n })\n }\n }\n\n return path\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 return new RegExp('(?:' + parts.join('|') + ')', flags(options))\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=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\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 capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\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=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","/*! Universal Router | MIT License | https://www.kriasoft.com/universal-router/ */\n\nimport pathToRegexp from 'path-to-regexp';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar cache = new Map();\n\nfunction decodeParam(val) {\n try {\n return decodeURIComponent(val);\n } catch (err) {\n return val;\n }\n}\n\nfunction matchPath(route, pathname, parentKeys, parentParams) {\n var end = !route.children;\n var cacheKey = (route.path || '') + \"|\" + end;\n var regexp = cache.get(cacheKey);\n\n if (!regexp) {\n var keys = [];\n regexp = {\n keys: keys,\n pattern: pathToRegexp(route.path || '', keys, {\n end: end\n })\n };\n cache.set(cacheKey, regexp);\n }\n\n var m = regexp.pattern.exec(pathname);\n\n if (!m) {\n return null;\n }\n\n var path = m[0];\n var params = Object.assign({}, parentParams);\n\n for (var i = 1; i < m.length; i++) {\n var key = regexp.keys[i - 1];\n var prop = key.name;\n var value = m[i];\n\n if (value !== undefined || !hasOwnProperty.call(params, prop)) {\n if (key.repeat) {\n params[prop] = value ? value.split(key.delimiter).map(decodeParam) : [];\n } else {\n params[prop] = value ? decodeParam(value) : value;\n }\n }\n }\n\n return {\n path: !end && path.charAt(path.length - 1) === '/' ? path.substr(1) : path,\n keys: parentKeys.concat(regexp.keys),\n params: params\n };\n}\n\nfunction matchRoute(route, baseUrl, pathname, parentKeys, parentParams) {\n var match;\n var childMatches;\n var childIndex = 0;\n return {\n next: function next(routeToSkip) {\n if (route === routeToSkip) {\n return {\n done: true\n };\n }\n\n if (!match) {\n match = matchPath(route, pathname, parentKeys, parentParams);\n\n if (match) {\n return {\n done: false,\n value: {\n route: route,\n baseUrl: baseUrl,\n path: match.path,\n keys: match.keys,\n params: match.params\n }\n };\n }\n }\n\n if (match && route.children) {\n while (childIndex < route.children.length) {\n if (!childMatches) {\n var childRoute = route.children[childIndex];\n childRoute.parent = route;\n childMatches = matchRoute(childRoute, baseUrl + match.path, pathname.substr(match.path.length), match.keys, match.params);\n }\n\n var childMatch = childMatches.next(routeToSkip);\n\n if (!childMatch.done) {\n return {\n done: false,\n value: childMatch.value\n };\n }\n\n childMatches = null;\n childIndex++;\n }\n }\n\n return {\n done: true\n };\n }\n };\n}\n\nfunction resolveRoute(context, params) {\n if (typeof context.route.action === 'function') {\n return context.route.action(context, params);\n }\n\n return undefined;\n}\n\nfunction isChildRoute(parentRoute, childRoute) {\n var route = childRoute;\n\n while (route) {\n route = route.parent;\n\n if (route === parentRoute) {\n return true;\n }\n }\n\n return false;\n}\n\nvar UniversalRouter = function () {\n function UniversalRouter(routes, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!routes || typeof routes !== 'object') {\n throw new TypeError('Invalid routes');\n }\n\n this.baseUrl = options.baseUrl || '';\n this.errorHandler = options.errorHandler;\n this.resolveRoute = options.resolveRoute || resolveRoute;\n this.context = Object.assign({\n router: this\n }, options.context);\n this.root = Array.isArray(routes) ? {\n path: '',\n children: routes,\n parent: null\n } : routes;\n this.root.parent = null;\n }\n\n var _proto = UniversalRouter.prototype;\n\n _proto.resolve = function resolve(pathnameOrContext) {\n var _this = this;\n\n var context = Object.assign({}, this.context, {}, typeof pathnameOrContext === 'string' ? {\n pathname: pathnameOrContext\n } : pathnameOrContext);\n var match = matchRoute(this.root, this.baseUrl, context.pathname.substr(this.baseUrl.length), [], null);\n var resolve = this.resolveRoute;\n var matches = null;\n var nextMatches = null;\n var currentContext = context;\n\n function next(resume, parent, prevResult) {\n if (parent === void 0) {\n parent = matches.value.route;\n }\n\n var routeToSkip = prevResult === null && !matches.done && matches.value.route;\n matches = nextMatches || match.next(routeToSkip);\n nextMatches = null;\n\n if (!resume) {\n if (matches.done || !isChildRoute(parent, matches.value.route)) {\n nextMatches = matches;\n return Promise.resolve(null);\n }\n }\n\n if (matches.done) {\n var error = new Error('Route not found');\n error.status = 404;\n return Promise.reject(error);\n }\n\n currentContext = Object.assign({}, context, {}, matches.value);\n return Promise.resolve(resolve(currentContext, matches.value.params)).then(function (result) {\n if (result !== null && result !== undefined) {\n return result;\n }\n\n return next(resume, parent, result);\n });\n }\n\n context.next = next;\n return Promise.resolve().then(function () {\n return next(true, _this.root);\n })[\"catch\"](function (error) {\n if (_this.errorHandler) {\n return _this.errorHandler(error, currentContext);\n }\n\n throw error;\n });\n };\n\n return UniversalRouter;\n}();\n\nUniversalRouter.pathToRegexp = pathToRegexp;\n\nexport default UniversalRouter;\n//# sourceMappingURL=module.js.map\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n"],"names":["pathToRegexpModule","pathToRegexp","match","regexpToFunction","parse","compile","tokensToFunction","tokensToRegExp","DEFAULT_DELIMITER","PATH_REGEXP","RegExp","join","str","options","tokens","key","index","path","defaultDelimiter","delimiter","whitelist","undefined","pathEscaped","res","exec","m","escaped","offset","slice","length","prev","name","capture","group","modifier","k","c","matches","indexOf","push","repeat","optional","pattern","prefix","escapeGroup","escapeString","substr","keys","re","pathname","params","decode","decodeURIComponent","i","split","map","value","Array","_typeof","flags","data","encode","encodeURIComponent","validate","token","segment","isArray","TypeError","j","test","String","replace","sensitive","regexpToRegexp","groups","source","arrayToRegexp","parts","stringToRegexp","strict","start","end","endsWith","concat","route","endToken","isEndDelimited","hasOwnProperty","Object","prototype","cache","cacheKey","regexp","prop","decodeParam","parentKeys","strictUriEncode","x","charCodeAt","toString","toUpperCase","singleMatcher","multiMatcher","decodeComponents","components","err","left","right","call","input","customDecodeURIComponent","replaceMap","result","entries","decodeUriComponent","encodedURI","splitOnFirst","string","separator","separatorIndex","filterObj","obj","predicate","ret","isArr","val","require$$0","decodeComponent","require$$1","require$$2","filterObject","require$$3","isNullOrUndefined","encoderForArrayFormat","arrayFormat","skipNull","skipEmptyString","arrayFormatSeparator","parserForArrayFormat","accumulator","includes","isEncodedArray","newValue","item","validateArrayFormatSeparator","keysSorter","sort","a","b","Number","removeHash","hashStart","getHash","url","hash","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","toLowerCase","query","assign","formatter","create","param","reduce","Boolean","exports","object","shouldFilter","objectCopy","filter","url_","parseFragmentIdentifier","fragmentIdentifier","queryFromUrl","parsedQueryFromUrl","queryString","stringify","parseUrl","stringifyUrl","exclusionFilter","pick"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../../node_modules/universal-router/node_modules/path-to-regexp/index.js","../../../node_modules/universal-router/module.js","../../../node_modules/query-string/node_modules/strict-uri-encode/index.js","../../../node_modules/decode-uri-component/index.js","../../../node_modules/split-on-first/index.js","../../../node_modules/filter-obj/index.js","../../../node_modules/query-string/index.js"],"sourcesContent":["/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.match = match\nmodule.exports.regexpToFunction = regexpToFunction\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * Default configs.\n */\nvar DEFAULT_DELIMITER = '/'\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, \"?\"]\n // \"(\\\\d+)\" => [undefined, undefined, \"\\d+\", 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) || DEFAULT_DELIMITER\n var whitelist = (options && options.whitelist) || undefined\n var pathEscaped = false\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 pathEscaped = true\n continue\n }\n\n var prev = ''\n var name = res[2]\n var capture = res[3]\n var group = res[4]\n var modifier = res[5]\n\n if (!pathEscaped && path.length) {\n var k = path.length - 1\n var c = path[k]\n var matches = whitelist ? whitelist.indexOf(c) > -1 : true\n\n if (matches) {\n prev = c\n path = path.slice(0, k)\n }\n }\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n pathEscaped = false\n }\n\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var pattern = capture || group\n var delimiter = prev || defaultDelimiter\n\n tokens.push({\n name: name || key++,\n prefix: prev,\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n pattern: pattern\n ? escapeGroup(pattern)\n : '[^' + escapeString(delimiter === defaultDelimiter ? delimiter : (delimiter + defaultDelimiter)) + ']+?'\n })\n }\n\n // Push any remaining characters.\n if (path || index < str.length) {\n tokens.push(path + str.substr(index))\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 * Create path match function from `path-to-regexp` spec.\n */\nfunction match (str, options) {\n var keys = []\n var re = pathToRegexp(str, keys, options)\n return regexpToFunction(re, keys)\n}\n\n/**\n * Create a path match function from `path-to-regexp` output.\n */\nfunction regexpToFunction (re, keys) {\n return function (pathname, options) {\n var m = re.exec(pathname)\n if (!m) return false\n\n var path = m[0]\n var index = m.index\n var params = {}\n var decode = (options && options.decode) || decodeURIComponent\n\n for (var i = 1; i < m.length; i++) {\n if (m[i] === undefined) continue\n\n var key = keys[i - 1]\n\n if (key.repeat) {\n params[key.name] = m[i].split(key.delimiter).map(function (value) {\n return decode(value, key)\n })\n } else {\n params[key.name] = decode(m[i], key)\n }\n }\n\n return { path: path, index: index, params: params }\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 (data, options) {\n var path = ''\n var encode = (options && options.encode) || encodeURIComponent\n var validate = options ? options.validate !== false : true\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 continue\n }\n\n var value = data ? data[token.name] : undefined\n var segment\n\n if (Array.isArray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but got array')\n }\n\n if (value.length === 0) {\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j], token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\"')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n if (typeof value === 'string' || typeof value === 'number' || typeof value === 'boolean') {\n segment = encode(String(value), token)\n\n if (validate && !matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but got \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n continue\n }\n\n if (token.optional) continue\n\n throw new TypeError('Expected \"' + token.name + '\" to be ' + (token.repeat ? 'an array' : 'a string'))\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 * 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 if (!keys) return path\n\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 pattern: null\n })\n }\n }\n\n return path\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 return new RegExp('(?:' + parts.join('|') + ')', flags(options))\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=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n options = options || {}\n\n var strict = options.strict\n var start = options.start !== false\n var end = options.end !== false\n var delimiter = options.delimiter || DEFAULT_DELIMITER\n var endsWith = [].concat(options.endsWith || []).map(escapeString).concat('$').join('|')\n var route = start ? '^' : ''\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 capture = token.repeat\n ? '(?:' + token.pattern + ')(?:' + escapeString(token.delimiter) + '(?:' + token.pattern + '))*'\n : token.pattern\n\n if (keys) keys.push(token)\n\n if (token.optional) {\n if (!token.prefix) {\n route += '(' + capture + ')?'\n } else {\n route += '(?:' + escapeString(token.prefix) + '(' + capture + '))?'\n }\n } else {\n route += escapeString(token.prefix) + '(' + capture + ')'\n }\n }\n }\n\n if (end) {\n if (!strict) route += '(?:' + escapeString(delimiter) + ')?'\n\n route += endsWith === '$' ? '$' : '(?=' + endsWith + ')'\n } else {\n var endToken = tokens[tokens.length - 1]\n var isEndDelimited = typeof endToken === 'string'\n ? endToken[endToken.length - 1] === delimiter\n : endToken === undefined\n\n if (!strict) route += '(?:' + escapeString(delimiter) + '(?=' + endsWith + '))?'\n if (!isEndDelimited) route += '(?=' + escapeString(delimiter) + '|' + endsWith + ')'\n }\n\n return new RegExp(route, flags(options))\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=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (path instanceof RegExp) {\n return regexpToRegexp(path, keys)\n }\n\n if (Array.isArray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), keys, options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), keys, options)\n}\n","/*! Universal Router | MIT License | https://www.kriasoft.com/universal-router/ */\n\nimport pathToRegexp from 'path-to-regexp';\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar cache = new Map();\n\nfunction decodeParam(val) {\n try {\n return decodeURIComponent(val);\n } catch (err) {\n return val;\n }\n}\n\nfunction matchPath(route, pathname, parentKeys, parentParams) {\n var end = !route.children;\n var cacheKey = (route.path || '') + \"|\" + end;\n var regexp = cache.get(cacheKey);\n\n if (!regexp) {\n var keys = [];\n regexp = {\n keys: keys,\n pattern: pathToRegexp(route.path || '', keys, {\n end: end\n })\n };\n cache.set(cacheKey, regexp);\n }\n\n var m = regexp.pattern.exec(pathname);\n\n if (!m) {\n return null;\n }\n\n var path = m[0];\n var params = Object.assign({}, parentParams);\n\n for (var i = 1; i < m.length; i++) {\n var key = regexp.keys[i - 1];\n var prop = key.name;\n var value = m[i];\n\n if (value !== undefined || !hasOwnProperty.call(params, prop)) {\n if (key.repeat) {\n params[prop] = value ? value.split(key.delimiter).map(decodeParam) : [];\n } else {\n params[prop] = value ? decodeParam(value) : value;\n }\n }\n }\n\n return {\n path: !end && path.charAt(path.length - 1) === '/' ? path.substr(1) : path,\n keys: parentKeys.concat(regexp.keys),\n params: params\n };\n}\n\nfunction matchRoute(route, baseUrl, pathname, parentKeys, parentParams) {\n var match;\n var childMatches;\n var childIndex = 0;\n return {\n next: function next(routeToSkip) {\n if (route === routeToSkip) {\n return {\n done: true\n };\n }\n\n if (!match) {\n match = matchPath(route, pathname, parentKeys, parentParams);\n\n if (match) {\n return {\n done: false,\n value: {\n route: route,\n baseUrl: baseUrl,\n path: match.path,\n keys: match.keys,\n params: match.params\n }\n };\n }\n }\n\n if (match && route.children) {\n while (childIndex < route.children.length) {\n if (!childMatches) {\n var childRoute = route.children[childIndex];\n childRoute.parent = route;\n childMatches = matchRoute(childRoute, baseUrl + match.path, pathname.substr(match.path.length), match.keys, match.params);\n }\n\n var childMatch = childMatches.next(routeToSkip);\n\n if (!childMatch.done) {\n return {\n done: false,\n value: childMatch.value\n };\n }\n\n childMatches = null;\n childIndex++;\n }\n }\n\n return {\n done: true\n };\n }\n };\n}\n\nfunction resolveRoute(context, params) {\n if (typeof context.route.action === 'function') {\n return context.route.action(context, params);\n }\n\n return undefined;\n}\n\nfunction isChildRoute(parentRoute, childRoute) {\n var route = childRoute;\n\n while (route) {\n route = route.parent;\n\n if (route === parentRoute) {\n return true;\n }\n }\n\n return false;\n}\n\nvar UniversalRouter = function () {\n function UniversalRouter(routes, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!routes || typeof routes !== 'object') {\n throw new TypeError('Invalid routes');\n }\n\n this.baseUrl = options.baseUrl || '';\n this.errorHandler = options.errorHandler;\n this.resolveRoute = options.resolveRoute || resolveRoute;\n this.context = Object.assign({\n router: this\n }, options.context);\n this.root = Array.isArray(routes) ? {\n path: '',\n children: routes,\n parent: null\n } : routes;\n this.root.parent = null;\n }\n\n var _proto = UniversalRouter.prototype;\n\n _proto.resolve = function resolve(pathnameOrContext) {\n var _this = this;\n\n var context = Object.assign({}, this.context, {}, typeof pathnameOrContext === 'string' ? {\n pathname: pathnameOrContext\n } : pathnameOrContext);\n var match = matchRoute(this.root, this.baseUrl, context.pathname.substr(this.baseUrl.length), [], null);\n var resolve = this.resolveRoute;\n var matches = null;\n var nextMatches = null;\n var currentContext = context;\n\n function next(resume, parent, prevResult) {\n if (parent === void 0) {\n parent = matches.value.route;\n }\n\n var routeToSkip = prevResult === null && !matches.done && matches.value.route;\n matches = nextMatches || match.next(routeToSkip);\n nextMatches = null;\n\n if (!resume) {\n if (matches.done || !isChildRoute(parent, matches.value.route)) {\n nextMatches = matches;\n return Promise.resolve(null);\n }\n }\n\n if (matches.done) {\n var error = new Error('Route not found');\n error.status = 404;\n return Promise.reject(error);\n }\n\n currentContext = Object.assign({}, context, {}, matches.value);\n return Promise.resolve(resolve(currentContext, matches.value.params)).then(function (result) {\n if (result !== null && result !== undefined) {\n return result;\n }\n\n return next(resume, parent, result);\n });\n }\n\n context.next = next;\n return Promise.resolve().then(function () {\n return next(true, _this.root);\n })[\"catch\"](function (error) {\n if (_this.errorHandler) {\n return _this.errorHandler(error, currentContext);\n }\n\n throw error;\n });\n };\n\n return UniversalRouter;\n}();\n\nUniversalRouter.pathToRegexp = pathToRegexp;\n\nexport default UniversalRouter;\n//# sourceMappingURL=module.js.map\n","'use strict';\nmodule.exports = str => encodeURIComponent(str).replace(/[!'()*]/g, x => `%${x.charCodeAt(0).toString(16).toUpperCase()}`);\n","'use strict';\nvar token = '%[a-f0-9]{2}';\nvar singleMatcher = new RegExp(token, 'gi');\nvar multiMatcher = new RegExp('(' + token + ')+', 'gi');\n\nfunction decodeComponents(components, split) {\n\ttry {\n\t\t// Try to decode the entire string first\n\t\treturn decodeURIComponent(components.join(''));\n\t} catch (err) {\n\t\t// Do nothing\n\t}\n\n\tif (components.length === 1) {\n\t\treturn components;\n\t}\n\n\tsplit = split || 1;\n\n\t// Split the array in 2 parts\n\tvar left = components.slice(0, split);\n\tvar right = components.slice(split);\n\n\treturn Array.prototype.concat.call([], decodeComponents(left), decodeComponents(right));\n}\n\nfunction decode(input) {\n\ttry {\n\t\treturn decodeURIComponent(input);\n\t} catch (err) {\n\t\tvar tokens = input.match(singleMatcher);\n\n\t\tfor (var i = 1; i < tokens.length; i++) {\n\t\t\tinput = decodeComponents(tokens, i).join('');\n\n\t\t\ttokens = input.match(singleMatcher);\n\t\t}\n\n\t\treturn input;\n\t}\n}\n\nfunction customDecodeURIComponent(input) {\n\t// Keep track of all the replacements and prefill the map with the `BOM`\n\tvar replaceMap = {\n\t\t'%FE%FF': '\\uFFFD\\uFFFD',\n\t\t'%FF%FE': '\\uFFFD\\uFFFD'\n\t};\n\n\tvar match = multiMatcher.exec(input);\n\twhile (match) {\n\t\ttry {\n\t\t\t// Decode as big chunks as possible\n\t\t\treplaceMap[match[0]] = decodeURIComponent(match[0]);\n\t\t} catch (err) {\n\t\t\tvar result = decode(match[0]);\n\n\t\t\tif (result !== match[0]) {\n\t\t\t\treplaceMap[match[0]] = result;\n\t\t\t}\n\t\t}\n\n\t\tmatch = multiMatcher.exec(input);\n\t}\n\n\t// Add `%C2` at the end of the map to make sure it does not replace the combinator before everything else\n\treplaceMap['%C2'] = '\\uFFFD';\n\n\tvar entries = Object.keys(replaceMap);\n\n\tfor (var i = 0; i < entries.length; i++) {\n\t\t// Replace all decoded components\n\t\tvar key = entries[i];\n\t\tinput = input.replace(new RegExp(key, 'g'), replaceMap[key]);\n\t}\n\n\treturn input;\n}\n\nmodule.exports = function (encodedURI) {\n\tif (typeof encodedURI !== 'string') {\n\t\tthrow new TypeError('Expected `encodedURI` to be of type `string`, got `' + typeof encodedURI + '`');\n\t}\n\n\ttry {\n\t\tencodedURI = encodedURI.replace(/\\+/g, ' ');\n\n\t\t// Try the built in decoder first\n\t\treturn decodeURIComponent(encodedURI);\n\t} catch (err) {\n\t\t// Fallback to a more advanced decoder\n\t\treturn customDecodeURIComponent(encodedURI);\n\t}\n};\n","'use strict';\n\nmodule.exports = (string, separator) => {\n\tif (!(typeof string === 'string' && typeof separator === 'string')) {\n\t\tthrow new TypeError('Expected the arguments to be of type `string`');\n\t}\n\n\tif (separator === '') {\n\t\treturn [string];\n\t}\n\n\tconst separatorIndex = string.indexOf(separator);\n\n\tif (separatorIndex === -1) {\n\t\treturn [string];\n\t}\n\n\treturn [\n\t\tstring.slice(0, separatorIndex),\n\t\tstring.slice(separatorIndex + separator.length)\n\t];\n};\n","'use strict';\nmodule.exports = function (obj, predicate) {\n\tvar ret = {};\n\tvar keys = Object.keys(obj);\n\tvar isArr = Array.isArray(predicate);\n\n\tfor (var i = 0; i < keys.length; i++) {\n\t\tvar key = keys[i];\n\t\tvar val = obj[key];\n\n\t\tif (isArr ? predicate.indexOf(key) !== -1 : predicate(key, val, obj)) {\n\t\t\tret[key] = val;\n\t\t}\n\t}\n\n\treturn ret;\n};\n","'use strict';\nconst strictUriEncode = require('strict-uri-encode');\nconst decodeComponent = require('decode-uri-component');\nconst splitOnFirst = require('split-on-first');\nconst filterObject = require('filter-obj');\n\nconst isNullOrUndefined = value => value === null || value === undefined;\n\nfunction encoderForArrayFormat(options) {\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tconst index = result.length;\n\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[', index, ']'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [\n\t\t\t\t\t...result,\n\t\t\t\t\t[encode(key, options), '[', encode(index, options), ']=', encode(value, options)].join('')\n\t\t\t\t];\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, [encode(key, options), '[]'].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '[]=', encode(value, options)].join('')];\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (value === null || value === undefined || value.length === 0) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0) {\n\t\t\t\t\treturn [[encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t\t}\n\n\t\t\t\treturn [[result, encode(value, options)].join(options.arrayFormatSeparator)];\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn key => (result, value) => {\n\t\t\t\tif (\n\t\t\t\t\tvalue === undefined ||\n\t\t\t\t\t(options.skipNull && value === null) ||\n\t\t\t\t\t(options.skipEmptyString && value === '')\n\t\t\t\t) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tif (value === null) {\n\t\t\t\t\treturn [...result, encode(key, options)];\n\t\t\t\t}\n\n\t\t\t\treturn [...result, [encode(key, options), '=', encode(value, options)].join('')];\n\t\t\t};\n\t}\n}\n\nfunction parserForArrayFormat(options) {\n\tlet result;\n\n\tswitch (options.arrayFormat) {\n\t\tcase 'index':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /\\[(\\d*)\\]$/.exec(key);\n\n\t\t\t\tkey = key.replace(/\\[\\d*\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = {};\n\t\t\t\t}\n\n\t\t\t\taccumulator[key][result[1]] = value;\n\t\t\t};\n\n\t\tcase 'bracket':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tresult = /(\\[\\])$/.exec(key);\n\t\t\t\tkey = key.replace(/\\[\\]$/, '');\n\n\t\t\t\tif (!result) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = [value];\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\n\t\tcase 'comma':\n\t\tcase 'separator':\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tconst isArray = typeof value === 'string' && value.includes(options.arrayFormatSeparator);\n\t\t\t\tconst isEncodedArray = (typeof value === 'string' && !isArray && decode(value, options).includes(options.arrayFormatSeparator));\n\t\t\t\tvalue = isEncodedArray ? decode(value, options) : value;\n\t\t\t\tconst newValue = isArray || isEncodedArray ? value.split(options.arrayFormatSeparator).map(item => decode(item, options)) : value === null ? value : decode(value, options);\n\t\t\t\taccumulator[key] = newValue;\n\t\t\t};\n\n\t\tdefault:\n\t\t\treturn (key, value, accumulator) => {\n\t\t\t\tif (accumulator[key] === undefined) {\n\t\t\t\t\taccumulator[key] = value;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\taccumulator[key] = [].concat(accumulator[key], value);\n\t\t\t};\n\t}\n}\n\nfunction validateArrayFormatSeparator(value) {\n\tif (typeof value !== 'string' || value.length !== 1) {\n\t\tthrow new TypeError('arrayFormatSeparator must be single character string');\n\t}\n}\n\nfunction encode(value, options) {\n\tif (options.encode) {\n\t\treturn options.strict ? strictUriEncode(value) : encodeURIComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction decode(value, options) {\n\tif (options.decode) {\n\t\treturn decodeComponent(value);\n\t}\n\n\treturn value;\n}\n\nfunction keysSorter(input) {\n\tif (Array.isArray(input)) {\n\t\treturn input.sort();\n\t}\n\n\tif (typeof input === 'object') {\n\t\treturn keysSorter(Object.keys(input))\n\t\t\t.sort((a, b) => Number(a) - Number(b))\n\t\t\t.map(key => input[key]);\n\t}\n\n\treturn input;\n}\n\nfunction removeHash(input) {\n\tconst hashStart = input.indexOf('#');\n\tif (hashStart !== -1) {\n\t\tinput = input.slice(0, hashStart);\n\t}\n\n\treturn input;\n}\n\nfunction getHash(url) {\n\tlet hash = '';\n\tconst hashStart = url.indexOf('#');\n\tif (hashStart !== -1) {\n\t\thash = url.slice(hashStart);\n\t}\n\n\treturn hash;\n}\n\nfunction extract(input) {\n\tinput = removeHash(input);\n\tconst queryStart = input.indexOf('?');\n\tif (queryStart === -1) {\n\t\treturn '';\n\t}\n\n\treturn input.slice(queryStart + 1);\n}\n\nfunction parseValue(value, options) {\n\tif (options.parseNumbers && !Number.isNaN(Number(value)) && (typeof value === 'string' && value.trim() !== '')) {\n\t\tvalue = Number(value);\n\t} else if (options.parseBooleans && value !== null && (value.toLowerCase() === 'true' || value.toLowerCase() === 'false')) {\n\t\tvalue = value.toLowerCase() === 'true';\n\t}\n\n\treturn value;\n}\n\nfunction parse(query, options) {\n\toptions = Object.assign({\n\t\tdecode: true,\n\t\tsort: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ',',\n\t\tparseNumbers: false,\n\t\tparseBooleans: false\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst formatter = parserForArrayFormat(options);\n\n\t// Create an object with no prototype\n\tconst ret = Object.create(null);\n\n\tif (typeof query !== 'string') {\n\t\treturn ret;\n\t}\n\n\tquery = query.trim().replace(/^[?#&]/, '');\n\n\tif (!query) {\n\t\treturn ret;\n\t}\n\n\tfor (const param of query.split('&')) {\n\t\tif (param === '') {\n\t\t\tcontinue;\n\t\t}\n\n\t\tlet [key, value] = splitOnFirst(options.decode ? param.replace(/\\+/g, ' ') : param, '=');\n\n\t\t// Missing `=` should be `null`:\n\t\t// http://w3.org/TR/2012/WD-url-20120524/#collect-url-parameters\n\t\tvalue = value === undefined ? null : ['comma', 'separator'].includes(options.arrayFormat) ? value : decode(value, options);\n\t\tformatter(decode(key, options), value, ret);\n\t}\n\n\tfor (const key of Object.keys(ret)) {\n\t\tconst value = ret[key];\n\t\tif (typeof value === 'object' && value !== null) {\n\t\t\tfor (const k of Object.keys(value)) {\n\t\t\t\tvalue[k] = parseValue(value[k], options);\n\t\t\t}\n\t\t} else {\n\t\t\tret[key] = parseValue(value, options);\n\t\t}\n\t}\n\n\tif (options.sort === false) {\n\t\treturn ret;\n\t}\n\n\treturn (options.sort === true ? Object.keys(ret).sort() : Object.keys(ret).sort(options.sort)).reduce((result, key) => {\n\t\tconst value = ret[key];\n\t\tif (Boolean(value) && typeof value === 'object' && !Array.isArray(value)) {\n\t\t\t// Sort object keys, not values\n\t\t\tresult[key] = keysSorter(value);\n\t\t} else {\n\t\t\tresult[key] = value;\n\t\t}\n\n\t\treturn result;\n\t}, Object.create(null));\n}\n\nexports.extract = extract;\nexports.parse = parse;\n\nexports.stringify = (object, options) => {\n\tif (!object) {\n\t\treturn '';\n\t}\n\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true,\n\t\tarrayFormat: 'none',\n\t\tarrayFormatSeparator: ','\n\t}, options);\n\n\tvalidateArrayFormatSeparator(options.arrayFormatSeparator);\n\n\tconst shouldFilter = key => (\n\t\t(options.skipNull && isNullOrUndefined(object[key])) ||\n\t\t(options.skipEmptyString && object[key] === '')\n\t);\n\n\tconst formatter = encoderForArrayFormat(options);\n\n\tconst objectCopy = {};\n\n\tfor (const key of Object.keys(object)) {\n\t\tif (!shouldFilter(key)) {\n\t\t\tobjectCopy[key] = object[key];\n\t\t}\n\t}\n\n\tconst keys = Object.keys(objectCopy);\n\n\tif (options.sort !== false) {\n\t\tkeys.sort(options.sort);\n\t}\n\n\treturn keys.map(key => {\n\t\tconst value = object[key];\n\n\t\tif (value === undefined) {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (value === null) {\n\t\t\treturn encode(key, options);\n\t\t}\n\n\t\tif (Array.isArray(value)) {\n\t\t\treturn value\n\t\t\t\t.reduce(formatter(key), [])\n\t\t\t\t.join('&');\n\t\t}\n\n\t\treturn encode(key, options) + '=' + encode(value, options);\n\t}).filter(x => x.length > 0).join('&');\n};\n\nexports.parseUrl = (url, options) => {\n\toptions = Object.assign({\n\t\tdecode: true\n\t}, options);\n\n\tconst [url_, hash] = splitOnFirst(url, '#');\n\n\treturn Object.assign(\n\t\t{\n\t\t\turl: url_.split('?')[0] || '',\n\t\t\tquery: parse(extract(url), options)\n\t\t},\n\t\toptions && options.parseFragmentIdentifier && hash ? {fragmentIdentifier: decode(hash, options)} : {}\n\t);\n};\n\nexports.stringifyUrl = (object, options) => {\n\toptions = Object.assign({\n\t\tencode: true,\n\t\tstrict: true\n\t}, options);\n\n\tconst url = removeHash(object.url).split('?')[0] || '';\n\tconst queryFromUrl = exports.extract(object.url);\n\tconst parsedQueryFromUrl = exports.parse(queryFromUrl, {sort: false});\n\n\tconst query = Object.assign(parsedQueryFromUrl, object.query);\n\tlet queryString = exports.stringify(query, options);\n\tif (queryString) {\n\t\tqueryString = `?${queryString}`;\n\t}\n\n\tlet hash = getHash(object.url);\n\tif (object.fragmentIdentifier) {\n\t\thash = `#${encode(object.fragmentIdentifier, options)}`;\n\t}\n\n\treturn `${url}${queryString}${hash}`;\n};\n\nexports.pick = (input, filter, options) => {\n\toptions = Object.assign({\n\t\tparseFragmentIdentifier: true\n\t}, options);\n\n\tconst {url, query, fragmentIdentifier} = exports.parseUrl(input, options);\n\treturn exports.stringifyUrl({\n\t\turl,\n\t\tquery: filterObject(query, filter),\n\t\tfragmentIdentifier\n\t}, options);\n};\n\nexports.exclude = (input, filter, options) => {\n\tconst exclusionFilter = Array.isArray(filter) ? key => !filter.includes(key) : (key, value) => !filter(key, value);\n\n\treturn exports.pick(input, exclusionFilter, options);\n};\n"],"names":["pathToRegexpModule","pathToRegexp","match","regexpToFunction","parse","compile","tokensToFunction","tokensToRegExp","DEFAULT_DELIMITER","PATH_REGEXP","RegExp","join","str","options","tokens","key","index","path","defaultDelimiter","delimiter","whitelist","undefined","pathEscaped","res","exec","m","escaped","offset","slice","length","prev","name","capture","group","modifier","k","c","matches","indexOf","push","repeat","optional","pattern","prefix","escapeGroup","escapeString","substr","keys","re","pathname","params","decode","decodeURIComponent","i","split","map","value","Array","_typeof","flags","data","encode","encodeURIComponent","validate","token","segment","isArray","TypeError","j","test","String","replace","sensitive","regexpToRegexp","groups","source","arrayToRegexp","parts","stringToRegexp","strict","start","end","endsWith","concat","route","endToken","isEndDelimited","hasOwnProperty","Object","prototype","cache","cacheKey","regexp","prop","decodeParam","parentKeys","strictUriEncode","x","charCodeAt","toString","toUpperCase","singleMatcher","multiMatcher","decodeComponents","components","err","left","right","call","input","customDecodeURIComponent","replaceMap","result","entries","decodeUriComponent","encodedURI","splitOnFirst","string","separator","separatorIndex","filterObj","obj","predicate","ret","isArr","val","require$$0","decodeComponent","require$$1","require$$2","filterObject","require$$3","isNullOrUndefined","encoderForArrayFormat","arrayFormat","skipNull","skipEmptyString","arrayFormatSeparator","parserForArrayFormat","accumulator","includes","isEncodedArray","newValue","item","validateArrayFormatSeparator","keysSorter","sort","a","b","Number","removeHash","hashStart","getHash","url","hash","extract","queryStart","parseValue","parseNumbers","isNaN","trim","parseBooleans","toLowerCase","query","assign","formatter","create","param","reduce","Boolean","exports","object","shouldFilter","objectCopy","filter","url_","parseFragmentIdentifier","fragmentIdentifier","queryFromUrl","parsedQueryFromUrl","queryString","stringify","parseUrl","stringifyUrl","exclusionFilter","pick"],"mappings":"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"}
|