@tarojs/router 3.4.0-beta.3 → 3.4.0
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 +11 -3
- package/dist/index.js.map +1 -1
- package/dist/router.esm.js +11 -3
- package/dist/router.esm.js.map +1 -1
- package/package.json +4 -4
package/dist/index.js
CHANGED
|
@@ -691,7 +691,7 @@ function _navigate() {
|
|
|
691
691
|
fail = option.fail;
|
|
692
692
|
var unListen = exports.history.listen(function () {
|
|
693
693
|
var res = {
|
|
694
|
-
errMsg: "".concat(method, ":
|
|
694
|
+
errMsg: "".concat(method, ":ok")
|
|
695
695
|
};
|
|
696
696
|
success === null || success === void 0 ? void 0 : success(res);
|
|
697
697
|
complete === null || complete === void 0 ? void 0 : complete(res);
|
|
@@ -720,7 +720,7 @@ function _navigate() {
|
|
|
720
720
|
}
|
|
721
721
|
} catch (error) {
|
|
722
722
|
var res = {
|
|
723
|
-
errMsg: "".concat(method, ":
|
|
723
|
+
errMsg: "".concat(method, ":fail ").concat(error.message || error)
|
|
724
724
|
};
|
|
725
725
|
fail === null || fail === void 0 ? void 0 : fail(res);
|
|
726
726
|
complete === null || complete === void 0 ? void 0 : complete(res);
|
|
@@ -2038,7 +2038,7 @@ function getPageContainer() {
|
|
|
2038
2038
|
*/
|
|
2039
2039
|
function loadAnimateStyle() {
|
|
2040
2040
|
var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 300;
|
|
2041
|
-
var css = "\n.taro_router .taro_page {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: #fff;\n transform:
|
|
2041
|
+
var css = "\n.taro_router .taro_page {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: #fff;\n transform: translate(100%, 0);\n transition: transform ".concat(ms, "ms;\n}\n\n.taro_router .taro_page.taro_tabbar_page,\n.taro_router .taro_page.taro_page_show.taro_page_stationed {\n transform: none;\n}\n\n.taro_router .taro_page.taro_page_show {\n transform: translate(0, 0);\n}");
|
|
2042
2042
|
var style = document.createElement('style');
|
|
2043
2043
|
style.innerHTML = css;
|
|
2044
2044
|
document.getElementsByTagName('head')[0].appendChild(style);
|
|
@@ -2355,6 +2355,7 @@ var PageHandler = /*#__PURE__*/function () {
|
|
|
2355
2355
|
|
|
2356
2356
|
this.lastUnloadPage = page;
|
|
2357
2357
|
var pageEl = document.getElementById(page.path);
|
|
2358
|
+
pageEl === null || pageEl === void 0 ? void 0 : pageEl.classList.remove('taro_page_stationed');
|
|
2358
2359
|
pageEl === null || pageEl === void 0 ? void 0 : pageEl.classList.remove('taro_page_show');
|
|
2359
2360
|
this.unloadTimer = setTimeout(function () {
|
|
2360
2361
|
var _this3$lastUnloadPage, _this3$lastUnloadPage2;
|
|
@@ -2367,6 +2368,7 @@ var PageHandler = /*#__PURE__*/function () {
|
|
|
2367
2368
|
|
|
2368
2369
|
var _pageEl2 = document.getElementById(page.path);
|
|
2369
2370
|
|
|
2371
|
+
_pageEl2 === null || _pageEl2 === void 0 ? void 0 : _pageEl2.classList.remove('taro_page_stationed');
|
|
2370
2372
|
_pageEl2 === null || _pageEl2 === void 0 ? void 0 : _pageEl2.classList.remove('taro_page_show');
|
|
2371
2373
|
page === null || page === void 0 ? void 0 : (_page$onUnload = page.onUnload) === null || _page$onUnload === void 0 ? void 0 : _page$onUnload.call(page);
|
|
2372
2374
|
}
|
|
@@ -2441,15 +2443,21 @@ var PageHandler = /*#__PURE__*/function () {
|
|
|
2441
2443
|
}, {
|
|
2442
2444
|
key: "addAnimation",
|
|
2443
2445
|
value: function addAnimation(pageEl) {
|
|
2446
|
+
var _this6 = this;
|
|
2447
|
+
|
|
2444
2448
|
var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
2445
2449
|
if (!pageEl) return;
|
|
2446
2450
|
|
|
2447
2451
|
if (this.animation && !first) {
|
|
2448
2452
|
setTimeout(function () {
|
|
2449
2453
|
pageEl.classList.add('taro_page_show');
|
|
2454
|
+
setTimeout(function () {
|
|
2455
|
+
pageEl.classList.add('taro_page_stationed');
|
|
2456
|
+
}, _this6.animationDuration);
|
|
2450
2457
|
}, this.animationDelay);
|
|
2451
2458
|
} else {
|
|
2452
2459
|
pageEl.classList.add('taro_page_show');
|
|
2460
|
+
pageEl.classList.add('taro_page_stationed');
|
|
2453
2461
|
}
|
|
2454
2462
|
}
|
|
2455
2463
|
}]);
|
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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"}
|
package/dist/router.esm.js
CHANGED
|
@@ -673,7 +673,7 @@ function _navigate() {
|
|
|
673
673
|
fail = option.fail;
|
|
674
674
|
var unListen = history.listen(function () {
|
|
675
675
|
var res = {
|
|
676
|
-
errMsg: "".concat(method, ":
|
|
676
|
+
errMsg: "".concat(method, ":ok")
|
|
677
677
|
};
|
|
678
678
|
success === null || success === void 0 ? void 0 : success(res);
|
|
679
679
|
complete === null || complete === void 0 ? void 0 : complete(res);
|
|
@@ -702,7 +702,7 @@ function _navigate() {
|
|
|
702
702
|
}
|
|
703
703
|
} catch (error) {
|
|
704
704
|
var res = {
|
|
705
|
-
errMsg: "".concat(method, ":
|
|
705
|
+
errMsg: "".concat(method, ":fail ").concat(error.message || error)
|
|
706
706
|
};
|
|
707
707
|
fail === null || fail === void 0 ? void 0 : fail(res);
|
|
708
708
|
complete === null || complete === void 0 ? void 0 : complete(res);
|
|
@@ -2020,7 +2020,7 @@ function getPageContainer() {
|
|
|
2020
2020
|
*/
|
|
2021
2021
|
function loadAnimateStyle() {
|
|
2022
2022
|
var ms = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 300;
|
|
2023
|
-
var css = "\n.taro_router .taro_page {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: #fff;\n transform:
|
|
2023
|
+
var css = "\n.taro_router .taro_page {\n position: absolute;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: #fff;\n transform: translate(100%, 0);\n transition: transform ".concat(ms, "ms;\n}\n\n.taro_router .taro_page.taro_tabbar_page,\n.taro_router .taro_page.taro_page_show.taro_page_stationed {\n transform: none;\n}\n\n.taro_router .taro_page.taro_page_show {\n transform: translate(0, 0);\n}");
|
|
2024
2024
|
var style = document.createElement('style');
|
|
2025
2025
|
style.innerHTML = css;
|
|
2026
2026
|
document.getElementsByTagName('head')[0].appendChild(style);
|
|
@@ -2337,6 +2337,7 @@ var PageHandler = /*#__PURE__*/function () {
|
|
|
2337
2337
|
|
|
2338
2338
|
this.lastUnloadPage = page;
|
|
2339
2339
|
var pageEl = document.getElementById(page.path);
|
|
2340
|
+
pageEl === null || pageEl === void 0 ? void 0 : pageEl.classList.remove('taro_page_stationed');
|
|
2340
2341
|
pageEl === null || pageEl === void 0 ? void 0 : pageEl.classList.remove('taro_page_show');
|
|
2341
2342
|
this.unloadTimer = setTimeout(function () {
|
|
2342
2343
|
var _this3$lastUnloadPage, _this3$lastUnloadPage2;
|
|
@@ -2349,6 +2350,7 @@ var PageHandler = /*#__PURE__*/function () {
|
|
|
2349
2350
|
|
|
2350
2351
|
var _pageEl2 = document.getElementById(page.path);
|
|
2351
2352
|
|
|
2353
|
+
_pageEl2 === null || _pageEl2 === void 0 ? void 0 : _pageEl2.classList.remove('taro_page_stationed');
|
|
2352
2354
|
_pageEl2 === null || _pageEl2 === void 0 ? void 0 : _pageEl2.classList.remove('taro_page_show');
|
|
2353
2355
|
page === null || page === void 0 ? void 0 : (_page$onUnload = page.onUnload) === null || _page$onUnload === void 0 ? void 0 : _page$onUnload.call(page);
|
|
2354
2356
|
}
|
|
@@ -2423,15 +2425,21 @@ var PageHandler = /*#__PURE__*/function () {
|
|
|
2423
2425
|
}, {
|
|
2424
2426
|
key: "addAnimation",
|
|
2425
2427
|
value: function addAnimation(pageEl) {
|
|
2428
|
+
var _this6 = this;
|
|
2429
|
+
|
|
2426
2430
|
var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
|
|
2427
2431
|
if (!pageEl) return;
|
|
2428
2432
|
|
|
2429
2433
|
if (this.animation && !first) {
|
|
2430
2434
|
setTimeout(function () {
|
|
2431
2435
|
pageEl.classList.add('taro_page_show');
|
|
2436
|
+
setTimeout(function () {
|
|
2437
|
+
pageEl.classList.add('taro_page_stationed');
|
|
2438
|
+
}, _this6.animationDuration);
|
|
2432
2439
|
}, this.animationDelay);
|
|
2433
2440
|
} else {
|
|
2434
2441
|
pageEl.classList.add('taro_page_show');
|
|
2442
|
+
pageEl.classList.add('taro_page_stationed');
|
|
2435
2443
|
}
|
|
2436
2444
|
}
|
|
2437
2445
|
}]);
|
package/dist/router.esm.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.esm.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","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":"router.esm.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","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/router",
|
|
3
|
-
"version": "3.4.0
|
|
3
|
+
"version": "3.4.0",
|
|
4
4
|
"description": "Taro-router",
|
|
5
5
|
"main:h5": "dist/router.esm.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,12 +27,12 @@
|
|
|
27
27
|
"author": "O2Team",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tarojs/runtime": "3.4.0
|
|
31
|
-
"@tarojs/taro": "3.4.0
|
|
30
|
+
"@tarojs/runtime": "3.4.0",
|
|
31
|
+
"@tarojs/taro": "3.4.0",
|
|
32
32
|
"history": "^5.1.0",
|
|
33
33
|
"query-string": "^6.13.8",
|
|
34
34
|
"universal-router": "^8.3.0",
|
|
35
35
|
"url-parse": "^1.4.7"
|
|
36
36
|
},
|
|
37
|
-
"gitHead": "
|
|
37
|
+
"gitHead": "a0e97bc937f878cc059f54748c9a3829fa3f4664"
|
|
38
38
|
}
|