// AUTO-GENERATED by `wrnexus dev` - do not edit. // Typed routes support required, optional, and catch-all parameters. export interface Routes { "/": Record; "/404": Record; "/access": Record; "/architecture": Record; "/benchmarks": Record; "/changelog": Record; "/examples": Record; "/getting-started": Record; "/guides/api-routes": Record; "/guides/authentication": Record; "/guides/authorization": Record; "/guides/configuration-and-profiles": Record; "/guides/database": Record; "/guides/deployment": Record; "/guides/forms-and-validation": Record; "/guides/full-stack-auth-demo": Record; "/guides/i18n-and-themes": Record; "/guides/middleware": Record; "/guides/mobile": Record; "/guides/observability": Record; "/guides/pages-and-components": Record; "/guides/project-structure": Record; "/guides/pubsub": Record; "/guides/queues": Record; "/guides/realtime": Record; "/guides/routing": Record; "/guides/security": Record; "/guides/server-data": Record; "/guides/testing": Record; "/guides/troubleshooting": Record; "/guides/upgrading": Record; "/guides/uploads": Record; "/guides/workspaces-and-gateway": Record; "/language": Record; "/license": Record; "/packages": Record; "/packages/ai": Record; "/packages/auth": Record; "/packages/authz": Record; "/packages/benchmark": Record; "/packages/cache": Record; "/packages/captcha": Record; "/packages/cli": Record; "/packages/compiler": Record; "/packages/content": Record; "/packages/core": Record; "/packages/csr": Record; "/packages/db": Record; "/packages/dev-server": Record; "/packages/dev-toolbar": Record; "/packages/encryption": Record; "/packages/graphql": Record; "/packages/helpers": Record; "/packages/i18n": Record; "/packages/identity": Record; "/packages/image": Record; "/packages/jwt": Record; "/packages/language-server": Record; "/packages/mcp": Record; "/packages/mobile": Record; "/packages/native": Record; "/packages/oauth": Record; "/packages/observability": Record; "/packages/playground": Record; "/packages/plugin": Record; "/packages/pubsub": Record; "/packages/pwa": Record; "/packages/queue": Record; "/packages/reactive": Record; "/packages/realtime": Record; "/packages/router": Record; "/packages/security": Record; "/packages/ssr": Record; "/packages/store": Record; "/packages/styles": Record; "/packages/syntax": Record; "/packages/test": Record; "/packages/tracking": Record; "/packages/typecheck": Record; "/packages/ui": Record; "/packages/uploader": Record; "/packages/validation": Record; "/releases/0.2.15": Record; "/releases/0.2.17": Record; "/releases/0.2.18": Record; "/releases/0.2.19": Record; "/releases/0.2.20": Record; "/releases/0.2.21": Record; "/releases/0.2.22": Record; "/releases/0.2.23": Record; "/releases/0.2.24": Record; "/releases/0.2.25": Record; "/releases/0.2.26": Record; "/releases/0.2.27": Record; "/releases/0.2.28": Record; "/releases/0.2.29": Record; "/releases/0.2.30": Record; "/releases/0.2.31": Record; "/releases/0.2.32": Record; "/releases/0.2.33": Record; "/releases/0.2.34": Record; "/releases/0.2.35": Record; "/releases/0.2.36": Record; "/releases/0.2.37": Record; "/releases/0.2.38": Record; "/releases/0.2.39": Record; "/releases/0.2.40": Record; "/releases/0.2.41": Record; "/releases/0.2.42": Record; "/releases/0.2.43": Record; "/releases/0.2.44": Record; "/releases/0.2.45": Record; "/releases/0.2.46": Record; "/releases/0.2.47": Record; "/releases/0.2.48": Record; "/releases/0.2.49": Record; "/releases/0.2.50": Record; "/releases/0.2.51": Record; "/releases/0.2.52": Record; "/releases/0.2.53": Record; "/releases/0.2.54": Record; "/releases/0.2.55": Record; "/releases/0.2.56": Record; "/releases/0.2.57": Record; "/releases/0.2.58": Record; "/releases/0.2.59": Record; "/releases/0.2.60": Record; "/releases/0.2.61": Record; "/releases/0.2.62": Record; "/releases/0.2.63": Record; "/releases/0.2.64": Record; "/releases/0.2.65": Record; "/releases/0.2.66": Record; "/releases/0.2.67": Record; "/releases/0.2.68": Record; "/releases/0.2.69": Record; "/releases/0.2.70": Record; "/releases/0.2.71": Record; "/releases/0.2.72": Record; "/releases/0.2.73": Record; "/releases/0.2.74": Record; "/releases/0.2.75": Record; "/releases/0.2.76": Record; "/releases/0.2.77": Record; "/releases/0.2.78": Record; "/releases/0.2.79": Record; "/releases/0.3.0": Record; "/releases/0.3.1": Record; "/releases/0.3.2": Record; "/releases/0.3.3": Record; "/releases/0.3.4": Record; "/releases/0.3.5": Record; "/releases/0.3.6": Record; "/releases/0.4.0": Record; "/releases/0.5.0": Record; "/releases/0.5.1": Record; "/releases/0.5.10": Record; "/releases/0.5.11": Record; "/releases/0.5.12": Record; "/releases/0.5.13": Record; "/releases/0.6.0": Record; "/releases/0.7.0": Record; "/releases/0.8.0": Record; "/releases/0.8.1": Record; "/releases/0.8.2": Record; "/releases/0.8.3": Record; "/releases/0.8.4": Record; "/releases/0.8.5": Record; "/releases/0.8.6": Record; "/releases/0.8.7": Record; "/releases/0.8.8": Record; "/roadmap": Record; "/search": Record; "/security": Record; "/showcase": Record; "/support": Record; "/tutorial": Record; } export interface RouteNames { "index": "/"; "404": "/404"; "access": "/access"; "architecture": "/architecture"; "benchmarks": "/benchmarks"; "changelog": "/changelog"; "examples": "/examples"; "getting.started": "/getting-started"; "guides.api.routes": "/guides/api-routes"; "guides.authentication": "/guides/authentication"; "guides.authorization": "/guides/authorization"; "guides.configuration.and.profiles": "/guides/configuration-and-profiles"; "guides.database": "/guides/database"; "guides.deployment": "/guides/deployment"; "guides.forms.and.validation": "/guides/forms-and-validation"; "guides.full.stack.auth.demo": "/guides/full-stack-auth-demo"; "guides.i18n.and.themes": "/guides/i18n-and-themes"; "guides.middleware": "/guides/middleware"; "guides.mobile": "/guides/mobile"; "guides.observability": "/guides/observability"; "guides.pages.and.components": "/guides/pages-and-components"; "guides.project.structure": "/guides/project-structure"; "guides.pubsub": "/guides/pubsub"; "guides.queues": "/guides/queues"; "guides.realtime": "/guides/realtime"; "guides.routing": "/guides/routing"; "guides.security": "/guides/security"; "guides.server.data": "/guides/server-data"; "guides.testing": "/guides/testing"; "guides.troubleshooting": "/guides/troubleshooting"; "guides.upgrading": "/guides/upgrading"; "guides.uploads": "/guides/uploads"; "guides.workspaces.and.gateway": "/guides/workspaces-and-gateway"; "language": "/language"; "license": "/license"; "packages": "/packages"; "packages.ai": "/packages/ai"; "packages.auth": "/packages/auth"; "packages.authz": "/packages/authz"; "packages.benchmark": "/packages/benchmark"; "packages.cache": "/packages/cache"; "packages.captcha": "/packages/captcha"; "packages.cli": "/packages/cli"; "packages.compiler": "/packages/compiler"; "packages.content": "/packages/content"; "packages.core": "/packages/core"; "packages.csr": "/packages/csr"; "packages.db": "/packages/db"; "packages.dev.server": "/packages/dev-server"; "packages.dev.toolbar": "/packages/dev-toolbar"; "packages.encryption": "/packages/encryption"; "packages.graphql": "/packages/graphql"; "packages.helpers": "/packages/helpers"; "packages.i18n": "/packages/i18n"; "packages.identity": "/packages/identity"; "packages.image": "/packages/image"; "packages.jwt": "/packages/jwt"; "packages.language.server": "/packages/language-server"; "packages.mcp": "/packages/mcp"; "packages.mobile": "/packages/mobile"; "packages.native": "/packages/native"; "packages.oauth": "/packages/oauth"; "packages.observability": "/packages/observability"; "packages.playground": "/packages/playground"; "packages.plugin": "/packages/plugin"; "packages.pubsub": "/packages/pubsub"; "packages.pwa": "/packages/pwa"; "packages.queue": "/packages/queue"; "packages.reactive": "/packages/reactive"; "packages.realtime": "/packages/realtime"; "packages.router": "/packages/router"; "packages.security": "/packages/security"; "packages.ssr": "/packages/ssr"; "packages.store": "/packages/store"; "packages.styles": "/packages/styles"; "packages.syntax": "/packages/syntax"; "packages.test": "/packages/test"; "packages.tracking": "/packages/tracking"; "packages.typecheck": "/packages/typecheck"; "packages.ui": "/packages/ui"; "packages.uploader": "/packages/uploader"; "packages.validation": "/packages/validation"; "releases.0.2.15": "/releases/0.2.15"; "releases.0.2.17": "/releases/0.2.17"; "releases.0.2.18": "/releases/0.2.18"; "releases.0.2.19": "/releases/0.2.19"; "releases.0.2.20": "/releases/0.2.20"; "releases.0.2.21": "/releases/0.2.21"; "releases.0.2.22": "/releases/0.2.22"; "releases.0.2.23": "/releases/0.2.23"; "releases.0.2.24": "/releases/0.2.24"; "releases.0.2.25": "/releases/0.2.25"; "releases.0.2.26": "/releases/0.2.26"; "releases.0.2.27": "/releases/0.2.27"; "releases.0.2.28": "/releases/0.2.28"; "releases.0.2.29": "/releases/0.2.29"; "releases.0.2.30": "/releases/0.2.30"; "releases.0.2.31": "/releases/0.2.31"; "releases.0.2.32": "/releases/0.2.32"; "releases.0.2.33": "/releases/0.2.33"; "releases.0.2.34": "/releases/0.2.34"; "releases.0.2.35": "/releases/0.2.35"; "releases.0.2.36": "/releases/0.2.36"; "releases.0.2.37": "/releases/0.2.37"; "releases.0.2.38": "/releases/0.2.38"; "releases.0.2.39": "/releases/0.2.39"; "releases.0.2.40": "/releases/0.2.40"; "releases.0.2.41": "/releases/0.2.41"; "releases.0.2.42": "/releases/0.2.42"; "releases.0.2.43": "/releases/0.2.43"; "releases.0.2.44": "/releases/0.2.44"; "releases.0.2.45": "/releases/0.2.45"; "releases.0.2.46": "/releases/0.2.46"; "releases.0.2.47": "/releases/0.2.47"; "releases.0.2.48": "/releases/0.2.48"; "releases.0.2.49": "/releases/0.2.49"; "releases.0.2.50": "/releases/0.2.50"; "releases.0.2.51": "/releases/0.2.51"; "releases.0.2.52": "/releases/0.2.52"; "releases.0.2.53": "/releases/0.2.53"; "releases.0.2.54": "/releases/0.2.54"; "releases.0.2.55": "/releases/0.2.55"; "releases.0.2.56": "/releases/0.2.56"; "releases.0.2.57": "/releases/0.2.57"; "releases.0.2.58": "/releases/0.2.58"; "releases.0.2.59": "/releases/0.2.59"; "releases.0.2.60": "/releases/0.2.60"; "releases.0.2.61": "/releases/0.2.61"; "releases.0.2.62": "/releases/0.2.62"; "releases.0.2.63": "/releases/0.2.63"; "releases.0.2.64": "/releases/0.2.64"; "releases.0.2.65": "/releases/0.2.65"; "releases.0.2.66": "/releases/0.2.66"; "releases.0.2.67": "/releases/0.2.67"; "releases.0.2.68": "/releases/0.2.68"; "releases.0.2.69": "/releases/0.2.69"; "releases.0.2.70": "/releases/0.2.70"; "releases.0.2.71": "/releases/0.2.71"; "releases.0.2.72": "/releases/0.2.72"; "releases.0.2.73": "/releases/0.2.73"; "releases.0.2.74": "/releases/0.2.74"; "releases.0.2.75": "/releases/0.2.75"; "releases.0.2.76": "/releases/0.2.76"; "releases.0.2.77": "/releases/0.2.77"; "releases.0.2.78": "/releases/0.2.78"; "releases.0.2.79": "/releases/0.2.79"; "releases.0.3.0": "/releases/0.3.0"; "releases.0.3.1": "/releases/0.3.1"; "releases.0.3.2": "/releases/0.3.2"; "releases.0.3.3": "/releases/0.3.3"; "releases.0.3.4": "/releases/0.3.4"; "releases.0.3.5": "/releases/0.3.5"; "releases.0.3.6": "/releases/0.3.6"; "releases.0.4.0": "/releases/0.4.0"; "releases.0.5.0": "/releases/0.5.0"; "releases.0.5.1": "/releases/0.5.1"; "releases.0.5.10": "/releases/0.5.10"; "releases.0.5.11": "/releases/0.5.11"; "releases.0.5.12": "/releases/0.5.12"; "releases.0.5.13": "/releases/0.5.13"; "releases.0.6.0": "/releases/0.6.0"; "releases.0.7.0": "/releases/0.7.0"; "releases.0.8.0": "/releases/0.8.0"; "releases.0.8.1": "/releases/0.8.1"; "releases.0.8.2": "/releases/0.8.2"; "releases.0.8.3": "/releases/0.8.3"; "releases.0.8.4": "/releases/0.8.4"; "releases.0.8.5": "/releases/0.8.5"; "releases.0.8.6": "/releases/0.8.6"; "releases.0.8.7": "/releases/0.8.7"; "releases.0.8.8": "/releases/0.8.8"; "roadmap": "/roadmap"; "search": "/search"; "security": "/security"; "showcase": "/showcase"; "support": "/support"; "tutorial": "/tutorial"; } export interface RouteQueries { [path: string]: Record; } export type RoutePath = keyof Routes; export type RouteName = keyof RouteNames; export type RouteQuery

= P extends keyof RouteQueries ? RouteQueries[P] : Record; type RouteValue = string | readonly string[] | undefined; function encodeRouteValue(value: RouteValue, catchAll: boolean): string { if (value === undefined) return ""; const values = Array.isArray(value) ? value : catchAll ? String(value).split("/") : [String(value)]; return values.map((part) => encodeURIComponent(part)).join("/"); } function buildHref(path: string, params: Record = {}): string { const output: string[] = []; for (const segment of path.split("/").filter(Boolean)) { let name: string | undefined; let optional = false; let catchAll = false; if (segment.startsWith("[[") && segment.endsWith("]]")) { optional = true; name = segment.slice(2, -2); } else if (segment.startsWith("[") && segment.endsWith("]")) { name = segment.slice(1, -1); if (name.endsWith("?")) { optional = true; name = name.slice(0, -1); } } if (!name) { output.push(segment); continue; } if (name.startsWith("...")) { catchAll = true; name = name.slice(3); } const value = params[name]; if (value === undefined && optional) continue; if (value === undefined) throw new Error(`WRN-ROUTE-MISSING-PARAM: Missing route parameter '${name}'.`); output.push(encodeRouteValue(value, catchAll)); } return "/" + output.filter(Boolean).join("/"); } export function href

( path: P, ...args: keyof Routes[P] extends never ? [] : Record extends Routes[P] ? [params?: Routes[P]] : [params: Routes[P]] ): string { const params = (args[0] ?? {}) as Record; return buildHref(String(path), params); } export function route( name: N, ...args: keyof Routes[RouteNames[N]] extends never ? [params?: Routes[RouteNames[N]], query?: RouteQuery] : Record extends Routes[RouteNames[N]] ? [params?: Routes[RouteNames[N]], query?: RouteQuery] : [params: Routes[RouteNames[N]], query?: RouteQuery] ): string { const paths: Record = { "404": "/404", "index": "/", "access": "/access", "architecture": "/architecture", "benchmarks": "/benchmarks", "changelog": "/changelog", "examples": "/examples", "getting.started": "/getting-started", "guides.api.routes": "/guides/api-routes", "guides.authentication": "/guides/authentication", "guides.authorization": "/guides/authorization", "guides.configuration.and.profiles": "/guides/configuration-and-profiles", "guides.database": "/guides/database", "guides.deployment": "/guides/deployment", "guides.forms.and.validation": "/guides/forms-and-validation", "guides.full.stack.auth.demo": "/guides/full-stack-auth-demo", "guides.i18n.and.themes": "/guides/i18n-and-themes", "guides.middleware": "/guides/middleware", "guides.mobile": "/guides/mobile", "guides.observability": "/guides/observability", "guides.pages.and.components": "/guides/pages-and-components", "guides.project.structure": "/guides/project-structure", "guides.pubsub": "/guides/pubsub", "guides.queues": "/guides/queues", "guides.realtime": "/guides/realtime", "guides.routing": "/guides/routing", "guides.security": "/guides/security", "guides.server.data": "/guides/server-data", "guides.testing": "/guides/testing", "guides.troubleshooting": "/guides/troubleshooting", "guides.upgrading": "/guides/upgrading", "guides.uploads": "/guides/uploads", "guides.workspaces.and.gateway": "/guides/workspaces-and-gateway", "language": "/language", "license": "/license", "packages": "/packages", "packages.ai": "/packages/ai", "packages.auth": "/packages/auth", "packages.authz": "/packages/authz", "packages.benchmark": "/packages/benchmark", "packages.cache": "/packages/cache", "packages.captcha": "/packages/captcha", "packages.cli": "/packages/cli", "packages.compiler": "/packages/compiler", "packages.content": "/packages/content", "packages.core": "/packages/core", "packages.csr": "/packages/csr", "packages.db": "/packages/db", "packages.dev.server": "/packages/dev-server", "packages.dev.toolbar": "/packages/dev-toolbar", "packages.encryption": "/packages/encryption", "packages.graphql": "/packages/graphql", "packages.helpers": "/packages/helpers", "packages.i18n": "/packages/i18n", "packages.identity": "/packages/identity", "packages.image": "/packages/image", "packages.jwt": "/packages/jwt", "packages.language.server": "/packages/language-server", "packages.mcp": "/packages/mcp", "packages.mobile": "/packages/mobile", "packages.native": "/packages/native", "packages.oauth": "/packages/oauth", "packages.observability": "/packages/observability", "packages.playground": "/packages/playground", "packages.plugin": "/packages/plugin", "packages.pubsub": "/packages/pubsub", "packages.pwa": "/packages/pwa", "packages.queue": "/packages/queue", "packages.reactive": "/packages/reactive", "packages.realtime": "/packages/realtime", "packages.router": "/packages/router", "packages.security": "/packages/security", "packages.ssr": "/packages/ssr", "packages.store": "/packages/store", "packages.styles": "/packages/styles", "packages.syntax": "/packages/syntax", "packages.test": "/packages/test", "packages.tracking": "/packages/tracking", "packages.typecheck": "/packages/typecheck", "packages.ui": "/packages/ui", "packages.uploader": "/packages/uploader", "packages.validation": "/packages/validation", "releases.0.2.15": "/releases/0.2.15", "releases.0.2.17": "/releases/0.2.17", "releases.0.2.18": "/releases/0.2.18", "releases.0.2.19": "/releases/0.2.19", "releases.0.2.20": "/releases/0.2.20", "releases.0.2.21": "/releases/0.2.21", "releases.0.2.22": "/releases/0.2.22", "releases.0.2.23": "/releases/0.2.23", "releases.0.2.24": "/releases/0.2.24", "releases.0.2.25": "/releases/0.2.25", "releases.0.2.26": "/releases/0.2.26", "releases.0.2.27": "/releases/0.2.27", "releases.0.2.28": "/releases/0.2.28", "releases.0.2.29": "/releases/0.2.29", "releases.0.2.30": "/releases/0.2.30", "releases.0.2.31": "/releases/0.2.31", "releases.0.2.32": "/releases/0.2.32", "releases.0.2.33": "/releases/0.2.33", "releases.0.2.34": "/releases/0.2.34", "releases.0.2.35": "/releases/0.2.35", "releases.0.2.36": "/releases/0.2.36", "releases.0.2.37": "/releases/0.2.37", "releases.0.2.38": "/releases/0.2.38", "releases.0.2.39": "/releases/0.2.39", "releases.0.2.40": "/releases/0.2.40", "releases.0.2.41": "/releases/0.2.41", "releases.0.2.42": "/releases/0.2.42", "releases.0.2.43": "/releases/0.2.43", "releases.0.2.44": "/releases/0.2.44", "releases.0.2.45": "/releases/0.2.45", "releases.0.2.46": "/releases/0.2.46", "releases.0.2.47": "/releases/0.2.47", "releases.0.2.48": "/releases/0.2.48", "releases.0.2.49": "/releases/0.2.49", "releases.0.2.50": "/releases/0.2.50", "releases.0.2.51": "/releases/0.2.51", "releases.0.2.52": "/releases/0.2.52", "releases.0.2.53": "/releases/0.2.53", "releases.0.2.54": "/releases/0.2.54", "releases.0.2.55": "/releases/0.2.55", "releases.0.2.56": "/releases/0.2.56", "releases.0.2.57": "/releases/0.2.57", "releases.0.2.58": "/releases/0.2.58", "releases.0.2.59": "/releases/0.2.59", "releases.0.2.60": "/releases/0.2.60", "releases.0.2.61": "/releases/0.2.61", "releases.0.2.62": "/releases/0.2.62", "releases.0.2.63": "/releases/0.2.63", "releases.0.2.64": "/releases/0.2.64", "releases.0.2.65": "/releases/0.2.65", "releases.0.2.66": "/releases/0.2.66", "releases.0.2.67": "/releases/0.2.67", "releases.0.2.68": "/releases/0.2.68", "releases.0.2.69": "/releases/0.2.69", "releases.0.2.70": "/releases/0.2.70", "releases.0.2.71": "/releases/0.2.71", "releases.0.2.72": "/releases/0.2.72", "releases.0.2.73": "/releases/0.2.73", "releases.0.2.74": "/releases/0.2.74", "releases.0.2.75": "/releases/0.2.75", "releases.0.2.76": "/releases/0.2.76", "releases.0.2.77": "/releases/0.2.77", "releases.0.2.78": "/releases/0.2.78", "releases.0.2.79": "/releases/0.2.79", "releases.0.3.0": "/releases/0.3.0", "releases.0.3.1": "/releases/0.3.1", "releases.0.3.2": "/releases/0.3.2", "releases.0.3.3": "/releases/0.3.3", "releases.0.3.4": "/releases/0.3.4", "releases.0.3.5": "/releases/0.3.5", "releases.0.3.6": "/releases/0.3.6", "releases.0.4.0": "/releases/0.4.0", "releases.0.5.0": "/releases/0.5.0", "releases.0.5.1": "/releases/0.5.1", "releases.0.5.10": "/releases/0.5.10", "releases.0.5.11": "/releases/0.5.11", "releases.0.5.12": "/releases/0.5.12", "releases.0.5.13": "/releases/0.5.13", "releases.0.6.0": "/releases/0.6.0", "releases.0.7.0": "/releases/0.7.0", "releases.0.8.0": "/releases/0.8.0", "releases.0.8.1": "/releases/0.8.1", "releases.0.8.2": "/releases/0.8.2", "releases.0.8.3": "/releases/0.8.3", "releases.0.8.4": "/releases/0.8.4", "releases.0.8.5": "/releases/0.8.5", "releases.0.8.6": "/releases/0.8.6", "releases.0.8.7": "/releases/0.8.7", "releases.0.8.8": "/releases/0.8.8", "roadmap": "/roadmap", "search": "/search", "security": "/security", "showcase": "/showcase", "support": "/support", "tutorial": "/tutorial" } as Record; const output = buildHref(paths[name], (args[0] ?? {}) as Record); const query = args[1]; if (!query) return output; const search = new URLSearchParams(); for (const [key, value] of Object.entries(query)) if (value !== undefined && value !== null) search.set(key, String(value)); const text = search.toString(); return text ? `${output}?${text}` : output; }