{"version":3,"sources":["jsdelivr-header.js","/npm/laravel-js-routes@2.1.0/dist/laravel-js-routes.js"],"names":[],"mappings":"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","file":"/npm/laravel-js-routes@2.1.0/dist/laravel-js-routes.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/laravel-js-routes@2.1.0/dist/laravel-js-routes.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","'use strict';\n\nvar InfiniteLoopException = (function (Error) {\n    function InfiniteLoopException(message)\n    {\n        Error.call(this, message);\n        this.message = message;\n    }\n\n    if ( Error ) InfiniteLoopException.__proto__ = Error;\n    InfiniteLoopException.prototype = Object.create( Error && Error.prototype );\n    InfiniteLoopException.prototype.constructor = InfiniteLoopException;\n\n    return InfiniteLoopException;\n}(Error));\n\nvar NullResouceException = (function (Error) {\n    function NullResouceException(message)\n    {\n        Error.call(this, message);\n        this.message = message;\n    }\n\n    if ( Error ) NullResouceException.__proto__ = Error;\n    NullResouceException.prototype = Object.create( Error && Error.prototype );\n    NullResouceException.prototype.constructor = NullResouceException;\n\n    return NullResouceException;\n}(Error));\n\nvar InvalidHttpVerbException = (function (Error) {\n    function InvalidHttpVerbException(message)\n    {\n        Error.call(this, message);\n        this.message = message;\n    }\n\n    if ( Error ) InvalidHttpVerbException.__proto__ = Error;\n    InvalidHttpVerbException.prototype = Object.create( Error && Error.prototype );\n    InvalidHttpVerbException.prototype.constructor = InvalidHttpVerbException;\n\n    return InvalidHttpVerbException;\n}(Error));\n\nvar HttpVerb = function HttpVerb(verbString)\n{\n    // Make sure the verb is capitalized.\n    var verbs = verbString.toUpperCase();\n\n    // Check if this object supports multiple verbs at once.\n    // Typecasts string to array with one element if no separator is\n    // found.\n    verbs = verbs.split('/');\n        \n    HttpVerb.validate(verbs);\n    this.verbs = verbs;\n};\n\nHttpVerb.prototype.first = function first ()\n{\n    return this.verbs[0];\n};\n\nHttpVerb.prototype.all = function all ()\n{\n    return this.verbs;\n};\n\nHttpVerb.valid = function valid ()\n{\n    return ['GET', 'POST', 'PUT', 'PATCH', 'DELETE', 'HEAD'];\n};\n\nHttpVerb.validate = function validate (verbs)\n{\n    var validVerbs = HttpVerb.valid();\n    verbs.forEach(function (verb) {\n        if(validVerbs.indexOf(verb) === -1)\n        {\n            var msgValid = \"Http verb must be one of the following: \" + (verbs.join(', ')) + \".\"; \n            var msgGiven = \" '\" + verb + \"' given.\";\n            throw new InvalidHttpVerbException(msgValid + msgGiven);\n        }\n    });\n};\n\nvar UrlParams = function UrlParams(uriString)\n{\n    var this$1 = this;\n\n    this.url = uriString;\n    this.names = [];\n    this.placeholders = [];\n        \n    // Parse the url parameter placeholders with surrounding [] brackets.\n    var match = uriString.match(/\\{.*?\\}/);\n    while(match !== null)\n    {\n        match = match[0];\n\n        this$1.placeholders.push(match);\n        // Remove the brackets for parameter names.\n        this$1.names.push(match.slice(1, -1));\n\n        uriString = uriString.replace(match,'');\n        match = uriString.match(/\\{.*?\\}/);\n    }\n};\n\nUrlParams.prototype.areRequired = function areRequired ()\n{\n    if(this.placeholders.length > 0) { return true; }\n    return false;\n};\n\nUrlParams.prototype.required = function required ()\n{\n    return this.names;\n};\n\nUrlParams.prototype.bind = function bind (values, bindGetParameters)\n{\n        if ( bindGetParameters === void 0 ) bindGetParameters = false;\n\n    // Return base url if there's nothing to bind.\n    if(this.placeholders.length < 1 && bindGetParameters === false) { return this.url; }\n\n    // Bind using keys if provided. Do not process non-objects or null values\n    if(typeof values === 'object' && values !== null && this.objectHasRequiredKeys(values))\n    {\n        return this.bindWithKeys(values, bindGetParameters);\n    }\n\n    // Typecast a single value to array.\n    if(!Array.isArray(values)) { values = [values]; }\n        \n    return this.bindWithValues(values);\n};\n\n// Checks that a given object has all named properties matching param\n// names.\nUrlParams.prototype.objectHasRequiredKeys = function objectHasRequiredKeys (object)\n{\n        var this$1 = this;\n\n    for(var n = 0; n < this.names.length; n++)\n    {\n        if(!object.hasOwnProperty(this$1.names[n])) { return false; }\n    }\n    return true;\n};\n\n// Bind each value to a specified parameter key.\nUrlParams.prototype.bindWithKeys = function bindWithKeys (values, bindGetParameters)\n{\n        var this$1 = this;\n        if ( bindGetParameters === void 0 ) bindGetParameters = false;\n\n    var url = this.url;\n    for(var n = 0; n < this.names.length; n++)\n    {\n        var valueToBind = values[this$1.names[n]];\n        if(valueToBind === undefined || valueToBind === null) { this$1.bindingException(n); }\n\n        // Bind parameters.\n        url = url.replace(this$1.placeholders[n], valueToBind);\n\n        // Remove already bound values from the object\n        delete values[this$1.names[n]];\n    }\n\n    // Bind rest of the parameters as get params if specified\n    if(bindGetParameters) { url = this.bindGetParameters(url, values); }\n\n    return url;\n};\n\n// Bind values in given order without caring about keys.\nUrlParams.prototype.bindWithValues = function bindWithValues (values)\n{\n        var this$1 = this;\n\n    var url = this.url;\n    for(var n = 0; n < this.names.length; n++)\n    {\n        var valueToBind = values[n];\n        if(valueToBind === undefined || valueToBind === null) { this$1.bindingException(n); }\n\n        // Bind parameters.\n        url = url.replace(this$1.placeholders[n], valueToBind);\n    }\n    return url;\n};\n\nUrlParams.prototype.bindGetParameters = function bindGetParameters (url, values)\n{\n        \n    var names = Object.keys(values);\n    for(var index = 0; index < names.length; index++)\n    {\n        // Append the query indicator for first param\n        if(index === 0) { url += '?'; }\n\n        // For params after, start with & \n        else { url += '&'; }\n\n        // Append the ket value pair\n        url += (names[index]) + \"=\" + (values[names[index]]);\n    }\n    return url;\n};\n\nUrlParams.prototype.bindingException = function bindingException (paramIndex)\n{\n        var this$1 = this;\n\n    // Generate example method call for hint.\n    var required = [];\n    for(var n = 0; n < this.names.length; n++)\n    {\n        required.push(((this$1.names[n]) + \" : 'value'\"));\n    }\n\n    var msgError = \"Cannot bind required parameter '\" + (this.names[paramIndex]) + \"' - value does not exist.\";\n    var msgHint = \"Try binding with the required values: {\" + (required.join(', ')) + \"}\";\n    throw new NullResouceException((msgError + \"\\n\" + msgHint));\n};\n\nvar Route = function Route(verb, uri, action, group)\n{\n    if ( group === void 0 ) group = null;\n\n    this.httpVerbs = new HttpVerb(verb);\n    this.unprocessedUri = uri;\n    this.routeAction = action;\n    this.group = group;\n};\n\n// Return a string representation of the object.\nRoute.prototype.toString = function toString ()\n{\n    return this.toArray().join(' , ');\n};\n\n// Returns an array representation of the object.\nRoute.prototype.toArray = function toArray ()\n{\n    return [this.verbs().join('/'), this.uri(), this.action(), this.name()];\n};\n\n// Validation when substiting $ placeholder to avoid infinite loops.\nRoute.validateGroup = function validateGroup (string)\n{\n    if(typeof string !== 'string') { return; }\n    if(string.indexOf('$') !== -1)\n    {\n        throw new InfiniteLoopException('Resource name may not contain the dollar ($) character.');\n    }\n};\n\n// Substitute $ placeholders with resource name.\nRoute.prototype.substituteResource = function substituteResource (uriString)\n{\n        var this$1 = this;\n\n    Route.validateGroup(this.group);\n    while(uriString.indexOf('$') !== -1)\n    {\n        if(this$1.group === null || this$1.group === undefined) { throw new NullResouceException('This url requires a resource name.'); }\n        uriString = uriString.replace('$', this$1.group);\n    }\n    return uriString;\n};\n\n// Default to empty parameters.\nRoute.prototype.url = function url (paramValues, requireLeadingSlash)\n{\n        if ( paramValues === void 0 ) paramValues = null;\n        if ( requireLeadingSlash === void 0 ) requireLeadingSlash = true;\n\n    // Only create parameters once\n    var params = this.urlParameters();\n\n    // Check if required parameters were given\n    if(params.areRequired() && paramValues === null)\n    {\n        var required = params.required().join();\n        throw new NullResouceException((\"Url '\" + (this.uri()) + \"' requires the following parameters: (\" + required + \"). None given.\"));\n    }\n\n    // Replace placeholders and bind parameters\n    var bindGetParameters = this.verb().toLowerCase() === 'get';\n    var url = params.bind(paramValues, bindGetParameters);\n\n    // Append missing leading slash if required.\n    if(requireLeadingSlash && url.charAt(0) !== '/') { url = '/'+url; }\n    return url;\n};\n\nRoute.prototype.uri = function uri ()\n{\n    return this.substituteResource(this.unprocessedUri);\n};\n\nRoute.prototype.urlParameters = function urlParameters ()\n{\n    return new UrlParams(this.uri());\n};\n\nRoute.prototype.verb = function verb ()\n{\n    return this.httpVerbs.first();\n};\n\nRoute.prototype.method = function method ()\n{\n    return this.verb();\n};\n\nRoute.prototype.verbs = function verbs ()\n{\n    return this.httpVerbs.all();\n};\n\nRoute.prototype.action = function action ()\n{\n    return this.routeAction;\n};\n\nRoute.prototype.name = function name ()\n{\n    if(this.group !== null) { return ((this.group) + \".\" + (this.action())); }\n    return this.action();\n};\n\nvar InvalidRouteException = (function (Error) {\n    function InvalidRouteException(message)\n    {\n        Error.call(this, message);\n        this.message = message;\n    }\n\n    if ( Error ) InvalidRouteException.__proto__ = Error;\n    InvalidRouteException.prototype = Object.create( Error && Error.prototype );\n    InvalidRouteException.prototype.constructor = InvalidRouteException;\n\n    return InvalidRouteException;\n}(Error));\n\n/* Expose. */\n\n/* Expressions. */\nvar EXPRESSION_DOT = /\\./;\nvar EXPRESSION_LAST_DOT = /\\.[^.]*$/;\n\n/* Allowed alignment values. */\nvar LEFT = 'l';\nvar RIGHT = 'r';\nvar CENTER = 'c';\nvar DOT = '.';\nvar NULL = '';\n\nvar ALLIGNMENT = [LEFT, RIGHT, CENTER, DOT, NULL];\nvar MIN_CELL_SIZE = 3;\n\n/* Characters. */\nvar COLON = ':';\nvar DASH = '-';\nvar PIPE = '|';\nvar SPACE = ' ';\nvar NEW_LINE = '\\n';\n\n/* Create a table from a matrix of strings. */\nfunction markdownTable(table, options) {\n      var settings = options || {};\n      var delimiter = settings.delimiter;\n      var start = settings.start;\n      var end = settings.end;\n      var alignment = settings.align;\n      var calculateStringLength = settings.stringLength || lengthNoop;\n      var cellCount = 0;\n      var rowIndex = -1;\n      var rowLength = table.length;\n      var sizes = [];\n      var align;\n      var rule;\n      var rows;\n      var row;\n      var cells;\n      var index;\n      var position;\n      var size;\n      var value;\n      var spacing;\n      var before;\n      var after;\n\n      alignment = alignment ? alignment.concat() : [];\n\n    if (delimiter === null || delimiter === undefined) {\n            delimiter = SPACE + PIPE + SPACE;\n          \n    }\n\n    if (start === null || start === undefined) {\n            start = PIPE + SPACE;\n          \n    }\n\n    if (end === null || end === undefined) {\n            end = SPACE + PIPE;\n          \n    }\n\n    while (++rowIndex < rowLength) {\n            row = table[rowIndex];\n\n            index = -1;\n\n        if (row.length > cellCount) {\n                  cellCount = row.length;\n                \n        }\n\n        while (++index < cellCount) {\n                  position = row[index] ? dotindex(row[index]) : null;\n\n            if (!sizes[index]) {\n                        sizes[index] = MIN_CELL_SIZE;\n                      \n            }\n\n            if (position > sizes[index]) {\n                        sizes[index] = position;\n                      \n            }\n                \n        }\n          \n    }\n\n    if (typeof alignment === 'string') {\n            alignment = pad(cellCount, alignment).split('');\n          \n    }\n\n      /* Make sure only valid alignments are used. */\n      index = -1;\n\n    while (++index < cellCount) {\n            align = alignment[index];\n\n        if (typeof align === 'string') {\n                  align = align.charAt(0).toLowerCase();\n                \n        }\n\n        if (ALLIGNMENT.indexOf(align) === -1) {\n                  align = NULL;\n                \n        }\n\n            alignment[index] = align;\n          \n    }\n\n      rowIndex = -1;\n      rows = [];\n\n    while (++rowIndex < rowLength) {\n            row = table[rowIndex];\n\n            index = -1;\n            cells = [];\n\n        while (++index < cellCount) {\n                  value = row[index];\n\n                  value = stringify(value);\n\n            if (alignment[index] === DOT) {\n                        position = dotindex(value);\n\n                        size = sizes[index] +\n                              (EXPRESSION_DOT.test(value) ? 0 : 1) -\n                              (calculateStringLength(value) - position);\n\n                        cells[index] = value + pad(size - 1);\n                      \n            } else {\n                        cells[index] = value;\n                      \n            }\n                \n        }\n\n            rows[rowIndex] = cells;\n          \n    }\n\n      sizes = [];\n      rowIndex = -1;\n\n    while (++rowIndex < rowLength) {\n            cells = rows[rowIndex];\n\n            index = -1;\n\n        while (++index < cellCount) {\n                  value = cells[index];\n\n            if (!sizes[index]) {\n                        sizes[index] = MIN_CELL_SIZE;\n                      \n            }\n\n                  size = calculateStringLength(value);\n\n            if (size > sizes[index]) {\n                        sizes[index] = size;\n                      \n            }\n                \n        }\n          \n    }\n\n      rowIndex = -1;\n\n    while (++rowIndex < rowLength) {\n            cells = rows[rowIndex];\n\n            index = -1;\n\n        if (settings.pad !== false) {\n            while (++index < cellCount) {\n                        value = cells[index];\n\n                        position = sizes[index] - (calculateStringLength(value) || 0);\n                        spacing = pad(position);\n\n                if (alignment[index] === RIGHT || alignment[index] === DOT) {\n                              value = spacing + value;\n                            \n                } else if (alignment[index] === CENTER) {\n                              position /= 2;\n\n                    if (position % 1 === 0) {\n                                    before = position;\n                                    after = position;\n                                  \n                    } else {\n                                    before = position + 0.5;\n                                    after = position - 0.5;\n                                  \n                    }\n\n                              value = pad(before) + value + pad(after);\n                            \n                } else {\n                              value += spacing;\n                            \n                }\n\n                        cells[index] = value;\n                      \n            }\n                \n        }\n\n            rows[rowIndex] = cells.join(delimiter);\n          \n    }\n\n    if (settings.rule !== false) {\n            index = -1;\n            rule = [];\n\n        while (++index < cellCount) {\n                  /* When `pad` is false, make the rule the same size as the\n            * first row. */\n                if (settings.pad === false) {\n                            value = table[0][index];\n                            spacing = calculateStringLength(stringify(value));\n                            spacing = spacing > MIN_CELL_SIZE ? spacing : MIN_CELL_SIZE;\n                          \n                } else {\n                            spacing = sizes[index];\n                          \n                }\n\n                  align = alignment[index];\n\n                  /* When `align` is left, don't add colons. */\n                  value = align === RIGHT || align === NULL ? DASH : COLON;\n                  value += pad(spacing - 2, DASH);\n                  value += align !== LEFT && align !== NULL ? COLON : DASH;\n\n                  rule[index] = value;\n                \n        }\n\n            rows.splice(1, 0, rule.join(delimiter));\n          \n    }\n\n      return start + rows.join(end + NEW_LINE + start) + end;\n\n}\n\nfunction stringify(value) {\n      return (value === null || value === undefined) ? '' : String(value);\n\n}\n\n/* Get the length of `value`. */\nfunction lengthNoop(value) {\n      return String(value).length;\n\n}\n\n/* Get a string consisting of `length` `character`s. */\nfunction pad(length, character) {\n      return Array(length + 1).join(character || SPACE);\n\n}\n\n/* Get the position of the last dot in `value`. */\nfunction dotindex(value) {\n      var match = EXPRESSION_LAST_DOT.exec(value);\n\n      return match ? match.index + 1 : value.length;\n\n}\n\nvar RouteGroup = function RouteGroup(name, usesResources)\n{\n    if ( usesResources === void 0 ) usesResources = true;\n\n    this.name = name;\n    this.usesResources = usesResources;\n    this.customRoutes = {};\n};\n\n// Return a string representation of the object.\nRouteGroup.prototype.toString = function toString ()\n{\n    // Initialize table with headers\n    var tableRows = [['VERB', 'URI', 'ACTION', 'NAME']];\n    return markdownTable(tableRows.concat(this.toArray()), {align: 'l'});\n};\n\n// Returns an array representation of the object.\nRouteGroup.prototype.toArray = function toArray ()\n{\n        var this$1 = this;\n\n    var tableRows = [];\n    var routes = this.all();\n\n    for(var n = 0; n < routes.length; n++)\n    {\n        // Prepend the group name to the row.\n        var row = [this$1.name].concat(routes[n].toArray());\n\n        // Append route as an array to the table rows\n        tableRows.push(row);\n    }\n    return tableRows;\n};\n\n// Shorthand for returning resourceful action data.\nRouteGroup.resource = function resource (action)\n{\n    return RouteGroup.resources()[action];\n};\n\n// Return a list of all available resourceful actions.\nRouteGroup.resources = function resources ()\n{\n    var routes  = {\n        index: [ 'GET', '/$'],\n        create: [ 'GET', '/$/create'],\n        store: [ 'POST', '/$'],\n        show: [ 'GET', '/$/{$}'],\n        edit: [ 'GET', '/$/{$}/edit'],\n        update: [ 'PUT/PATCH', '/$/{$}'],\n        destroy: [ 'DELETE', '/$/{$}']\n    };       \n    return routes;\n};\n\n// Creates a Route object matching the given resource action.\nRouteGroup.prototype.resourceRoute = function resourceRoute (action)\n{\n    var route = RouteGroup.resource(action);\n    var verb = route[0];\n    var url = route[1];\n    return new Route(verb, url, action, this.name);\n};\n\n// Find the route matching the name(=action) of the route.\nRouteGroup.prototype.route = function route (name)\n{\n    // Check if name is registered as a custom route.\n    if(this.customRoutes[name] !== undefined) { return this.customRoutes[name]; }\n\n    // Check resource routes.\n    if(RouteGroup.resource(name) !== undefined && this.usesResources) { return this.resourceRoute(name); }\n            \n    throw new InvalidRouteException((\"Route '\" + name + \"' is not registered for group '\" + (this.name) + \"'.\"));\n};\n\n// Add all resource routes for the group.\nRouteGroup.prototype.resourceRoutes = function resourceRoutes ()\n{\n        var this$1 = this;\n\n    var routes = [];\n    var actions = Object.keys(RouteGroup.resources());\n    for(var n = 0; n < actions.length; n++)\n    {\n        routes.push(this$1.resourceRoute(actions[n]));\n    }\n    return routes;\n};\n\n// Return all custom routes added to this group.\nRouteGroup.prototype.registeredRoutes = function registeredRoutes ()\n{\n        var this$1 = this;\n\n    var routes = [];\n    var customRouteNames = Object.keys(this.customRoutes);\n    for(var n = 0; n < customRouteNames.length; n++)\n    {\n        routes.push(this$1.customRoutes[customRouteNames[n]]);\n    }\n    return routes;\n};\n\n// Return all 'registered' routes, including resources if applicable.\nRouteGroup.prototype.all = function all ()\n{\n    var routes = this.registeredRoutes();\n    // Add resource routes if in use.\n    if(this.usesResources) { routes = routes.concat(this.resourceRoutes()); }\n    return routes;\n};\n\n// Register a new custom route.\nRouteGroup.prototype.add = function add (verb, uri, action)\n{\n    var route = new Route(verb, uri, action, this.name);\n    this.customRoutes[action] = route;\n    return route;\n};\n\n// Register all routes in a given object using object keys as action names.\nRouteGroup.prototype.addAll = function addAll (routes)\n{\n        var this$1 = this;\n\n    var newRoutes = [];\n    var actions = Object.keys(routes);\n    for(var n = 0; n < actions.length; n++)\n    {\n        if(actions[n].indexOf('.') !== -1)\n        {\n            var msgErr = 'Registered actions should not contain the dot (.) character.';\n            var msgHint = \"Try calling addAll() on 'LaravelRoutes' to register by names instead of actions.\";\n            throw new InvalidRouteException((msgErr + \"\\n\" + msgHint));\n        }\n        var route = routes[actions[n]];\n        var routeObject  = this$1.add(route[0], route[1], actions[n]);\n        newRoutes.push(routeObject );\n    }\n    return newRoutes;\n};\n\n// Remove a register custom route.\nRouteGroup.prototype.remove = function remove (name)\n{\n    delete this.customRoutes[name];\n};\n\nvar RouteParser = function RouteParser () {};\n\nRouteParser.parseName = function parseName (string)\n{\n    if(typeof string !== 'string') { return null; }\n\n    var parts = string.split('.');\n    if(parts.length > 2) { throw new InvalidRouteException('Route name syntax with more than a single dot is not supported.'); }\n\n    // Return the headless route\n    if(parts.length === 1) { return {group: null, action: parts[0]}; }\n\n    // Return route belonging to a group\n    return {group: parts[0], action: parts[parts.length - 1]};\n};\n\nRouteParser.parseLaravelAction = function parseLaravelAction (action, format)\n{\n        if ( format === void 0 ) format = 'controller';\n\n    if(typeof action !== 'string') { return null; }\n         \n    // Malformed if action does not contain the @ symbol\n    if(action.indexOf('@') === -1) { throw new Error((\"Laravel style action '\" + action + \"' is malformed. The string must contain the @ character, for example: Controller@action\")); }\n\n    // Select the last part of the string delimited by @\n    var parts = action.split('@');\n\n    if(parts.length > 2) { throw new Error(\"Laravel style action should contain only one '@' character\"); }\n\n    // Default parse is in controller format\n    var parsedGroup = parts[0];\n    var parsedAction = parts[parts.length - 1];\n\n    if(format === 'object') { parsedGroup = RouteParser.objectCase(parsedGroup).toLowerCase(); }\n    if(format === 'object_snake') { parsedGroup = RouteParser.appendCase(parsedGroup, '_'); }\n    if(format === 'object_kebab') { parsedGroup = RouteParser.appendCase(parsedGroup, '-'); }\n\n    return {\n        group: parsedGroup,\n        action: parsedAction\n    };\n};\n\nRouteParser.objectCase = function objectCase (string)\n{\n    // Do not try formatting if the object is simply controller\n    if(string !== 'controller') { string = string.replace(/controller/ig, ''); }\n\n    return string;\n};\n\nRouteParser.appendCase = function appendCase (string, appendChar)\n{\n    string = RouteParser.objectCase(string);\n    var newString = '';\n\n    for(var n = 0; n < string.length; n++)\n    {\n        var charAt = string.substring(n, n+1);\n\n        // Append the given character before each uppercase character\n        // except for the first one\n        if(n !== 0 && charAt === charAt.toUpperCase()) { newString += appendChar; }\n        newString += charAt.toLowerCase();\n    }\n    return newString;\n};\n\nvar LaravelRouteBuilder = function LaravelRouteBuilder(verb, uri, action, format, registerMethod)\n{\n    if(typeof verb !== 'string') { throw new Error(\"No verb specified for the new route.\"); }\n    if(typeof uri !== 'string') { throw new Error(\"No uri specified for the new route.\"); }\n\n    // Get the group and action from the controller string\n    var r = RouteParser.parseLaravelAction(action, format);\n    if(r !== null)\n    {\n        this.action = r.action;\n        this.group = r.group;\n    }\n        \n    this.verb = verb;\n    this.uri = uri;\n    this.registerMethod = registerMethod;\n    this.warnings = [];\n    this.preRegister();\n};\n\n// Registers the route with a default generated name before name is called\nLaravelRouteBuilder.prototype.preRegister = function preRegister ()\n{\n    var route = this.registerMethod(this);\n};\n\n// Explicitly registers the route with a given name\nLaravelRouteBuilder.prototype.name = function name (name$1)\n{\n    if(!this.routeHasName())\n    {\n        if(!this.routeHasAction()) { this.warnings.push((\"Cannot register an ambiguous uri '\" + (this.uri) + \"' with neither action nor explicit name.\")); }\n        else { this.warnings.push((\"Registering uri '\" + (this.uri) + \"' with default name.\")); }\n    }\n    var r = RouteParser.parseName(name$1);\n    this.action = r.action;\n    this.group = r.group;\n\n    // Register the route in LaravelRoutes\n    var route = this.registerMethod(this);\n    return route;\n};\n\nLaravelRouteBuilder.prototype.routeHasName = function routeHasName ()\n{\n    return typeof name !== 'string';\n};\n\nLaravelRouteBuilder.prototype.routeHasAction = function routeHasAction ()\n{\n    return this.action === null;\n};\n\nLaravelRouteBuilder.prototype.hasWarnings = function hasWarnings ()\n{\n    return this.warnings.length > 0;\n};\n\nLaravelRouteBuilder.prototype.printWarnings = function printWarnings ()\n{\n        var this$1 = this;\n\n    for(var n = 0; n < this.warnings.length; n++)\n    {\n        var warning = this$1.warnings[n];\n        console.warn(warning);\n    }\n};\n\nvar LaravelRoutesSettings = function LaravelRoutesSettings(settings)\n{\n    if ( settings === void 0 ) settings = {};\n\n    this.defaultSettings = {\n        registration: {\n            strict: false,\n            explicit: false,\n            actionDefault: 'controller'\n        },\n        logging: {\n            warnings: true,\n            suggestions: true\n        }\n    };\n    this.settings = settings;\n};\n\nLaravelRoutesSettings.prototype.setting = function setting (setting$1)\n{\n    return this.findSetting(this.settings, setting$1, false);\n};\n\n// Get a default value for specified setting\nLaravelRoutesSettings.prototype.default = function default$1 (setting)\n{\n    return this.findSetting(this.defaultSettings, setting, true);\n};\n\nLaravelRoutesSettings.prototype.findSetting = function findSetting (tree, queryString, searchDefault)\n{\n        var this$1 = this;\n\n    var query = queryString.split('.');\n    var setting = null;\n\n    for(var n = 0; n < query.length; n++)\n    {\n        var currentQuery = query[n];\n        setting = this$1.initializeQuery(currentQuery, tree, searchDefault);\n\n        // If no setting was found, try resetting the search from default\n        // settings\n        if(setting === null && searchDefault === false)\n        {\n            this$1.default(queryString);\n            break;\n        }\n        tree = setting;\n    }\n    return setting;\n};\n\nLaravelRoutesSettings.prototype.initializeQuery = function initializeQuery (query, settings, searchDefault)\n{\n    // Check that given query is a string\n    if(typeof query !== 'string') { throw new Error((\"Queried setting must be a string. '\" + query + \"' given.\")); }\n\n    // Check if setting exists\n    if(settings !== undefined && settings[query] !== undefined) { return settings[query]; }\n\n    // Give an error if searching from default values and the value is not\n    // found\n    if(searchDefault) { throw new Error((\"Value of queried setting '\" + query + \"' does not exist.\")); }\n\n    // Return null if checking didn't exist\n    return null;\n};\n\nvar LaravelRoutes = function LaravelRoutes(settings)\n{\n    this.groups = {};\n    this.headlessRoutes = {};\n    this.settings = new LaravelRoutesSettings(settings);\n};\n\n// Get an existing route group or create a new group if the specified group\n// does not exist.\nLaravelRoutes.prototype.group = function group (name, usesResources)\n{\n    if(!this.hasGroup(name)) { this.groups[name] = new RouteGroup(name, usesResources); }\n        \n    // Change existing group's usesResources value.\n    if(usesResources !== undefined) { this.groups[name].usesResources = usesResources; }\n    return this.groups[name];\n};\n\nLaravelRoutes.prototype.setGroup = function setGroup (name, group)\n{\n    this.groups[name] = group;\n};\n\n// Returns a Route object with the given name.\nLaravelRoutes.prototype.route = function route (routeName)\n{\n    var results = RouteParser.parseName(routeName);\n    if(results.group === null && this.headlessRoutes[routeName] !== undefined)\n    {\n        return this.headlessRoutes[routeName];\n    }\n    return this.group(results.group).route(results.action);\n};\n\n// Returns a formatted list of all 'registered' routes.\nLaravelRoutes.prototype.list = function list ()\n{\n        var this$1 = this;\n\n    // Initialize table with headers\n    var tableRows = [['GROUP', 'VERB', 'URI', 'ACTION', 'NAME']];\n    var groupKeys = Object.keys(this.groups);\n\n    for(var n = 0; n < groupKeys.length; n++)\n    {\n        var group = this$1.groups[groupKeys[n]];\n        // Append the group data to rows.\n        tableRows = tableRows.concat(group.toArray());\n    }\n\n    var headlessKeys = Object.keys(this.headlessRoutes);\n    for(var n$1 = 0; n$1 < headlessKeys.length; n$1++)\n    {\n        // Prepend the empty cell for the group to row.\n        var row = [];\n        row.push([''].concat(this$1.headlessRoutes[headlessKeys[n$1]].toArray()));\n        tableRows = tableRows.concat(row);\n    }\n    return markdownTable(tableRows, {align: 'l'});\n};\n\n// Register a single route.\nLaravelRoutes.prototype.add = function add (verb, uri, action, groupName)\n{\n        if ( groupName === void 0 ) groupName = null;\n\n    // Check if group name is known.\n    if(typeof groupName === 'string') \n    {\n        // Register a new group without resource routes by default.\n        var group = this.group(groupName, false);\n        var route = group.add(verb, uri, action);\n        this.setGroup(groupName, group);\n        return route;\n    }\n    this.headlessRoutes[action] = new Route(verb, uri, action);\n    return this.headlessRoutes[action];\n};\n\n// Registers any routes in the given objects by using the object keys as\n// route names.\nLaravelRoutes.prototype.addAll = function addAll (routes)\n{\n        var this$1 = this;\n\n    var actions = Object.keys(routes);\n    for(var n = 0; n < actions.length; n++)\n    {\n        var results = RouteParser.parseName(actions[n]);\n        var route = routes[actions[n]];\n        var verb = route[0];\n        var url = route[1];\n        this$1.add(verb, url, results.action, results.group);\n    }\n};\n\nLaravelRoutes.prototype.count = function count ()\n{\n    return this.countHeadless() + this.countGrouped();\n};\n\nLaravelRoutes.prototype.countHeadless = function countHeadless ()\n{\n    return Object.keys(this.headlessRoutes).length;\n};\n\nLaravelRoutes.prototype.countGrouped = function countGrouped ()\n{\n        var this$1 = this;\n\n    var groupNames = Object.keys(this.groups);\n    var routeCount = 0;\n    for(var n = 0; n < groupNames.length; n++)\n    {\n        var group = this$1.groups[groupNames[n]];\n        // Add all routes for this group.\n        routeCount += group.all().length;\n    }\n    return routeCount;\n};\n\nLaravelRoutes.prototype.countGroups = function countGroups ()\n{\n    return Object.keys(this.groups).length;\n};\n\nLaravelRoutes.prototype.hasGroup = function hasGroup (name)\n{\n    if(this.groups[name] === undefined) { return false; }\n    return true;\n};\n\nLaravelRoutes.prototype.laravelStyleRoute = function laravelStyleRoute (verb, uri, action)\n{\n        var this$1 = this;\n\n    // Create a builder instance that has a callback for adding routes to\n    // this class\n    var format = this.settings.setting('registration.actionDefault');\n    var builder = new LaravelRouteBuilder(verb, uri, action, format, function (builder) {\n        return this$1.add(builder.verb, builder.uri, builder.action, builder.group);\n    });\n\n    // If strict mode is active, throw errors from builder warnings\n    if(builder.hasWarnings && this.settings.setting('registration.strict'))\n    {\n        throw new Error(builder.warnings);\n    }\n\n    // If warnings are enabled, print warnings in console\n    if(this.settings.setting('logging.warnings')) { builder.printWarnings(); }\n\n    return builder;\n};\n\nLaravelRoutes.prototype.get = function get (uri, action)\n{\n    var verb = 'GET';\n    return this.laravelStyleRoute(verb, uri, action);\n};\n\nLaravelRoutes.prototype.post = function post (uri, action)\n{\n    var verb = 'POST';\n    return this.laravelStyleRoute(verb, uri, action);\n};\n \nLaravelRoutes.prototype.delete = function delete$1 (uri, action)\n{\n    var verb = 'DELETE';\n    return this.laravelStyleRoute(verb, uri, action);\n};\n\nLaravelRoutes.prototype.put = function put (uri, action)\n{\n    var verb = 'PUT';\n    return this.laravelStyleRoute(verb, uri, action);\n};\n\nLaravelRoutes.prototype.patch = function patch (uri, action)\n{\n    var verb = 'PATCH';\n    return this.laravelStyleRoute(verb, uri, action);\n};\n\nmodule.exports = LaravelRoutes;\n"]}