@tarojs/router 3.3.12 → 3.4.0-beta.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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/history/index.js","../src/history.ts","../src/stack.ts","../src/utils.ts","../src/api.ts","../node_modules/path-to-regexp/index.js","../node_modules/universal-router/module.js","../src/tabbar.ts","../src/init.ts","../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","../src/qs.ts","../src/scroll.ts","../src/router.ts"],"sourcesContent":["export default function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n}","import _extends from'@babel/runtime/helpers/esm/extends';var r,B=r||(r={});B.Pop=\"POP\";B.Push=\"PUSH\";B.Replace=\"REPLACE\";var C=\"production\"!==process.env.NODE_ENV?function(b){return Object.freeze(b)}:function(b){return b};function D(b,h){if(!b){\"undefined\"!==typeof console&&console.warn(h);try{throw Error(h);}catch(k){}}}function E(b){b.preventDefault();b.returnValue=\"\"}\nfunction F(){var b=[];return{get length(){return b.length},push:function(h){b.push(h);return function(){b=b.filter(function(k){return k!==h})}},call:function(h){b.forEach(function(k){return k&&k(h)})}}}function H(){return Math.random().toString(36).substr(2,8)}function I(b){var h=b.pathname,k=b.search;b=b.hash;return(void 0===h?\"/\":h)+(void 0===k?\"\":k)+(void 0===b?\"\":b)}\nfunction J(b){var h={};if(b){var k=b.indexOf(\"#\");0<=k&&(h.hash=b.substr(k),b=b.substr(0,k));k=b.indexOf(\"?\");0<=k&&(h.search=b.substr(k),b=b.substr(0,k));b&&(h.pathname=b)}return h}\nfunction createBrowserHistory(b){function h(){var c=p.location,a=m.state||{};return[a.idx,C({pathname:c.pathname,search:c.search,hash:c.hash,state:a.usr||null,key:a.key||\"default\"})]}function k(c){return\"string\"===typeof c?c:I(c)}function x(c,a){void 0===a&&(a=null);return C(_extends({},q,\"string\"===typeof c?J(c):c,{state:a,key:H()}))}function z(c){t=c;c=h();v=c[0];q=c[1];d.call({action:t,location:q})}function A(c,a){function e(){A(c,a)}var l=r.Push,g=x(c,a);if(!f.length||(f.call({action:l,\nlocation:g,retry:e}),!1)){var n=[{usr:g.state,key:g.key,idx:v+1},k(g)];g=n[0];n=n[1];try{m.pushState(g,\"\",n)}catch(G){p.location.assign(n)}z(l)}}function y(c,a){function e(){y(c,a)}var l=r.Replace,g=x(c,a);f.length&&(f.call({action:l,location:g,retry:e}),1)||(g=[{usr:g.state,key:g.key,idx:v},k(g)],m.replaceState(g[0],\"\",g[1]),z(l))}function w(c){m.go(c)}void 0===b&&(b={});b=b.window;var p=void 0===b?document.defaultView:b,m=p.history,u=null;p.addEventListener(\"popstate\",function(){if(u)f.call(u),\nu=null;else{var c=r.Pop,a=h(),e=a[0];a=a[1];if(f.length)if(null!=e){var l=v-e;l&&(u={action:c,location:a,retry:function(){w(-1*l)}},w(l))}else\"production\"!==process.env.NODE_ENV?D(!1,\"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.\"):void 0;else z(c)}});var t=\nr.Pop;b=h();var v=b[0],q=b[1],d=F(),f=F();null==v&&(v=0,m.replaceState(_extends({},m.state,{idx:v}),\"\"));return{get action(){return t},get location(){return q},createHref:k,push:A,replace:y,go:w,back:function(){w(-1)},forward:function(){w(1)},listen:function(c){return d.push(c)},block:function(c){var a=f.push(c);1===f.length&&p.addEventListener(\"beforeunload\",E);return function(){a();f.length||p.removeEventListener(\"beforeunload\",E)}}}};\nfunction createHashHistory(b){function h(){var a=J(m.location.hash.substr(1)),e=a.pathname,l=a.search;a=a.hash;var g=u.state||{};return[g.idx,C({pathname:void 0===e?\"/\":e,search:void 0===l?\"\":l,hash:void 0===a?\"\":a,state:g.usr||null,key:g.key||\"default\"})]}function k(){if(t)c.call(t),t=null;else{var a=r.Pop,e=h(),l=e[0];e=e[1];if(c.length)if(null!=l){var g=q-l;g&&(t={action:a,location:e,retry:function(){p(-1*g)}},p(g))}else\"production\"!==process.env.NODE_ENV?D(!1,\"You are trying to block a POP navigation to a location that was not created by the history library. The block will fail silently in production, but in general you should do all navigation with the history library (instead of using window.history.pushState directly) to avoid this situation.\"):\nvoid 0;else A(a)}}function x(a){var e=document.querySelector(\"base\"),l=\"\";e&&e.getAttribute(\"href\")&&(e=m.location.href,l=e.indexOf(\"#\"),l=-1===l?e:e.slice(0,l));return l+\"#\"+(\"string\"===typeof a?a:I(a))}function z(a,e){void 0===e&&(e=null);return C(_extends({},d,\"string\"===typeof a?J(a):a,{state:e,key:H()}))}function A(a){v=a;a=h();q=a[0];d=a[1];f.call({action:v,location:d})}function y(a,e){function l(){y(a,e)}var g=r.Push,n=z(a,e);\"production\"!==process.env.NODE_ENV?D(\"/\"===n.pathname.charAt(0),\n\"Relative pathnames are not supported in hash history.push(\"+JSON.stringify(a)+\")\"):void 0;if(!c.length||(c.call({action:g,location:n,retry:l}),!1)){var G=[{usr:n.state,key:n.key,idx:q+1},x(n)];n=G[0];G=G[1];try{u.pushState(n,\"\",G)}catch(K){m.location.assign(G)}A(g)}}function w(a,e){function l(){w(a,e)}var g=r.Replace,n=z(a,e);\"production\"!==process.env.NODE_ENV?D(\"/\"===n.pathname.charAt(0),\"Relative pathnames are not supported in hash history.replace(\"+JSON.stringify(a)+\")\"):void 0;c.length&&(c.call({action:g,\nlocation:n,retry:l}),1)||(n=[{usr:n.state,key:n.key,idx:q},x(n)],u.replaceState(n[0],\"\",n[1]),A(g))}function p(a){u.go(a)}void 0===b&&(b={});b=b.window;var m=void 0===b?document.defaultView:b,u=m.history,t=null;m.addEventListener(\"popstate\",k);m.addEventListener(\"hashchange\",function(){var a=h()[1];I(a)!==I(d)&&k()});var v=r.Pop;b=h();var q=b[0],d=b[1],f=F(),c=F();null==q&&(q=0,u.replaceState(_extends({},u.state,{idx:q}),\"\"));return{get action(){return v},get location(){return d},createHref:x,push:y,\nreplace:w,go:p,back:function(){p(-1)},forward:function(){p(1)},listen:function(a){return f.push(a)},block:function(a){var e=c.push(a);1===c.length&&m.addEventListener(\"beforeunload\",E);return function(){e();c.length||m.removeEventListener(\"beforeunload\",E)}}}};\nfunction createMemoryHistory(b){function h(d,f){void 0===f&&(f=null);return C(_extends({},t,\"string\"===typeof d?J(d):d,{state:f,key:H()}))}function k(d,f,c){return!q.length||(q.call({action:d,location:f,retry:c}),!1)}function x(d,f){u=d;t=f;v.call({action:u,location:t})}function z(d,f){var c=r.Push,a=h(d,f);\"production\"!==process.env.NODE_ENV?D(\"/\"===t.pathname.charAt(0),\"Relative pathnames are not supported in memory history.push(\"+JSON.stringify(d)+\")\"):void 0;k(c,a,function(){z(d,f)})&&\n(m+=1,p.splice(m,p.length,a),x(c,a))}function A(d,f){var c=r.Replace,a=h(d,f);\"production\"!==process.env.NODE_ENV?D(\"/\"===t.pathname.charAt(0),\"Relative pathnames are not supported in memory history.replace(\"+JSON.stringify(d)+\")\"):void 0;k(c,a,function(){A(d,f)})&&(p[m]=a,x(c,a))}function y(d){var f=Math.min(Math.max(m+d,0),p.length-1),c=r.Pop,a=p[f];k(c,a,function(){y(d)})&&(m=f,x(c,a))}void 0===b&&(b={});var w=b;b=w.initialEntries;w=w.initialIndex;var p=(void 0===b?[\"/\"]:b).map(function(d){var f=\nC(_extends({pathname:\"/\",search:\"\",hash:\"\",state:null,key:H()},\"string\"===typeof d?J(d):d));\"production\"!==process.env.NODE_ENV?D(\"/\"===f.pathname.charAt(0),\"Relative pathnames are not supported in createMemoryHistory({ initialEntries }) (invalid entry: \"+JSON.stringify(d)+\")\"):void 0;return f}),m=Math.min(Math.max(null==w?p.length-1:w,0),p.length-1),u=r.Pop,t=p[m],v=F(),q=F();return{get index(){return m},get action(){return u},get location(){return t},createHref:function(d){return\"string\"===typeof d?\nd:I(d)},push:z,replace:A,go:y,back:function(){y(-1)},forward:function(){y(1)},listen:function(d){return v.push(d)},block:function(d){return q.push(d)}}};export{r as Action,createBrowserHistory,createHashHistory,createMemoryHistory,I as createPath,J as parsePath}\n//# sourceMappingURL=index.js.map\n","import { BrowserHistoryOptions, createBrowserHistory, createHashHistory, History } from 'history'\n\nexport let history: History\n\nlet basename = '/'\n\nexport function setHistoryMode (mode?: 'hash' | 'browser', base = '/') {\n const options: BrowserHistoryOptions = {\n window\n }\n basename = base\n if (mode === 'browser') {\n history = createBrowserHistory(options)\n } else {\n // default is hash\n history = createHashHistory(options)\n }\n}\n\nexport function prependBasename (url = '') {\n return basename.replace(/\\/$/, '') + '/' + url.replace(/^\\//, '')\n}\n","import { PageInstance } from '@tarojs/runtime'\n\nexport const stacks: PageInstance[] = []\n","import { RouterConfig } from './router'\nexport let routesAlias = {}\n\nexport function setRoutesAlias (alias) {\n routesAlias = alias\n}\n\nexport function addLeadingSlash (path?: string) {\n if (path == null) {\n return ''\n }\n return path.charAt(0) === '/' ? path : '/' + path\n}\n\n// 解决navigateBack调用delta>1时,路由栈异常问题\n// 比如:A->B->C,navigateBack({delta: 2}),此时路由栈中还存在B页面\n// 原因:主要是由于一次性退出多层级页面时,此action只会执行一次,此处进行手动处理\nexport let historyBackDelta = 1\nexport function setHistoryBackDelta (delta: number) {\n historyBackDelta = delta\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport const throttle = (fn: Function, threshold: number) => {\n let lastTime = 0\n return function () {\n const now = Date.now()\n if (now - lastTime > threshold) {\n fn.apply(this, arguments)\n lastTime = now\n }\n }\n}\n\nexport const stripBasename = (path: string, basename: string): string => path.startsWith(basename) ? path.replace(basename, '') : path\n\nexport const isTabBar = (config: RouterConfig): boolean => {\n const { customRoutes = {}, basename = '', pathname } = config.router\n const routePath = stripBasename(pathname, basename)\n const pagePath = Object.entries(customRoutes).find(\n ([, target]) => target === routePath\n )?.[0] || routePath\n\n return !!pagePath && (config.tabBar?.list || []).some(t => t.pagePath === pagePath)\n}\n","import { parsePath } from 'history'\nimport { stacks } from './stack'\nimport { history, prependBasename } from './history'\nimport { routesAlias, addLeadingSlash, setHistoryBackDelta } from './utils'\n\ninterface Base {\n success?: (...args: any[]) => void\n fail?: (...args: any[]) => void\n complete?: (...args: any[]) => void\n}\n\ninterface Option extends Base {\n url: string\n}\n\ninterface NavigateBackOption extends Base {\n delta: number\n}\n\nfunction processNavigateUrl (option: Option) {\n const pathPieces = parsePath(option.url)\n\n // 处理自定义路由\n Object.keys(routesAlias).forEach(key => {\n if (addLeadingSlash(key) === addLeadingSlash(pathPieces.pathname)) {\n pathPieces.pathname = routesAlias[key]\n }\n })\n\n // 处理 basename\n pathPieces.pathname = prependBasename(pathPieces.pathname)\n\n // hack fix history v5 bug: https://github.com/remix-run/history/issues/814\n if (!pathPieces.search) pathPieces.search = ''\n\n return pathPieces\n}\n\nfunction navigate (option: Option | NavigateBackOption, method: 'navigateTo' | 'redirectTo' | 'navigateBack') {\n const { success, complete, fail } = option\n let failReason\n\n try {\n if ('url' in option) {\n const pathPieces = processNavigateUrl(option)\n const state = { timestamp: Date.now() }\n if (method === 'navigateTo') {\n history.push(pathPieces, state)\n } else if (method === 'redirectTo') {\n history.replace(pathPieces, state)\n }\n } else if (method === 'navigateBack') {\n setHistoryBackDelta(option.delta)\n history.go(-option.delta)\n }\n } catch (error) {\n failReason = error\n }\n\n return new Promise<void>((resolve, reject) => {\n if (failReason) {\n fail && fail(failReason)\n complete && complete()\n reject(failReason)\n return\n }\n\n const unlisten = history.listen(() => {\n success && success()\n complete && complete()\n resolve()\n unlisten()\n })\n })\n}\n\nexport function navigateTo (option: Option) {\n return navigate(option, 'navigateTo')\n}\n\nexport function redirectTo (option: Option) {\n return navigate(option, 'redirectTo')\n}\n\nexport function navigateBack (options: NavigateBackOption = { delta: 1 }) {\n if (!options.delta || options.delta < 1) {\n options.delta = 1\n }\n return navigate(options, 'navigateBack')\n}\n\nexport function switchTab (option: Option) {\n // TODO: 清除掉所有的栈去目标页面\n return redirectTo(option)\n}\n\nexport function reLaunch (option: Option) {\n // TODO: 清除掉所有的栈去目标页面\n return redirectTo(option)\n}\n\nexport function getCurrentPages () {\n return stacks\n}\n","/**\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","import { AppConfig } from '@tarojs/taro'\nimport { history } from './history'\n\nexport function initTabbar (config: AppConfig) {\n if (config.tabBar == null) {\n return\n }\n\n // TODO: 找到 tabbar 的类型\n const tabbar = document.createElement('taro-tabbar') as any\n const homePage = config.pages ? config.pages[0] : ''\n tabbar.conf = config.tabBar\n tabbar.conf.homePage = history.location.pathname === '/' ? homePage : history.location.pathname\n const routerConfig = (config as any).router\n tabbar.conf.mode = routerConfig && routerConfig.mode ? routerConfig.mode : 'hash'\n tabbar.conf.custom = !!routerConfig.customRoutes\n if (routerConfig.customRoutes) {\n tabbar.conf.custom = true\n tabbar.conf.customRoutes = routerConfig.customRoutes\n } else {\n tabbar.conf.custom = false\n tabbar.conf.customRoutes = {}\n }\n if (typeof routerConfig.basename !== 'undefined') {\n tabbar.conf.basename = routerConfig.basename\n }\n const container = document.getElementById('container')\n // eslint-disable-next-line no-unused-expressions\n container?.appendChild(tabbar)\n}\n","import { initTabbar } from './tabbar'\nimport { setHistoryMode } from './history'\nimport { RouterConfig } from './router'\n\nexport const routerConfig: RouterConfig = Object.create(null)\n\nexport function init (config: RouterConfig) {\n config.router.mode = config.router.mode || 'hash'\n setHistoryMode(config.router.mode, config.router.basename)\n Object.assign(routerConfig, config)\n document.getElementById('app')?.remove()\n\n const container = document.createElement('div')\n container.classList.add('taro-tabbar__container')\n container.id = 'container'\n\n const panel = document.createElement('div')\n panel.classList.add('taro-tabbar__panel')\n\n const app = document.createElement('div')\n app.id = 'app'\n app.classList.add('taro_router')\n\n panel.appendChild(app)\n container.appendChild(panel)\n\n document.body.appendChild(container)\n\n initTabbar(config)\n}\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","import { routerConfig } from './init'\nimport queryString from 'query-string'\n\nexport const qs = function (stamp = 0) {\n const search = routerConfig.router.mode === 'hash'\n ? location.hash.slice(routerConfig.router.pathname.length + 1)\n : location.search\n const query = search\n ? queryString.parse(search.substr(1))\n : {}\n\n if (stamp) {\n query.stamp = stamp.toString()\n }\n return query\n}\n","import type { PageInstance } from '@tarojs/runtime'\nimport { PageConfig } from '@tarojs/taro'\n\nlet pageScrollFn\nlet pageDOM: Element | Window = window\n\nexport function bindPageScroll (page: PageInstance, config: Partial<PageConfig>) {\n pageDOM.removeEventListener('scroll', pageScrollFn)\n pageDOM = getScrollContainer()\n\n const distance = config.onReachBottomDistance || 50\n let isReachBottom = false\n\n pageScrollFn = function () {\n page.onPageScroll && page.onPageScroll({\n scrollTop: pageDOM instanceof Window ? window.scrollY : pageDOM.scrollTop\n })\n\n if (isReachBottom && getOffset() > distance) {\n isReachBottom = false\n }\n\n if (\n page.onReachBottom &&\n !isReachBottom &&\n getOffset() < distance\n ) {\n isReachBottom = true\n page.onReachBottom()\n }\n }\n\n pageDOM.addEventListener('scroll', pageScrollFn, false)\n}\n\nwindow.addEventListener('DOMSubtreeModified', (e) => {\n // @ts-ignore\n const className = e.target?.className\n if (className && /taro-tabbar__/.test(className)) {\n pageDOM.removeEventListener('scroll', pageScrollFn)\n pageDOM = getScrollContainer()\n pageDOM.addEventListener('scroll', pageScrollFn, false)\n }\n}, false)\n\nfunction getScrollContainer (): Element | Window {\n if (document.querySelector('.taro-tabbar__tabbar') === null) {\n // 没设置tabbar\n return window\n } else {\n // 有设置tabbar\n return document.querySelector('.taro-tabbar__panel') || window\n }\n}\n\nfunction getOffset () {\n if (pageDOM instanceof Window) {\n return document.documentElement.scrollHeight - window.scrollY - window.innerHeight\n } else {\n return pageDOM.scrollHeight - pageDOM.scrollTop - pageDOM.clientHeight\n }\n}\n","/* eslint-disable dot-notation */\nimport UniversalRouter, { Routes } from 'universal-router'\nimport { Listener as LocationListener, State as LocationState, Action as LocationAction } from 'history'\nimport { createPageConfig, Current, eventCenter, container, SERVICE_IDENTIFIER, stringify, requestAnimationFrame } from '@tarojs/runtime'\nimport { qs } from './qs'\nimport { history, prependBasename } from './history'\nimport { stacks } from './stack'\nimport { init, routerConfig } from './init'\nimport { bindPageScroll } from './scroll'\nimport { setRoutesAlias, addLeadingSlash, historyBackDelta, setHistoryBackDelta, throttle, isTabBar, stripBasename } from './utils'\n\nimport type { AppConfig, PageConfig } from '@tarojs/taro'\nimport type { PageInstance, AppInstance, IHooks } from '@tarojs/runtime'\n\nexport interface Route extends PageConfig {\n path?: string\n load?: () => Promise<any>\n}\n\nexport interface RouterConfig extends AppConfig {\n routes: Route[],\n router: {\n mode: 'hash' | 'browser'\n basename: string,\n customRoutes?: Record<string, string>,\n pathname: string,\n forcePath?: string\n },\n PullDownRefresh?: any\n}\n\nfunction hidePage (page: PageInstance | null) {\n if (page != null) {\n page.onHide!()\n const pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'none'\n }\n }\n}\n\nfunction showPage (page: PageInstance | null, pageConfig: Route | undefined, stacksIndex = 0) {\n if (page != null) {\n page.onShow!()\n let pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'block'\n } else {\n page.onLoad(qs(stacksIndex))\n pageEl = document.getElementById(page.path!)\n pageOnReady(pageEl, page, false)\n }\n bindPageScroll(page, pageConfig || {})\n }\n}\n\nfunction unloadPage (page: PageInstance | null) {\n if (page != null) {\n stacks.pop()\n page.onUnload()\n }\n}\n\nfunction pageOnReady (pageEl: Element | null, page: PageInstance, onLoad = true) {\n if (pageEl && !pageEl?.['__isReady']) {\n const el = pageEl.firstElementChild\n // eslint-disable-next-line no-unused-expressions\n el?.['componentOnReady']?.().then(() => {\n requestAnimationFrame(() => {\n page.onReady!()\n pageEl!['__isReady'] = true\n })\n })\n onLoad && (pageEl['__page'] = page)\n }\n}\n\nfunction loadPage (page: PageInstance | null, pageConfig: Route | undefined, stacksIndex = 0) {\n if (page !== null) {\n let pageEl = document.getElementById(page.path!)\n if (pageEl) {\n pageEl.style.display = 'block'\n } else {\n page.onLoad(qs(stacksIndex), function () {\n pageEl = document.getElementById(page.path!)\n pageOnReady(pageEl, page)\n })\n }\n stacks.push(page)\n page.onShow!()\n bindPageScroll(page, pageConfig || {})\n }\n}\n\nexport function createRouter (\n app: AppInstance,\n config: RouterConfig,\n framework\n) {\n init(config)\n\n const routes: Routes = []\n const alias = config.router.customRoutes ?? {}\n const runtimeHooks = container.get<IHooks>(SERVICE_IDENTIFIER.Hooks)\n\n setRoutesAlias(alias)\n for (let i = 0; i < config.routes.length; i++) {\n const route = config.routes[i]\n const path = addLeadingSlash(route.path)\n routes.push({\n path: alias[path] || path,\n action: route.load\n })\n }\n\n const basename = config.router.basename\n const router = new UniversalRouter(routes, { baseUrl: basename || '' })\n app.onLaunch!()\n\n const render: LocationListener<LocationState> = throttle(async ({ location, action }) => {\n routerConfig.router.pathname = location.pathname\n let element\n try {\n element = await router.resolve(config.router.forcePath || location.pathname)\n } catch (error) {\n if (error.status === 404) {\n app.onPageNotFound?.({\n path: location.pathname\n })\n } else {\n throw new Error(error)\n }\n }\n if (!element) return\n const pageConfig = config.routes.find(r => {\n const path = addLeadingSlash(r.path)\n return path === location.pathname || alias[path] === location.pathname\n })\n let enablePullDownRefresh = false\n\n eventCenter.trigger('__taroRouterChange', {\n toLocation: {\n path: location.pathname\n }\n })\n\n if (pageConfig) {\n document.title = pageConfig.navigationBarTitleText ?? document.title\n enablePullDownRefresh = pageConfig.enablePullDownRefresh!\n }\n\n let shouldLoad = false\n\n if (action === 'POP') {\n unloadPage(Current.page)\n let delta = historyBackDelta\n while (delta-- > 1) {\n unloadPage(stacks.slice(-1)[0])\n }\n // 最终必须重置为 1\n setHistoryBackDelta(1)\n const prevIndex = stacks.reduceRight((p, s, i) => {\n if (p !== 0) return p\n else if (s.path === location.pathname + stringify(qs(i))) return i\n else return 0\n }, 0)\n const prev = stacks[prevIndex]\n if (prev) {\n showPage(prev, pageConfig, prevIndex)\n } else {\n shouldLoad = true\n }\n } else if (action === 'PUSH') {\n hidePage(Current.page)\n shouldLoad = true\n } else if (action === 'REPLACE') {\n if (isTabBar(config)) {\n hidePage(Current.page)\n\n const pathname = stripBasename(config.router.pathname, basename)\n const prevIndex = stacks.findIndex((r) => {\n return r.path?.replace(/\\?.*/g, '') === pathname\n })\n if (prevIndex > -1) {\n // tabbar 页且之前出现过,直接复用\n const prev = stacks[prevIndex]\n return showPage(prev, pageConfig, prevIndex)\n }\n } else {\n unloadPage(Current.page)\n }\n shouldLoad = true\n }\n\n if (shouldLoad) {\n const el = element.default ?? element\n const loadConfig = { ...pageConfig }\n delete loadConfig['path']\n delete loadConfig['load']\n\n const pathname = stripBasename(config.router.pathname, basename)\n const routerIndex = stacks.length\n\n const page = createPageConfig(\n enablePullDownRefresh ? runtimeHooks.createPullDownComponent?.(el, location.pathname, framework, routerConfig.PullDownRefresh) : el,\n pathname + stringify(qs(routerIndex)),\n {},\n loadConfig\n )\n loadPage(page, pageConfig, routerIndex)\n }\n }, 500)\n\n if (history.location.pathname === '/') {\n history.replace(prependBasename(routes[0].path as string + history.location.search))\n }\n\n render({ location: history.location, action: LocationAction.Push })\n\n app.onShow!(qs(stacks.length))\n\n return history.listen(render)\n}\n"],"names":["arguments","let","const","history","parsePath","pathToRegexp","decodeComponent","key","value","filterObject","requestAnimationFrame","container","SERVICE_IDENTIFIER","eventCenter","Current","stringify","prevIndex","prev","pathname","createPageConfig","LocationAction"],"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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"}