UNPKG

single-page-express

Version:

📄 A client-side implementation of the Express route API.

1 lines • 90.7 kB
{"version":3,"file":"single-page-express.min.mjs","mappings":"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","sources":["webpack://single-page-express/./node_modules/path-to-regexp/dist/index.js","webpack://single-page-express/./node_modules/path-to-regexp-express4/index.js","webpack://single-page-express/./single-page-express.js","webpack://single-page-express/./node_modules/topbar/topbar.min.js","webpack://single-page-express/webpack/bootstrap","webpack://single-page-express/webpack/startup"],"sourcesContent":["\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TokenData = void 0;\nexports.parse = parse;\nexports.compile = compile;\nexports.match = match;\nexports.pathToRegexp = pathToRegexp;\nexports.stringify = stringify;\nconst DEFAULT_DELIMITER = \"/\";\nconst NOOP_VALUE = (value) => value;\nconst ID_START = /^[$_\\p{ID_Start}]$/u;\nconst ID_CONTINUE = /^[$\\u200c\\u200d\\p{ID_Continue}]$/u;\nconst DEBUG_URL = \"https://git.new/pathToRegexpError\";\nconst SIMPLE_TOKENS = {\n // Groups.\n \"{\": \"{\",\n \"}\": \"}\",\n // Reserved.\n \"(\": \"(\",\n \")\": \")\",\n \"[\": \"[\",\n \"]\": \"]\",\n \"+\": \"+\",\n \"?\": \"?\",\n \"!\": \"!\",\n};\n/**\n * Escape text for stringify to path.\n */\nfunction escapeText(str) {\n return str.replace(/[{}()\\[\\]+?!:*]/g, \"\\\\$&\");\n}\n/**\n * Escape a regular expression string.\n */\nfunction escape(str) {\n return str.replace(/[.+*?^${}()[\\]|/\\\\]/g, \"\\\\$&\");\n}\n/**\n * Tokenize input string.\n */\nfunction* lexer(str) {\n const chars = [...str];\n let i = 0;\n function name() {\n let value = \"\";\n if (ID_START.test(chars[++i])) {\n value += chars[i];\n while (ID_CONTINUE.test(chars[++i])) {\n value += chars[i];\n }\n }\n else if (chars[i] === '\"') {\n let pos = i;\n while (i < chars.length) {\n if (chars[++i] === '\"') {\n i++;\n pos = 0;\n break;\n }\n if (chars[i] === \"\\\\\") {\n value += chars[++i];\n }\n else {\n value += chars[i];\n }\n }\n if (pos) {\n throw new TypeError(`Unterminated quote at ${pos}: ${DEBUG_URL}`);\n }\n }\n if (!value) {\n throw new TypeError(`Missing parameter name at ${i}: ${DEBUG_URL}`);\n }\n return value;\n }\n while (i < chars.length) {\n const value = chars[i];\n const type = SIMPLE_TOKENS[value];\n if (type) {\n yield { type, index: i++, value };\n }\n else if (value === \"\\\\\") {\n yield { type: \"ESCAPED\", index: i++, value: chars[i++] };\n }\n else if (value === \":\") {\n const value = name();\n yield { type: \"PARAM\", index: i, value };\n }\n else if (value === \"*\") {\n const value = name();\n yield { type: \"WILDCARD\", index: i, value };\n }\n else {\n yield { type: \"CHAR\", index: i, value: chars[i++] };\n }\n }\n return { type: \"END\", index: i, value: \"\" };\n}\nclass Iter {\n constructor(tokens) {\n this.tokens = tokens;\n }\n peek() {\n if (!this._peek) {\n const next = this.tokens.next();\n this._peek = next.value;\n }\n return this._peek;\n }\n tryConsume(type) {\n const token = this.peek();\n if (token.type !== type)\n return;\n this._peek = undefined; // Reset after consumed.\n return token.value;\n }\n consume(type) {\n const value = this.tryConsume(type);\n if (value !== undefined)\n return value;\n const { type: nextType, index } = this.peek();\n throw new TypeError(`Unexpected ${nextType} at ${index}, expected ${type}: ${DEBUG_URL}`);\n }\n text() {\n let result = \"\";\n let value;\n while ((value = this.tryConsume(\"CHAR\") || this.tryConsume(\"ESCAPED\"))) {\n result += value;\n }\n return result;\n }\n}\n/**\n * Tokenized path instance.\n */\nclass TokenData {\n constructor(tokens) {\n this.tokens = tokens;\n }\n}\nexports.TokenData = TokenData;\n/**\n * Parse a string for the raw tokens.\n */\nfunction parse(str, options = {}) {\n const { encodePath = NOOP_VALUE } = options;\n const it = new Iter(lexer(str));\n function consume(endType) {\n const tokens = [];\n while (true) {\n const path = it.text();\n if (path)\n tokens.push({ type: \"text\", value: encodePath(path) });\n const param = it.tryConsume(\"PARAM\");\n if (param) {\n tokens.push({\n type: \"param\",\n name: param,\n });\n continue;\n }\n const wildcard = it.tryConsume(\"WILDCARD\");\n if (wildcard) {\n tokens.push({\n type: \"wildcard\",\n name: wildcard,\n });\n continue;\n }\n const open = it.tryConsume(\"{\");\n if (open) {\n tokens.push({\n type: \"group\",\n tokens: consume(\"}\"),\n });\n continue;\n }\n it.consume(endType);\n return tokens;\n }\n }\n const tokens = consume(\"END\");\n return new TokenData(tokens);\n}\n/**\n * Compile a string to a template function for the path.\n */\nfunction compile(path, options = {}) {\n const { encode = encodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;\n const data = path instanceof TokenData ? path : parse(path, options);\n const fn = tokensToFunction(data.tokens, delimiter, encode);\n return function path(data = {}) {\n const [path, ...missing] = fn(data);\n if (missing.length) {\n throw new TypeError(`Missing parameters: ${missing.join(\", \")}`);\n }\n return path;\n };\n}\nfunction tokensToFunction(tokens, delimiter, encode) {\n const encoders = tokens.map((token) => tokenToFunction(token, delimiter, encode));\n return (data) => {\n const result = [\"\"];\n for (const encoder of encoders) {\n const [value, ...extras] = encoder(data);\n result[0] += value;\n result.push(...extras);\n }\n return result;\n };\n}\n/**\n * Convert a single token into a path building function.\n */\nfunction tokenToFunction(token, delimiter, encode) {\n if (token.type === \"text\")\n return () => [token.value];\n if (token.type === \"group\") {\n const fn = tokensToFunction(token.tokens, delimiter, encode);\n return (data) => {\n const [value, ...missing] = fn(data);\n if (!missing.length)\n return [value];\n return [\"\"];\n };\n }\n const encodeValue = encode || NOOP_VALUE;\n if (token.type === \"wildcard\" && encode !== false) {\n return (data) => {\n const value = data[token.name];\n if (value == null)\n return [\"\", token.name];\n if (!Array.isArray(value) || value.length === 0) {\n throw new TypeError(`Expected \"${token.name}\" to be a non-empty array`);\n }\n return [\n value\n .map((value, index) => {\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \"${token.name}/${index}\" to be a string`);\n }\n return encodeValue(value);\n })\n .join(delimiter),\n ];\n };\n }\n return (data) => {\n const value = data[token.name];\n if (value == null)\n return [\"\", token.name];\n if (typeof value !== \"string\") {\n throw new TypeError(`Expected \"${token.name}\" to be a string`);\n }\n return [encodeValue(value)];\n };\n}\n/**\n * Transform a path into a match function.\n */\nfunction match(path, options = {}) {\n const { decode = decodeURIComponent, delimiter = DEFAULT_DELIMITER } = options;\n const { regexp, keys } = pathToRegexp(path, options);\n const decoders = keys.map((key) => {\n if (decode === false)\n return NOOP_VALUE;\n if (key.type === \"param\")\n return decode;\n return (value) => value.split(delimiter).map(decode);\n });\n return function match(input) {\n const m = regexp.exec(input);\n if (!m)\n return false;\n const path = m[0];\n const params = Object.create(null);\n for (let i = 1; i < m.length; i++) {\n if (m[i] === undefined)\n continue;\n const key = keys[i - 1];\n const decoder = decoders[i - 1];\n params[key.name] = decoder(m[i]);\n }\n return { path, params };\n };\n}\nfunction pathToRegexp(path, options = {}) {\n const { delimiter = DEFAULT_DELIMITER, end = true, sensitive = false, trailing = true, } = options;\n const keys = [];\n const sources = [];\n const flags = sensitive ? \"\" : \"i\";\n const paths = Array.isArray(path) ? path : [path];\n const items = paths.map((path) => path instanceof TokenData ? path : parse(path, options));\n for (const { tokens } of items) {\n for (const seq of flatten(tokens, 0, [])) {\n const regexp = sequenceToRegExp(seq, delimiter, keys);\n sources.push(regexp);\n }\n }\n let pattern = `^(?:${sources.join(\"|\")})`;\n if (trailing)\n pattern += `(?:${escape(delimiter)}$)?`;\n pattern += end ? \"$\" : `(?=${escape(delimiter)}|$)`;\n const regexp = new RegExp(pattern, flags);\n return { regexp, keys };\n}\n/**\n * Generate a flat list of sequence tokens from the given tokens.\n */\nfunction* flatten(tokens, index, init) {\n if (index === tokens.length) {\n return yield init;\n }\n const token = tokens[index];\n if (token.type === \"group\") {\n const fork = init.slice();\n for (const seq of flatten(token.tokens, 0, fork)) {\n yield* flatten(tokens, index + 1, seq);\n }\n }\n else {\n init.push(token);\n }\n yield* flatten(tokens, index + 1, init);\n}\n/**\n * Transform a flat sequence of tokens into a regular expression.\n */\nfunction sequenceToRegExp(tokens, delimiter, keys) {\n let result = \"\";\n let backtrack = \"\";\n let isSafeSegmentParam = true;\n for (let i = 0; i < tokens.length; i++) {\n const token = tokens[i];\n if (token.type === \"text\") {\n result += escape(token.value);\n backtrack += token.value;\n isSafeSegmentParam || (isSafeSegmentParam = token.value.includes(delimiter));\n continue;\n }\n if (token.type === \"param\" || token.type === \"wildcard\") {\n if (!isSafeSegmentParam && !backtrack) {\n throw new TypeError(`Missing text after \"${token.name}\": ${DEBUG_URL}`);\n }\n if (token.type === \"param\") {\n result += `(${negate(delimiter, isSafeSegmentParam ? \"\" : backtrack)}+)`;\n }\n else {\n result += `([\\\\s\\\\S]+)`;\n }\n keys.push(token);\n backtrack = \"\";\n isSafeSegmentParam = false;\n continue;\n }\n }\n return result;\n}\nfunction negate(delimiter, backtrack) {\n if (backtrack.length < 2) {\n if (delimiter.length < 2)\n return `[^${escape(delimiter + backtrack)}]`;\n return `(?:(?!${escape(delimiter)})[^${escape(backtrack)}])`;\n }\n if (delimiter.length < 2) {\n return `(?:(?!${escape(backtrack)})[^${escape(delimiter)}])`;\n }\n return `(?:(?!${escape(backtrack)}|${escape(delimiter)})[\\\\s\\\\S])`;\n}\n/**\n * Stringify token data into a path string.\n */\nfunction stringify(data) {\n return data.tokens\n .map(function stringifyToken(token, index, tokens) {\n if (token.type === \"text\")\n return escapeText(token.value);\n if (token.type === \"group\") {\n return `{${token.tokens.map(stringifyToken).join(\"\")}}`;\n }\n const isSafe = isNameSafe(token.name) && isNextNameSafe(tokens[index + 1]);\n const key = isSafe ? token.name : JSON.stringify(token.name);\n if (token.type === \"param\")\n return `:${key}`;\n if (token.type === \"wildcard\")\n return `*${key}`;\n throw new TypeError(`Unexpected token: ${token}`);\n })\n .join(\"\");\n}\nfunction isNameSafe(name) {\n const [first, ...rest] = name;\n if (!ID_START.test(first))\n return false;\n return rest.every((char) => ID_CONTINUE.test(char));\n}\nfunction isNextNameSafe(token) {\n if ((token === null || token === void 0 ? void 0 : token.type) !== \"text\")\n return true;\n return !ID_CONTINUE.test(token.value[0]);\n}\n//# sourceMappingURL=index.js.map","/**\n * Expose `pathToRegexp`.\n */\n\nmodule.exports = pathToRegexp;\n\n/**\n * Match matching groups in a regular expression.\n */\nvar MATCHING_GROUP_REGEXP = /\\\\.|\\((?:\\?<(.*?)>)?(?!\\?)/g;\n\n/**\n * Normalize the given path string,\n * returning a regular expression.\n *\n * An empty array should be passed,\n * which will contain the placeholder\n * key names. For example \"/user/:id\" will\n * then contain [\"id\"].\n *\n * @param {String|RegExp|Array} path\n * @param {Array} keys\n * @param {Object} options\n * @return {RegExp}\n * @api private\n */\n\nfunction pathToRegexp(path, keys, options) {\n options = options || {};\n keys = keys || [];\n var strict = options.strict;\n var end = options.end !== false;\n var flags = options.sensitive ? '' : 'i';\n var lookahead = options.lookahead !== false;\n var extraOffset = 0;\n var keysOffset = keys.length;\n var i = 0;\n var name = 0;\n var pos = 0;\n var backtrack = '';\n var m;\n\n if (path instanceof RegExp) {\n while (m = MATCHING_GROUP_REGEXP.exec(path.source)) {\n if (m[0][0] === '\\\\') continue;\n\n keys.push({\n name: m[1] || name++,\n optional: false,\n offset: m.index\n });\n }\n\n return path;\n }\n\n if (Array.isArray(path)) {\n // Map array parts into regexps and return their source. We also pass\n // the same keys and options instance into every generation to get\n // consistent matching groups before we join the sources together.\n path = path.map(function (value) {\n return pathToRegexp(value, keys, options).source;\n });\n\n return new RegExp(path.join('|'), flags);\n }\n\n if (typeof path !== 'string') {\n throw new TypeError('path must be a string, array of strings, or regular expression');\n }\n\n path = path.replace(\n /\\\\.|(\\/)?(\\.)?:(\\w+)(\\(.*?\\))?(\\*)?(\\?)?|[.*]|\\/\\(/g,\n function (match, slash, format, key, capture, star, optional, offset) {\n if (match[0] === '\\\\') {\n backtrack += match;\n pos += 2;\n return match;\n }\n\n if (match === '.') {\n backtrack += '\\\\.';\n extraOffset += 1;\n pos += 1;\n return '\\\\.';\n }\n\n if (slash || format) {\n backtrack = '';\n } else {\n backtrack += path.slice(pos, offset);\n }\n\n pos = offset + match.length;\n\n if (match === '*') {\n extraOffset += 3;\n return '(.*)';\n }\n\n if (match === '/(') {\n backtrack += '/';\n extraOffset += 2;\n return '/(?:';\n }\n\n slash = slash || '';\n format = format ? '\\\\.' : '';\n optional = optional || '';\n capture = capture ?\n capture.replace(/\\\\.|\\*/, function (m) { return m === '*' ? '(.*)' : m; }) :\n (backtrack ? '((?:(?!/|' + backtrack + ').)+?)' : '([^/' + format + ']+?)');\n\n keys.push({\n name: key,\n optional: !!optional,\n offset: offset + extraOffset\n });\n\n var result = '(?:'\n + format + slash + capture\n + (star ? '((?:[/' + format + '].+?)?)' : '')\n + ')'\n + optional;\n\n extraOffset += result.length - match.length;\n\n return result;\n });\n\n // This is a workaround for handling unnamed matching groups.\n while (m = MATCHING_GROUP_REGEXP.exec(path)) {\n if (m[0][0] === '\\\\') continue;\n\n if (keysOffset + i === keys.length || keys[keysOffset + i].offset > m.index) {\n keys.splice(keysOffset + i, 0, {\n name: name++, // Unnamed matching groups must be consistently linear.\n optional: false,\n offset: m.index\n });\n }\n\n i++;\n }\n\n path += strict ? '' : path[path.length - 1] === '/' ? '?' : '/?';\n\n // If the path is non-ending, match until the end or a slash.\n if (end) {\n path += '$';\n } else if (path[path.length - 1] !== '/') {\n path += lookahead ? '(?=/|$)' : '(?:/|$)';\n }\n\n return new RegExp('^' + path, flags);\n};\n","const pathToRegexpMatch = require('path-to-regexp').match // route parser for express 5+\nconst pathToRegexpMatchExpress4 = require('path-to-regexp-express4') // route parser for express 4; express 3 and below are not supported\nconst parser = new window.DOMParser() // used by the default render method\n\nfunction singlePageExpress (options) {\n // #region constructor params and top-level variable declarations\n const app = {} // instance of the router app\n app.expressVersion = options.expressVersion // which version of the express api to target\n if (app.expressVersion !== 5 && (parseInt(app.expressVersion) <= 4)) app.expressVersion = 4 // permit express 4 and 5+\n if (!app.expressVersion) app.expressVersion = 5 // default to express 5\n app.appVars = {} // for app.set() / app.get()\n app.templatingEngine = options.templatingEngine // which templating engine to use\n app.templates = options.templates // templates to render\n if (!app.templates) console.warn('single-page-express: no templates are loaded; as such the default render method will just print the template name and model to the console.')\n app.routes = {} // list of functions to execute when trying to see if this route matches one of the known patterns indexed by original route method#string\n app.routeCallbacks = {} // list of functions to execute when the route is invoked\n app.defaultTarget = options.defaultTarget // which element to replace by default\n app.defaultTargets = app.defaultTarget ? [app.defaultTarget].concat(options.defaultTargets || []) : options.defaultTargets || [] // which elements to replace by default\n if (!app.defaultTargets.length) app.defaultTargets = ['body'] // body tag is the default target if none is set\n app.beforeEveryRender = options.beforeEveryRender // function to execute before every DOM update if using the default render method\n app.updateDelay = options.updateDelay // how long to delay after executing app.beforeEveryRender or this.beforeRender before performing the DOM update\n app.afterEveryRender = options.afterEveryRender // function to execute after every DOM update if using the default render method\n app.postRenderCallbacks = options.postRenderCallbacks || {} // list of callback functions to execute after a render event occurs\n app.topbarEnabled = !options.disableTopbar // whether to use topbar https://buunguyen.github.io/topbar/\n app.topBarRoutes = options.topBarRoutes // which routes to use the topbar on; defaults to all if this option is not supplied\n if (app.topbarEnabled || app.topBarRoutes) {\n app.topbar = require('topbar')\n app.topbar.config(options.topbarConfig || {\n // default options\n barColors: {\n 0: 'rgba(0, 0, 0, .7)',\n '1.0': 'rgba(0, 0, 0, .7)'\n }\n })\n }\n app.alwaysScrollTop = options.alwaysScrollTop // always scroll to the top of the page after every render\n app.urls = {} // list of URLs that have been visited and metadata about them\n let currentViewTransition // a global reference to the current view transition so we can know when it has ended\n\n // taken from https://expressjs.com/en/api.html#routing-methods\n const httpVerbs = [\n 'checkout',\n 'copy',\n 'delete',\n 'get',\n 'head',\n 'lock',\n 'merge',\n 'mkactivity',\n 'mkcol',\n 'move',\n 'm-search',\n 'notify',\n 'options',\n 'patch',\n 'post',\n 'purge',\n 'put',\n 'report',\n 'search',\n 'subscribe',\n 'trace',\n 'unlock',\n 'unsubscribe'\n ]\n\n // #endregion\n\n // #region express app\n\n // express app object settings\n app.appVars['case sensitive routing'] = false\n app.appVars.env = 'production'\n app.appVars['query parser'] = true\n app.appVars['strict routing'] = false\n app.appVars['subdomain offset'] = 2\n // the other settings are not supported\n\n // express app object properties\n app.locals = {} // stubbed out\n app.mountpath = '' // stubbed out\n\n // express app object events\n app.mount = () => {} // stubbed out\n\n // registers a route and handles middleware\n function routeHandler (method, middleware, route, callback) {\n let callbackWithMiddlewareExecutingFirst = middleware\n if (callback) callbackWithMiddlewareExecutingFirst = (req, res) => middleware(req, res, () => callback(req, res))\n registerRoute(method, route, callbackWithMiddlewareExecutingFirst)\n }\n\n // express app object methods\n app.all = (middleware, route, callback) => { routeHandler('all', middleware, route, callback) }\n app.delete = (middleware, route, callback) => { routeHandler('delete', middleware, route, callback) }\n app.disable = (name) => { app.appVars[name] = false }\n app.disabled = (name) => { return !app.appVars[name] }\n app.enable = (name) => { app.appVars[name] = true }\n app.enabled = (name) => { return !!app.appVars[name] }\n app.engine = () => {} // stubbed out\n app.get = (middleware, name, callback) => { // in the express docs, this method is overloaded and can be used for more than one thing based on the number of arguments\n if (!callback) return app.appVars[name]\n else return routeHandler('get', middleware, name, callback)\n }\n app.listen = () => {} // stubbed out\n httpVerbs.forEach(method => { // app.METHOD\n // some method names are overloaded and can be used for more than one thing based on the number of arguments\n if (!app[method]) app[method] = (middleware, route, callback) => routeHandler(method, middleware, route, callback)\n })\n app.param = () => {} // stubbed out\n app.path = () => {} // stubbed out\n app.post = (middleware, route, callback) => { routeHandler('post', middleware, route, callback) }\n app.put = (middleware, route, callback) => { routeHandler('put', middleware, route, callback) }\n // app.render will be defined below\n app.route = (route) => {\n const ret = { route }\n httpVerbs.forEach(method => { ret[method] = (middleware, callback) => { routeHandler(method, middleware, route, callback) } })\n return ret\n }\n app.set = (name, val) => { app.appVars[name] = val }\n app.use = () => {} // stubbed out\n app.triggerRoute = handleRoute // single-page-express-exclusive method\n\n // #endregion\n\n // #region request object\n\n const defaultReq = {} // this is later extended during a \"request\" cycle\n\n // request object properties\n defaultReq.app = app\n defaultReq.baseUrl = '' // stubbed out\n // req.body is defined at runtime below\n // req.cookies is defined at runtime below\n defaultReq.fresh = true // stubbed out\n defaultReq.hostname = window.location.hostname\n defaultReq.ip = '127.0.0.1' // stubbed out\n defaultReq.ips = [] // stubbed out\n // req.method is defined at runtime below\n // req.originalUrl is defined at runtime below\n // req.params is defined at runtime below\n // req.path is defined at runtime below\n // req.protocol is defined at runtime below\n // req.query is defined at runtime below\n // req.res is defined below because res is not initialized yet\n // req.route is defined at runtime below\n // req.secure is defined at runtime below\n defaultReq.signedCookies = {} // stubbed out\n defaultReq.stale = false // stubbed out\n // req.subdomains is defined at runtime below\n defaultReq.xhr = true // stubbed out\n\n // request object methods\n defaultReq.accepts = () => {} // stubbed out\n defaultReq.acceptsCharsets = () => {} // stubbed out\n defaultReq.acceptsEncodings = () => {} // stubbed out\n defaultReq.acceptsLanguages = () => {} // stubbed out\n defaultReq.get = () => {} // stubbed out\n defaultReq.is = () => {} // stubbed out\n defaultReq.param = () => {} // stubbed out\n defaultReq.range = () => {} // stubbed out\n\n // new properties\n defaultReq.singlePageExpress = true\n\n // #endregion\n\n // #region response object\n\n const res = {}\n\n // response object properties\n res.app = app\n res.headersSent = false // stubbed out\n res.locals = {} // stubbed out\n //