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