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