Socket
Socket
Sign inDemoInstall

@tanstack/router

Package Overview
Dependencies
Maintainers
1
Versions
104
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@tanstack/router - npm Package Compare versions

Comparing version 0.0.1-beta.82 to 0.0.1-beta.83

2

build/cjs/router.js

@@ -745,3 +745,3 @@ /**

}
const href = `${next.pathname}${next.searchStr}${next.hash ? `#${next.hash}` : ''}`;
const href = `${next.pathname}${next.searchStr}${next.hash ? `${next.hash}` : ''}`;
this.history[nextAction === 'push' ? 'push' : 'replace'](href, {

@@ -748,0 +748,0 @@ id,

@@ -1418,3 +1418,3 @@ /**

}
const href = `${next.pathname}${next.searchStr}${next.hash ? `#${next.hash}` : ''}`;
const href = `${next.pathname}${next.searchStr}${next.hash ? `${next.hash}` : ''}`;
this.history[nextAction === 'push' ? 'push' : 'replace'](href, {

@@ -1421,0 +1421,0 @@ id,

@@ -14,7 +14,7 @@ {

"name": "tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
"uid": "ea8f-32"
"uid": "3f93-32"
},
{
"name": "tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js",
"uid": "ea8f-34"
"uid": "3f93-34"
}

@@ -30,35 +30,35 @@ ]

{
"uid": "ea8f-36",
"uid": "3f93-36",
"name": "history.ts"
},
{
"uid": "ea8f-38",
"uid": "3f93-38",
"name": "utils.ts"
},
{
"uid": "ea8f-40",
"uid": "3f93-40",
"name": "path.ts"
},
{
"uid": "ea8f-42",
"uid": "3f93-42",
"name": "qss.ts"
},
{
"uid": "ea8f-44",
"uid": "3f93-44",
"name": "route.ts"
},
{
"uid": "ea8f-48",
"uid": "3f93-48",
"name": "searchParams.ts"
},
{
"uid": "ea8f-50",
"uid": "3f93-50",
"name": "router.ts"
},
{
"uid": "ea8f-52",
"uid": "3f93-52",
"name": "routeMatch.ts"
},
{
"uid": "ea8f-54",
"uid": "3f93-54",
"name": "index.ts"

@@ -70,3 +70,3 @@ }

"name": "store/build/esm/index.js",
"uid": "ea8f-46"
"uid": "3f93-46"
}

@@ -81,80 +81,80 @@ ]

"nodeParts": {
"ea8f-32": {
"3f93-32": {
"renderedLength": 199,
"gzipLength": 134,
"brotliLength": 0,
"mainUid": "ea8f-31"
"mainUid": "3f93-31"
},
"ea8f-34": {
"3f93-34": {
"renderedLength": 48,
"gzipLength": 65,
"brotliLength": 0,
"mainUid": "ea8f-33"
"mainUid": "3f93-33"
},
"ea8f-36": {
"3f93-36": {
"renderedLength": 5639,
"gzipLength": 1385,
"brotliLength": 0,
"mainUid": "ea8f-35"
"mainUid": "3f93-35"
},
"ea8f-38": {
"3f93-38": {
"renderedLength": 2821,
"gzipLength": 990,
"brotliLength": 0,
"mainUid": "ea8f-37"
"mainUid": "3f93-37"
},
"ea8f-40": {
"3f93-40": {
"renderedLength": 5705,
"gzipLength": 1352,
"brotliLength": 0,
"mainUid": "ea8f-39"
"mainUid": "3f93-39"
},
"ea8f-42": {
"3f93-42": {
"renderedLength": 1395,
"gzipLength": 558,
"brotliLength": 0,
"mainUid": "ea8f-41"
"mainUid": "3f93-41"
},
"ea8f-44": {
"3f93-44": {
"renderedLength": 3715,
"gzipLength": 1056,
"brotliLength": 0,
"mainUid": "ea8f-43"
"mainUid": "3f93-43"
},
"ea8f-46": {
"3f93-46": {
"renderedLength": 1384,
"gzipLength": 502,
"brotliLength": 0,
"mainUid": "ea8f-45"
"mainUid": "3f93-45"
},
"ea8f-48": {
"3f93-48": {
"renderedLength": 1387,
"gzipLength": 483,
"brotliLength": 0,
"mainUid": "ea8f-47"
"mainUid": "3f93-47"
},
"ea8f-50": {
"renderedLength": 25931,
"gzipLength": 5902,
"3f93-50": {
"renderedLength": 25930,
"gzipLength": 5901,
"brotliLength": 0,
"mainUid": "ea8f-49"
"mainUid": "3f93-49"
},
"ea8f-52": {
"3f93-52": {
"renderedLength": 7647,
"gzipLength": 1795,
"brotliLength": 0,
"mainUid": "ea8f-51"
"mainUid": "3f93-51"
},
"ea8f-54": {
"3f93-54": {
"renderedLength": 0,
"gzipLength": 0,
"brotliLength": 0,
"mainUid": "ea8f-53"
"mainUid": "3f93-53"
}
},
"nodeMetas": {
"ea8f-31": {
"3f93-31": {
"id": "/node_modules/.pnpm/tiny-invariant@1.3.1/node_modules/tiny-invariant/dist/esm/tiny-invariant.js",
"moduleParts": {
"index.production.js": "ea8f-32"
"index.production.js": "3f93-32"
},

@@ -164,16 +164,16 @@ "imported": [],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-43"
"uid": "3f93-43"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-33": {
"3f93-33": {
"id": "/node_modules/.pnpm/tiny-warning@1.0.3/node_modules/tiny-warning/dist/tiny-warning.esm.js",
"moduleParts": {
"index.production.js": "ea8f-34"
"index.production.js": "3f93-34"
},

@@ -183,10 +183,10 @@ "imported": [],

{
"uid": "ea8f-53"
"uid": "3f93-53"
}
]
},
"ea8f-35": {
"3f93-35": {
"id": "/packages/router/src/history.ts",
"moduleParts": {
"index.production.js": "ea8f-36"
"index.production.js": "3f93-36"
},

@@ -196,13 +196,13 @@ "imported": [],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-37": {
"3f93-37": {
"id": "/packages/router/src/utils.ts",
"moduleParts": {
"index.production.js": "ea8f-38"
"index.production.js": "3f93-38"
},

@@ -212,23 +212,23 @@ "imported": [],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-39"
"uid": "3f93-39"
},
{
"uid": "ea8f-51"
"uid": "3f93-51"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-39": {
"3f93-39": {
"id": "/packages/router/src/path.ts",
"moduleParts": {
"index.production.js": "ea8f-40"
"index.production.js": "3f93-40"
},
"imported": [
{
"uid": "ea8f-37"
"uid": "3f93-37"
}

@@ -238,16 +238,16 @@ ],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-43"
"uid": "3f93-43"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-41": {
"3f93-41": {
"id": "/packages/router/src/qss.ts",
"moduleParts": {
"index.production.js": "ea8f-42"
"index.production.js": "3f93-42"
},

@@ -257,20 +257,20 @@ "imported": [],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-47"
"uid": "3f93-47"
}
]
},
"ea8f-43": {
"3f93-43": {
"id": "/packages/router/src/route.ts",
"moduleParts": {
"index.production.js": "ea8f-44"
"index.production.js": "3f93-44"
},
"imported": [
{
"uid": "ea8f-31"
"uid": "3f93-31"
},
{
"uid": "ea8f-39"
"uid": "3f93-39"
}

@@ -280,10 +280,10 @@ ],

{
"uid": "ea8f-53"
"uid": "3f93-53"
}
]
},
"ea8f-45": {
"3f93-45": {
"id": "/packages/store/build/esm/index.js",
"moduleParts": {
"index.production.js": "ea8f-46"
"index.production.js": "3f93-46"
},

@@ -293,17 +293,17 @@ "imported": [],

{
"uid": "ea8f-51"
"uid": "3f93-51"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-47": {
"3f93-47": {
"id": "/packages/router/src/searchParams.ts",
"moduleParts": {
"index.production.js": "ea8f-48"
"index.production.js": "3f93-48"
},
"imported": [
{
"uid": "ea8f-41"
"uid": "3f93-41"
}

@@ -313,35 +313,35 @@ ],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-49": {
"3f93-49": {
"id": "/packages/router/src/router.ts",
"moduleParts": {
"index.production.js": "ea8f-50"
"index.production.js": "3f93-50"
},
"imported": [
{
"uid": "ea8f-45"
"uid": "3f93-45"
},
{
"uid": "ea8f-31"
"uid": "3f93-31"
},
{
"uid": "ea8f-39"
"uid": "3f93-39"
},
{
"uid": "ea8f-51"
"uid": "3f93-51"
},
{
"uid": "ea8f-47"
"uid": "3f93-47"
},
{
"uid": "ea8f-37"
"uid": "3f93-37"
},
{
"uid": "ea8f-35"
"uid": "3f93-35"
}

@@ -351,23 +351,23 @@ ],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-51"
"uid": "3f93-51"
}
]
},
"ea8f-51": {
"3f93-51": {
"id": "/packages/router/src/routeMatch.ts",
"moduleParts": {
"index.production.js": "ea8f-52"
"index.production.js": "3f93-52"
},
"imported": [
{
"uid": "ea8f-45"
"uid": "3f93-45"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
},
{
"uid": "ea8f-37"
"uid": "3f93-37"
}

@@ -377,53 +377,53 @@ ],

{
"uid": "ea8f-53"
"uid": "3f93-53"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
}
]
},
"ea8f-53": {
"3f93-53": {
"id": "/packages/router/src/index.ts",
"moduleParts": {
"index.production.js": "ea8f-54"
"index.production.js": "3f93-54"
},
"imported": [
{
"uid": "ea8f-31"
"uid": "3f93-31"
},
{
"uid": "ea8f-33"
"uid": "3f93-33"
},
{
"uid": "ea8f-35"
"uid": "3f93-35"
},
{
"uid": "ea8f-55"
"uid": "3f93-55"
},
{
"uid": "ea8f-56"
"uid": "3f93-56"
},
{
"uid": "ea8f-39"
"uid": "3f93-39"
},
{
"uid": "ea8f-41"
"uid": "3f93-41"
},
{
"uid": "ea8f-43"
"uid": "3f93-43"
},
{
"uid": "ea8f-57"
"uid": "3f93-57"
},
{
"uid": "ea8f-51"
"uid": "3f93-51"
},
{
"uid": "ea8f-49"
"uid": "3f93-49"
},
{
"uid": "ea8f-47"
"uid": "3f93-47"
},
{
"uid": "ea8f-37"
"uid": "3f93-37"
}

@@ -434,3 +434,3 @@ ],

},
"ea8f-55": {
"3f93-55": {
"id": "/packages/router/src/frameworks.ts",

@@ -441,7 +441,7 @@ "moduleParts": {},

{
"uid": "ea8f-53"
"uid": "3f93-53"
}
]
},
"ea8f-56": {
"3f93-56": {
"id": "/packages/router/src/link.ts",

@@ -452,7 +452,7 @@ "moduleParts": {},

{
"uid": "ea8f-53"
"uid": "3f93-53"
}
]
},
"ea8f-57": {
"3f93-57": {
"id": "/packages/router/src/routeInfo.ts",

@@ -463,3 +463,3 @@ "moduleParts": {},

{
"uid": "ea8f-53"
"uid": "3f93-53"
}

@@ -466,0 +466,0 @@ ]

@@ -325,3 +325,2 @@ /**

type RootRouteId = typeof rootRouteId;
type AnyLoaderData = {};
type AnyPathParams = {};

@@ -362,3 +361,3 @@ type AnySearchSchema = {};

};
type RouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TParentSearchSchema extends {} = {}, TSearchSchema extends AnySearchSchema = {}, TFullSearchSchema extends AnySearchSchema = TSearchSchema, TParentParams extends AnyPathParams = {}, TParams extends Record<ParsePathParams<TPath>, any> = Record<ParsePathParams<TPath>, string>, TAllParams = TParams, TParentContext extends AnyContext = AnyContext, TAllParentContext extends AnyContext = AnyContext, TRouteContext extends RouteContext = RouteContext, TContext extends AnyContext = TRouteContext> = RouteOptionsBase<TCustomId, TPath> & FrameworkRouteOptions & {
type RouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TParentSearchSchema extends {} = {}, TSearchSchema extends AnySearchSchema = {}, TFullSearchSchema extends AnySearchSchema = TSearchSchema, TParentParams extends AnyPathParams = {}, TParams = Record<ParsePathParams<TPath>, string>, TAllParams = TParams, TParentContext extends AnyContext = AnyContext, TAllParentContext extends AnyContext = AnyContext, TRouteContext extends RouteContext = RouteContext, TContext extends AnyContext = TRouteContext> = RouteOptionsBase<TCustomId, TPath> & FrameworkRouteOptions & {
getParentRoute: () => TParentRoute;

@@ -393,3 +392,3 @@ caseSensitive?: boolean;

} & MetaOptions & ContextOptions<TParentRoute, TAllParams, TFullSearchSchema, TParentContext, TAllParentContext, TRouteContext> & ({
parseParams?: (rawParams: IsAny<TPath, any, Record<ParsePathParams<TPath>, string>>) => TParams extends Record<string, any> ? TParams : 'parseParams must return a Record<string, any>';
parseParams?: (rawParams: IsAny<TPath, any, Record<ParsePathParams<TPath>, string>>) => TParams extends Record<ParsePathParams<TPath>, any> ? TParams : 'parseParams must return an ojbect';
stringifyParams?: (params: NoInfer<TParams>) => Record<ParsePathParams<TPath>, string>;

@@ -399,3 +398,5 @@ } | {

parseParams?: never;
}) & (PickUnsafe<TParentParams, ParsePathParams<TPath>> extends never ? {} : 'Cannot redefined path params in child routes!');
}) & (PickUnsafe<TParentParams, ParsePathParams<TPath>> extends never ? {
test?: PickUnsafe<TParentParams, ParsePathParams<TPath>>;
} : 'Cannot redefined path params in child routes!');
type SearchSchemaValidator<TReturn, TParentSchema> = SearchSchemaValidatorObj<TReturn, TParentSchema> | SearchSchemaValidatorFn<TReturn, TParentSchema>;

@@ -670,2 +671,2 @@ type SearchSchemaValidatorObj<TReturn, TParentSchema> = {

export { ActiveOptions, AnyContext, AnyLoaderData, AnyPathParams, AnyRedirect, AnyRootRoute, AnyRoute, AnyRouteMatch, AnyRouter, AnyRoutesInfo, AnySearchSchema, BuildNextOptions, CheckId, CheckIdError, CheckPath, CheckPathError, CheckRelativePath, ContextOptions, DeepAwaited, DefaultRoutesInfo, DefinedPathParamWarning, DehydratedRouter, DehydratedRouterState, Expand, FilterRoutesFn, FrameworkGenerics, FrameworkRouteOptions, FromLocation, GetFrameworkGeneric, InferFullSearchSchema, IsAny, IsAnyBoolean, IsKnown, LinkInfo, LinkOptions, ListenerFn, LoaderContext, LocationState, MatchCache, MatchCacheEntry, MatchLocation, MatchRouteOptions, MergeUnion, MetaOptions, NavigateOptions, NoInfer, OnLoadFn, ParentParams, ParsePathParams, ParseRoute, ParseRouteChild, ParseRouteChildren, ParsedLocation, ParsedPath, PathParamMask, PathParamOptions, PendingRouteMatchInfo, PickAsPartial, PickAsRequired, PickExclude, PickExtra, PickExtract, PickRequired, PickUnsafe, Redirect, Register, RegisteredRouter, RegisteredRoutesInfo, RelativeToPathAutoComplete, ResolveFullSearchSchema, ResolveRelativePath, RootRoute, RootRouteId, Route, RouteById, RouteByPath, RouteContext, RouteMatch, RouteMatchStore, RouteMeta, RouteOptions, RouteOptionsBase, RouteOptionsBaseIntersection, Router, RouterConstructorOptions, RouterContext, RouterHistory, RouterLocation, RouterOptions, RouterStore, RoutesById, RoutesInfo, RoutesInfoInner, SearchFilter, SearchParamOptions, SearchParser, SearchSchemaValidator, SearchSchemaValidatorFn, SearchSchemaValidatorObj, SearchSerializer, Segment, Split, Timeout, ToIdOption, ToOptions, ToPathOption, UnionToIntersection, UnloaderFn, Updater, ValidFromPath, ValueKeys, Values, cleanPath, createBrowserHistory, createHashHistory, createMemoryHistory, decode, defaultFetchServerDataFn, defaultParseSearch, defaultStringifySearch, encode, functionalUpdate, interpolatePath, isPlainObject, isRedirect, joinPaths, last, matchByPath, matchPathname, parsePathname, parseSearchWith, partialDeepEqual, pick, redirect, replaceEqualDeep, resolvePath, rootRouteId, stringifySearchWith, trimPath, trimPathLeft, trimPathRight };
export { ActiveOptions, AnyContext, AnyPathParams, AnyRedirect, AnyRootRoute, AnyRoute, AnyRouteMatch, AnyRouter, AnyRoutesInfo, AnySearchSchema, BuildNextOptions, CheckId, CheckIdError, CheckPath, CheckPathError, CheckRelativePath, ContextOptions, DeepAwaited, DefaultRoutesInfo, DefinedPathParamWarning, DehydratedRouter, DehydratedRouterState, Expand, FilterRoutesFn, FrameworkGenerics, FrameworkRouteOptions, FromLocation, GetFrameworkGeneric, InferFullSearchSchema, IsAny, IsAnyBoolean, IsKnown, LinkInfo, LinkOptions, ListenerFn, LoaderContext, LocationState, MatchCache, MatchCacheEntry, MatchLocation, MatchRouteOptions, MergeUnion, MetaOptions, NavigateOptions, NoInfer, OnLoadFn, ParentParams, ParsePathParams, ParseRoute, ParseRouteChild, ParseRouteChildren, ParsedLocation, ParsedPath, PathParamMask, PathParamOptions, PendingRouteMatchInfo, PickAsPartial, PickAsRequired, PickExclude, PickExtra, PickExtract, PickRequired, PickUnsafe, Redirect, Register, RegisteredRouter, RegisteredRoutesInfo, RelativeToPathAutoComplete, ResolveFullSearchSchema, ResolveRelativePath, RootRoute, RootRouteId, Route, RouteById, RouteByPath, RouteContext, RouteMatch, RouteMatchStore, RouteMeta, RouteOptions, RouteOptionsBase, RouteOptionsBaseIntersection, Router, RouterConstructorOptions, RouterContext, RouterHistory, RouterLocation, RouterOptions, RouterStore, RoutesById, RoutesInfo, RoutesInfoInner, SearchFilter, SearchParamOptions, SearchParser, SearchSchemaValidator, SearchSchemaValidatorFn, SearchSchemaValidatorObj, SearchSerializer, Segment, Split, Timeout, ToIdOption, ToOptions, ToPathOption, UnionToIntersection, UnloaderFn, Updater, ValidFromPath, ValueKeys, Values, cleanPath, createBrowserHistory, createHashHistory, createMemoryHistory, decode, defaultFetchServerDataFn, defaultParseSearch, defaultStringifySearch, encode, functionalUpdate, interpolatePath, isPlainObject, isRedirect, joinPaths, last, matchByPath, matchPathname, parsePathname, parseSearchWith, partialDeepEqual, pick, redirect, replaceEqualDeep, resolvePath, rootRouteId, stringifySearchWith, trimPath, trimPathLeft, trimPathRight };

@@ -1496,3 +1496,3 @@ /**

}
const href = `${next.pathname}${next.searchStr}${next.hash ? `#${next.hash}` : ''}`;
const href = `${next.pathname}${next.searchStr}${next.hash ? `${next.hash}` : ''}`;
this.history[nextAction === 'push' ? 'push' : 'replace'](href, {

@@ -1499,0 +1499,0 @@ id,

@@ -21,3 +21,3 @@ /**

* @license MIT
*/class D{listeners=new Set;batching=!1;queue=[];constructor(t,e){this.state=t,this.options=e}subscribe=t=>{this.listeners.add(t);const e=this.options?.onSubscribe?.(t,this);return()=>{this.listeners.delete(t),e?.()}};setState=t=>{const e=this.state;this.state=this.options?.updateFn?this.options.updateFn(e)(t):t(e),this.state!==e&&(this.options?.onUpdate?.(this.state,e),this.queue.push((()=>{this.listeners.forEach((t=>t(this.state,e)))})),this.#t())};#t=()=>{this.batching||(this.queue.forEach((t=>t())),this.queue=[])};batch=t=>{this.batching=!0,t(),this.batching=!1,this.#t()}}const T=j(JSON.parse),H=O(JSON.stringify);function j(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let a=$(e);for(let e in a){const s=a[e];if("string"==typeof s)try{a[e]=t(s)}catch(t){}}return a}}function O(t){return e=>{(e={...e})&&Object.keys(e).forEach((a=>{const s=e[a];if(void 0===s||void 0===s)delete e[a];else if(s&&"object"==typeof s&&null!==s)try{e[a]=t(s)}catch(t){}}));const a=M(e).toString();return a?`?${a}`:""}}const N=async({router:t,routeMatch:e})=>{const a=t.buildNext({to:".",search:t=>({...t??{},__data:{matchId:e.id}})}),s=await fetch(a.href,{method:"GET",signal:e.abortController.signal});if(s.ok)return s.json();throw new Error("Failed to fetch match data")};const U="undefined"==typeof window||!window.document.createElement;function B(){return{status:"idle",latestLocation:null,currentLocation:null,currentMatches:[],lastUpdated:Date.now()}}function F(t){return!!t?.isRedirect}const q=["component","errorComponent","pendingComponent"];class z{abortController=new AbortController;constructor(t,e,a){Object.assign(this,{route:e,router:t,id:a.id,pathname:a.pathname,params:a.params,__store:new D({updatedAt:0,routeSearch:{},search:{},status:"idle"},{onUpdate:t=>{this.state=t}})}),this.state=this.__store.state,q.map((async t=>{const e=this.route.options[t];"function"!=typeof this[t]&&(this[t]=e)})),"idle"!==this.state.status||this.#e()||this.__store.setState((t=>({...t,status:"success"})))}#e=()=>!(!this.route.options.onLoad&&!q.some((t=>this.route.options[t]?.preload)));__commit=()=>{const{routeSearch:t,search:e,context:a,routeContext:s}=this.#a({location:this.router.state.currentLocation});this.context=a,this.routeContext=s,this.__store.setState((a=>({...a,routeSearch:f(a.routeSearch,t),search:f(a.search,e)})))};cancel=()=>{this.abortController?.abort()};#s=t=>{const e=this.parentMatch?this.parentMatch.#s(t):{search:t.location.search,routeSearch:t.location.search};try{const t=("object"==typeof this.route.options.validateSearch?this.route.options.validateSearch.parse:this.route.options.validateSearch)?.(e.search)??{};return{routeSearch:t,search:{...e.search,...t}}}catch(t){if(F(t))throw t;(this.route.options.onValidateSearchError??this.route.options.onError)?.(t);const e=new Error("Invalid search params found",{cause:t});throw e.code="INVALID_SEARCH_PARAMS",e}};#a=t=>{const{search:e,routeSearch:a}=this.#s(t);try{const t=this.route.options.getContext?.({parentContext:this.parentMatch?.routeContext??{},context:this.parentMatch?.context??this.router?.options.context??{},params:this.params,search:e})||{};return{routeSearch:a,search:e,context:{...this.parentMatch?.context??this.router?.options.context,...t},routeContext:t}}catch(t){throw this.route.options.onError?.(t),t}};__load=async t=>{let e;this.parentMatch=t.parentMatch;try{e=this.#a(t)}catch(e){return F(e)?void(t?.preload||this.router.navigate(e)):void this.__store.setState((t=>({...t,status:"error",error:e})))}const{routeSearch:a,search:s,context:r,routeContext:o}=e;if("pending"!==this.state.status)return this.__loadPromise=Promise.resolve().then((async()=>{const e=""+Date.now()+Math.random();this.#r=e;const n=()=>e!==this.#r?this.__loadPromise:void 0;let i;"idle"===this.state.status&&this.__store.setState((t=>({...t,status:"pending"})));const h=(async()=>{await Promise.all(q.map((async t=>{const e=this.route.options[t];this[t]?.preload&&(this[t]=await this.router.options.loadComponent(e))})))})(),c=Promise.resolve().then((()=>{if(this.route.options.onLoad)return this.route.options.onLoad({params:this.params,routeSearch:a,search:s,signal:this.abortController.signal,preload:!!t?.preload,routeContext:o,context:r})}));try{if(await Promise.all([h,c]),i=n())return await i;this.__store.setState((t=>({...t,error:void 0,status:"success",updatedAt:Date.now()})))}catch(e){if(F(e))return void(t?.preload||this.router.navigate(e));const a=this.route.options.onLoadError??this.route.options.onError;try{a?.(e)}catch(e){return F(e)?void(t?.preload||this.router.navigate(e)):void this.__store.setState((t=>({...t,error:e,status:"error",updatedAt:Date.now()})))}this.__store.setState((t=>({...t,error:e,status:"error",updatedAt:Date.now()})))}finally{delete this.__loadPromise}})),this.__loadPromise};#r=""}t.RootRoute=k,t.Route=I,t.RouteMatch=z,t.Router=class{#o;startedLoadingAt=Date.now();resolveNavigation=()=>{};constructor(t){this.options={defaultPreloadDelay:50,context:void 0,...t,stringifySearch:t?.stringifySearch??H,parseSearch:t?.parseSearch??T,fetchServerDataFn:t?.fetchServerDataFn??N},this.__store=new D(B(),{onUpdate:t=>{this.state=t}}),this.state=this.__store.state,this.basepath="",this.update(t),this.options.Router?.(this);const e=this.buildNext({hash:!0,fromCurrent:!0,search:!0,state:!0});this.state.latestLocation.href!==e.href&&this.#n({...e,replace:!0})}reset=()=>{this.__store.setState((t=>Object.assign(t,B())))};mount=()=>(U||this.state.currentMatches.length||this.safeLoad(),()=>{});update=t=>{if(Object.assign(this.options,t),!this.history||this.options.history&&this.options.history!==this.history){this.#o&&this.#o(),this.history=this.options.history??(U?h():i());const t=this.#i();this.__store.setState((e=>({...e,latestLocation:t,currentLocation:t}))),this.#o=this.history.listen((()=>{this.safeLoad({next:this.#i(this.state.latestLocation)})}))}const{basepath:e,routeTree:a}=this.options;return this.basepath=`/${b(e??"")??""}`,a&&(this.routesById={},this.routeTree=this.#h(a)),this};buildNext=t=>{const e=this.#c(t),a=this.matchRoutes(e.pathname);return this.#c({...t,__matches:a})};cancelMatches=()=>{[...this.state.currentMatches,...this.state.pendingMatches||[]].forEach((t=>{t.cancel()}))};safeLoad=t=>{this.load(t).catch((t=>{console.warn(t),e(!1)}))};load=async t=>{let e=Date.now();const a=e;let s;if(this.startedLoadingAt=a,this.cancelMatches(),this.__store.batch((()=>{t?.next&&this.__store.setState((e=>({...e,latestLocation:t.next}))),s=this.matchRoutes(this.state.latestLocation.pathname,{strictParseParams:!0}),this.__store.setState((t=>({...t,status:"pending",pendingMatches:s,pendingLocation:this.state.latestLocation})))})),await this.loadMatches(s,this.state.pendingLocation),this.startedLoadingAt!==a)return this.navigationPromise;const r=this.state.currentMatches,o=[],n=[];r.forEach((t=>{s.find((e=>e.id===t.id))?n.push(t):o.push(t)}));const i=s.filter((t=>!r.find((e=>e.id===t.id))));e=Date.now(),o.forEach((t=>{t.__onExit?.({params:t.params,search:t.state.routeSearch}),"error"===t.state.status&&this.__store.setState((t=>({...t,status:"idle",error:void 0})))})),n.forEach((t=>{t.route.options.onTransition?.({params:t.params,search:t.state.routeSearch})})),i.forEach((t=>{t.__onExit=t.route.options.onLoaded?.({params:t.params,search:t.state.search})}));const h=this.state.currentLocation;this.__store.setState((t=>({...t,status:"idle",currentLocation:this.state.latestLocation,currentMatches:s,pendingLocation:void 0,pendingMatches:void 0}))),s.forEach((t=>{t.__commit()})),h.href!==this.state.currentLocation.href&&this.options.onRouteChange?.(),this.resolveNavigation()};getRoute=t=>{const a=this.routesById[t];return e(a),a};loadRoute=async(t=this.state.latestLocation)=>{const e=this.buildNext(t),a=this.matchRoutes(e.pathname,{strictParseParams:!0});return await this.loadMatches(a,e),a};preloadRoute=async(t=this.state.latestLocation)=>{const e=this.buildNext(t),a=this.matchRoutes(e.pathname,{strictParseParams:!0});return await this.loadMatches(a,e,{preload:!0}),a};matchRoutes=(t,e)=>{const a=[];if(!this.routeTree)return a;const s=[...this.state.currentMatches,...this.state.pendingMatches??[]],r=async o=>{let n=l(a)?.params??{};const i=this.options.filterRoutes?.(o)??o;let h=[];const c=(a,s)=>(s.some((s=>{const r=s.children;if(!s.path&&r?.length)return c([...h,s],r);const o=!("/"===s.path&&!r?.length),i=x(this.basepath,t,{to:s.fullPath,fuzzy:o,caseSensitive:s.options.caseSensitive??this.options.caseSensitive});if(i){let t;try{t=s.options.parseParams?.(i)??i}catch(t){if(e?.strictParseParams)throw t}n={...n,...t}}return i&&(h=[...a,s]),!!h.length})),!!h.length);if(c([],i),!h.length)return;h.forEach((t=>{const e=R(t.path,n),r=R(t.id,n,!0),o=s.find((t=>t.id===r))||new z(this,t,{id:r,params:n,pathname:v([this.basepath,e])});a.push(o)}));const u=l(h).children;u?.length&&r(u)};return r([this.routeTree]),a};loadMatches=async(t,e,a)=>{let s;try{await Promise.all(t.map((async(t,e)=>{try{await(t.route.options.beforeLoad?.({router:this,match:t}))}catch(a){if(F(a))throw a;s=s??e;const r=t.route.options.onBeforeLoadError??t.route.options.onError;try{r?.(a)}catch(e){if(F(e))throw e;return void t.__store.setState((t=>({...t,error:e,status:"error",updatedAt:Date.now()})))}t.__store.setState((t=>({...t,error:a,status:"error",updatedAt:Date.now()})))}})))}catch(t){if(F(t))return void(a?.preload||this.navigate(t));throw t}const r=t.slice(0,s),o=r.map((async(t,s)=>{const o=r[s-1];t.__load({preload:a?.preload,location:e,parentMatch:o}),await t.__loadPromise,o&&await o.__loadPromise}));await Promise.all(o)};reload=()=>{this.navigate({fromCurrent:!0,replace:!0,search:!0})};resolvePath=(t,e)=>L(this.basepath,t,w(e));navigate=async({from:t,to:a="",search:s,hash:r,replace:o,params:n})=>{const i=String(a),h=void 0===t?t:String(t);let c;try{new URL(`${i}`),c=!0}catch(t){}return e(!c),this.#n({from:h,to:i,search:s,hash:r,replace:o,params:n})};matchRoute=(t,e)=>{t={...t,to:t.to?this.resolvePath(t.from??"",t.to):void 0};const a=this.buildNext(t),s=e?.pending?this.state.pendingLocation:this.state.currentLocation;if(!s)return!1;const r=x(this.basepath,s.pathname,{...e,to:a.pathname});return!!r&&(e?.includeSearch??1?!!y(s.search,a.search)&&r:r)};buildLink=({from:t,to:e=".",search:a,params:s,hash:r,target:o,replace:n,activeOptions:i,preload:h,preloadDelay:c,disabled:u})=>{try{return new URL(`${e}`),{type:"external",href:e}}catch(t){}const l={from:t,to:e,search:a,params:s,hash:r,replace:n},p=this.buildNext(l);h=h??this.options.defaultPreload;const d=c??this.options.defaultPreloadDelay??0,f=this.state.currentLocation.pathname.split("/"),m=p.pathname.split("/").every(((t,e)=>t===f[e])),g=i?.exact?this.state.currentLocation.pathname===p.pathname:m,v=!i?.includeHash||this.state.currentLocation.hash===p.hash,w=!(i?.includeSearch??1)||y(this.state.currentLocation.search,p.search);return{type:"internal",next:p,handleFocus:t=>{h&&this.preloadRoute(l).catch((t=>{console.warn(t),console.warn("Error preloading route! ☝️")}))},handleClick:t=>{u||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||o&&"_self"!==o||0!==t.button||(t.preventDefault(),this.#n(l))},handleEnter:t=>{const e=t.target||{};if(h){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,this.preloadRoute(l).catch((t=>{console.warn(t),console.warn("Error preloading route! ☝️")}))}),d)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},handleTouchStart:t=>{this.preloadRoute(l).catch((t=>{console.warn(t),console.warn("Error preloading route! ☝️")}))},isActive:g&&v&&w,disabled:u}};dehydrate=()=>({state:{...d(this.state,["latestLocation","currentLocation","status","lastUpdated"]),currentMatches:this.state.currentMatches.map((t=>({id:t.id,state:{status:t.state.status}})))}});hydrate=t=>{this.__store.setState((a=>{const s=this.matchRoutes(t.state.latestLocation.pathname,{strictParseParams:!0});return s.forEach(((a,s)=>{const r=t.state.currentMatches[s];e(r&&r.id===a.id),a.__store.setState((t=>({...t,...r.state})))})),{...a,...t.state,currentMatches:s}}))};#h=t=>{const a=(t,s)=>{t.forEach(((t,s)=>{t.init({originalIndex:s,router:this});e(!this.routesById[t.id],String(t.id)),this.routesById[t.id]=t;const r=t.children;r?.length&&(a(r),t.children=r.map(((t,e)=>{const a=P(_(w(t.path??"/")));for(;a.length>1&&"/"===a[0]?.value;)a.shift();let s=0;return a.forEach(((t,e)=>{let a=1;for(;e--;)a*=.001;"pathname"===t.type&&"/"!==t.value?s+=1*a:"param"===t.type?s+=2*a:"wildcard"===t.type&&(s+=3*a)})),{child:t,parsed:a,index:e,score:s}})).sort(((t,e)=>t.score!==e.score?t.score-e.score:t.index-e.index)).map((t=>t.child)))}))};a([t]);const s=(t,a)=>{t.forEach((t=>{t.isRoot?e(!a):e(!a||t.parentRoute===a,(t.path,t.parentRoute?.id,a?.id)),t.children&&s(t.children,t)}))};return s([t],void 0),t};#i=t=>{let{pathname:e,search:a,hash:s,state:r}=this.history.location;const o=this.options.parseSearch(a);return{pathname:e,searchStr:a,search:f(t?.search,o),hash:s.split("#").reverse()[0]??"",href:`${e}${a}${s}`,state:r,key:r?.key||"__init__"}};#c=(t={})=>{t.fromCurrent=t.fromCurrent??""===t.to;const e=t.fromCurrent?this.state.latestLocation.pathname:t.from??this.state.latestLocation.pathname;let a=L(this.basepath??"/",e,`${t.to??""}`);const s={...l(this.matchRoutes(this.state.latestLocation.pathname,{strictParseParams:!0}))?.params};let r=!0===(t.params??!0)?s:p(t.params,s);r&&t.__matches?.map((t=>t.route.options.stringifyParams)).filter(Boolean).forEach((t=>{r={...r,...t(r)}})),a=R(a,r??{});const o=t.__matches?.map((t=>t.route.options.preSearchFilters??[])).flat().filter(Boolean)??[],n=t.__matches?.map((t=>t.route.options.postSearchFilters??[])).flat().filter(Boolean)??[],i=o?.length?o?.reduce(((t,e)=>e(t)),this.state.latestLocation.search):this.state.latestLocation.search,h=!0===t.search?i:t.search?p(t.search,i)??{}:o?.length?i:{},c=n?.length?n.reduce(((t,e)=>e(t)),h):h,u=f(this.state.latestLocation.search,c),d=this.options.stringifySearch(u);let m=!0===t.hash?this.state.latestLocation.hash:p(t.hash,this.state.latestLocation.hash);m=m?`#${m}`:"";return{pathname:a,search:u,searchStr:d,state:!0===t.state?this.state.latestLocation.state:p(t.state,this.state.latestLocation.state),hash:m,href:this.history.createHref(`${a}${d}${m}`),key:t.key}};#n=async t=>{const e=this.buildNext(t),a=""+Date.now()+Math.random();this.navigateTimeout&&clearTimeout(this.navigateTimeout);let s="replace";t.replace||(s="push");this.state.latestLocation.href===e.href&&!e.key&&(s="replace");const r=`${e.pathname}${e.searchStr}${e.hash?`#${e.hash}`:""}`;return this.history["push"===s?"push":"replace"](r,{id:a,...e.state}),this.navigationPromise=new Promise((t=>{const e=this.resolveNavigation;this.resolveNavigation=()=>{e(),t()}}))}},t.cleanPath=w,t.createBrowserHistory=i,t.createHashHistory=function(){return i({getHref:()=>window.location.hash.substring(1),createHref:t=>`#${t}`})},t.createMemoryHistory=h,t.decode=$,t.defaultFetchServerDataFn=N,t.defaultParseSearch=T,t.defaultStringifySearch=H,t.encode=M,t.functionalUpdate=p,t.interpolatePath=R,t.invariant=e,t.isPlainObject=m,t.isRedirect=F,t.joinPaths=v,t.last=l,t.matchByPath=E,t.matchPathname=x,t.parsePathname=P,t.parseSearchWith=j,t.partialDeepEqual=y,t.pick=d,t.redirect=function(t){return t.isRedirect=!0,t},t.replaceEqualDeep=f,t.resolvePath=L,t.rootRouteId=A,t.stringifySearchWith=O,t.trimPath=b,t.trimPathLeft=_,t.trimPathRight=S,t.warning=function(t,e){},Object.defineProperty(t,"__esModule",{value:!0})}));
*/class D{listeners=new Set;batching=!1;queue=[];constructor(t,e){this.state=t,this.options=e}subscribe=t=>{this.listeners.add(t);const e=this.options?.onSubscribe?.(t,this);return()=>{this.listeners.delete(t),e?.()}};setState=t=>{const e=this.state;this.state=this.options?.updateFn?this.options.updateFn(e)(t):t(e),this.state!==e&&(this.options?.onUpdate?.(this.state,e),this.queue.push((()=>{this.listeners.forEach((t=>t(this.state,e)))})),this.#t())};#t=()=>{this.batching||(this.queue.forEach((t=>t())),this.queue=[])};batch=t=>{this.batching=!0,t(),this.batching=!1,this.#t()}}const T=j(JSON.parse),H=O(JSON.stringify);function j(t){return e=>{"?"===e.substring(0,1)&&(e=e.substring(1));let a=$(e);for(let e in a){const s=a[e];if("string"==typeof s)try{a[e]=t(s)}catch(t){}}return a}}function O(t){return e=>{(e={...e})&&Object.keys(e).forEach((a=>{const s=e[a];if(void 0===s||void 0===s)delete e[a];else if(s&&"object"==typeof s&&null!==s)try{e[a]=t(s)}catch(t){}}));const a=M(e).toString();return a?`?${a}`:""}}const N=async({router:t,routeMatch:e})=>{const a=t.buildNext({to:".",search:t=>({...t??{},__data:{matchId:e.id}})}),s=await fetch(a.href,{method:"GET",signal:e.abortController.signal});if(s.ok)return s.json();throw new Error("Failed to fetch match data")};const U="undefined"==typeof window||!window.document.createElement;function B(){return{status:"idle",latestLocation:null,currentLocation:null,currentMatches:[],lastUpdated:Date.now()}}function F(t){return!!t?.isRedirect}const q=["component","errorComponent","pendingComponent"];class z{abortController=new AbortController;constructor(t,e,a){Object.assign(this,{route:e,router:t,id:a.id,pathname:a.pathname,params:a.params,__store:new D({updatedAt:0,routeSearch:{},search:{},status:"idle"},{onUpdate:t=>{this.state=t}})}),this.state=this.__store.state,q.map((async t=>{const e=this.route.options[t];"function"!=typeof this[t]&&(this[t]=e)})),"idle"!==this.state.status||this.#e()||this.__store.setState((t=>({...t,status:"success"})))}#e=()=>!(!this.route.options.onLoad&&!q.some((t=>this.route.options[t]?.preload)));__commit=()=>{const{routeSearch:t,search:e,context:a,routeContext:s}=this.#a({location:this.router.state.currentLocation});this.context=a,this.routeContext=s,this.__store.setState((a=>({...a,routeSearch:f(a.routeSearch,t),search:f(a.search,e)})))};cancel=()=>{this.abortController?.abort()};#s=t=>{const e=this.parentMatch?this.parentMatch.#s(t):{search:t.location.search,routeSearch:t.location.search};try{const t=("object"==typeof this.route.options.validateSearch?this.route.options.validateSearch.parse:this.route.options.validateSearch)?.(e.search)??{};return{routeSearch:t,search:{...e.search,...t}}}catch(t){if(F(t))throw t;(this.route.options.onValidateSearchError??this.route.options.onError)?.(t);const e=new Error("Invalid search params found",{cause:t});throw e.code="INVALID_SEARCH_PARAMS",e}};#a=t=>{const{search:e,routeSearch:a}=this.#s(t);try{const t=this.route.options.getContext?.({parentContext:this.parentMatch?.routeContext??{},context:this.parentMatch?.context??this.router?.options.context??{},params:this.params,search:e})||{};return{routeSearch:a,search:e,context:{...this.parentMatch?.context??this.router?.options.context,...t},routeContext:t}}catch(t){throw this.route.options.onError?.(t),t}};__load=async t=>{let e;this.parentMatch=t.parentMatch;try{e=this.#a(t)}catch(e){return F(e)?void(t?.preload||this.router.navigate(e)):void this.__store.setState((t=>({...t,status:"error",error:e})))}const{routeSearch:a,search:s,context:r,routeContext:o}=e;if("pending"!==this.state.status)return this.__loadPromise=Promise.resolve().then((async()=>{const e=""+Date.now()+Math.random();this.#r=e;const n=()=>e!==this.#r?this.__loadPromise:void 0;let i;"idle"===this.state.status&&this.__store.setState((t=>({...t,status:"pending"})));const h=(async()=>{await Promise.all(q.map((async t=>{const e=this.route.options[t];this[t]?.preload&&(this[t]=await this.router.options.loadComponent(e))})))})(),c=Promise.resolve().then((()=>{if(this.route.options.onLoad)return this.route.options.onLoad({params:this.params,routeSearch:a,search:s,signal:this.abortController.signal,preload:!!t?.preload,routeContext:o,context:r})}));try{if(await Promise.all([h,c]),i=n())return await i;this.__store.setState((t=>({...t,error:void 0,status:"success",updatedAt:Date.now()})))}catch(e){if(F(e))return void(t?.preload||this.router.navigate(e));const a=this.route.options.onLoadError??this.route.options.onError;try{a?.(e)}catch(e){return F(e)?void(t?.preload||this.router.navigate(e)):void this.__store.setState((t=>({...t,error:e,status:"error",updatedAt:Date.now()})))}this.__store.setState((t=>({...t,error:e,status:"error",updatedAt:Date.now()})))}finally{delete this.__loadPromise}})),this.__loadPromise};#r=""}t.RootRoute=k,t.Route=I,t.RouteMatch=z,t.Router=class{#o;startedLoadingAt=Date.now();resolveNavigation=()=>{};constructor(t){this.options={defaultPreloadDelay:50,context:void 0,...t,stringifySearch:t?.stringifySearch??H,parseSearch:t?.parseSearch??T,fetchServerDataFn:t?.fetchServerDataFn??N},this.__store=new D(B(),{onUpdate:t=>{this.state=t}}),this.state=this.__store.state,this.basepath="",this.update(t),this.options.Router?.(this);const e=this.buildNext({hash:!0,fromCurrent:!0,search:!0,state:!0});this.state.latestLocation.href!==e.href&&this.#n({...e,replace:!0})}reset=()=>{this.__store.setState((t=>Object.assign(t,B())))};mount=()=>(U||this.state.currentMatches.length||this.safeLoad(),()=>{});update=t=>{if(Object.assign(this.options,t),!this.history||this.options.history&&this.options.history!==this.history){this.#o&&this.#o(),this.history=this.options.history??(U?h():i());const t=this.#i();this.__store.setState((e=>({...e,latestLocation:t,currentLocation:t}))),this.#o=this.history.listen((()=>{this.safeLoad({next:this.#i(this.state.latestLocation)})}))}const{basepath:e,routeTree:a}=this.options;return this.basepath=`/${b(e??"")??""}`,a&&(this.routesById={},this.routeTree=this.#h(a)),this};buildNext=t=>{const e=this.#c(t),a=this.matchRoutes(e.pathname);return this.#c({...t,__matches:a})};cancelMatches=()=>{[...this.state.currentMatches,...this.state.pendingMatches||[]].forEach((t=>{t.cancel()}))};safeLoad=t=>{this.load(t).catch((t=>{console.warn(t),e(!1)}))};load=async t=>{let e=Date.now();const a=e;let s;if(this.startedLoadingAt=a,this.cancelMatches(),this.__store.batch((()=>{t?.next&&this.__store.setState((e=>({...e,latestLocation:t.next}))),s=this.matchRoutes(this.state.latestLocation.pathname,{strictParseParams:!0}),this.__store.setState((t=>({...t,status:"pending",pendingMatches:s,pendingLocation:this.state.latestLocation})))})),await this.loadMatches(s,this.state.pendingLocation),this.startedLoadingAt!==a)return this.navigationPromise;const r=this.state.currentMatches,o=[],n=[];r.forEach((t=>{s.find((e=>e.id===t.id))?n.push(t):o.push(t)}));const i=s.filter((t=>!r.find((e=>e.id===t.id))));e=Date.now(),o.forEach((t=>{t.__onExit?.({params:t.params,search:t.state.routeSearch}),"error"===t.state.status&&this.__store.setState((t=>({...t,status:"idle",error:void 0})))})),n.forEach((t=>{t.route.options.onTransition?.({params:t.params,search:t.state.routeSearch})})),i.forEach((t=>{t.__onExit=t.route.options.onLoaded?.({params:t.params,search:t.state.search})}));const h=this.state.currentLocation;this.__store.setState((t=>({...t,status:"idle",currentLocation:this.state.latestLocation,currentMatches:s,pendingLocation:void 0,pendingMatches:void 0}))),s.forEach((t=>{t.__commit()})),h.href!==this.state.currentLocation.href&&this.options.onRouteChange?.(),this.resolveNavigation()};getRoute=t=>{const a=this.routesById[t];return e(a),a};loadRoute=async(t=this.state.latestLocation)=>{const e=this.buildNext(t),a=this.matchRoutes(e.pathname,{strictParseParams:!0});return await this.loadMatches(a,e),a};preloadRoute=async(t=this.state.latestLocation)=>{const e=this.buildNext(t),a=this.matchRoutes(e.pathname,{strictParseParams:!0});return await this.loadMatches(a,e,{preload:!0}),a};matchRoutes=(t,e)=>{const a=[];if(!this.routeTree)return a;const s=[...this.state.currentMatches,...this.state.pendingMatches??[]],r=async o=>{let n=l(a)?.params??{};const i=this.options.filterRoutes?.(o)??o;let h=[];const c=(a,s)=>(s.some((s=>{const r=s.children;if(!s.path&&r?.length)return c([...h,s],r);const o=!("/"===s.path&&!r?.length),i=x(this.basepath,t,{to:s.fullPath,fuzzy:o,caseSensitive:s.options.caseSensitive??this.options.caseSensitive});if(i){let t;try{t=s.options.parseParams?.(i)??i}catch(t){if(e?.strictParseParams)throw t}n={...n,...t}}return i&&(h=[...a,s]),!!h.length})),!!h.length);if(c([],i),!h.length)return;h.forEach((t=>{const e=R(t.path,n),r=R(t.id,n,!0),o=s.find((t=>t.id===r))||new z(this,t,{id:r,params:n,pathname:v([this.basepath,e])});a.push(o)}));const u=l(h).children;u?.length&&r(u)};return r([this.routeTree]),a};loadMatches=async(t,e,a)=>{let s;try{await Promise.all(t.map((async(t,e)=>{try{await(t.route.options.beforeLoad?.({router:this,match:t}))}catch(a){if(F(a))throw a;s=s??e;const r=t.route.options.onBeforeLoadError??t.route.options.onError;try{r?.(a)}catch(e){if(F(e))throw e;return void t.__store.setState((t=>({...t,error:e,status:"error",updatedAt:Date.now()})))}t.__store.setState((t=>({...t,error:a,status:"error",updatedAt:Date.now()})))}})))}catch(t){if(F(t))return void(a?.preload||this.navigate(t));throw t}const r=t.slice(0,s),o=r.map((async(t,s)=>{const o=r[s-1];t.__load({preload:a?.preload,location:e,parentMatch:o}),await t.__loadPromise,o&&await o.__loadPromise}));await Promise.all(o)};reload=()=>{this.navigate({fromCurrent:!0,replace:!0,search:!0})};resolvePath=(t,e)=>L(this.basepath,t,w(e));navigate=async({from:t,to:a="",search:s,hash:r,replace:o,params:n})=>{const i=String(a),h=void 0===t?t:String(t);let c;try{new URL(`${i}`),c=!0}catch(t){}return e(!c),this.#n({from:h,to:i,search:s,hash:r,replace:o,params:n})};matchRoute=(t,e)=>{t={...t,to:t.to?this.resolvePath(t.from??"",t.to):void 0};const a=this.buildNext(t),s=e?.pending?this.state.pendingLocation:this.state.currentLocation;if(!s)return!1;const r=x(this.basepath,s.pathname,{...e,to:a.pathname});return!!r&&(e?.includeSearch??1?!!y(s.search,a.search)&&r:r)};buildLink=({from:t,to:e=".",search:a,params:s,hash:r,target:o,replace:n,activeOptions:i,preload:h,preloadDelay:c,disabled:u})=>{try{return new URL(`${e}`),{type:"external",href:e}}catch(t){}const l={from:t,to:e,search:a,params:s,hash:r,replace:n},p=this.buildNext(l);h=h??this.options.defaultPreload;const d=c??this.options.defaultPreloadDelay??0,f=this.state.currentLocation.pathname.split("/"),m=p.pathname.split("/").every(((t,e)=>t===f[e])),g=i?.exact?this.state.currentLocation.pathname===p.pathname:m,v=!i?.includeHash||this.state.currentLocation.hash===p.hash,w=!(i?.includeSearch??1)||y(this.state.currentLocation.search,p.search);return{type:"internal",next:p,handleFocus:t=>{h&&this.preloadRoute(l).catch((t=>{console.warn(t),console.warn("Error preloading route! ☝️")}))},handleClick:t=>{u||function(t){return!!(t.metaKey||t.altKey||t.ctrlKey||t.shiftKey)}(t)||t.defaultPrevented||o&&"_self"!==o||0!==t.button||(t.preventDefault(),this.#n(l))},handleEnter:t=>{const e=t.target||{};if(h){if(e.preloadTimeout)return;e.preloadTimeout=setTimeout((()=>{e.preloadTimeout=null,this.preloadRoute(l).catch((t=>{console.warn(t),console.warn("Error preloading route! ☝️")}))}),d)}},handleLeave:t=>{const e=t.target||{};e.preloadTimeout&&(clearTimeout(e.preloadTimeout),e.preloadTimeout=null)},handleTouchStart:t=>{this.preloadRoute(l).catch((t=>{console.warn(t),console.warn("Error preloading route! ☝️")}))},isActive:g&&v&&w,disabled:u}};dehydrate=()=>({state:{...d(this.state,["latestLocation","currentLocation","status","lastUpdated"]),currentMatches:this.state.currentMatches.map((t=>({id:t.id,state:{status:t.state.status}})))}});hydrate=t=>{this.__store.setState((a=>{const s=this.matchRoutes(t.state.latestLocation.pathname,{strictParseParams:!0});return s.forEach(((a,s)=>{const r=t.state.currentMatches[s];e(r&&r.id===a.id),a.__store.setState((t=>({...t,...r.state})))})),{...a,...t.state,currentMatches:s}}))};#h=t=>{const a=(t,s)=>{t.forEach(((t,s)=>{t.init({originalIndex:s,router:this});e(!this.routesById[t.id],String(t.id)),this.routesById[t.id]=t;const r=t.children;r?.length&&(a(r),t.children=r.map(((t,e)=>{const a=P(_(w(t.path??"/")));for(;a.length>1&&"/"===a[0]?.value;)a.shift();let s=0;return a.forEach(((t,e)=>{let a=1;for(;e--;)a*=.001;"pathname"===t.type&&"/"!==t.value?s+=1*a:"param"===t.type?s+=2*a:"wildcard"===t.type&&(s+=3*a)})),{child:t,parsed:a,index:e,score:s}})).sort(((t,e)=>t.score!==e.score?t.score-e.score:t.index-e.index)).map((t=>t.child)))}))};a([t]);const s=(t,a)=>{t.forEach((t=>{t.isRoot?e(!a):e(!a||t.parentRoute===a,(t.path,t.parentRoute?.id,a?.id)),t.children&&s(t.children,t)}))};return s([t],void 0),t};#i=t=>{let{pathname:e,search:a,hash:s,state:r}=this.history.location;const o=this.options.parseSearch(a);return{pathname:e,searchStr:a,search:f(t?.search,o),hash:s.split("#").reverse()[0]??"",href:`${e}${a}${s}`,state:r,key:r?.key||"__init__"}};#c=(t={})=>{t.fromCurrent=t.fromCurrent??""===t.to;const e=t.fromCurrent?this.state.latestLocation.pathname:t.from??this.state.latestLocation.pathname;let a=L(this.basepath??"/",e,`${t.to??""}`);const s={...l(this.matchRoutes(this.state.latestLocation.pathname,{strictParseParams:!0}))?.params};let r=!0===(t.params??!0)?s:p(t.params,s);r&&t.__matches?.map((t=>t.route.options.stringifyParams)).filter(Boolean).forEach((t=>{r={...r,...t(r)}})),a=R(a,r??{});const o=t.__matches?.map((t=>t.route.options.preSearchFilters??[])).flat().filter(Boolean)??[],n=t.__matches?.map((t=>t.route.options.postSearchFilters??[])).flat().filter(Boolean)??[],i=o?.length?o?.reduce(((t,e)=>e(t)),this.state.latestLocation.search):this.state.latestLocation.search,h=!0===t.search?i:t.search?p(t.search,i)??{}:o?.length?i:{},c=n?.length?n.reduce(((t,e)=>e(t)),h):h,u=f(this.state.latestLocation.search,c),d=this.options.stringifySearch(u);let m=!0===t.hash?this.state.latestLocation.hash:p(t.hash,this.state.latestLocation.hash);m=m?`#${m}`:"";return{pathname:a,search:u,searchStr:d,state:!0===t.state?this.state.latestLocation.state:p(t.state,this.state.latestLocation.state),hash:m,href:this.history.createHref(`${a}${d}${m}`),key:t.key}};#n=async t=>{const e=this.buildNext(t),a=""+Date.now()+Math.random();this.navigateTimeout&&clearTimeout(this.navigateTimeout);let s="replace";t.replace||(s="push");this.state.latestLocation.href===e.href&&!e.key&&(s="replace");const r=`${e.pathname}${e.searchStr}${e.hash?`${e.hash}`:""}`;return this.history["push"===s?"push":"replace"](r,{id:a,...e.state}),this.navigationPromise=new Promise((t=>{const e=this.resolveNavigation;this.resolveNavigation=()=>{e(),t()}}))}},t.cleanPath=w,t.createBrowserHistory=i,t.createHashHistory=function(){return i({getHref:()=>window.location.hash.substring(1),createHref:t=>`#${t}`})},t.createMemoryHistory=h,t.decode=$,t.defaultFetchServerDataFn=N,t.defaultParseSearch=T,t.defaultStringifySearch=H,t.encode=M,t.functionalUpdate=p,t.interpolatePath=R,t.invariant=e,t.isPlainObject=m,t.isRedirect=F,t.joinPaths=v,t.last=l,t.matchByPath=E,t.matchPathname=x,t.parsePathname=P,t.parseSearchWith=j,t.partialDeepEqual=y,t.pick=d,t.redirect=function(t){return t.isRedirect=!0,t},t.replaceEqualDeep=f,t.resolvePath=L,t.rootRouteId=A,t.stringifySearchWith=O,t.trimPath=b,t.trimPathLeft=_,t.trimPathRight=S,t.warning=function(t,e){},Object.defineProperty(t,"__esModule",{value:!0})}));
//# sourceMappingURL=index.production.js.map
{
"name": "@tanstack/router",
"author": "Tanner Linsley",
"version": "0.0.1-beta.82",
"version": "0.0.1-beta.83",
"license": "MIT",

@@ -6,0 +6,0 @@ "repository": "tanstack/router",

@@ -6,3 +6,2 @@ import { GetFrameworkGeneric } from './frameworks'

import {
Expand,
IsAny,

@@ -21,3 +20,2 @@ NoInfer,

export type AnyLoaderData = {}
export type AnyPathParams = {}

@@ -109,6 +107,3 @@ export type AnySearchSchema = {}

TParentParams extends AnyPathParams = {},
TParams extends Record<ParsePathParams<TPath>, any> = Record<
ParsePathParams<TPath>,
string
>,
TParams = Record<ParsePathParams<TPath>, string>,
TAllParams = TParams,

@@ -191,5 +186,5 @@ TParentContext extends AnyContext = AnyContext,

rawParams: IsAny<TPath, any, Record<ParsePathParams<TPath>, string>>,
) => TParams extends Record<string, any>
) => TParams extends Record<ParsePathParams<TPath>, any>
? TParams
: 'parseParams must return a Record<string, any>'
: 'parseParams must return an ojbect'
stringifyParams?: (

@@ -205,3 +200,3 @@ params: NoInfer<TParams>,

(PickUnsafe<TParentParams, ParsePathParams<TPath>> extends never // Detect if an existing path param is being redefined
? {}
? { test?: PickUnsafe<TParentParams, ParsePathParams<TPath>> }
: 'Cannot redefined path params in child routes!')

@@ -208,0 +203,0 @@

@@ -1230,3 +1230,3 @@ import { Store } from '@tanstack/store'

const href = `${next.pathname}${next.searchStr}${
next.hash ? `#${next.hash}` : ''
next.hash ? `${next.hash}` : ''
}`

@@ -1233,0 +1233,0 @@

@@ -84,14 +84,2 @@ export type NoInfer<T> = [T][T extends any ? 0 : never]

export function warning(cond: any, message: string): cond is true {
if (cond) {
if (typeof console !== 'undefined') console.warn(message)
try {
throw new Error(message)
} catch {}
}
return true
}
function isFunction(d: any): d is Function {

@@ -98,0 +86,0 @@ return typeof d === 'function'

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc