@tarojs/router 3.4.0-beta.0 → 3.5.0-canary.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 +24 -12
- package/dist/index.js.map +1 -1
- package/dist/router.esm.js +24 -12
- package/dist/router.esm.js.map +1 -1
- package/package.json +3 -3
package/dist/index.js
CHANGED
|
@@ -5,6 +5,7 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
5
5
|
var _extends = require('@babel/runtime/helpers/esm/extends');
|
|
6
6
|
var _asyncToGenerator = require('@babel/runtime/helpers/asyncToGenerator');
|
|
7
7
|
var _regeneratorRuntime = require('@babel/runtime/regenerator');
|
|
8
|
+
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
8
9
|
var _classCallCheck = require('@babel/runtime/helpers/classCallCheck');
|
|
9
10
|
var _createClass = require('@babel/runtime/helpers/createClass');
|
|
10
11
|
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
@@ -13,13 +14,13 @@ var _objectSpread = require('@babel/runtime/helpers/objectSpread2');
|
|
|
13
14
|
var runtime = require('@tarojs/runtime');
|
|
14
15
|
var _typeof = require('@babel/runtime/helpers/typeof');
|
|
15
16
|
var _createForOfIteratorHelper = require('@babel/runtime/helpers/createForOfIteratorHelper');
|
|
16
|
-
var _toConsumableArray = require('@babel/runtime/helpers/toConsumableArray');
|
|
17
17
|
|
|
18
18
|
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
19
19
|
|
|
20
20
|
var _extends__default = /*#__PURE__*/_interopDefaultLegacy(_extends);
|
|
21
21
|
var _asyncToGenerator__default = /*#__PURE__*/_interopDefaultLegacy(_asyncToGenerator);
|
|
22
22
|
var _regeneratorRuntime__default = /*#__PURE__*/_interopDefaultLegacy(_regeneratorRuntime);
|
|
23
|
+
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
23
24
|
var _classCallCheck__default = /*#__PURE__*/_interopDefaultLegacy(_classCallCheck);
|
|
24
25
|
var _createClass__default = /*#__PURE__*/_interopDefaultLegacy(_createClass);
|
|
25
26
|
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
@@ -27,7 +28,6 @@ var _slicedToArray__default = /*#__PURE__*/_interopDefaultLegacy(_slicedToArray)
|
|
|
27
28
|
var _objectSpread__default = /*#__PURE__*/_interopDefaultLegacy(_objectSpread);
|
|
28
29
|
var _typeof__default = /*#__PURE__*/_interopDefaultLegacy(_typeof);
|
|
29
30
|
var _createForOfIteratorHelper__default = /*#__PURE__*/_interopDefaultLegacy(_createForOfIteratorHelper);
|
|
30
|
-
var _toConsumableArray__default = /*#__PURE__*/_interopDefaultLegacy(_toConsumableArray);
|
|
31
31
|
|
|
32
32
|
var r,
|
|
33
33
|
B = r || (r = {});
|
|
@@ -502,6 +502,17 @@ var Stacks = /*#__PURE__*/function () {
|
|
|
502
502
|
value: function getItem(index) {
|
|
503
503
|
return this.stacks[index];
|
|
504
504
|
}
|
|
505
|
+
}, {
|
|
506
|
+
key: "getLastIndex",
|
|
507
|
+
value: function getLastIndex(pathname) {
|
|
508
|
+
var list = _toConsumableArray__default['default'](this.stacks).reverse();
|
|
509
|
+
|
|
510
|
+
return list.findIndex(function (page) {
|
|
511
|
+
var _page$path;
|
|
512
|
+
|
|
513
|
+
return ((_page$path = page.path) === null || _page$path === void 0 ? void 0 : _page$path.replace(/\?.*/g, '')) === pathname;
|
|
514
|
+
});
|
|
515
|
+
}
|
|
505
516
|
}, {
|
|
506
517
|
key: "getDelta",
|
|
507
518
|
value: function getDelta(pathname) {
|
|
@@ -510,17 +521,18 @@ var Stacks = /*#__PURE__*/function () {
|
|
|
510
521
|
} // NOTE: 此处为了修复浏览器后退多级页面,在大量重复路由状况下可能出现判断错误的情况 (增强判断能力只能考虑在 query 中新增参数来判断,暂时搁置)
|
|
511
522
|
|
|
512
523
|
|
|
513
|
-
|
|
514
|
-
var _r$path;
|
|
515
|
-
|
|
516
|
-
return ((_r$path = r.path) === null || _r$path === void 0 ? void 0 : _r$path.replace(/\?.*/g, '')) === pathname;
|
|
517
|
-
});
|
|
518
|
-
return this.length - 1 - prevIndex;
|
|
524
|
+
return this.getLastIndex(pathname) || 1;
|
|
519
525
|
}
|
|
520
526
|
}, {
|
|
521
527
|
key: "getPrevIndex",
|
|
522
528
|
value: function getPrevIndex(pathname) {
|
|
523
|
-
|
|
529
|
+
var lastIndex = this.getLastIndex(pathname);
|
|
530
|
+
|
|
531
|
+
if (lastIndex < 0) {
|
|
532
|
+
return -1;
|
|
533
|
+
}
|
|
534
|
+
|
|
535
|
+
return this.length - 1 - lastIndex;
|
|
524
536
|
}
|
|
525
537
|
}, {
|
|
526
538
|
key: "pop",
|
|
@@ -2024,10 +2036,10 @@ function pageOnReady(page) {
|
|
|
2024
2036
|
var pageEl = document.getElementById(page.path);
|
|
2025
2037
|
|
|
2026
2038
|
if (pageEl && !(pageEl !== null && pageEl !== void 0 && pageEl['__isReady'])) {
|
|
2027
|
-
var _el$componentOnReady
|
|
2039
|
+
var _el$componentOnReady, _el$componentOnReady$;
|
|
2028
2040
|
|
|
2029
2041
|
var el = pageEl.firstElementChild;
|
|
2030
|
-
el === null || el === void 0 ? void 0 : (_el$componentOnReady = el['componentOnReady']) === null || _el$componentOnReady === void 0 ? void 0 : _el$componentOnReady.call(el)
|
|
2042
|
+
el === null || el === void 0 ? void 0 : (_el$componentOnReady = el['componentOnReady']) === null || _el$componentOnReady === void 0 ? void 0 : (_el$componentOnReady$ = _el$componentOnReady.call(el)) === null || _el$componentOnReady$ === void 0 ? void 0 : _el$componentOnReady$.then(function () {
|
|
2031
2043
|
runtime.requestAnimationFrame(function () {
|
|
2032
2044
|
page.onReady();
|
|
2033
2045
|
pageEl['__isReady'] = true;
|
|
@@ -2246,7 +2258,7 @@ function createRouter(app, config, framework) {
|
|
|
2246
2258
|
shouldLoad = true;
|
|
2247
2259
|
|
|
2248
2260
|
case 46:
|
|
2249
|
-
if (!shouldLoad) {
|
|
2261
|
+
if (!(shouldLoad || stacks.length < 1)) {
|
|
2250
2262
|
_context.next = 54;
|
|
2251
2263
|
break;
|
|
2252
2264
|
}
|
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
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
2
|
import _asyncToGenerator from '@babel/runtime/helpers/asyncToGenerator';
|
|
3
3
|
import _regeneratorRuntime from '@babel/runtime/regenerator';
|
|
4
|
+
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
4
5
|
import _classCallCheck from '@babel/runtime/helpers/classCallCheck';
|
|
5
6
|
import _createClass from '@babel/runtime/helpers/createClass';
|
|
6
7
|
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
7
8
|
import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
|
|
8
9
|
import _objectSpread from '@babel/runtime/helpers/objectSpread2';
|
|
9
|
-
import { requestAnimationFrame, container, SERVICE_IDENTIFIER,
|
|
10
|
+
import { requestAnimationFrame, container, SERVICE_IDENTIFIER, createPageConfig, stringify, eventCenter, Current } from '@tarojs/runtime';
|
|
10
11
|
import _typeof from '@babel/runtime/helpers/typeof';
|
|
11
12
|
import _createForOfIteratorHelper from '@babel/runtime/helpers/createForOfIteratorHelper';
|
|
12
|
-
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
13
13
|
|
|
14
14
|
var r,
|
|
15
15
|
B = r || (r = {});
|
|
@@ -484,6 +484,17 @@ var Stacks = /*#__PURE__*/function () {
|
|
|
484
484
|
value: function getItem(index) {
|
|
485
485
|
return this.stacks[index];
|
|
486
486
|
}
|
|
487
|
+
}, {
|
|
488
|
+
key: "getLastIndex",
|
|
489
|
+
value: function getLastIndex(pathname) {
|
|
490
|
+
var list = _toConsumableArray(this.stacks).reverse();
|
|
491
|
+
|
|
492
|
+
return list.findIndex(function (page) {
|
|
493
|
+
var _page$path;
|
|
494
|
+
|
|
495
|
+
return ((_page$path = page.path) === null || _page$path === void 0 ? void 0 : _page$path.replace(/\?.*/g, '')) === pathname;
|
|
496
|
+
});
|
|
497
|
+
}
|
|
487
498
|
}, {
|
|
488
499
|
key: "getDelta",
|
|
489
500
|
value: function getDelta(pathname) {
|
|
@@ -492,17 +503,18 @@ var Stacks = /*#__PURE__*/function () {
|
|
|
492
503
|
} // NOTE: 此处为了修复浏览器后退多级页面,在大量重复路由状况下可能出现判断错误的情况 (增强判断能力只能考虑在 query 中新增参数来判断,暂时搁置)
|
|
493
504
|
|
|
494
505
|
|
|
495
|
-
|
|
496
|
-
var _r$path;
|
|
497
|
-
|
|
498
|
-
return ((_r$path = r.path) === null || _r$path === void 0 ? void 0 : _r$path.replace(/\?.*/g, '')) === pathname;
|
|
499
|
-
});
|
|
500
|
-
return this.length - 1 - prevIndex;
|
|
506
|
+
return this.getLastIndex(pathname) || 1;
|
|
501
507
|
}
|
|
502
508
|
}, {
|
|
503
509
|
key: "getPrevIndex",
|
|
504
510
|
value: function getPrevIndex(pathname) {
|
|
505
|
-
|
|
511
|
+
var lastIndex = this.getLastIndex(pathname);
|
|
512
|
+
|
|
513
|
+
if (lastIndex < 0) {
|
|
514
|
+
return -1;
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
return this.length - 1 - lastIndex;
|
|
506
518
|
}
|
|
507
519
|
}, {
|
|
508
520
|
key: "pop",
|
|
@@ -2006,10 +2018,10 @@ function pageOnReady(page) {
|
|
|
2006
2018
|
var pageEl = document.getElementById(page.path);
|
|
2007
2019
|
|
|
2008
2020
|
if (pageEl && !(pageEl !== null && pageEl !== void 0 && pageEl['__isReady'])) {
|
|
2009
|
-
var _el$componentOnReady
|
|
2021
|
+
var _el$componentOnReady, _el$componentOnReady$;
|
|
2010
2022
|
|
|
2011
2023
|
var el = pageEl.firstElementChild;
|
|
2012
|
-
el === null || el === void 0 ? void 0 : (_el$componentOnReady = el['componentOnReady']) === null || _el$componentOnReady === void 0 ? void 0 : _el$componentOnReady.call(el)
|
|
2024
|
+
el === null || el === void 0 ? void 0 : (_el$componentOnReady = el['componentOnReady']) === null || _el$componentOnReady === void 0 ? void 0 : (_el$componentOnReady$ = _el$componentOnReady.call(el)) === null || _el$componentOnReady$ === void 0 ? void 0 : _el$componentOnReady$.then(function () {
|
|
2013
2025
|
requestAnimationFrame(function () {
|
|
2014
2026
|
page.onReady();
|
|
2015
2027
|
pageEl['__isReady'] = true;
|
|
@@ -2228,7 +2240,7 @@ function createRouter(app, config, framework) {
|
|
|
2228
2240
|
shouldLoad = true;
|
|
2229
2241
|
|
|
2230
2242
|
case 46:
|
|
2231
|
-
if (!shouldLoad) {
|
|
2243
|
+
if (!(shouldLoad || stacks.length < 1)) {
|
|
2232
2244
|
_context.next = 54;
|
|
2233
2245
|
break;
|
|
2234
2246
|
}
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGAA,sBAAA,GAAiBC,YAAjB;+BACuBC;0CACWC;+BACXC;iCACEC;0CACSC;wCACFC;AAEhC;AACA;AACA;;AACA,IAAIC,iBAAiB,GAAG,GAAxB;AAEA;AACA;AACA;AACA;AACA;;AACA,IAAIC,WAAW,GAAG,IAAIC,MAAJ,CAAW;;AAG3B,SAH2B;;;;;AAS3B,qFAT2B,EAU3BC,IAV2B,CAUtB,GAVsB,CAAX,EAUL,GAVK,CAAlB;AAYA;AACA;AACA;AACA;AACA;AACA;AACA;;AACA,SAASP,KAAT,CAAgBQ,GAAhB,EAAqBC,OAArB,EAA8B;AAC5B,MAAIC,MAAM,GAAG,EAAb;AACA,MAAIC,GAAG,GAAG,CAAV;AACA,MAAIC,KAAK,GAAG,CAAZ;AACA,MAAIC,IAAI,GAAG,EAAX;AACA,MAAIC,gBAAgB,GAAIL,OAAO,IAAIA,OAAO,CAACM,SAApB,IAAkCX,iBAAzD;AACA,MAAIY,SAAS,GAAIP,OAAO,IAAIA,OAAO,CAACO,SAApB,IAAkCC,SAAlD;AACA,MAAIC,WAAW,GAAG,KAAlB;AACA,MAAIC,GAAJ;;AAEA,SAAO,CAACA,GAAG,GAAGd,WAAW,CAACe,IAAZ,CAAiBZ,GAAjB,CAAP,MAAkC,IAAzC,EAA+C;AAC7C,QAAIa,CAAC,GAAGF,GAAG,CAAC,CAAD,CAAX;AACA,QAAIG,OAAO,GAAGH,GAAG,CAAC,CAAD,CAAjB;AACA,QAAII,MAAM,GAAGJ,GAAG,CAACP,KAAjB;AACAC,IAAAA,IAAI,IAAIL,GAAG,CAACgB,KAAJ,CAAUZ,KAAV,EAAiBW,MAAjB,CAAR;AACAX,IAAAA,KAAK,GAAGW,MAAM,GAAGF,CAAC,CAACI,MAAnB,CAL6C;;AAQ7C,QAAIH,OAAJ,EAAa;AACXT,MAAAA,IAAI,IAAIS,OAAO,CAAC,CAAD,CAAf;AACAJ,MAAAA,WAAW,GAAG,IAAd;AACA;AACD;;AAED,QAAIQ,IAAI,GAAG,EAAX;AACA,QAAIC,IAAI,GAAGR,GAAG,CAAC,CAAD,CAAd;AACA,QAAIS,OAAO,GAAGT,GAAG,CAAC,CAAD,CAAjB;AACA,QAAIU,KAAK,GAAGV,GAAG,CAAC,CAAD,CAAf;AACA,QAAIW,QAAQ,GAAGX,GAAG,CAAC,CAAD,CAAlB;;AAEA,QAAI,CAACD,WAAD,IAAgBL,IAAI,CAACY,MAAzB,EAAiC;AAC/B,UAAIM,CAAC,GAAGlB,IAAI,CAACY,MAAL,GAAc,CAAtB;AACA,UAAIO,CAAC,GAAGnB,IAAI,CAACkB,CAAD,CAAZ;AACA,UAAIE,OAAO,GAAGjB,SAAS,GAAGA,SAAS,CAACkB,OAAV,CAAkBF,CAAlB,IAAuB,CAAC,CAA3B,GAA+B,IAAtD;;AAEA,UAAIC,OAAJ,EAAa;AACXP,QAAAA,IAAI,GAAGM,CAAP;AACAnB,QAAAA,IAAI,GAAGA,IAAI,CAACW,KAAL,CAAW,CAAX,EAAcO,CAAd,CAAP;AACD;AACF,KA7B4C;;;AAgC7C,QAAIlB,IAAJ,EAAU;AACRH,MAAAA,MAAM,CAACyB,IAAP,CAAYtB,IAAZ;AACAA,MAAAA,IAAI,GAAG,EAAP;AACAK,MAAAA,WAAW,GAAG,KAAd;AACD;;AAED,QAAIkB,MAAM,GAAGN,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAA9C;AACA,QAAIO,QAAQ,GAAGP,QAAQ,KAAK,GAAb,IAAoBA,QAAQ,KAAK,GAAhD;AACA,QAAIQ,OAAO,GAAGV,OAAO,IAAIC,KAAzB;AACA,QAAId,SAAS,GAAGW,IAAI,IAAIZ,gBAAxB;AAEAJ,IAAAA,MAAM,CAACyB,IAAP,CAAY;AACVR,MAAAA,IAAI,EAAEA,IAAI,IAAIhB,GAAG,EADP;AAEV4B,MAAAA,MAAM,EAAEb,IAFE;AAGVX,MAAAA,SAAS,EAAEA,SAHD;AAIVsB,MAAAA,QAAQ,EAAEA,QAJA;AAKVD,MAAAA,MAAM,EAAEA,MALE;AAMVE,MAAAA,OAAO,EAAEA,OAAO,GACZE,WAAW,CAACF,OAAD,CADC,GAEZ,OAAOG,YAAY,CAAC1B,SAAS,KAAKD,gBAAd,GAAiCC,SAAjC,GAA8CA,SAAS,GAAGD,gBAA3D,CAAnB,GAAmG;AAR7F,KAAZ;AAUD,GA/D2B;;;AAkE5B,MAAID,IAAI,IAAID,KAAK,GAAGJ,GAAG,CAACiB,MAAxB,EAAgC;AAC9Bf,IAAAA,MAAM,CAACyB,IAAP,CAAYtB,IAAI,GAAGL,GAAG,CAACkC,MAAJ,CAAW9B,KAAX,CAAnB;AACD;;AAED,SAAOF,MAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAST,OAAT,CAAkBO,GAAlB,EAAuBC,OAAvB,EAAgC;AAC9B,SAAOP,gBAAgB,CAACF,KAAK,CAACQ,GAAD,EAAMC,OAAN,CAAN,EAAsBA,OAAtB,CAAvB;AACD;AAED;AACA;AACA;;;AACA,SAASX,KAAT,CAAgBU,GAAhB,EAAqBC,OAArB,EAA8B;AAC5B,MAAIkC,IAAI,GAAG,EAAX;AACA,MAAIC,EAAE,GAAG/C,YAAY,CAACW,GAAD,EAAMmC,IAAN,EAAYlC,OAAZ,CAArB;AACA,SAAOV,gBAAgB,CAAC6C,EAAD,EAAKD,IAAL,CAAvB;AACD;AAED;AACA;AACA;;;AACA,SAAS5C,gBAAT,CAA2B6C,EAA3B,EAA+BD,IAA/B,EAAqC;AACnC,SAAO,UAAUE,QAAV,EAAoBpC,OAApB,EAA6B;AAClC,QAAIY,CAAC,GAAGuB,EAAE,CAACxB,IAAH,CAAQyB,QAAR,CAAR;AACA,QAAI,CAACxB,CAAL,EAAQ,OAAO,KAAP;AAER,QAAIR,IAAI,GAAGQ,CAAC,CAAC,CAAD,CAAZ;AACA,QAAIT,KAAK,GAAGS,CAAC,CAACT,KAAd;AACA,QAAIkC,MAAM,GAAG,EAAb;AACA,QAAIC,MAAM,GAAItC,OAAO,IAAIA,OAAO,CAACsC,MAApB,IAA+BC,kBAA5C;;AAEA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG5B,CAAC,CAACI,MAAtB,EAA8BwB,CAAC,EAA/B,EAAmC;AACjC,UAAI5B,CAAC,CAAC4B,CAAD,CAAD,KAAShC,SAAb,EAAwB;AAExB,UAAIN,GAAG,GAAGgC,IAAI,CAACM,CAAC,GAAG,CAAL,CAAd;;AAEA,UAAItC,GAAG,CAACyB,MAAR,EAAgB;AACdU,QAAAA,MAAM,CAACnC,GAAG,CAACgB,IAAL,CAAN,GAAmBN,CAAC,CAAC4B,CAAD,CAAD,CAAKC,KAAL,CAAWvC,GAAG,CAACI,SAAf,EAA0BoC,GAA1B,CAA8B,UAAUC,KAAV,EAAiB;AAChE,iBAAOL,MAAM,CAACK,KAAD,EAAQzC,GAAR,CAAb;AACD,SAFkB,CAAnB;AAGD,OAJD,MAIO;AACLmC,QAAAA,MAAM,CAACnC,GAAG,CAACgB,IAAL,CAAN,GAAmBoB,MAAM,CAAC1B,CAAC,CAAC4B,CAAD,CAAF,EAAOtC,GAAP,CAAzB;AACD;AACF;;AAED,WAAO;AAAEE,MAAAA,IAAI,EAAEA,IAAR;AAAcD,MAAAA,KAAK,EAAEA,KAArB;AAA4BkC,MAAAA,MAAM,EAAEA;AAApC,KAAP;AACD,GAxBD;AAyBD;AAED;AACA;AACA;;;AACA,SAAS5C,gBAAT,CAA2BQ,MAA3B,EAAmCD,OAAnC,EAA4C;;AAE1C,MAAIwB,OAAO,GAAG,IAAIoB,KAAJ,CAAU3C,MAAM,CAACe,MAAjB,CAAd,CAF0C;;AAK1C,OAAK,IAAIwB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvC,MAAM,CAACe,MAA3B,EAAmCwB,CAAC,EAApC,EAAwC;AACtC,QAAI,QAAOvC,MAAM,CAACuC,CAAD,CAAb,MAAqB,QAAzB,EAAmC;AACjChB,MAAAA,OAAO,CAACgB,CAAD,CAAP,GAAa,IAAI3C,MAAJ,CAAW,SAASI,MAAM,CAACuC,CAAD,CAAN,CAAUX,OAAnB,GAA6B,IAAxC,EAA8CgB,KAAK,CAAC7C,OAAD,CAAnD,CAAb;AACD;AACF;;AAED,SAAO,UAAU8C,IAAV,EAAgB9C,OAAhB,EAAyB;AAC9B,QAAII,IAAI,GAAG,EAAX;AACA,QAAI2C,MAAM,GAAI/C,OAAO,IAAIA,OAAO,CAAC+C,MAApB,IAA+BC,kBAA5C;AACA,QAAIC,QAAQ,GAAGjD,OAAO,GAAGA,OAAO,CAACiD,QAAR,KAAqB,KAAxB,GAAgC,IAAtD;;AAEA,SAAK,IAAIT,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvC,MAAM,CAACe,MAA3B,EAAmCwB,CAAC,EAApC,EAAwC;AACtC,UAAIU,KAAK,GAAGjD,MAAM,CAACuC,CAAD,CAAlB;;AAEA,UAAI,OAAOU,KAAP,KAAiB,QAArB,EAA+B;AAC7B9C,QAAAA,IAAI,IAAI8C,KAAR;AACA;AACD;;AAED,UAAIP,KAAK,GAAGG,IAAI,GAAGA,IAAI,CAACI,KAAK,CAAChC,IAAP,CAAP,GAAsBV,SAAtC;AACA,UAAI2C,OAAJ;;AAEA,UAAIP,KAAK,CAACQ,OAAN,CAAcT,KAAd,CAAJ,EAA0B;AACxB,YAAI,CAACO,KAAK,CAACvB,MAAX,EAAmB;AACjB,gBAAM,IAAI0B,SAAJ,CAAc,eAAeH,KAAK,CAAChC,IAArB,GAA4B,gCAA1C,CAAN;AACD;;AAED,YAAIyB,KAAK,CAAC3B,MAAN,KAAiB,CAArB,EAAwB;AACtB,cAAIkC,KAAK,CAACtB,QAAV,EAAoB;AAEpB,gBAAM,IAAIyB,SAAJ,CAAc,eAAeH,KAAK,CAAChC,IAArB,GAA4B,mBAA1C,CAAN;AACD;;AAED,aAAK,IAAIoC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGX,KAAK,CAAC3B,MAA1B,EAAkCsC,CAAC,EAAnC,EAAuC;AACrCH,UAAAA,OAAO,GAAGJ,MAAM,CAACJ,KAAK,CAACW,CAAD,CAAN,EAAWJ,KAAX,CAAhB;;AAEA,cAAID,QAAQ,IAAI,CAACzB,OAAO,CAACgB,CAAD,CAAP,CAAWe,IAAX,CAAgBJ,OAAhB,CAAjB,EAA2C;AACzC,kBAAM,IAAIE,SAAJ,CAAc,mBAAmBH,KAAK,CAAChC,IAAzB,GAAgC,cAAhC,GAAiDgC,KAAK,CAACrB,OAAvD,GAAiE,GAA/E,CAAN;AACD;;AAEDzB,UAAAA,IAAI,IAAI,CAACkD,CAAC,KAAK,CAAN,GAAUJ,KAAK,CAACpB,MAAhB,GAAyBoB,KAAK,CAAC5C,SAAhC,IAA6C6C,OAArD;AACD;;AAED;AACD;;AAED,UAAI,OAAOR,KAAP,KAAiB,QAAjB,IAA6B,OAAOA,KAAP,KAAiB,QAA9C,IAA0D,OAAOA,KAAP,KAAiB,SAA/E,EAA0F;AACxFQ,QAAAA,OAAO,GAAGJ,MAAM,CAACS,MAAM,CAACb,KAAD,CAAP,EAAgBO,KAAhB,CAAhB;;AAEA,YAAID,QAAQ,IAAI,CAACzB,OAAO,CAACgB,CAAD,CAAP,CAAWe,IAAX,CAAgBJ,OAAhB,CAAjB,EAA2C;AACzC,gBAAM,IAAIE,SAAJ,CAAc,eAAeH,KAAK,CAAChC,IAArB,GAA4B,cAA5B,GAA6CgC,KAAK,CAACrB,OAAnD,GAA6D,cAA7D,GAA8EsB,OAA9E,GAAwF,GAAtG,CAAN;AACD;;AAED/C,QAAAA,IAAI,IAAI8C,KAAK,CAACpB,MAAN,GAAeqB,OAAvB;AACA;AACD;;AAED,UAAID,KAAK,CAACtB,QAAV,EAAoB;AAEpB,YAAM,IAAIyB,SAAJ,CAAc,eAAeH,KAAK,CAAChC,IAArB,GAA4B,UAA5B,IAA0CgC,KAAK,CAACvB,MAAN,GAAe,UAAf,GAA4B,UAAtE,CAAd,CAAN;AACD;;AAED,WAAOvB,IAAP;AACD,GAzDD;AA0DD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS4B,YAAT,CAAuBjC,GAAvB,EAA4B;AAC1B,SAAOA,GAAG,CAAC0D,OAAJ,CAAY,2BAAZ,EAAyC,MAAzC,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS1B,WAAT,CAAsBX,KAAtB,EAA6B;AAC3B,SAAOA,KAAK,CAACqC,OAAN,CAAc,cAAd,EAA8B,MAA9B,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASZ,KAAT,CAAgB7C,OAAhB,EAAyB;AACvB,SAAOA,OAAO,IAAIA,OAAO,CAAC0D,SAAnB,GAA+B,EAA/B,GAAoC,GAA3C;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASC,cAAT,CAAyBvD,IAAzB,EAA+B8B,IAA/B,EAAqC;AACnC,MAAI,CAACA,IAAL,EAAW,OAAO9B,IAAP,CADwB;;AAInC,MAAIwD,MAAM,GAAGxD,IAAI,CAACyD,MAAL,CAAYxE,KAAZ,CAAkB,WAAlB,CAAb;;AAEA,MAAIuE,MAAJ,EAAY;AACV,SAAK,IAAIpB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGoB,MAAM,CAAC5C,MAA3B,EAAmCwB,CAAC,EAApC,EAAwC;AACtCN,MAAAA,IAAI,CAACR,IAAL,CAAU;AACRR,QAAAA,IAAI,EAAEsB,CADE;AAERV,QAAAA,MAAM,EAAE,IAFA;AAGRxB,QAAAA,SAAS,EAAE,IAHH;AAIRsB,QAAAA,QAAQ,EAAE,KAJF;AAKRD,QAAAA,MAAM,EAAE,KALA;AAMRE,QAAAA,OAAO,EAAE;AAND,OAAV;AAQD;AACF;;AAED,SAAOzB,IAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAAS0D,aAAT,CAAwB1D,IAAxB,EAA8B8B,IAA9B,EAAoClC,OAApC,EAA6C;AAC3C,MAAI+D,KAAK,GAAG,EAAZ;;AAEA,OAAK,IAAIvB,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGpC,IAAI,CAACY,MAAzB,EAAiCwB,CAAC,EAAlC,EAAsC;AACpCuB,IAAAA,KAAK,CAACrC,IAAN,CAAWtC,YAAY,CAACgB,IAAI,CAACoC,CAAD,CAAL,EAAUN,IAAV,EAAgBlC,OAAhB,CAAZ,CAAqC6D,MAAhD;AACD;;AAED,SAAO,IAAIhE,MAAJ,CAAW,QAAQkE,KAAK,CAACjE,IAAN,CAAW,GAAX,CAAR,GAA0B,GAArC,EAA0C+C,KAAK,CAAC7C,OAAD,CAA/C,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASgE,cAAT,CAAyB5D,IAAzB,EAA+B8B,IAA/B,EAAqClC,OAArC,EAA8C;AAC5C,SAAON,cAAc,CAACH,KAAK,CAACa,IAAD,EAAOJ,OAAP,CAAN,EAAuBkC,IAAvB,EAA6BlC,OAA7B,CAArB;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASN,cAAT,CAAyBO,MAAzB,EAAiCiC,IAAjC,EAAuClC,OAAvC,EAAgD;AAC9CA,EAAAA,OAAO,GAAGA,OAAO,IAAI,EAArB;AAEA,MAAIiE,MAAM,GAAGjE,OAAO,CAACiE,MAArB;AACA,MAAIC,KAAK,GAAGlE,OAAO,CAACkE,KAAR,KAAkB,KAA9B;AACA,MAAIC,GAAG,GAAGnE,OAAO,CAACmE,GAAR,KAAgB,KAA1B;AACA,MAAI7D,SAAS,GAAGN,OAAO,CAACM,SAAR,IAAqBX,iBAArC;AACA,MAAIyE,QAAQ,GAAG,GAAGC,MAAH,CAAUrE,OAAO,CAACoE,QAAR,IAAoB,EAA9B,EAAkC1B,GAAlC,CAAsCV,YAAtC,EAAoDqC,MAApD,CAA2D,GAA3D,EAAgEvE,IAAhE,CAAqE,GAArE,CAAf;AACA,MAAIwE,KAAK,GAAGJ,KAAK,GAAG,GAAH,GAAS,EAA1B,CAR8C;;AAW9C,OAAK,IAAI1B,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvC,MAAM,CAACe,MAA3B,EAAmCwB,CAAC,EAApC,EAAwC;AACtC,QAAIU,KAAK,GAAGjD,MAAM,CAACuC,CAAD,CAAlB;;AAEA,QAAI,OAAOU,KAAP,KAAiB,QAArB,EAA+B;AAC7BoB,MAAAA,KAAK,IAAItC,YAAY,CAACkB,KAAD,CAArB;AACD,KAFD,MAEO;AACL,UAAI/B,OAAO,GAAG+B,KAAK,CAACvB,MAAN,GACV,QAAQuB,KAAK,CAACrB,OAAd,GAAwB,MAAxB,GAAiCG,YAAY,CAACkB,KAAK,CAAC5C,SAAP,CAA7C,GAAiE,KAAjE,GAAyE4C,KAAK,CAACrB,OAA/E,GAAyF,KAD/E,GAEVqB,KAAK,CAACrB,OAFV;AAIA,UAAIK,IAAJ,EAAUA,IAAI,CAACR,IAAL,CAAUwB,KAAV;;AAEV,UAAIA,KAAK,CAACtB,QAAV,EAAoB;AAClB,YAAI,CAACsB,KAAK,CAACpB,MAAX,EAAmB;AACjBwC,UAAAA,KAAK,IAAI,MAAMnD,OAAN,GAAgB,IAAzB;AACD,SAFD,MAEO;AACLmD,UAAAA,KAAK,IAAI,QAAQtC,YAAY,CAACkB,KAAK,CAACpB,MAAP,CAApB,GAAqC,GAArC,GAA2CX,OAA3C,GAAqD,KAA9D;AACD;AACF,OAND,MAMO;AACLmD,QAAAA,KAAK,IAAItC,YAAY,CAACkB,KAAK,CAACpB,MAAP,CAAZ,GAA6B,GAA7B,GAAmCX,OAAnC,GAA6C,GAAtD;AACD;AACF;AACF;;AAED,MAAIgD,GAAJ,EAAS;AACP,QAAI,CAACF,MAAL,EAAaK,KAAK,IAAI,QAAQtC,YAAY,CAAC1B,SAAD,CAApB,GAAkC,IAA3C;AAEbgE,IAAAA,KAAK,IAAIF,QAAQ,KAAK,GAAb,GAAmB,GAAnB,GAAyB,QAAQA,QAAR,GAAmB,GAArD;AACD,GAJD,MAIO;AACL,QAAIG,QAAQ,GAAGtE,MAAM,CAACA,MAAM,CAACe,MAAP,GAAgB,CAAjB,CAArB;AACA,QAAIwD,cAAc,GAAG,OAAOD,QAAP,KAAoB,QAApB,GACjBA,QAAQ,CAACA,QAAQ,CAACvD,MAAT,GAAkB,CAAnB,CAAR,KAAkCV,SADjB,GAEjBiE,QAAQ,KAAK/D,SAFjB;AAIA,QAAI,CAACyD,MAAL,EAAaK,KAAK,IAAI,QAAQtC,YAAY,CAAC1B,SAAD,CAApB,GAAkC,KAAlC,GAA0C8D,QAA1C,GAAqD,KAA9D;AACb,QAAI,CAACI,cAAL,EAAqBF,KAAK,IAAI,QAAQtC,YAAY,CAAC1B,SAAD,CAApB,GAAkC,GAAlC,GAAwC8D,QAAxC,GAAmD,GAA5D;AACtB;;AAED,SAAO,IAAIvE,MAAJ,CAAWyE,KAAX,EAAkBzB,KAAK,CAAC7C,OAAD,CAAvB,CAAP;AACD;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASZ,YAAT,CAAuBgB,IAAvB,EAA6B8B,IAA7B,EAAmClC,OAAnC,EAA4C;AAC1C,MAAII,IAAI,YAAYP,MAApB,EAA4B;AAC1B,WAAO8D,cAAc,CAACvD,IAAD,EAAO8B,IAAP,CAArB;AACD;;AAED,MAAIU,KAAK,CAACQ,OAAN,CAAchD,IAAd,CAAJ,EAAyB;AACvB,WAAO0D,aAAa,CAAwB1D,IAAxB,EAA+B8B,IAA/B,EAAqClC,OAArC,CAApB;AACD;;AAED,SAAOgE,cAAc,CAAwB5D,IAAxB,EAA+B8B,IAA/B,EAAqClC,OAArC,CAArB;;;;;IC7YMyE,cAAAA,GAAmBC,MAAM,CAACC,SAAPD,CAAnBD;AACR,IAAMG,KAAK,GAAG,IAAd,GAAc,EAAd;;AAEA,SAAA,WAAA,CAAA,GAAA,EAA0B;MACpB;WACKrC,kBAAkB,CAAzB,GAAyB;AAD3B,IAEE,OAAA,GAAA,EAAY;WACZ;;;;AAIJ,SAAA,SAAA,CAAA,KAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAA8D;MACtD4B,GAAG,GAAG,CAACG,KAAK,CAAlB;MACMO,QAAQ,GAAA,CAAMP,KAAK,CAALA,IAAAA,IAAN,EAAA,IAAA,GAAA,GAAd;MACIQ,MAAM,GAAGF,KAAK,CAALA,GAAAA,CAAb,QAAaA;;MAET,CAAJ,QAAa;QACL1C,IAAI,GAAV;AACA4C,IAAAA,MAAM,GAAG;AACP5C,MAAAA,IAAI,EADG,IAAA;AAEPL,MAAAA,OAAO,EAAEzC,cAAY,CAACkF,KAAK,CAALA,IAAAA,IAAD,EAAA,EAAA,IAAA,EAAyB;AAAEH,QAAAA,GAAG,EAAHA;AAAF,OAAzB;AAFd,KAATW;AAIAF,IAAAA,KAAK,CAALA,GAAAA,CAAAA,QAAAA,EAAAA,MAAAA;;;MAGIhE,CAAC,GAAGkE,MAAM,CAANA,OAAAA,CAAAA,IAAAA,CAAV,QAAUA;;MACN,CAAJ,GAAQ;WACN;;;MAGI1E,IAAI,GAAGQ,CAAC,CAAd,CAAc;MACRyB,MAAM,GAAA,MAAA,CAAA,MAAA,CAAA,EAAA,EAAZ,YAAY;;OAEP,IAAIG,CAAC,GAAV,GAAgBA,CAAC,GAAG5B,CAAC,CAArB,QAA8B4B,CAA9B,IAAmC;QAC3BtC,GAAG,GAAG4E,MAAM,CAANA,IAAAA,CAAYtC,CAAC,GAAzB,CAAYsC;QACNC,IAAI,GAAG7E,GAAG,CAAhB;QACMyC,KAAK,GAAG/B,CAAC,CAAf,CAAe;;QACX+B,KAAK,KAALA,SAAAA,IAAuB,CAAC8B,cAAc,CAAdA,IAAAA,CAAAA,MAAAA,EAA5B,IAA4BA,GAAmC;UACzDvE,GAAG,CAAP,QAAgB;AACdmC,QAAAA,MAAM,CAANA,IAAM,CAANA,GAAeM,KAAK,GAAGA,KAAK,CAALA,KAAAA,CAAYzC,GAAG,CAAfyC,SAAAA,EAAAA,GAAAA,CAAH,WAAGA,CAAH,GAApBN,EAAAA;AADF,aAEO;AACLA,QAAAA,MAAM,CAANA,IAAM,CAANA,GAAeM,KAAK,GAAGqC,WAAW,CAAd,KAAc,CAAd,GAApB3C,KAAAA;;;;;SAKC;AACLjC,IAAAA,IAAI,EAAE,CAAA,GAAA,IAAQA,IAAI,CAAJA,MAAAA,CAAYA,IAAI,CAAJA,MAAAA,GAAZA,CAAAA,MAAR,GAAA,GAA+CA,IAAI,CAAJA,MAAAA,CAA/C,CAA+CA,CAA/C,GADD,IAAA;AAEL8B,IAAAA,IAAI,EAAE+C,UAAU,CAAVA,MAAAA,CAAkBH,MAAM,CAFzB,IAECG,CAFD;AAGL5C,IAAAA,MAAM,EAANA;AAHK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ICxDT6C,eAAc,GAAG,SAAjBA,eAAiB,CAAAnF,GAAG;AAAA,SAAIiD,kBAAkB,CAACjD,GAAD,CAAlB,CAAwB0D,OAAxB,CAAgC,UAAhC,EAA4C,UAAA0B,CAAC;AAAA,sBAAQA,CAAC,CAACC,UAAF,CAAa,CAAb,EAAgBC,QAAhB,CAAyB,EAAzB,EAA6BC,WAA7B,EAAR;AAAA,GAA7C,CAAJ;AAAA;;ACApB,IAAIpC,KAAK,GAAG,cAAZ;AACA,IAAIqC,aAAa,GAAG,IAAI1F,MAAJ,CAAWqD,KAAX,EAAkB,IAAlB,CAApB;AACA,IAAIsC,YAAY,GAAG,IAAI3F,MAAJ,CAAW,MAAMqD,KAAN,GAAc,IAAzB,EAA+B,IAA/B,CAAnB;;AAEA,SAASuC,gBAAT,CAA0BC,UAA1B,EAAsCjD,KAAtC,EAA6C;AAC5C,MAAI;;AAEH,WAAOF,kBAAkB,CAACmD,UAAU,CAAC5F,IAAX,CAAgB,EAAhB,CAAD,CAAzB;AACA,GAHD,CAGE,OAAO6F,GAAP,EAAY;AAEb;;AAED,MAAID,UAAU,CAAC1E,MAAX,KAAsB,CAA1B,EAA6B;AAC5B,WAAO0E,UAAP;AACA;;AAEDjD,EAAAA,KAAK,GAAGA,KAAK,IAAI,CAAjB,CAZ4C;;AAe5C,MAAImD,IAAI,GAAGF,UAAU,CAAC3E,KAAX,CAAiB,CAAjB,EAAoB0B,KAApB,CAAX;AACA,MAAIoD,KAAK,GAAGH,UAAU,CAAC3E,KAAX,CAAiB0B,KAAjB,CAAZ;AAEA,SAAOG,KAAK,CAAC+B,SAAN,CAAgBN,MAAhB,CAAuByB,IAAvB,CAA4B,EAA5B,EAAgCL,gBAAgB,CAACG,IAAD,CAAhD,EAAwDH,gBAAgB,CAACI,KAAD,CAAxE,CAAP;AACA;;AAED,SAASvD,MAAT,CAAgByD,KAAhB,EAAuB;AACtB,MAAI;AACH,WAAOxD,kBAAkB,CAACwD,KAAD,CAAzB;AACA,GAFD,CAEE,OAAOJ,GAAP,EAAY;AACb,QAAI1F,MAAM,GAAG8F,KAAK,CAAC1G,KAAN,CAAYkG,aAAZ,CAAb;;AAEA,SAAK,IAAI/C,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGvC,MAAM,CAACe,MAA3B,EAAmCwB,CAAC,EAApC,EAAwC;AACvCuD,MAAAA,KAAK,GAAGN,gBAAgB,CAACxF,MAAD,EAASuC,CAAT,CAAhB,CAA4B1C,IAA5B,CAAiC,EAAjC,CAAR;AAEAG,MAAAA,MAAM,GAAG8F,KAAK,CAAC1G,KAAN,CAAYkG,aAAZ,CAAT;AACA;;AAED,WAAOQ,KAAP;AACA;AACD;;AAED,SAASC,wBAAT,CAAkCD,KAAlC,EAAyC;;AAExC,MAAIE,UAAU,GAAG;AAChB,cAAU,cADM;AAEhB,cAAU;AAFM,GAAjB;AAKA,MAAI5G,KAAK,GAAGmG,YAAY,CAAC7E,IAAb,CAAkBoF,KAAlB,CAAZ;;AACA,SAAO1G,KAAP,EAAc;AACb,QAAI;;AAEH4G,MAAAA,UAAU,CAAC5G,KAAK,CAAC,CAAD,CAAN,CAAV,GAAuBkD,kBAAkB,CAAClD,KAAK,CAAC,CAAD,CAAN,CAAzC;AACA,KAHD,CAGE,OAAOsG,GAAP,EAAY;AACb,UAAIO,MAAM,GAAG5D,MAAM,CAACjD,KAAK,CAAC,CAAD,CAAN,CAAnB;;AAEA,UAAI6G,MAAM,KAAK7G,KAAK,CAAC,CAAD,CAApB,EAAyB;AACxB4G,QAAAA,UAAU,CAAC5G,KAAK,CAAC,CAAD,CAAN,CAAV,GAAuB6G,MAAvB;AACA;AACD;;AAED7G,IAAAA,KAAK,GAAGmG,YAAY,CAAC7E,IAAb,CAAkBoF,KAAlB,CAAR;AACA,GArBuC;;;AAwBxCE,EAAAA,UAAU,CAAC,KAAD,CAAV,GAAoB,QAApB;AAEA,MAAIE,OAAO,GAAGzB,MAAM,CAACxC,IAAP,CAAY+D,UAAZ,CAAd;;AAEA,OAAK,IAAIzD,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAG2D,OAAO,CAACnF,MAA5B,EAAoCwB,CAAC,EAArC,EAAyC;;AAExC,QAAItC,GAAG,GAAGiG,OAAO,CAAC3D,CAAD,CAAjB;AACAuD,IAAAA,KAAK,GAAGA,KAAK,CAACtC,OAAN,CAAc,IAAI5D,MAAJ,CAAWK,GAAX,EAAgB,GAAhB,CAAd,EAAoC+F,UAAU,CAAC/F,GAAD,CAA9C,CAAR;AACA;;AAED,SAAO6F,KAAP;AACA;;IAEDK,kBAAc,GAAG,SAAjBA,kBAAiB,CAAUC,UAAV,EAAsB;AACtC,MAAI,OAAOA,UAAP,KAAsB,QAA1B,EAAoC;AACnC,UAAM,IAAIhD,SAAJ,CAAc,gEAA+DgD,UAA/D,IAA4E,GAA1F,CAAN;AACA;;AAED,MAAI;AACHA,IAAAA,UAAU,GAAGA,UAAU,CAAC5C,OAAX,CAAmB,KAAnB,EAA0B,GAA1B,CAAb,CADG;;AAIH,WAAOlB,kBAAkB,CAAC8D,UAAD,CAAzB;AACA,GALD,CAKE,OAAOV,GAAP,EAAY;;AAEb,WAAOK,wBAAwB,CAACK,UAAD,CAA/B;AACA;AACD;;IC3FDC,YAAc,GAAG,SAAjBA,YAAiB,CAACC,MAAD,EAASC,SAAT,EAAuB;AACvC,MAAI,EAAE,OAAOD,MAAP,KAAkB,QAAlB,IAA8B,OAAOC,SAAP,KAAqB,QAArD,CAAJ,EAAoE;AACnE,UAAM,IAAInD,SAAJ,CAAc,+CAAd,CAAN;AACA;;AAED,MAAImD,SAAS,KAAK,EAAlB,EAAsB;AACrB,WAAO,CAACD,MAAD,CAAP;AACA;;AAED,MAAME,cAAc,GAAGF,MAAM,CAAC9E,OAAP,CAAe+E,SAAf,CAAvB;;AAEA,MAAIC,cAAc,KAAK,CAAC,CAAxB,EAA2B;AAC1B,WAAO,CAACF,MAAD,CAAP;AACA;;AAED,SAAO,CACNA,MAAM,CAACxF,KAAP,CAAa,CAAb,EAAgB0F,cAAhB,CADM,EAENF,MAAM,CAACxF,KAAP,CAAa0F,cAAc,GAAGD,SAAS,CAACxF,MAAxC,CAFM,CAAP;AAIA;;ICpBD0F,SAAc,GAAG,SAAjBA,SAAiB,CAAUC,GAAV,EAAeC,SAAf,EAA0B;AAC1C,MAAIC,GAAG,GAAG,EAAV;AACA,MAAI3E,IAAI,GAAGwC,MAAM,CAACxC,IAAP,CAAYyE,GAAZ,CAAX;AACA,MAAIG,KAAK,GAAGlE,KAAK,CAACQ,OAAN,CAAcwD,SAAd,CAAZ;;AAEA,OAAK,IAAIpE,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,IAAI,CAAClB,MAAzB,EAAiCwB,CAAC,EAAlC,EAAsC;AACrC,QAAItC,GAAG,GAAGgC,IAAI,CAACM,CAAD,CAAd;AACA,QAAIuE,GAAG,GAAGJ,GAAG,CAACzG,GAAD,CAAb;;AAEA,QAAI4G,KAAK,GAAGF,SAAS,CAACnF,OAAV,CAAkBvB,GAAlB,MAA2B,CAAC,CAA/B,GAAmC0G,SAAS,CAAC1G,GAAD,EAAM6G,GAAN,EAAWJ,GAAX,CAArD,EAAsE;AACrEE,MAAAA,GAAG,CAAC3G,GAAD,CAAH,GAAW6G,GAAX;AACA;AACD;;AAED,SAAOF,GAAP;AACA;;;;ACfD,MAAM3B,iBAAe,GAAG8B,eAAxB;AACA,MAAMC,eAAe,GAAGC,kBAAxB;AACA,MAAMZ,cAAY,GAAGa,YAArB;AACA,MAAMC,YAAY,GAAGC,SAArB;;AAEA,MAAMC,iBAAiB,GAAG,SAApBA,iBAAoB,CAAA3E,KAAK;AAAA,WAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKnC,SAAhC;AAAA,GAA/B;;AAEA,WAAS+G,qBAAT,CAA+BvH,OAA/B,EAAwC;AACvC,YAAQA,OAAO,CAACwH,WAAhB;AACC,WAAK,OAAL;AACC,eAAO,UAAAtH,GAAG;AAAA,iBAAI,UAACgG,MAAD,EAASvD,KAAT,EAAmB;AAChC,gBAAMxC,KAAK,GAAG+F,MAAM,CAAClF,MAArB;;AAEA,gBACC2B,KAAK,KAAKnC,SAAV,IACCR,OAAO,CAACyH,QAAR,IAAoB9E,KAAK,KAAK,IAD/B,IAEC3C,OAAO,CAAC0H,eAAR,IAA2B/E,KAAK,KAAK,EAHvC,EAIE;AACD,qBAAOuD,MAAP;AACA;;AAED,gBAAIvD,KAAK,KAAK,IAAd,EAAoB;AACnB,kDAAWuD,MAAX,IAAmB,CAACnD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAP,EAAuB,GAAvB,EAA4BG,KAA5B,EAAmC,GAAnC,EAAwCL,IAAxC,CAA6C,EAA7C,CAAnB;AACA;;AAED,gDACIoG,MADJ,IAEC,CAACnD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAP,EAAuB,GAAvB,EAA4B+C,MAAM,CAAC5C,KAAD,EAAQH,OAAR,CAAlC,EAAoD,IAApD,EAA0D+C,MAAM,CAACJ,KAAD,EAAQ3C,OAAR,CAAhE,EAAkFF,IAAlF,CAAuF,EAAvF,CAFD;AAIA,WAnBS;AAAA,SAAV;;AAqBD,WAAK,SAAL;AACC,eAAO,UAAAI,GAAG;AAAA,iBAAI,UAACgG,MAAD,EAASvD,KAAT,EAAmB;AAChC,gBACCA,KAAK,KAAKnC,SAAV,IACCR,OAAO,CAACyH,QAAR,IAAoB9E,KAAK,KAAK,IAD/B,IAEC3C,OAAO,CAAC0H,eAAR,IAA2B/E,KAAK,KAAK,EAHvC,EAIE;AACD,qBAAOuD,MAAP;AACA;;AAED,gBAAIvD,KAAK,KAAK,IAAd,EAAoB;AACnB,kDAAWuD,MAAX,IAAmB,CAACnD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAP,EAAuB,IAAvB,EAA6BF,IAA7B,CAAkC,EAAlC,CAAnB;AACA;;AAED,gDAAWoG,MAAX,IAAmB,CAACnD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAP,EAAuB,KAAvB,EAA8B+C,MAAM,CAACJ,KAAD,EAAQ3C,OAAR,CAApC,EAAsDF,IAAtD,CAA2D,EAA3D,CAAnB;AACA,WAdS;AAAA,SAAV;;AAgBD,WAAK,OAAL;AACA,WAAK,WAAL;AACC,eAAO,UAAAI,GAAG;AAAA,iBAAI,UAACgG,MAAD,EAASvD,KAAT,EAAmB;AAChC,gBAAIA,KAAK,KAAK,IAAV,IAAkBA,KAAK,KAAKnC,SAA5B,IAAyCmC,KAAK,CAAC3B,MAAN,KAAiB,CAA9D,EAAiE;AAChE,qBAAOkF,MAAP;AACA;;AAED,gBAAIA,MAAM,CAAClF,MAAP,KAAkB,CAAtB,EAAyB;AACxB,qBAAO,CAAC,CAAC+B,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAP,EAAuB,GAAvB,EAA4B+C,MAAM,CAACJ,KAAD,EAAQ3C,OAAR,CAAlC,EAAoDF,IAApD,CAAyD,EAAzD,CAAD,CAAP;AACA;;AAED,mBAAO,CAAC,CAACoG,MAAD,EAASnD,MAAM,CAACJ,KAAD,EAAQ3C,OAAR,CAAf,EAAiCF,IAAjC,CAAsCE,OAAO,CAAC2H,oBAA9C,CAAD,CAAP;AACA,WAVS;AAAA,SAAV;;AAYD;AACC,eAAO,UAAAzH,GAAG;AAAA,iBAAI,UAACgG,MAAD,EAASvD,KAAT,EAAmB;AAChC,gBACCA,KAAK,KAAKnC,SAAV,IACCR,OAAO,CAACyH,QAAR,IAAoB9E,KAAK,KAAK,IAD/B,IAEC3C,OAAO,CAAC0H,eAAR,IAA2B/E,KAAK,KAAK,EAHvC,EAIE;AACD,qBAAOuD,MAAP;AACA;;AAED,gBAAIvD,KAAK,KAAK,IAAd,EAAoB;AACnB,kDAAWuD,MAAX,IAAmBnD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAzB;AACA;;AAED,gDAAWkG,MAAX,IAAmB,CAACnD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAP,EAAuB,GAAvB,EAA4B+C,MAAM,CAACJ,KAAD,EAAQ3C,OAAR,CAAlC,EAAoDF,IAApD,CAAyD,EAAzD,CAAnB;AACA,WAdS;AAAA,SAAV;AAvDF;AAuEA;;AAED,WAAS8H,oBAAT,CAA8B5H,OAA9B,EAAuC;AACtC,QAAIkG,MAAJ;;AAEA,YAAQlG,OAAO,CAACwH,WAAhB;AACC,WAAK,OAAL;AACC,eAAO,UAACtH,GAAD,EAAMyC,KAAN,EAAakF,WAAb,EAA6B;AACnC3B,UAAAA,MAAM,GAAG,aAAavF,IAAb,CAAkBT,GAAlB,CAAT;AAEAA,UAAAA,GAAG,GAAGA,GAAG,CAACuD,OAAJ,CAAY,UAAZ,EAAwB,EAAxB,CAAN;;AAEA,cAAI,CAACyC,MAAL,EAAa;AACZ2B,YAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmByC,KAAnB;AACA;AACA;;AAED,cAAIkF,WAAW,CAAC3H,GAAD,CAAX,KAAqBM,SAAzB,EAAoC;AACnCqH,YAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmB,EAAnB;AACA;;AAED2H,UAAAA,WAAW,CAAC3H,GAAD,CAAX,CAAiBgG,MAAM,CAAC,CAAD,CAAvB,IAA8BvD,KAA9B;AACA,SAfD;;AAiBD,WAAK,SAAL;AACC,eAAO,UAACzC,GAAD,EAAMyC,KAAN,EAAakF,WAAb,EAA6B;AACnC3B,UAAAA,MAAM,GAAG,UAAUvF,IAAV,CAAeT,GAAf,CAAT;AACAA,UAAAA,GAAG,GAAGA,GAAG,CAACuD,OAAJ,CAAY,OAAZ,EAAqB,EAArB,CAAN;;AAEA,cAAI,CAACyC,MAAL,EAAa;AACZ2B,YAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmByC,KAAnB;AACA;AACA;;AAED,cAAIkF,WAAW,CAAC3H,GAAD,CAAX,KAAqBM,SAAzB,EAAoC;AACnCqH,YAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmB,CAACyC,KAAD,CAAnB;AACA;AACA;;AAEDkF,UAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmB,GAAGmE,MAAH,CAAUwD,WAAW,CAAC3H,GAAD,CAArB,EAA4ByC,KAA5B,CAAnB;AACA,SAfD;;AAiBD,WAAK,OAAL;AACA,WAAK,WAAL;AACC,eAAO,UAACzC,GAAD,EAAMyC,KAAN,EAAakF,WAAb,EAA6B;AACnC,cAAMzE,OAAO,GAAG,OAAOT,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACmF,QAAN,CAAe9H,OAAO,CAAC2H,oBAAvB,CAA7C;AACA,cAAMI,cAAc,GAAI,OAAOpF,KAAP,KAAiB,QAAjB,IAA6B,CAACS,OAA9B,IAAyCd,MAAM,CAACK,KAAD,EAAQ3C,OAAR,CAAN,CAAuB8H,QAAvB,CAAgC9H,OAAO,CAAC2H,oBAAxC,CAAjE;AACAhF,UAAAA,KAAK,GAAGoF,cAAc,GAAGzF,MAAM,CAACK,KAAD,EAAQ3C,OAAR,CAAT,GAA4B2C,KAAlD;AACA,cAAMqF,QAAQ,GAAG5E,OAAO,IAAI2E,cAAX,GAA4BpF,KAAK,CAACF,KAAN,CAAYzC,OAAO,CAAC2H,oBAApB,EAA0CjF,GAA1C,CAA8C,UAAAuF,IAAI;AAAA,mBAAI3F,MAAM,CAAC2F,IAAD,EAAOjI,OAAP,CAAV;AAAA,WAAlD,CAA5B,GAA2G2C,KAAK,KAAK,IAAV,GAAiBA,KAAjB,GAAyBL,MAAM,CAACK,KAAD,EAAQ3C,OAAR,CAA3J;AACA6H,UAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmB8H,QAAnB;AACA,SAND;;AAQD;AACC,eAAO,UAAC9H,GAAD,EAAMyC,KAAN,EAAakF,WAAb,EAA6B;AACnC,cAAIA,WAAW,CAAC3H,GAAD,CAAX,KAAqBM,SAAzB,EAAoC;AACnCqH,YAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmByC,KAAnB;AACA;AACA;;AAEDkF,UAAAA,WAAW,CAAC3H,GAAD,CAAX,GAAmB,GAAGmE,MAAH,CAAUwD,WAAW,CAAC3H,GAAD,CAArB,EAA4ByC,KAA5B,CAAnB;AACA,SAPD;AAhDF;AAyDA;;AAED,WAASuF,4BAAT,CAAsCvF,KAAtC,EAA6C;AAC5C,QAAI,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAAC3B,MAAN,KAAiB,CAAlD,EAAqD;AACpD,YAAM,IAAIqC,SAAJ,CAAc,sDAAd,CAAN;AACA;AACD;;AAED,WAASN,MAAT,CAAgBJ,KAAhB,EAAuB3C,OAAvB,EAAgC;AAC/B,QAAIA,OAAO,CAAC+C,MAAZ,EAAoB;AACnB,aAAO/C,OAAO,CAACiE,MAAR,GAAiBiB,iBAAe,CAACvC,KAAD,CAAhC,GAA0CK,kBAAkB,CAACL,KAAD,CAAnE;AACA;;AAED,WAAOA,KAAP;AACA;;AAED,WAASL,MAAT,CAAgBK,KAAhB,EAAuB3C,OAAvB,EAAgC;AAC/B,QAAIA,OAAO,CAACsC,MAAZ,EAAoB;AACnB,aAAO2E,eAAe,CAACtE,KAAD,CAAtB;AACA;;AAED,WAAOA,KAAP;AACA;;AAED,WAASwF,UAAT,CAAoBpC,KAApB,EAA2B;AAC1B,QAAInD,KAAK,CAACQ,OAAN,CAAc2C,KAAd,CAAJ,EAA0B;AACzB,aAAOA,KAAK,CAACqC,IAAN,EAAP;AACA;;AAED,QAAI,QAAOrC,KAAP,MAAiB,QAArB,EAA+B;AAC9B,aAAOoC,UAAU,CAACzD,MAAM,CAACxC,IAAP,CAAY6D,KAAZ,CAAD,CAAV,CACLqC,IADK,CACA,UAACC,CAAD,EAAIC,CAAJ;AAAA,eAAUC,MAAM,CAACF,CAAD,CAAN,GAAYE,MAAM,CAACD,CAAD,CAA5B;AAAA,OADA,EAEL5F,GAFK,CAED,UAAAxC,GAAG;AAAA,eAAI6F,KAAK,CAAC7F,GAAD,CAAT;AAAA,OAFF,CAAP;AAGA;;AAED,WAAO6F,KAAP;AACA;;AAED,WAASyC,UAAT,CAAoBzC,KAApB,EAA2B;AAC1B,QAAM0C,SAAS,GAAG1C,KAAK,CAACtE,OAAN,CAAc,GAAd,CAAlB;;AACA,QAAIgH,SAAS,KAAK,CAAC,CAAnB,EAAsB;AACrB1C,MAAAA,KAAK,GAAGA,KAAK,CAAChF,KAAN,CAAY,CAAZ,EAAe0H,SAAf,CAAR;AACA;;AAED,WAAO1C,KAAP;AACA;;AAED,WAAS2C,OAAT,CAAiBC,GAAjB,EAAsB;AACrB,QAAIC,IAAI,GAAG,EAAX;AACA,QAAMH,SAAS,GAAGE,GAAG,CAAClH,OAAJ,CAAY,GAAZ,CAAlB;;AACA,QAAIgH,SAAS,KAAK,CAAC,CAAnB,EAAsB;AACrBG,MAAAA,IAAI,GAAGD,GAAG,CAAC5H,KAAJ,CAAU0H,SAAV,CAAP;AACA;;AAED,WAAOG,IAAP;AACA;;AAED,WAASC,OAAT,CAAiB9C,KAAjB,EAAwB;AACvBA,IAAAA,KAAK,GAAGyC,UAAU,CAACzC,KAAD,CAAlB;AACA,QAAM+C,UAAU,GAAG/C,KAAK,CAACtE,OAAN,CAAc,GAAd,CAAnB;;AACA,QAAIqH,UAAU,KAAK,CAAC,CAApB,EAAuB;AACtB,aAAO,EAAP;AACA;;AAED,WAAO/C,KAAK,CAAChF,KAAN,CAAY+H,UAAU,GAAG,CAAzB,CAAP;AACA;;AAED,WAASC,UAAT,CAAoBpG,KAApB,EAA2B3C,OAA3B,EAAoC;AACnC,QAAIA,OAAO,CAACgJ,YAAR,IAAwB,CAACT,MAAM,CAACU,KAAP,CAAaV,MAAM,CAAC5F,KAAD,CAAnB,CAAzB,IAAyD,OAAOA,KAAP,KAAiB,QAAjB,IAA6BA,KAAK,CAACuG,IAAN,OAAiB,EAA3G,EAAgH;AAC/GvG,MAAAA,KAAK,GAAG4F,MAAM,CAAC5F,KAAD,CAAd;AACA,KAFD,MAEO,IAAI3C,OAAO,CAACmJ,aAAR,IAAyBxG,KAAK,KAAK,IAAnC,KAA4CA,KAAK,CAACyG,WAAN,OAAwB,MAAxB,IAAkCzG,KAAK,CAACyG,WAAN,OAAwB,OAAtG,CAAJ,EAAoH;AAC1HzG,MAAAA,KAAK,GAAGA,KAAK,CAACyG,WAAN,OAAwB,MAAhC;AACA;;AAED,WAAOzG,KAAP;AACA;;AAED,WAASpD,KAAT,CAAe8J,KAAf,EAAsBrJ,OAAtB,EAA+B;AAC9BA,IAAAA,OAAO,GAAG0E,MAAM,CAAC4E,MAAP,CAAc;AACvBhH,MAAAA,MAAM,EAAE,IADe;AAEvB8F,MAAAA,IAAI,EAAE,IAFiB;AAGvBZ,MAAAA,WAAW,EAAE,MAHU;AAIvBG,MAAAA,oBAAoB,EAAE,GAJC;AAKvBqB,MAAAA,YAAY,EAAE,KALS;AAMvBG,MAAAA,aAAa,EAAE;AANQ,KAAd,EAOPnJ,OAPO,CAAV;AASAkI,IAAAA,4BAA4B,CAAClI,OAAO,CAAC2H,oBAAT,CAA5B;AAEA,QAAM4B,SAAS,GAAG3B,oBAAoB,CAAC5H,OAAD,CAAtC,CAZ8B;;AAe9B,QAAM6G,GAAG,GAAGnC,MAAM,CAAC8E,MAAP,CAAc,IAAd,CAAZ;;AAEA,QAAI,OAAOH,KAAP,KAAiB,QAArB,EAA+B;AAC9B,aAAOxC,GAAP;AACA;;AAEDwC,IAAAA,KAAK,GAAGA,KAAK,CAACH,IAAN,GAAazF,OAAb,CAAqB,QAArB,EAA+B,EAA/B,CAAR;;AAEA,QAAI,CAAC4F,KAAL,EAAY;AACX,aAAOxC,GAAP;AACA;;AAzB6B,+CA2BVwC,KAAK,CAAC5G,KAAN,CAAY,GAAZ,CA3BU;AAAA;;AAAA;AA2B9B,0DAAsC;AAAA,YAA3BgH,KAA2B;;AACrC,YAAIA,KAAK,KAAK,EAAd,EAAkB;AACjB;AACA;;AAED,4BAAmBnD,cAAY,CAACtG,OAAO,CAACsC,MAAR,GAAiBmH,KAAK,CAAChG,OAAN,CAAc,KAAd,EAAqB,GAArB,CAAjB,GAA6CgG,KAA9C,EAAqD,GAArD,CAA/B;AAAA;AAAA,YAAKvJ,IAAL;AAAA,YAAUyC,MAAV,qBALqC;;;;AASrCA,QAAAA,MAAK,GAAGA,MAAK,KAAKnC,SAAV,GAAsB,IAAtB,GAA6B,CAAC,OAAD,EAAU,WAAV,EAAuBsH,QAAvB,CAAgC9H,OAAO,CAACwH,WAAxC,IAAuD7E,MAAvD,GAA+DL,MAAM,CAACK,MAAD,EAAQ3C,OAAR,CAA1G;AACAuJ,QAAAA,SAAS,CAACjH,MAAM,CAACpC,IAAD,EAAMF,OAAN,CAAP,EAAuB2C,MAAvB,EAA8BkE,GAA9B,CAAT;AACA;AAtC6B;AAAA;AAAA;AAAA;AAAA;;AAwC9B,oCAAkBnC,MAAM,CAACxC,IAAP,CAAY2E,GAAZ,CAAlB,kCAAoC;AAA/B,UAAM3G,GAAG,mBAAT;AACJ,UAAMyC,KAAK,GAAGkE,GAAG,CAAC3G,GAAD,CAAjB;;AACA,UAAI,QAAOyC,KAAP,MAAiB,QAAjB,IAA6BA,KAAK,KAAK,IAA3C,EAAiD;AAChD,0CAAgB+B,MAAM,CAACxC,IAAP,CAAYS,KAAZ,CAAhB,qCAAoC;AAA/B,cAAMrB,CAAC,qBAAP;AACJqB,UAAAA,KAAK,CAACrB,CAAD,CAAL,GAAWyH,UAAU,CAACpG,KAAK,CAACrB,CAAD,CAAN,EAAWtB,OAAX,CAArB;AACA;AACD,OAJD,MAIO;AACN6G,QAAAA,GAAG,CAAC3G,GAAD,CAAH,GAAW6I,UAAU,CAACpG,KAAD,EAAQ3C,OAAR,CAArB;AACA;AACD;;AAED,QAAIA,OAAO,CAACoI,IAAR,KAAiB,KAArB,EAA4B;AAC3B,aAAOvB,GAAP;AACA;;AAED,WAAO,CAAC7G,OAAO,CAACoI,IAAR,KAAiB,IAAjB,GAAwB1D,MAAM,CAACxC,IAAP,CAAY2E,GAAZ,EAAiBuB,IAAjB,EAAxB,GAAkD1D,MAAM,CAACxC,IAAP,CAAY2E,GAAZ,EAAiBuB,IAAjB,CAAsBpI,OAAO,CAACoI,IAA9B,CAAnD,EAAwFsB,MAAxF,CAA+F,UAACxD,MAAD,EAAShG,GAAT,EAAiB;AACtH,UAAMyC,KAAK,GAAGkE,GAAG,CAAC3G,GAAD,CAAjB;;AACA,UAAIyJ,OAAO,CAAChH,KAAD,CAAP,IAAkB,QAAOA,KAAP,MAAiB,QAAnC,IAA+C,CAACC,KAAK,CAACQ,OAAN,CAAcT,KAAd,CAApD,EAA0E;;AAEzEuD,QAAAA,MAAM,CAAChG,GAAD,CAAN,GAAciI,UAAU,CAACxF,KAAD,CAAxB;AACA,OAHD,MAGO;AACNuD,QAAAA,MAAM,CAAChG,GAAD,CAAN,GAAcyC,KAAd;AACA;;AAED,aAAOuD,MAAP;AACA,KAVM,EAUJxB,MAAM,CAAC8E,MAAP,CAAc,IAAd,CAVI,CAAP;AAWA;;AAEDI,EAAAA,eAAA,GAAkBf,OAAlB;AACAe,EAAAA,aAAA,GAAgBrK,KAAhB;;AAEAqK,EAAAA,iBAAA,GAAoB,UAACC,MAAD,EAAS7J,OAAT,EAAqB;AACxC,QAAI,CAAC6J,MAAL,EAAa;AACZ,aAAO,EAAP;AACA;;AAED7J,IAAAA,OAAO,GAAG0E,MAAM,CAAC4E,MAAP,CAAc;AACvBvG,MAAAA,MAAM,EAAE,IADe;AAEvBkB,MAAAA,MAAM,EAAE,IAFe;AAGvBuD,MAAAA,WAAW,EAAE,MAHU;AAIvBG,MAAAA,oBAAoB,EAAE;AAJC,KAAd,EAKP3H,OALO,CAAV;AAOAkI,IAAAA,4BAA4B,CAAClI,OAAO,CAAC2H,oBAAT,CAA5B;;AAEA,QAAMmC,YAAY,GAAG,SAAfA,YAAe,CAAA5J,GAAG;AAAA,aACtBF,OAAO,CAACyH,QAAR,IAAoBH,iBAAiB,CAACuC,MAAM,CAAC3J,GAAD,CAAP,CAAtC,IACCF,OAAO,CAAC0H,eAAR,IAA2BmC,MAAM,CAAC3J,GAAD,CAAN,KAAgB,EAFrB;AAAA,KAAxB;;AAKA,QAAMqJ,SAAS,GAAGhC,qBAAqB,CAACvH,OAAD,CAAvC;AAEA,QAAM+J,UAAU,GAAG,EAAnB;;AAEA,sCAAkBrF,MAAM,CAACxC,IAAP,CAAY2H,MAAZ,CAAlB,qCAAuC;AAAlC,UAAM3J,GAAG,qBAAT;;AACJ,UAAI,CAAC4J,YAAY,CAAC5J,GAAD,CAAjB,EAAwB;AACvB6J,QAAAA,UAAU,CAAC7J,GAAD,CAAV,GAAkB2J,MAAM,CAAC3J,GAAD,CAAxB;AACA;AACD;;AAED,QAAMgC,IAAI,GAAGwC,MAAM,CAACxC,IAAP,CAAY6H,UAAZ,CAAb;;AAEA,QAAI/J,OAAO,CAACoI,IAAR,KAAiB,KAArB,EAA4B;AAC3BlG,MAAAA,IAAI,CAACkG,IAAL,CAAUpI,OAAO,CAACoI,IAAlB;AACA;;AAED,WAAOlG,IAAI,CAACQ,GAAL,CAAS,UAAAxC,GAAG,EAAI;AACtB,UAAMyC,KAAK,GAAGkH,MAAM,CAAC3J,GAAD,CAApB;;AAEA,UAAIyC,KAAK,KAAKnC,SAAd,EAAyB;AACxB,eAAO,EAAP;AACA;;AAED,UAAImC,KAAK,KAAK,IAAd,EAAoB;AACnB,eAAOI,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAb;AACA;;AAED,UAAI4C,KAAK,CAACQ,OAAN,CAAcT,KAAd,CAAJ,EAA0B;AACzB,eAAOA,KAAK,CACV+G,MADK,CACEH,SAAS,CAACrJ,GAAD,CADX,EACkB,EADlB,EAELJ,IAFK,CAEA,GAFA,CAAP;AAGA;;AAED,aAAOiD,MAAM,CAAC7C,GAAD,EAAMF,OAAN,CAAN,GAAuB,GAAvB,GAA6B+C,MAAM,CAACJ,KAAD,EAAQ3C,OAAR,CAA1C;AACA,KAlBM,EAkBJgK,MAlBI,CAkBG,UAAA7E,CAAC;AAAA,aAAIA,CAAC,CAACnE,MAAF,GAAW,CAAf;AAAA,KAlBJ,EAkBsBlB,IAlBtB,CAkB2B,GAlB3B,CAAP;AAmBA,GAtDD;;AAwDA8J,EAAAA,gBAAA,GAAmB,UAACjB,GAAD,EAAM3I,OAAN,EAAkB;AACpCA,IAAAA,OAAO,GAAG0E,MAAM,CAAC4E,MAAP,CAAc;AACvBhH,MAAAA,MAAM,EAAE;AADe,KAAd,EAEPtC,OAFO,CAAV;;AAIA,yBAAqBsG,cAAY,CAACqC,GAAD,EAAM,GAAN,CAAjC;AAAA;AAAA,QAAOsB,IAAP;AAAA,QAAarB,IAAb;;AAEA,WAAOlE,MAAM,CAAC4E,MAAP,CACN;AACCX,MAAAA,GAAG,EAAEsB,IAAI,CAACxH,KAAL,CAAW,GAAX,EAAgB,CAAhB,KAAsB,EAD5B;AAEC4G,MAAAA,KAAK,EAAE9J,KAAK,CAACsJ,OAAO,CAACF,GAAD,CAAR,EAAe3I,OAAf;AAFb,KADM,EAKNA,OAAO,IAAIA,OAAO,CAACkK,uBAAnB,IAA8CtB,IAA9C,GAAqD;AAACuB,MAAAA,kBAAkB,EAAE7H,MAAM,CAACsG,IAAD,EAAO5I,OAAP;AAA3B,KAArD,GAAmG,EAL7F,CAAP;AAOA,GAdD;;AAgBA4J,EAAAA,oBAAA,GAAuB,UAACC,MAAD,EAAS7J,OAAT,EAAqB;AAC3CA,IAAAA,OAAO,GAAG0E,MAAM,CAAC4E,MAAP,CAAc;AACvBvG,MAAAA,MAAM,EAAE,IADe;AAEvBkB,MAAAA,MAAM,EAAE;AAFe,KAAd,EAGPjE,OAHO,CAAV;AAKA,QAAM2I,GAAG,GAAGH,UAAU,CAACqB,MAAM,CAAClB,GAAR,CAAV,CAAuBlG,KAAvB,CAA6B,GAA7B,EAAkC,CAAlC,KAAwC,EAApD;AACA,QAAM2H,YAAY,GAAGR,OAAO,CAACf,OAAR,CAAgBgB,MAAM,CAAClB,GAAvB,CAArB;AACA,QAAM0B,kBAAkB,GAAGT,OAAO,CAACrK,KAAR,CAAc6K,YAAd,EAA4B;AAAChC,MAAAA,IAAI,EAAE;AAAP,KAA5B,CAA3B;AAEA,QAAMiB,KAAK,GAAG3E,MAAM,CAAC4E,MAAP,CAAce,kBAAd,EAAkCR,MAAM,CAACR,KAAzC,CAAd;AACA,QAAIiB,WAAW,GAAGV,OAAO,CAACW,SAAR,CAAkBlB,KAAlB,EAAyBrJ,OAAzB,CAAlB;;AACA,QAAIsK,WAAJ,EAAiB;AAChBA,MAAAA,WAAW,cAAOA,WAAP,CAAX;AACA;;AAED,QAAI1B,IAAI,GAAGF,OAAO,CAACmB,MAAM,CAAClB,GAAR,CAAlB;;AACA,QAAIkB,MAAM,CAACM,kBAAX,EAA+B;AAC9BvB,MAAAA,IAAI,cAAO7F,MAAM,CAAC8G,MAAM,CAACM,kBAAR,EAA4BnK,OAA5B,CAAb,CAAJ;AACA;;AAED,qBAAU2I,GAAV,SAAgB2B,WAAhB,SAA8B1B,IAA9B;AACA,GAtBD;;AAwBAgB,EAAAA,YAAA,GAAe,UAAC7D,KAAD,EAAQiE,MAAR,EAAgBhK,OAAhB,EAA4B;AAC1CA,IAAAA,OAAO,GAAG0E,MAAM,CAAC4E,MAAP,CAAc;AACvBY,MAAAA,uBAAuB,EAAE;AADF,KAAd,EAEPlK,OAFO,CAAV;;AAIA,4BAAyC4J,OAAO,CAACY,QAAR,CAAiBzE,KAAjB,EAAwB/F,OAAxB,CAAzC;AAAA,QAAO2I,GAAP,qBAAOA,GAAP;AAAA,QAAYU,KAAZ,qBAAYA,KAAZ;AAAA,QAAmBc,kBAAnB,qBAAmBA,kBAAnB;;AACA,WAAOP,OAAO,CAACa,YAAR,CAAqB;AAC3B9B,MAAAA,GAAG,EAAHA,GAD2B;AAE3BU,MAAAA,KAAK,EAAEjC,YAAY,CAACiC,KAAD,EAAQW,MAAR,CAFQ;AAG3BG,MAAAA,kBAAkB,EAAlBA;AAH2B,KAArB,EAIJnK,OAJI,CAAP;AAKA,GAXD;;AAaA4J,EAAAA,eAAA,GAAkB,UAAC7D,KAAD,EAAQiE,MAAR,EAAgBhK,OAAhB,EAA4B;AAC7C,QAAM0K,eAAe,GAAG9H,KAAK,CAACQ,OAAN,CAAc4G,MAAd,IAAwB,UAAA9J,GAAG;AAAA,aAAI,CAAC8J,MAAM,CAAClC,QAAP,CAAgB5H,GAAhB,CAAL;AAAA,KAA3B,GAAuD,UAACA,GAAD,EAAMyC,KAAN;AAAA,aAAgB,CAACqH,MAAM,CAAC9J,GAAD,EAAMyC,KAAN,CAAvB;AAAA,KAA/E;AAEA,WAAOiH,OAAO,CAACe,IAAR,CAAa5E,KAAb,EAAoB2E,eAApB,EAAqC1K,OAArC,CAAP;AACA,GAJD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tarojs/router",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0-canary.0",
|
|
4
4
|
"description": "Taro-router",
|
|
5
5
|
"main:h5": "dist/router.esm.js",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -27,11 +27,11 @@
|
|
|
27
27
|
"author": "O2Team",
|
|
28
28
|
"license": "MIT",
|
|
29
29
|
"dependencies": {
|
|
30
|
-
"@tarojs/runtime": "3.
|
|
30
|
+
"@tarojs/runtime": "3.5.0-canary.0",
|
|
31
31
|
"history": "^5.1.0",
|
|
32
32
|
"query-string": "^6.13.8",
|
|
33
33
|
"universal-router": "^8.3.0",
|
|
34
34
|
"url-parse": "^1.4.7"
|
|
35
35
|
},
|
|
36
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "a0222bc41bc05b0e34413d6db3de963d777a5015"
|
|
37
37
|
}
|