@tanstack/router-core 0.0.1-beta.7 → 0.0.1-beta.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -41,7 +41,6 @@ exports.trimPathLeft = path.trimPathLeft;
41
41
  exports.trimPathRight = path.trimPathRight;
42
42
  exports.decode = qss.decode;
43
43
  exports.encode = qss.encode;
44
- exports.cascadeLoaderData = route.cascadeLoaderData;
45
44
  exports.createRoute = route.createRoute;
46
45
  exports.createRouteConfig = routeConfig.createRouteConfig;
47
46
  exports.rootRouteId = routeConfig.rootRouteId;
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -13,7 +13,6 @@
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
15
  var _rollupPluginBabelHelpers = require('../../../_virtual/_rollupPluginBabelHelpers.js');
16
- var utils = require('./utils.js');
17
16
 
18
17
  function createRoute(routeConfig, options, parent, router) {
19
18
  const {
@@ -146,16 +145,6 @@ function createRoute(routeConfig, options, parent, router) {
146
145
  });
147
146
  return route;
148
147
  }
149
- function cascadeLoaderData(matches) {
150
- matches.forEach((match, index) => {
151
- const parent = matches[index - 1];
152
148
 
153
- if (parent) {
154
- match.loaderData = utils.replaceEqualDeep(match.loaderData, _rollupPluginBabelHelpers["extends"]({}, parent.loaderData, match.routeLoaderData));
155
- }
156
- });
157
- }
158
-
159
- exports.cascadeLoaderData = cascadeLoaderData;
160
149
  exports.createRoute = createRoute;
161
150
  //# sourceMappingURL=route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sources":["../../../../../src/route.ts"],"sourcesContent":["import {\n CheckRelativePath,\n LinkInfo,\n LinkOptions,\n ResolveRelativePath,\n ToOptions,\n} from './link'\nimport { LoaderContext, RouteConfig, RouteOptions } from './routeConfig'\nimport {\n AnyAllRouteInfo,\n AnyRouteInfo,\n DefaultAllRouteInfo,\n RouteInfo,\n RouteInfoByPath,\n} from './routeInfo'\nimport { RouteMatch } from './routeMatch'\nimport {\n Action,\n ActionState,\n Loader,\n LoaderState,\n MatchRouteOptions,\n Router,\n} from './router'\nimport { NoInfer, replaceEqualDeep } from './utils'\n\nexport interface AnyRoute extends Route<any, any> {}\n\nexport interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n> {\n routeId: TRouteInfo['id']\n routeRouteId: TRouteInfo['routeId']\n routePath: TRouteInfo['path']\n fullPath: TRouteInfo['fullPath']\n parentRoute?: AnyRoute\n childRoutes?: AnyRoute[]\n options: RouteOptions\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>\n buildLink: <TTo extends string = '.'>(\n options: Omit<\n LinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n 'from'\n >,\n ) => LinkInfo\n matchRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<TRouteInfo['id'], TTo>,\n >(\n matchLocation: CheckRelativePath<\n TAllRouteInfo,\n TRouteInfo['fullPath'],\n NoInfer<TTo>\n > &\n Omit<ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>, 'from'>,\n opts?: MatchRouteOptions,\n ) => RouteInfoByPath<TAllRouteInfo, TResolved>['allParams']\n navigate: <TTo extends string = '.'>(\n options: Omit<LinkOptions<TAllRouteInfo, TRouteInfo['id'], TTo>, 'from'>,\n ) => Promise<void>\n action: unknown extends TRouteInfo['actionResponse']\n ?\n | Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n | undefined\n : Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n loader: unknown extends TRouteInfo['routeLoaderData']\n ?\n | Action<\n LoaderContext<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams']\n >,\n TRouteInfo['routeLoaderData']\n >\n | undefined\n : Loader<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams'],\n TRouteInfo['routeLoaderData']\n >\n}\n\nexport function createRoute<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n>(\n routeConfig: RouteConfig,\n options: TRouteInfo['options'],\n parent: undefined | Route<TAllRouteInfo, any>,\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>,\n): Route<TAllRouteInfo, TRouteInfo> {\n const { id, routeId, path: routePath, fullPath } = routeConfig\n\n const action =\n router.state.actions[id] ||\n (() => {\n router.state.actions[id] = {\n pending: [],\n submit: async <T, U>(\n submission: T,\n actionOpts?: { invalidate?: boolean },\n ) => {\n if (!route) {\n return\n }\n\n const invalidate = actionOpts?.invalidate ?? true\n\n const actionState: ActionState<T, U> = {\n submittedAt: Date.now(),\n status: 'pending',\n submission,\n }\n\n action.current = actionState\n action.latest = actionState\n action.pending.push(actionState)\n\n router.state = {\n ...router.state,\n currentAction: actionState,\n latestAction: actionState,\n }\n\n router.notify()\n\n try {\n const res = await route.options.action?.(submission)\n actionState.data = res as U\n if (invalidate) {\n router.invalidateRoute({ to: '.', fromCurrent: true })\n await router.reload()\n }\n actionState.status = 'success'\n return res\n } catch (err) {\n console.error(err)\n actionState.error = err\n actionState.status = 'error'\n } finally {\n action.pending = action.pending.filter((d) => d !== actionState)\n router.removeActionQueue.push({ action, actionState })\n router.notify()\n }\n },\n }\n return router.state.actions[id]!\n })()\n\n const loader =\n router.state.loaders[id] ||\n (() => {\n router.state.loaders[id] = {\n pending: [],\n fetch: (async (loaderContext: LoaderContext<any, any>) => {\n if (!route) {\n return\n }\n\n const loaderState: LoaderState<any, any> = {\n loadedAt: Date.now(),\n loaderContext,\n }\n\n loader.current = loaderState\n loader.latest = loaderState\n loader.pending.push(loaderState)\n\n // router.state = {\n // ...router.state,\n // currentAction: loaderState,\n // latestAction: loaderState,\n // }\n\n router.notify()\n\n try {\n return await route.options.loader?.(loaderContext)\n } finally {\n loader.pending = loader.pending.filter((d) => d !== loaderState)\n // router.removeActionQueue.push({ loader, loaderState })\n router.notify()\n }\n }) as any,\n }\n return router.state.loaders[id]!\n })()\n\n let route: Route<TAllRouteInfo, TRouteInfo> = {\n routeId: id,\n routeRouteId: routeId,\n routePath,\n fullPath,\n options,\n router,\n childRoutes: undefined!,\n parentRoute: parent,\n action,\n loader: loader as any,\n\n buildLink: (options) => {\n return router.buildLink({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n navigate: (options) => {\n return router.navigate({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n matchRoute: (matchLocation, opts) => {\n return router.matchRoute(\n {\n ...matchLocation,\n from: fullPath,\n } as any,\n opts,\n )\n },\n }\n\n router.options.createRoute?.({ router, route })\n\n return route\n}\n\nexport function cascadeLoaderData(matches: RouteMatch<any, any>[]) {\n matches.forEach((match, index) => {\n const parent = matches[index - 1]\n\n if (parent) {\n match.loaderData = replaceEqualDeep(match.loaderData, {\n ...parent.loaderData,\n ...match.routeLoaderData,\n })\n }\n })\n}\n"],"names":["createRoute","routeConfig","options","parent","router","id","routeId","path","routePath","fullPath","action","state","actions","pending","submit","submission","actionOpts","route","invalidate","actionState","submittedAt","Date","now","status","current","latest","push","currentAction","latestAction","notify","res","data","invalidateRoute","to","fromCurrent","reload","err","console","error","filter","d","removeActionQueue","loader","loaders","fetch","loaderContext","loaderState","loadedAt","routeRouteId","childRoutes","undefined","parentRoute","buildLink","_extends","from","navigate","matchRoute","matchLocation","opts","cascadeLoaderData","matches","forEach","match","index","loaderData","replaceEqualDeep","routeLoaderData"],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sources":["../../../../../src/route.ts"],"sourcesContent":["import {\n CheckRelativePath,\n LinkInfo,\n LinkOptions,\n ResolveRelativePath,\n ToOptions,\n} from './link'\nimport { LoaderContext, RouteConfig, RouteOptions } from './routeConfig'\nimport {\n AnyAllRouteInfo,\n AnyRouteInfo,\n DefaultAllRouteInfo,\n RouteInfo,\n RouteInfoByPath,\n} from './routeInfo'\nimport { RouteMatch } from './routeMatch'\nimport {\n Action,\n ActionState,\n Loader,\n LoaderState,\n MatchRouteOptions,\n Router,\n} from './router'\nimport { NoInfer, replaceEqualDeep } from './utils'\n\nexport interface AnyRoute extends Route<any, any> {}\n\nexport interface Route<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n> {\n routeId: TRouteInfo['id']\n routeRouteId: TRouteInfo['routeId']\n routePath: TRouteInfo['path']\n fullPath: TRouteInfo['fullPath']\n parentRoute?: AnyRoute\n childRoutes?: AnyRoute[]\n options: RouteOptions\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>\n buildLink: <TTo extends string = '.'>(\n options: Omit<\n LinkOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>,\n 'from'\n >,\n ) => LinkInfo\n matchRoute: <\n TTo extends string = '.',\n TResolved extends string = ResolveRelativePath<TRouteInfo['id'], TTo>,\n >(\n matchLocation: CheckRelativePath<\n TAllRouteInfo,\n TRouteInfo['fullPath'],\n NoInfer<TTo>\n > &\n Omit<ToOptions<TAllRouteInfo, TRouteInfo['fullPath'], TTo>, 'from'>,\n opts?: MatchRouteOptions,\n ) => RouteInfoByPath<TAllRouteInfo, TResolved>['allParams']\n navigate: <TTo extends string = '.'>(\n options: Omit<LinkOptions<TAllRouteInfo, TRouteInfo['id'], TTo>, 'from'>,\n ) => Promise<void>\n action: unknown extends TRouteInfo['actionResponse']\n ?\n | Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n | undefined\n : Action<TRouteInfo['actionPayload'], TRouteInfo['actionResponse']>\n loader: unknown extends TRouteInfo['routeLoaderData']\n ?\n | Action<\n LoaderContext<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams']\n >,\n TRouteInfo['routeLoaderData']\n >\n | undefined\n : Loader<\n TRouteInfo['fullSearchSchema'],\n TRouteInfo['allParams'],\n TRouteInfo['routeLoaderData']\n >\n}\n\nexport function createRoute<\n TAllRouteInfo extends AnyAllRouteInfo = DefaultAllRouteInfo,\n TRouteInfo extends AnyRouteInfo = RouteInfo,\n>(\n routeConfig: RouteConfig,\n options: TRouteInfo['options'],\n parent: undefined | Route<TAllRouteInfo, any>,\n router: Router<TAllRouteInfo['routeConfig'], TAllRouteInfo>,\n): Route<TAllRouteInfo, TRouteInfo> {\n const { id, routeId, path: routePath, fullPath } = routeConfig\n\n const action =\n router.state.actions[id] ||\n (() => {\n router.state.actions[id] = {\n pending: [],\n submit: async <T, U>(\n submission: T,\n actionOpts?: { invalidate?: boolean },\n ) => {\n if (!route) {\n return\n }\n\n const invalidate = actionOpts?.invalidate ?? true\n\n const actionState: ActionState<T, U> = {\n submittedAt: Date.now(),\n status: 'pending',\n submission,\n }\n\n action.current = actionState\n action.latest = actionState\n action.pending.push(actionState)\n\n router.state = {\n ...router.state,\n currentAction: actionState,\n latestAction: actionState,\n }\n\n router.notify()\n\n try {\n const res = await route.options.action?.(submission)\n actionState.data = res as U\n if (invalidate) {\n router.invalidateRoute({ to: '.', fromCurrent: true })\n await router.reload()\n }\n actionState.status = 'success'\n return res\n } catch (err) {\n console.error(err)\n actionState.error = err\n actionState.status = 'error'\n } finally {\n action.pending = action.pending.filter((d) => d !== actionState)\n router.removeActionQueue.push({ action, actionState })\n router.notify()\n }\n },\n }\n return router.state.actions[id]!\n })()\n\n const loader =\n router.state.loaders[id] ||\n (() => {\n router.state.loaders[id] = {\n pending: [],\n fetch: (async (loaderContext: LoaderContext<any, any>) => {\n if (!route) {\n return\n }\n\n const loaderState: LoaderState<any, any> = {\n loadedAt: Date.now(),\n loaderContext,\n }\n\n loader.current = loaderState\n loader.latest = loaderState\n loader.pending.push(loaderState)\n\n // router.state = {\n // ...router.state,\n // currentAction: loaderState,\n // latestAction: loaderState,\n // }\n\n router.notify()\n\n try {\n return await route.options.loader?.(loaderContext)\n } finally {\n loader.pending = loader.pending.filter((d) => d !== loaderState)\n // router.removeActionQueue.push({ loader, loaderState })\n router.notify()\n }\n }) as any,\n }\n return router.state.loaders[id]!\n })()\n\n let route: Route<TAllRouteInfo, TRouteInfo> = {\n routeId: id,\n routeRouteId: routeId,\n routePath,\n fullPath,\n options,\n router,\n childRoutes: undefined!,\n parentRoute: parent,\n action,\n loader: loader as any,\n\n buildLink: (options) => {\n return router.buildLink({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n navigate: (options) => {\n return router.navigate({\n ...options,\n from: fullPath,\n } as any) as any\n },\n\n matchRoute: (matchLocation, opts) => {\n return router.matchRoute(\n {\n ...matchLocation,\n from: fullPath,\n } as any,\n opts,\n )\n },\n }\n\n router.options.createRoute?.({ router, route })\n\n return route\n}\n"],"names":["createRoute","routeConfig","options","parent","router","id","routeId","path","routePath","fullPath","action","state","actions","pending","submit","submission","actionOpts","route","invalidate","actionState","submittedAt","Date","now","status","current","latest","push","currentAction","latestAction","notify","res","data","invalidateRoute","to","fromCurrent","reload","err","console","error","filter","d","removeActionQueue","loader","loaders","fetch","loaderContext","loaderState","loadedAt","routeRouteId","childRoutes","undefined","parentRoute","buildLink","_extends","from","navigate","matchRoute","matchLocation","opts"],"mappings":"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"}
@@ -82,7 +82,7 @@ function createRouter(userOptions) {
82
82
  isFetching: router.state.status === 'loading' || router.state.matches.some(d => d.isFetching),
83
83
  isPreloading: Object.values(router.matchCache).some(d => d.match.isFetching && !router.state.matches.find(dd => dd.matchId === d.match.matchId))
84
84
  });
85
- route.cascadeLoaderData(router.state.matches);
85
+ cascadeLoaderData(router.state.matches);
86
86
  router.listeners.forEach(listener => listener(router));
87
87
  },
88
88
  dehydrateState: () => {
@@ -424,7 +424,7 @@ function createRouter(userOptions) {
424
424
  };
425
425
 
426
426
  recurse([router.routeTree]);
427
- route.cascadeLoaderData(matches);
427
+ cascadeLoaderData(matches);
428
428
  return matches;
429
429
  },
430
430
  loadMatches: async (resolvedMatches, loaderOpts) => {
@@ -808,5 +808,15 @@ function isCtrlEvent(e) {
808
808
  return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
809
809
  }
810
810
 
811
+ function cascadeLoaderData(matches) {
812
+ matches.forEach((match, index) => {
813
+ const parent = matches[index - 1];
814
+
815
+ if (parent) {
816
+ match.loaderData = utils.replaceEqualDeep(match.loaderData, _rollupPluginBabelHelpers["extends"]({}, parent.loaderData, match.routeLoaderData));
817
+ }
818
+ });
819
+ }
820
+
811
821
  exports.createRouter = createRouter;
812
822
  //# sourceMappingURL=router.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"router.js","sources":["../../../../../src/router.ts"],"sourcesContent":["import {\n BrowserHistory,\n createBrowserHistory,\n createMemoryHistory,\n HashHistory,\n History,\n MemoryHistory,\n} from 'history'\nimport invariant from 'tiny-invariant'\nimport { GetFrameworkGeneric } from './frameworks'\n\nimport {\n LinkInfo,\n LinkOptions,\n NavigateOptionsAbsolute,\n ToOptions,\n ValidFromPath,\n} from './link'\nimport {\n cleanPath,\n interpolatePath,\n joinPaths,\n matchPathname,\n resolvePath,\n} from './path'\nimport { AnyRoute, cascadeLoaderData, createRoute, Route } from './route'\nimport {\n AnyLoaderData,\n AnyPathParams,\n AnyRouteConfig,\n AnySearchSchema,\n LoaderContext,\n RouteConfig,\n SearchFilter,\n} from './routeConfig'\nimport {\n AllRouteInfo,\n AnyAllRouteInfo,\n AnyRouteInfo,\n RouteInfo,\n RoutesById,\n} from './routeInfo'\nimport { createRouteMatch, RouteMatch } from './routeMatch'\nimport { defaultParseSearch, defaultStringifySearch } from './searchParams'\nimport {\n functionalUpdate,\n last,\n pick,\n PickAsRequired,\n PickRequired,\n replaceEqualDeep,\n Timeout,\n Updater,\n} from './utils'\n\nexport interface LocationState {}\n\nexport interface Location<\n TSearchObj extends AnySearchSchema = {},\n TState extends LocationState = LocationState,\n> {\n href: string\n pathname: string\n search: TSearchObj\n searchStr: string\n state: TState\n hash: string\n key?: string\n}\n\nexport interface FromLocation {\n pathname: string\n search?: unknown\n key?: string\n hash?: string\n}\n\nexport type SearchSerializer = (searchObj: Record<string, any>) => string\nexport type SearchParser = (searchStr: string) => Record<string, any>\nexport type FilterRoutesFn = <TRoute extends Route<any, RouteInfo>>(\n routeConfigs: TRoute[],\n) => TRoute[]\n\nexport interface RouterOptions<TRouteConfig extends AnyRouteConfig> {\n history?: BrowserHistory | MemoryHistory | HashHistory\n stringifySearch?: SearchSerializer\n parseSearch?: SearchParser\n filterRoutes?: FilterRoutesFn\n defaultPreload?: false | 'intent'\n defaultPreloadMaxAge?: number\n defaultPreloadGcMaxAge?: number\n defaultPreloadDelay?: number\n useErrorBoundary?: boolean\n defaultElement?: GetFrameworkGeneric<'Element'>\n defaultErrorElement?: GetFrameworkGeneric<'Element'>\n defaultCatchElement?: GetFrameworkGeneric<'Element'>\n defaultPendingElement?: GetFrameworkGeneric<'Element'>\n defaultPendingMs?: number\n defaultPendingMinMs?: number\n defaultLoaderMaxAge?: number\n defaultLoaderGcMaxAge?: number\n caseSensitive?: boolean\n routeConfig?: TRouteConfig\n basepath?: string\n createRouter?: (router: Router<any, any>) => void\n createRoute?: (opts: { route: AnyRoute; router: Router<any, any> }) => void\n createElement?: (\n element: GetFrameworkGeneric<'SyncOrAsyncElement'>,\n ) => Promise<GetFrameworkGeneric<'Element'>>\n}\n\nexport interface Action<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submit: (submission?: TPayload) => Promise<TResponse>\n current?: ActionState<TPayload, TResponse>\n latest?: ActionState<TPayload, TResponse>\n pending: ActionState<TPayload, TResponse>[]\n}\n\nexport interface ActionState<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submittedAt: number\n status: 'idle' | 'pending' | 'success' | 'error'\n submission: TPayload\n data?: TResponse\n error?: unknown\n}\n\nexport interface Loader<\n TFullSearchSchema extends AnySearchSchema = {},\n TAllParams extends AnyPathParams = {},\n TRouteLoaderData = AnyLoaderData,\n> {\n fetch: keyof PickRequired<TFullSearchSchema> extends never\n ? keyof TAllParams extends never\n ? (loaderContext: { signal?: AbortSignal }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n params: TAllParams\n search?: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : keyof TAllParams extends never\n ? (loaderContext: {\n search: TFullSearchSchema\n params: TAllParams\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n search: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n current?: LoaderState<TFullSearchSchema, TAllParams>\n latest?: LoaderState<TFullSearchSchema, TAllParams>\n pending: LoaderState<TFullSearchSchema, TAllParams>[]\n}\n\nexport interface LoaderState<\n TFullSearchSchema = unknown,\n TAllParams = unknown,\n> {\n loadedAt: number\n loaderContext: LoaderContext<TFullSearchSchema, TAllParams>\n}\n\nexport interface RouterState {\n status: 'idle' | 'loading'\n location: Location\n matches: RouteMatch[]\n lastUpdated: number\n currentAction?: ActionState\n latestAction?: ActionState\n actions: Record<string, Action>\n loaders: Record<string, Loader>\n pending?: PendingState\n isFetching: boolean\n isPreloading: boolean\n}\n\nexport interface PendingState {\n location: Location\n matches: RouteMatch[]\n}\n\ntype Listener = (router: Router<any, any>) => void\n\nexport type ListenerFn = () => void\n\nexport interface BuildNextOptions {\n to?: string | number | null\n params?: true | Updater<Record<string, any>>\n search?: true | Updater<unknown>\n hash?: true | Updater<string>\n key?: string\n from?: string\n fromCurrent?: boolean\n __preSearchFilters?: SearchFilter<any>[]\n __postSearchFilters?: SearchFilter<any>[]\n}\n\nexport type MatchCacheEntry = {\n gc: number\n match: RouteMatch\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n fromCurrent?: boolean\n}\n\nexport interface MatchRouteOptions {\n pending: boolean\n caseSensitive?: boolean\n}\n\ntype LinkCurrentTargetElement = {\n preloadTimeout?: null | ReturnType<typeof setTimeout>\n}\n\ninterface DehydratedRouterState\n extends Pick<RouterState, 'status' | 'location' | 'lastUpdated'> {\n matches: DehydratedRouteMatch[]\n}\n\ninterface DehydratedRouteMatch\n extends Pick<\n RouteMatch<any, any>,\n | 'matchId'\n | 'status'\n | 'routeLoaderData'\n | 'loaderData'\n | 'isInvalid'\n | 'invalidAt'\n > {}\n\nexport interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n> {\n history: BrowserHistory | MemoryHistory | HashHistory\n options: PickAsRequired<\n RouterOptions<TRouteConfig>,\n 'stringifySearch' | 'parseSearch'\n >\n // Computed in this.update()\n basepath: string\n // Internal:\n allRouteInfo: TAllRouteInfo\n listeners: Listener[]\n location: Location\n navigateTimeout?: Timeout\n nextAction?: 'push' | 'replace'\n state: RouterState\n routeTree: Route<TAllRouteInfo, RouteInfo>\n routesById: RoutesById<TAllRouteInfo>\n navigationPromise: Promise<void>\n removeActionQueue: { action: Action; actionState: ActionState }[]\n startedLoadingAt: number\n resolveNavigation: () => void\n subscribe: (listener: Listener) => () => void\n notify: () => void\n mount: () => () => void\n onFocus: () => void\n update: <TRouteConfig extends RouteConfig = RouteConfig>(\n opts?: RouterOptions<TRouteConfig>,\n ) => Router<TRouteConfig>\n\n buildNext: (opts: BuildNextOptions) => Location\n cancelMatches: () => void\n loadLocation: (next?: Location) => Promise<void>\n matchCache: Record<string, MatchCacheEntry>\n cleanMatchCache: () => void\n getRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n id: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n loadRoute: (navigateOpts: BuildNextOptions) => Promise<RouteMatch[]>\n preloadRoute: (\n navigateOpts: BuildNextOptions,\n loaderOpts: { maxAge?: number; gcMaxAge?: number },\n ) => Promise<RouteMatch[]>\n matchRoutes: (\n pathname: string,\n opts?: { strictParseParams?: boolean },\n ) => RouteMatch[]\n loadMatches: (\n resolvedMatches: RouteMatch[],\n loaderOpts?: { withPending?: boolean } & (\n | { preload: true; maxAge: number; gcMaxAge: number }\n | { preload?: false; maxAge?: never; gcMaxAge?: never }\n ),\n ) => Promise<void>\n invalidateRoute: (opts: MatchLocation) => void\n reload: () => Promise<void>\n resolvePath: (from: string, path: string) => string\n navigate: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: NavigateOptionsAbsolute<TAllRouteInfo, TFrom, TTo>,\n ) => Promise<void>\n matchRoute: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n matchLocation: ToOptions<TAllRouteInfo, TFrom, TTo>,\n opts?: MatchRouteOptions,\n ) => boolean\n buildLink: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: LinkOptions<TAllRouteInfo, TFrom, TTo>,\n ) => LinkInfo\n dehydrateState: () => DehydratedRouterState\n hydrateState: (state: DehydratedRouterState) => void\n __: {\n buildRouteTree: (\n routeConfig: RouteConfig,\n ) => Route<TAllRouteInfo, AnyRouteInfo>\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ) => Location\n buildLocation: (dest: BuildNextOptions) => Location\n commitLocation: (next: Location, replace?: boolean) => Promise<void>\n navigate: (\n location: BuildNextOptions & { replace?: boolean },\n ) => Promise<void>\n }\n}\n\n// Detect if we're in the DOM\nconst isServer =\n typeof window === 'undefined' || !window.document?.createElement\n\n// This is the default history object if none is defined\nconst createDefaultHistory = () =>\n isServer ? createMemoryHistory() : createBrowserHistory()\n\nexport function createRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n>(\n userOptions?: RouterOptions<TRouteConfig>,\n): Router<TRouteConfig, TAllRouteInfo> {\n const history = userOptions?.history || createDefaultHistory()\n\n const originalOptions = {\n defaultLoaderGcMaxAge: 5 * 60 * 1000,\n defaultLoaderMaxAge: 0,\n defaultPreloadMaxAge: 2000,\n defaultPreloadDelay: 50,\n ...userOptions,\n stringifySearch: userOptions?.stringifySearch ?? defaultStringifySearch,\n parseSearch: userOptions?.parseSearch ?? defaultParseSearch,\n }\n\n let router: Router<TRouteConfig, TAllRouteInfo> = {\n history,\n options: originalOptions,\n listeners: [],\n removeActionQueue: [],\n // Resolved after construction\n basepath: '',\n routeTree: undefined!,\n routesById: {} as any,\n location: undefined!,\n allRouteInfo: undefined!,\n //\n navigationPromise: Promise.resolve(),\n resolveNavigation: () => {},\n matchCache: {},\n state: {\n status: 'idle',\n location: null!,\n matches: [],\n actions: {},\n loaders: {},\n lastUpdated: Date.now(),\n isFetching: false,\n isPreloading: false,\n },\n startedLoadingAt: Date.now(),\n subscribe: (listener: Listener): (() => void) => {\n router.listeners.push(listener as Listener)\n return () => {\n router.listeners = router.listeners.filter((x) => x !== listener)\n }\n },\n getRoute: (id) => {\n return router.routesById[id]\n },\n notify: (): void => {\n router.state = {\n ...router.state,\n isFetching:\n router.state.status === 'loading' ||\n router.state.matches.some((d) => d.isFetching),\n isPreloading: Object.values(router.matchCache).some(\n (d) =>\n d.match.isFetching &&\n !router.state.matches.find((dd) => dd.matchId === d.match.matchId),\n ),\n }\n\n cascadeLoaderData(router.state.matches)\n router.listeners.forEach((listener) => listener(router))\n },\n\n dehydrateState: () => {\n return {\n ...pick(router.state, ['status', 'location', 'lastUpdated']),\n matches: router.state.matches.map((match) =>\n pick(match, [\n 'matchId',\n 'status',\n 'routeLoaderData',\n 'loaderData',\n 'isInvalid',\n 'invalidAt',\n ]),\n ),\n }\n },\n\n hydrateState: (dehydratedState) => {\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n router.state = {\n ...router.state,\n ...dehydratedState,\n matches: matches.map((match) => {\n const dehydratedMatch = dehydratedState.matches.find(\n (d: any) => d.matchId === match.matchId,\n )\n invariant(\n dehydratedMatch,\n 'Oh no! Dehydrated route matches did not match the active state of the router 😬',\n )\n Object.assign(match, dehydratedMatch)\n return match\n }),\n }\n },\n\n mount: () => {\n const next = router.__.buildLocation({\n to: '.',\n search: true,\n hash: true,\n })\n\n // If the current location isn't updated, trigger a navigation\n // to the current location. Otherwise, load the current location.\n if (next.href !== router.location.href) {\n router.__.commitLocation(next, true)\n }\n\n router.loadLocation()\n\n const unsub = router.history.listen((event) => {\n console.log(event.location)\n router.loadLocation(\n router.__.parseLocation(event.location, router.location),\n )\n })\n\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n // Listen to visibillitychange and focus\n window.addEventListener('visibilitychange', router.onFocus, false)\n window.addEventListener('focus', router.onFocus, false)\n }\n\n return () => {\n unsub()\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', router.onFocus)\n window.removeEventListener('focus', router.onFocus)\n }\n },\n\n onFocus: () => {\n router.loadLocation()\n },\n\n update: (opts) => {\n const newHistory = opts?.history !== router.history\n if (!router.location || newHistory) {\n if (opts?.history) {\n router.history = opts.history\n }\n router.location = router.__.parseLocation(router.history.location)\n router.state.location = router.location\n }\n\n Object.assign(router.options, opts)\n\n const { basepath, routeConfig } = router.options\n\n router.basepath = cleanPath(`/${basepath ?? ''}`)\n\n if (routeConfig) {\n router.routesById = {} as any\n router.routeTree = router.__.buildRouteTree(routeConfig)\n }\n\n return router as any\n },\n\n cancelMatches: () => {\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n match.cancel()\n })\n },\n\n loadLocation: async (next?: Location) => {\n const id = Math.random()\n router.startedLoadingAt = id\n\n if (next) {\n // Ingest the new location\n router.location = next\n }\n\n // Clear out old actions\n router.removeActionQueue.forEach(({ action, actionState }) => {\n if (router.state.currentAction === actionState) {\n router.state.currentAction = undefined\n }\n if (action.current === actionState) {\n action.current = undefined\n }\n })\n router.removeActionQueue = []\n\n // Cancel any pending matches\n router.cancelMatches()\n\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n router.state = {\n ...router.state,\n pending: {\n matches: matches,\n location: router.location,\n },\n status: 'loading',\n }\n\n router.notify()\n\n // Load the matches\n await router.loadMatches(matches, {\n withPending: true,\n })\n\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return router.navigationPromise\n }\n\n const previousMatches = router.state.matches\n\n const exiting: RouteMatch[] = [],\n staying: RouteMatch[] = []\n\n previousMatches.forEach((d) => {\n if (matches.find((dd) => dd.matchId === d.matchId)) {\n staying.push(d)\n } else {\n exiting.push(d)\n }\n })\n\n const now = Date.now()\n\n exiting.forEach((d) => {\n d.__.onExit?.({\n params: d.params,\n search: d.routeSearch,\n })\n // Clear idle error states when match leaves\n if (d.status === 'error' && !d.isFetching) {\n d.status = 'idle'\n d.error = undefined\n }\n const gc = Math.max(\n d.options.loaderGcMaxAge ?? router.options.defaultLoaderGcMaxAge ?? 0,\n d.options.loaderMaxAge ?? router.options.defaultLoaderMaxAge ?? 0,\n )\n if (gc > 0) {\n router.matchCache[d.matchId] = {\n gc: gc == Infinity ? Number.MAX_SAFE_INTEGER : now + gc,\n match: d,\n }\n }\n })\n\n staying.forEach((d) => {\n d.options.onTransition?.({\n params: d.params,\n search: d.routeSearch,\n })\n })\n\n const entering = matches.filter((d) => {\n return !previousMatches.find((dd) => dd.matchId === d.matchId)\n })\n\n entering.forEach((d) => {\n d.__.onExit = d.options.onMatch?.({\n params: d.params,\n search: d.search,\n })\n delete router.matchCache[d.matchId]\n })\n\n if (matches.some((d) => d.status === 'loading')) {\n router.notify()\n await Promise.all(\n matches.map((d) => d.__.loaderPromise || Promise.resolve()),\n )\n }\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return\n }\n\n router.state = {\n ...router.state,\n location: router.location,\n matches,\n pending: undefined,\n status: 'idle',\n }\n\n router.notify()\n router.resolveNavigation()\n },\n\n cleanMatchCache: () => {\n const now = Date.now()\n\n Object.keys(router.matchCache).forEach((matchId) => {\n const entry = router.matchCache[matchId]!\n\n // Don't remove loading matches\n if (entry.match.status === 'loading') {\n return\n }\n\n // Do not remove successful matches that are still valid\n if (entry.gc > 0 && entry.gc > now) {\n return\n }\n\n // Everything else gets removed\n delete router.matchCache[matchId]\n })\n },\n\n loadRoute: async (navigateOpts = router.location) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches)\n return matches\n },\n\n preloadRoute: async (navigateOpts = router.location, loaderOpts) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches, {\n preload: true,\n maxAge:\n loaderOpts.maxAge ??\n router.options.defaultPreloadMaxAge ??\n router.options.defaultLoaderMaxAge ??\n 0,\n gcMaxAge:\n loaderOpts.gcMaxAge ??\n router.options.defaultPreloadGcMaxAge ??\n router.options.defaultLoaderGcMaxAge ??\n 0,\n })\n return matches\n },\n\n matchRoutes: (pathname, opts) => {\n router.cleanMatchCache()\n\n const matches: RouteMatch[] = []\n\n if (!router.routeTree) {\n return matches\n }\n\n const existingMatches = [\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ]\n\n const recurse = async (routes: Route<any, any>[]): Promise<void> => {\n const parentMatch = last(matches)\n let params = parentMatch?.params ?? {}\n\n const filteredRoutes = router.options.filterRoutes?.(routes) ?? routes\n\n let foundRoutes: Route[] = []\n\n const findMatchInRoutes = (parentRoutes: Route[], routes: Route[]) => {\n routes.some((route) => {\n if (!route.routePath && route.childRoutes?.length) {\n return findMatchInRoutes(\n [...foundRoutes, route],\n route.childRoutes,\n )\n }\n\n const fuzzy = !!(\n route.routePath !== '/' || route.childRoutes?.length\n )\n\n const matchParams = matchPathname(pathname, {\n to: route.fullPath,\n fuzzy,\n caseSensitive:\n route.options.caseSensitive ?? router.options.caseSensitive,\n })\n\n if (matchParams) {\n let parsedParams\n\n try {\n parsedParams =\n route.options.parseParams?.(matchParams!) ?? matchParams\n } catch (err) {\n if (opts?.strictParseParams) {\n throw err\n }\n }\n\n params = {\n ...params,\n ...parsedParams,\n }\n }\n\n if (!!matchParams) {\n foundRoutes = [...parentRoutes, route]\n }\n\n return !!foundRoutes.length\n })\n\n return !!foundRoutes.length\n }\n\n findMatchInRoutes([], filteredRoutes)\n\n if (!foundRoutes.length) {\n return\n }\n\n foundRoutes.forEach((foundRoute) => {\n const interpolatedPath = interpolatePath(foundRoute.routePath, params)\n const matchId = interpolatePath(foundRoute.routeId, params, true)\n\n const match =\n existingMatches.find((d) => d.matchId === matchId) ||\n router.matchCache[matchId]?.match ||\n createRouteMatch(router, foundRoute, {\n matchId,\n params,\n pathname: joinPaths([pathname, interpolatedPath]),\n })\n\n matches.push(match)\n })\n\n const foundRoute = last(foundRoutes)!\n\n if (foundRoute.childRoutes?.length) {\n recurse(foundRoute.childRoutes)\n }\n }\n\n recurse([router.routeTree])\n\n cascadeLoaderData(matches)\n\n return matches\n },\n\n loadMatches: async (resolvedMatches, loaderOpts) => {\n const matchPromises = resolvedMatches.map(async (match) => {\n // Validate the match (loads search params etc)\n match.__.validate()\n match.load(loaderOpts)\n\n if (match.status === 'loading') {\n // If requested, start the pending timers\n if (loaderOpts?.withPending) match.__.startPending()\n\n // Wait for the first sign of activity from the match\n // This might be completion, error, or a pending state\n await match.__.loadPromise\n }\n })\n\n router.notify()\n\n await Promise.all(matchPromises)\n },\n\n invalidateRoute: (opts: MatchLocation) => {\n const next = router.buildNext(opts)\n const unloadedMatchIds = router\n .matchRoutes(next.pathname)\n .map((d) => d.matchId)\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n if (unloadedMatchIds.includes(match.matchId)) {\n match.invalidate()\n }\n })\n },\n\n reload: () =>\n router.__.navigate({\n fromCurrent: true,\n replace: true,\n search: true,\n }),\n\n resolvePath: (from: string, path: string) => {\n return resolvePath(router.basepath!, from, cleanPath(path))\n },\n\n matchRoute: (location, opts) => {\n // const location = router.buildNext(opts)\n\n location = {\n ...location,\n to: location.to\n ? router.resolvePath(location.from ?? '', location.to)\n : undefined,\n }\n\n const next = router.buildNext(location)\n\n if (opts?.pending) {\n if (!router.state.pending?.location) {\n return false\n }\n return !!matchPathname(router.state.pending.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n }\n\n return !!matchPathname(router.state.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n },\n\n navigate: async ({ from, to = '.', search, hash, replace, params }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n const toString = String(to)\n const fromString = String(from)\n\n let isExternal\n\n try {\n new URL(`${toString}`)\n isExternal = true\n } catch (e) {}\n\n invariant(\n !isExternal,\n 'Attempting to navigate to external url with router.navigate!',\n )\n\n return router.__.navigate({\n from: fromString,\n to: toString,\n search,\n hash,\n replace,\n params,\n })\n },\n\n buildLink: ({\n from,\n to = '.',\n search,\n params,\n hash,\n target,\n replace,\n activeOptions,\n preload,\n preloadMaxAge: userPreloadMaxAge,\n preloadGcMaxAge: userPreloadGcMaxAge,\n preloadDelay: userPreloadDelay,\n disabled,\n }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n try {\n new URL(`${to}`)\n return {\n type: 'external',\n href: to,\n }\n } catch (e) {}\n\n const nextOpts = {\n from,\n to,\n search,\n params,\n hash,\n replace,\n }\n\n const next = router.buildNext(nextOpts)\n\n preload = preload ?? router.options.defaultPreload\n const preloadDelay =\n userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0\n\n // Compare path/hash for matches\n const pathIsEqual = router.state.location.pathname === next.pathname\n const currentPathSplit = router.state.location.pathname.split('/')\n const nextPathSplit = next.pathname.split('/')\n const pathIsFuzzyEqual = nextPathSplit.every(\n (d, i) => d === currentPathSplit[i],\n )\n const hashIsEqual = router.state.location.hash === next.hash\n // Combine the matches based on user options\n const pathTest = activeOptions?.exact ? pathIsEqual : pathIsFuzzyEqual\n const hashTest = activeOptions?.includeHash ? hashIsEqual : true\n\n // The final \"active\" test\n const isActive = pathTest && hashTest\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!target || target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n if (pathIsEqual && !search && !hash) {\n router.invalidateRoute(nextOpts)\n }\n\n // All is well? Navigate!)\n router.__.navigate(nextOpts)\n }\n }\n\n // The click handler\n const handleFocus = (e: MouseEvent) => {\n if (preload) {\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\n }\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\n }, preloadDelay)\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (target.preloadTimeout) {\n clearTimeout(target.preloadTimeout)\n target.preloadTimeout = null\n }\n }\n\n return {\n type: 'internal',\n next,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n isActive,\n disabled,\n }\n },\n buildNext: (opts: BuildNextOptions) => {\n const next = router.__.buildLocation(opts)\n\n const matches = router.matchRoutes(next.pathname)\n\n const __preSearchFilters = matches\n .map((match) => match.options.preSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n const __postSearchFilters = matches\n .map((match) => match.options.postSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n return router.__.buildLocation({\n ...opts,\n __preSearchFilters,\n __postSearchFilters,\n })\n },\n\n __: {\n buildRouteTree: (rootRouteConfig: RouteConfig) => {\n const recurseRoutes = (\n routeConfigs: RouteConfig[],\n parent?: Route<TAllRouteInfo, any>,\n ): Route<TAllRouteInfo, any>[] => {\n return routeConfigs.map((routeConfig) => {\n const routeOptions = routeConfig.options\n const route = createRoute(routeConfig, routeOptions, parent, router)\n const existingRoute = (router.routesById as any)[route.routeId]\n\n if (existingRoute) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Duplicate routes found with id: ${String(route.routeId)}`,\n router.routesById,\n route,\n )\n }\n throw new Error()\n }\n\n ;(router.routesById as any)[route.routeId] = route\n\n const children = routeConfig.children as RouteConfig[]\n\n route.childRoutes = children?.length\n ? recurseRoutes(children, route)\n : undefined\n\n return route\n })\n }\n\n const routes = recurseRoutes([rootRouteConfig])\n\n return routes[0]!\n },\n\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ): Location => {\n const parsedSearch = router.options.parseSearch(location.search)\n\n return {\n pathname: location.pathname,\n searchStr: location.search,\n search: replaceEqualDeep(previousLocation?.search, parsedSearch),\n hash: location.hash.split('#').reverse()[0] ?? '',\n href: `${location.pathname}${location.search}${location.hash}`,\n state: location.state as LocationState,\n key: location.key,\n }\n },\n\n navigate: (location: BuildNextOptions & { replace?: boolean }) => {\n const next = router.buildNext(location)\n return router.__.commitLocation(next, location.replace)\n },\n\n buildLocation: (dest: BuildNextOptions = {}): Location => {\n // const resolvedFrom: Location = {\n // ...router.location,\n const fromPathname = dest.fromCurrent\n ? router.location.pathname\n : dest.from ?? router.location.pathname\n\n let pathname = resolvePath(\n router.basepath ?? '/',\n fromPathname,\n `${dest.to ?? '.'}`,\n )\n\n const fromMatches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n const toMatches = router.matchRoutes(pathname)\n\n const prevParams = { ...last(fromMatches)?.params }\n\n let nextParams =\n (dest.params ?? true) === true\n ? prevParams\n : functionalUpdate(dest.params!, prevParams)\n\n if (nextParams) {\n toMatches\n .map((d) => d.options.stringifyParams)\n .filter(Boolean)\n .forEach((fn) => {\n Object.assign({}, nextParams!, fn!(nextParams!))\n })\n }\n\n pathname = interpolatePath(pathname, nextParams ?? {})\n\n // Pre filters first\n const preFilteredSearch = dest.__preSearchFilters?.length\n ? dest.__preSearchFilters.reduce(\n (prev, next) => next(prev),\n router.location.search,\n )\n : router.location.search\n\n // Then the link/navigate function\n const destSearch =\n dest.search === true\n ? preFilteredSearch // Preserve resolvedFrom true\n : dest.search\n ? functionalUpdate(dest.search, preFilteredSearch) ?? {} // Updater\n : dest.__preSearchFilters?.length\n ? preFilteredSearch // Preserve resolvedFrom filters\n : {}\n\n // Then post filters\n const postFilteredSearch = dest.__postSearchFilters?.length\n ? dest.__postSearchFilters.reduce(\n (prev, next) => next(prev),\n destSearch,\n )\n : destSearch\n\n const search = replaceEqualDeep(\n router.location.search,\n postFilteredSearch,\n )\n\n const searchStr = router.options.stringifySearch(search)\n let hash =\n dest.hash === true\n ? router.location.hash\n : functionalUpdate(dest.hash!, router.location.hash)\n hash = hash ? `#${hash}` : ''\n\n return {\n pathname,\n search,\n searchStr,\n state: router.location.state,\n hash,\n href: `${pathname}${searchStr}${hash}`,\n key: dest.key,\n }\n },\n\n commitLocation: (next: Location, replace?: boolean): Promise<void> => {\n const id = '' + Date.now() + Math.random()\n\n if (router.navigateTimeout) clearTimeout(router.navigateTimeout)\n\n let nextAction: 'push' | 'replace' = 'replace'\n\n if (!replace) {\n nextAction = 'push'\n }\n\n const isSameUrl =\n router.__.parseLocation(history.location).href === next.href\n\n if (isSameUrl && !next.key) {\n nextAction = 'replace'\n }\n\n if (nextAction === 'replace') {\n history.replace(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n } else {\n history.push(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n }\n\n router.navigationPromise = new Promise((resolve) => {\n const previousNavigationResolve = router.resolveNavigation\n\n router.resolveNavigation = () => {\n previousNavigationResolve()\n resolve()\n }\n })\n\n return router.navigationPromise\n },\n },\n }\n\n router.update(userOptions)\n\n // Allow frameworks to hook into the router creation\n router.options.createRouter?.(router)\n\n return router\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n"],"names":["isServer","window","document","createElement","createDefaultHistory","createMemoryHistory","createBrowserHistory","createRouter","userOptions","history","originalOptions","_extends","defaultLoaderGcMaxAge","defaultLoaderMaxAge","defaultPreloadMaxAge","defaultPreloadDelay","stringifySearch","defaultStringifySearch","parseSearch","defaultParseSearch","router","options","listeners","removeActionQueue","basepath","routeTree","undefined","routesById","location","allRouteInfo","navigationPromise","Promise","resolve","resolveNavigation","matchCache","state","status","matches","actions","loaders","lastUpdated","Date","now","isFetching","isPreloading","startedLoadingAt","subscribe","listener","push","filter","x","getRoute","id","notify","some","d","Object","values","match","find","dd","matchId","cascadeLoaderData","forEach","dehydrateState","pick","map","hydrateState","dehydratedState","matchRoutes","pathname","strictParseParams","dehydratedMatch","invariant","assign","mount","next","__","buildLocation","to","search","hash","href","commitLocation","loadLocation","unsub","listen","event","console","log","parseLocation","addEventListener","onFocus","removeEventListener","update","opts","newHistory","routeConfig","cleanPath","buildRouteTree","cancelMatches","pending","cancel","Math","random","action","actionState","currentAction","current","loadMatches","withPending","previousMatches","exiting","staying","onExit","params","routeSearch","error","gc","max","loaderGcMaxAge","loaderMaxAge","Infinity","Number","MAX_SAFE_INTEGER","onTransition","entering","onMatch","all","loaderPromise","cleanMatchCache","keys","entry","loadRoute","navigateOpts","buildNext","preloadRoute","loaderOpts","preload","maxAge","gcMaxAge","defaultPreloadGcMaxAge","existingMatches","recurse","routes","parentMatch","last","filteredRoutes","filterRoutes","foundRoutes","findMatchInRoutes","parentRoutes","route","routePath","childRoutes","length","fuzzy","matchParams","matchPathname","fullPath","caseSensitive","parsedParams","parseParams","err","foundRoute","interpolatedPath","interpolatePath","routeId","createRouteMatch","joinPaths","resolvedMatches","matchPromises","validate","load","startPending","loadPromise","invalidateRoute","unloadedMatchIds","includes","invalidate","reload","navigate","fromCurrent","replace","resolvePath","from","path","matchRoute","toString","String","fromString","isExternal","URL","e","buildLink","target","activeOptions","preloadMaxAge","userPreloadMaxAge","preloadGcMaxAge","userPreloadGcMaxAge","preloadDelay","userPreloadDelay","disabled","type","nextOpts","defaultPreload","pathIsEqual","currentPathSplit","split","nextPathSplit","pathIsFuzzyEqual","every","i","hashIsEqual","pathTest","exact","hashTest","includeHash","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","handleEnter","preloadTimeout","setTimeout","handleLeave","clearTimeout","__preSearchFilters","preSearchFilters","flat","Boolean","__postSearchFilters","postSearchFilters","rootRouteConfig","recurseRoutes","routeConfigs","parent","routeOptions","createRoute","existingRoute","process","env","NODE_ENV","warn","Error","children","previousLocation","parsedSearch","searchStr","replaceEqualDeep","reverse","key","dest","fromPathname","fromMatches","toMatches","prevParams","nextParams","functionalUpdate","stringifyParams","fn","preFilteredSearch","reduce","prev","destSearch","postFilteredSearch","navigateTimeout","nextAction","isSameUrl","previousNavigationResolve","metaKey","altKey","ctrlKey","shiftKey"],"mappings":"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"}
1
+ {"version":3,"file":"router.js","sources":["../../../../../src/router.ts"],"sourcesContent":["import {\n BrowserHistory,\n createBrowserHistory,\n createMemoryHistory,\n HashHistory,\n History,\n MemoryHistory,\n} from 'history'\nimport invariant from 'tiny-invariant'\nimport { GetFrameworkGeneric } from './frameworks'\n\nimport {\n LinkInfo,\n LinkOptions,\n NavigateOptionsAbsolute,\n ToOptions,\n ValidFromPath,\n} from './link'\nimport {\n cleanPath,\n interpolatePath,\n joinPaths,\n matchPathname,\n resolvePath,\n} from './path'\nimport { AnyRoute, createRoute, Route } from './route'\nimport {\n AnyLoaderData,\n AnyPathParams,\n AnyRouteConfig,\n AnySearchSchema,\n LoaderContext,\n RouteConfig,\n SearchFilter,\n} from './routeConfig'\nimport {\n AllRouteInfo,\n AnyAllRouteInfo,\n AnyRouteInfo,\n RouteInfo,\n RoutesById,\n} from './routeInfo'\nimport { createRouteMatch, RouteMatch } from './routeMatch'\nimport { defaultParseSearch, defaultStringifySearch } from './searchParams'\nimport {\n functionalUpdate,\n last,\n pick,\n PickAsRequired,\n PickRequired,\n replaceEqualDeep,\n Timeout,\n Updater,\n} from './utils'\n\nexport interface LocationState {}\n\nexport interface Location<\n TSearchObj extends AnySearchSchema = {},\n TState extends LocationState = LocationState,\n> {\n href: string\n pathname: string\n search: TSearchObj\n searchStr: string\n state: TState\n hash: string\n key?: string\n}\n\nexport interface FromLocation {\n pathname: string\n search?: unknown\n key?: string\n hash?: string\n}\n\nexport type SearchSerializer = (searchObj: Record<string, any>) => string\nexport type SearchParser = (searchStr: string) => Record<string, any>\nexport type FilterRoutesFn = <TRoute extends Route<any, RouteInfo>>(\n routeConfigs: TRoute[],\n) => TRoute[]\n\nexport interface RouterOptions<TRouteConfig extends AnyRouteConfig> {\n history?: BrowserHistory | MemoryHistory | HashHistory\n stringifySearch?: SearchSerializer\n parseSearch?: SearchParser\n filterRoutes?: FilterRoutesFn\n defaultPreload?: false | 'intent'\n defaultPreloadMaxAge?: number\n defaultPreloadGcMaxAge?: number\n defaultPreloadDelay?: number\n useErrorBoundary?: boolean\n defaultElement?: GetFrameworkGeneric<'Element'>\n defaultErrorElement?: GetFrameworkGeneric<'Element'>\n defaultCatchElement?: GetFrameworkGeneric<'Element'>\n defaultPendingElement?: GetFrameworkGeneric<'Element'>\n defaultPendingMs?: number\n defaultPendingMinMs?: number\n defaultLoaderMaxAge?: number\n defaultLoaderGcMaxAge?: number\n caseSensitive?: boolean\n routeConfig?: TRouteConfig\n basepath?: string\n createRouter?: (router: Router<any, any>) => void\n createRoute?: (opts: { route: AnyRoute; router: Router<any, any> }) => void\n createElement?: (\n element: GetFrameworkGeneric<'SyncOrAsyncElement'>,\n ) => Promise<GetFrameworkGeneric<'Element'>>\n}\n\nexport interface Action<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submit: (submission?: TPayload) => Promise<TResponse>\n current?: ActionState<TPayload, TResponse>\n latest?: ActionState<TPayload, TResponse>\n pending: ActionState<TPayload, TResponse>[]\n}\n\nexport interface ActionState<\n TPayload = unknown,\n TResponse = unknown,\n // TError = unknown,\n> {\n submittedAt: number\n status: 'idle' | 'pending' | 'success' | 'error'\n submission: TPayload\n data?: TResponse\n error?: unknown\n}\n\nexport interface Loader<\n TFullSearchSchema extends AnySearchSchema = {},\n TAllParams extends AnyPathParams = {},\n TRouteLoaderData = AnyLoaderData,\n> {\n fetch: keyof PickRequired<TFullSearchSchema> extends never\n ? keyof TAllParams extends never\n ? (loaderContext: { signal?: AbortSignal }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n params: TAllParams\n search?: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : keyof TAllParams extends never\n ? (loaderContext: {\n search: TFullSearchSchema\n params: TAllParams\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n : (loaderContext: {\n search: TFullSearchSchema\n signal?: AbortSignal\n }) => Promise<TRouteLoaderData>\n current?: LoaderState<TFullSearchSchema, TAllParams>\n latest?: LoaderState<TFullSearchSchema, TAllParams>\n pending: LoaderState<TFullSearchSchema, TAllParams>[]\n}\n\nexport interface LoaderState<\n TFullSearchSchema = unknown,\n TAllParams = unknown,\n> {\n loadedAt: number\n loaderContext: LoaderContext<TFullSearchSchema, TAllParams>\n}\n\nexport interface RouterState {\n status: 'idle' | 'loading'\n location: Location\n matches: RouteMatch[]\n lastUpdated: number\n currentAction?: ActionState\n latestAction?: ActionState\n actions: Record<string, Action>\n loaders: Record<string, Loader>\n pending?: PendingState\n isFetching: boolean\n isPreloading: boolean\n}\n\nexport interface PendingState {\n location: Location\n matches: RouteMatch[]\n}\n\ntype Listener = (router: Router<any, any>) => void\n\nexport type ListenerFn = () => void\n\nexport interface BuildNextOptions {\n to?: string | number | null\n params?: true | Updater<Record<string, any>>\n search?: true | Updater<unknown>\n hash?: true | Updater<string>\n key?: string\n from?: string\n fromCurrent?: boolean\n __preSearchFilters?: SearchFilter<any>[]\n __postSearchFilters?: SearchFilter<any>[]\n}\n\nexport type MatchCacheEntry = {\n gc: number\n match: RouteMatch\n}\n\nexport interface MatchLocation {\n to?: string | number | null\n fuzzy?: boolean\n caseSensitive?: boolean\n from?: string\n fromCurrent?: boolean\n}\n\nexport interface MatchRouteOptions {\n pending: boolean\n caseSensitive?: boolean\n}\n\ntype LinkCurrentTargetElement = {\n preloadTimeout?: null | ReturnType<typeof setTimeout>\n}\n\ninterface DehydratedRouterState\n extends Pick<RouterState, 'status' | 'location' | 'lastUpdated'> {\n matches: DehydratedRouteMatch[]\n}\n\ninterface DehydratedRouteMatch\n extends Pick<\n RouteMatch<any, any>,\n | 'matchId'\n | 'status'\n | 'routeLoaderData'\n | 'loaderData'\n | 'isInvalid'\n | 'invalidAt'\n > {}\n\nexport interface Router<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n> {\n history: BrowserHistory | MemoryHistory | HashHistory\n options: PickAsRequired<\n RouterOptions<TRouteConfig>,\n 'stringifySearch' | 'parseSearch'\n >\n // Computed in this.update()\n basepath: string\n // Internal:\n allRouteInfo: TAllRouteInfo\n listeners: Listener[]\n location: Location\n navigateTimeout?: Timeout\n nextAction?: 'push' | 'replace'\n state: RouterState\n routeTree: Route<TAllRouteInfo, RouteInfo>\n routesById: RoutesById<TAllRouteInfo>\n navigationPromise: Promise<void>\n removeActionQueue: { action: Action; actionState: ActionState }[]\n startedLoadingAt: number\n resolveNavigation: () => void\n subscribe: (listener: Listener) => () => void\n notify: () => void\n mount: () => () => void\n onFocus: () => void\n update: <TRouteConfig extends RouteConfig = RouteConfig>(\n opts?: RouterOptions<TRouteConfig>,\n ) => Router<TRouteConfig>\n\n buildNext: (opts: BuildNextOptions) => Location\n cancelMatches: () => void\n loadLocation: (next?: Location) => Promise<void>\n matchCache: Record<string, MatchCacheEntry>\n cleanMatchCache: () => void\n getRoute: <TId extends keyof TAllRouteInfo['routeInfoById']>(\n id: TId,\n ) => Route<TAllRouteInfo, TAllRouteInfo['routeInfoById'][TId]>\n loadRoute: (navigateOpts: BuildNextOptions) => Promise<RouteMatch[]>\n preloadRoute: (\n navigateOpts: BuildNextOptions,\n loaderOpts: { maxAge?: number; gcMaxAge?: number },\n ) => Promise<RouteMatch[]>\n matchRoutes: (\n pathname: string,\n opts?: { strictParseParams?: boolean },\n ) => RouteMatch[]\n loadMatches: (\n resolvedMatches: RouteMatch[],\n loaderOpts?: { withPending?: boolean } & (\n | { preload: true; maxAge: number; gcMaxAge: number }\n | { preload?: false; maxAge?: never; gcMaxAge?: never }\n ),\n ) => Promise<void>\n invalidateRoute: (opts: MatchLocation) => void\n reload: () => Promise<void>\n resolvePath: (from: string, path: string) => string\n navigate: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: NavigateOptionsAbsolute<TAllRouteInfo, TFrom, TTo>,\n ) => Promise<void>\n matchRoute: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n matchLocation: ToOptions<TAllRouteInfo, TFrom, TTo>,\n opts?: MatchRouteOptions,\n ) => boolean\n buildLink: <\n TFrom extends ValidFromPath<TAllRouteInfo> = '/',\n TTo extends string = '.',\n >(\n opts: LinkOptions<TAllRouteInfo, TFrom, TTo>,\n ) => LinkInfo\n dehydrateState: () => DehydratedRouterState\n hydrateState: (state: DehydratedRouterState) => void\n __: {\n buildRouteTree: (\n routeConfig: RouteConfig,\n ) => Route<TAllRouteInfo, AnyRouteInfo>\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ) => Location\n buildLocation: (dest: BuildNextOptions) => Location\n commitLocation: (next: Location, replace?: boolean) => Promise<void>\n navigate: (\n location: BuildNextOptions & { replace?: boolean },\n ) => Promise<void>\n }\n}\n\n// Detect if we're in the DOM\nconst isServer =\n typeof window === 'undefined' || !window.document?.createElement\n\n// This is the default history object if none is defined\nconst createDefaultHistory = () =>\n isServer ? createMemoryHistory() : createBrowserHistory()\n\nexport function createRouter<\n TRouteConfig extends AnyRouteConfig = RouteConfig,\n TAllRouteInfo extends AnyAllRouteInfo = AllRouteInfo<TRouteConfig>,\n>(\n userOptions?: RouterOptions<TRouteConfig>,\n): Router<TRouteConfig, TAllRouteInfo> {\n const history = userOptions?.history || createDefaultHistory()\n\n const originalOptions = {\n defaultLoaderGcMaxAge: 5 * 60 * 1000,\n defaultLoaderMaxAge: 0,\n defaultPreloadMaxAge: 2000,\n defaultPreloadDelay: 50,\n ...userOptions,\n stringifySearch: userOptions?.stringifySearch ?? defaultStringifySearch,\n parseSearch: userOptions?.parseSearch ?? defaultParseSearch,\n }\n\n let router: Router<TRouteConfig, TAllRouteInfo> = {\n history,\n options: originalOptions,\n listeners: [],\n removeActionQueue: [],\n // Resolved after construction\n basepath: '',\n routeTree: undefined!,\n routesById: {} as any,\n location: undefined!,\n allRouteInfo: undefined!,\n //\n navigationPromise: Promise.resolve(),\n resolveNavigation: () => {},\n matchCache: {},\n state: {\n status: 'idle',\n location: null!,\n matches: [],\n actions: {},\n loaders: {},\n lastUpdated: Date.now(),\n isFetching: false,\n isPreloading: false,\n },\n startedLoadingAt: Date.now(),\n subscribe: (listener: Listener): (() => void) => {\n router.listeners.push(listener as Listener)\n return () => {\n router.listeners = router.listeners.filter((x) => x !== listener)\n }\n },\n getRoute: (id) => {\n return router.routesById[id]\n },\n notify: (): void => {\n router.state = {\n ...router.state,\n isFetching:\n router.state.status === 'loading' ||\n router.state.matches.some((d) => d.isFetching),\n isPreloading: Object.values(router.matchCache).some(\n (d) =>\n d.match.isFetching &&\n !router.state.matches.find((dd) => dd.matchId === d.match.matchId),\n ),\n }\n\n cascadeLoaderData(router.state.matches)\n router.listeners.forEach((listener) => listener(router))\n },\n\n dehydrateState: () => {\n return {\n ...pick(router.state, ['status', 'location', 'lastUpdated']),\n matches: router.state.matches.map((match) =>\n pick(match, [\n 'matchId',\n 'status',\n 'routeLoaderData',\n 'loaderData',\n 'isInvalid',\n 'invalidAt',\n ]),\n ),\n }\n },\n\n hydrateState: (dehydratedState) => {\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n router.state = {\n ...router.state,\n ...dehydratedState,\n matches: matches.map((match) => {\n const dehydratedMatch = dehydratedState.matches.find(\n (d: any) => d.matchId === match.matchId,\n )\n invariant(\n dehydratedMatch,\n 'Oh no! Dehydrated route matches did not match the active state of the router 😬',\n )\n Object.assign(match, dehydratedMatch)\n return match\n }),\n }\n },\n\n mount: () => {\n const next = router.__.buildLocation({\n to: '.',\n search: true,\n hash: true,\n })\n\n // If the current location isn't updated, trigger a navigation\n // to the current location. Otherwise, load the current location.\n if (next.href !== router.location.href) {\n router.__.commitLocation(next, true)\n }\n\n router.loadLocation()\n\n const unsub = router.history.listen((event) => {\n console.log(event.location)\n router.loadLocation(\n router.__.parseLocation(event.location, router.location),\n )\n })\n\n // addEventListener does not exist in React Native, but window does\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (!isServer && window.addEventListener) {\n // Listen to visibillitychange and focus\n window.addEventListener('visibilitychange', router.onFocus, false)\n window.addEventListener('focus', router.onFocus, false)\n }\n\n return () => {\n unsub()\n // Be sure to unsubscribe if a new handler is set\n window.removeEventListener('visibilitychange', router.onFocus)\n window.removeEventListener('focus', router.onFocus)\n }\n },\n\n onFocus: () => {\n router.loadLocation()\n },\n\n update: (opts) => {\n const newHistory = opts?.history !== router.history\n if (!router.location || newHistory) {\n if (opts?.history) {\n router.history = opts.history\n }\n router.location = router.__.parseLocation(router.history.location)\n router.state.location = router.location\n }\n\n Object.assign(router.options, opts)\n\n const { basepath, routeConfig } = router.options\n\n router.basepath = cleanPath(`/${basepath ?? ''}`)\n\n if (routeConfig) {\n router.routesById = {} as any\n router.routeTree = router.__.buildRouteTree(routeConfig)\n }\n\n return router as any\n },\n\n cancelMatches: () => {\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n match.cancel()\n })\n },\n\n loadLocation: async (next?: Location) => {\n const id = Math.random()\n router.startedLoadingAt = id\n\n if (next) {\n // Ingest the new location\n router.location = next\n }\n\n // Clear out old actions\n router.removeActionQueue.forEach(({ action, actionState }) => {\n if (router.state.currentAction === actionState) {\n router.state.currentAction = undefined\n }\n if (action.current === actionState) {\n action.current = undefined\n }\n })\n router.removeActionQueue = []\n\n // Cancel any pending matches\n router.cancelMatches()\n\n // Match the routes\n const matches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n router.state = {\n ...router.state,\n pending: {\n matches: matches,\n location: router.location,\n },\n status: 'loading',\n }\n\n router.notify()\n\n // Load the matches\n await router.loadMatches(matches, {\n withPending: true,\n })\n\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return router.navigationPromise\n }\n\n const previousMatches = router.state.matches\n\n const exiting: RouteMatch[] = [],\n staying: RouteMatch[] = []\n\n previousMatches.forEach((d) => {\n if (matches.find((dd) => dd.matchId === d.matchId)) {\n staying.push(d)\n } else {\n exiting.push(d)\n }\n })\n\n const now = Date.now()\n\n exiting.forEach((d) => {\n d.__.onExit?.({\n params: d.params,\n search: d.routeSearch,\n })\n // Clear idle error states when match leaves\n if (d.status === 'error' && !d.isFetching) {\n d.status = 'idle'\n d.error = undefined\n }\n const gc = Math.max(\n d.options.loaderGcMaxAge ?? router.options.defaultLoaderGcMaxAge ?? 0,\n d.options.loaderMaxAge ?? router.options.defaultLoaderMaxAge ?? 0,\n )\n if (gc > 0) {\n router.matchCache[d.matchId] = {\n gc: gc == Infinity ? Number.MAX_SAFE_INTEGER : now + gc,\n match: d,\n }\n }\n })\n\n staying.forEach((d) => {\n d.options.onTransition?.({\n params: d.params,\n search: d.routeSearch,\n })\n })\n\n const entering = matches.filter((d) => {\n return !previousMatches.find((dd) => dd.matchId === d.matchId)\n })\n\n entering.forEach((d) => {\n d.__.onExit = d.options.onMatch?.({\n params: d.params,\n search: d.search,\n })\n delete router.matchCache[d.matchId]\n })\n\n if (matches.some((d) => d.status === 'loading')) {\n router.notify()\n await Promise.all(\n matches.map((d) => d.__.loaderPromise || Promise.resolve()),\n )\n }\n if (router.startedLoadingAt !== id) {\n // Ignore side-effects of match loading\n return\n }\n\n router.state = {\n ...router.state,\n location: router.location,\n matches,\n pending: undefined,\n status: 'idle',\n }\n\n router.notify()\n router.resolveNavigation()\n },\n\n cleanMatchCache: () => {\n const now = Date.now()\n\n Object.keys(router.matchCache).forEach((matchId) => {\n const entry = router.matchCache[matchId]!\n\n // Don't remove loading matches\n if (entry.match.status === 'loading') {\n return\n }\n\n // Do not remove successful matches that are still valid\n if (entry.gc > 0 && entry.gc > now) {\n return\n }\n\n // Everything else gets removed\n delete router.matchCache[matchId]\n })\n },\n\n loadRoute: async (navigateOpts = router.location) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches)\n return matches\n },\n\n preloadRoute: async (navigateOpts = router.location, loaderOpts) => {\n const next = router.buildNext(navigateOpts)\n const matches = router.matchRoutes(next.pathname, {\n strictParseParams: true,\n })\n await router.loadMatches(matches, {\n preload: true,\n maxAge:\n loaderOpts.maxAge ??\n router.options.defaultPreloadMaxAge ??\n router.options.defaultLoaderMaxAge ??\n 0,\n gcMaxAge:\n loaderOpts.gcMaxAge ??\n router.options.defaultPreloadGcMaxAge ??\n router.options.defaultLoaderGcMaxAge ??\n 0,\n })\n return matches\n },\n\n matchRoutes: (pathname, opts) => {\n router.cleanMatchCache()\n\n const matches: RouteMatch[] = []\n\n if (!router.routeTree) {\n return matches\n }\n\n const existingMatches = [\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ]\n\n const recurse = async (routes: Route<any, any>[]): Promise<void> => {\n const parentMatch = last(matches)\n let params = parentMatch?.params ?? {}\n\n const filteredRoutes = router.options.filterRoutes?.(routes) ?? routes\n\n let foundRoutes: Route[] = []\n\n const findMatchInRoutes = (parentRoutes: Route[], routes: Route[]) => {\n routes.some((route) => {\n if (!route.routePath && route.childRoutes?.length) {\n return findMatchInRoutes(\n [...foundRoutes, route],\n route.childRoutes,\n )\n }\n\n const fuzzy = !!(\n route.routePath !== '/' || route.childRoutes?.length\n )\n\n const matchParams = matchPathname(pathname, {\n to: route.fullPath,\n fuzzy,\n caseSensitive:\n route.options.caseSensitive ?? router.options.caseSensitive,\n })\n\n if (matchParams) {\n let parsedParams\n\n try {\n parsedParams =\n route.options.parseParams?.(matchParams!) ?? matchParams\n } catch (err) {\n if (opts?.strictParseParams) {\n throw err\n }\n }\n\n params = {\n ...params,\n ...parsedParams,\n }\n }\n\n if (!!matchParams) {\n foundRoutes = [...parentRoutes, route]\n }\n\n return !!foundRoutes.length\n })\n\n return !!foundRoutes.length\n }\n\n findMatchInRoutes([], filteredRoutes)\n\n if (!foundRoutes.length) {\n return\n }\n\n foundRoutes.forEach((foundRoute) => {\n const interpolatedPath = interpolatePath(foundRoute.routePath, params)\n const matchId = interpolatePath(foundRoute.routeId, params, true)\n\n const match =\n existingMatches.find((d) => d.matchId === matchId) ||\n router.matchCache[matchId]?.match ||\n createRouteMatch(router, foundRoute, {\n matchId,\n params,\n pathname: joinPaths([pathname, interpolatedPath]),\n })\n\n matches.push(match)\n })\n\n const foundRoute = last(foundRoutes)!\n\n if (foundRoute.childRoutes?.length) {\n recurse(foundRoute.childRoutes)\n }\n }\n\n recurse([router.routeTree])\n\n cascadeLoaderData(matches)\n\n return matches\n },\n\n loadMatches: async (resolvedMatches, loaderOpts) => {\n const matchPromises = resolvedMatches.map(async (match) => {\n // Validate the match (loads search params etc)\n match.__.validate()\n match.load(loaderOpts)\n\n if (match.status === 'loading') {\n // If requested, start the pending timers\n if (loaderOpts?.withPending) match.__.startPending()\n\n // Wait for the first sign of activity from the match\n // This might be completion, error, or a pending state\n await match.__.loadPromise\n }\n })\n\n router.notify()\n\n await Promise.all(matchPromises)\n },\n\n invalidateRoute: (opts: MatchLocation) => {\n const next = router.buildNext(opts)\n const unloadedMatchIds = router\n .matchRoutes(next.pathname)\n .map((d) => d.matchId)\n ;[\n ...router.state.matches,\n ...(router.state.pending?.matches ?? []),\n ].forEach((match) => {\n if (unloadedMatchIds.includes(match.matchId)) {\n match.invalidate()\n }\n })\n },\n\n reload: () =>\n router.__.navigate({\n fromCurrent: true,\n replace: true,\n search: true,\n }),\n\n resolvePath: (from: string, path: string) => {\n return resolvePath(router.basepath!, from, cleanPath(path))\n },\n\n matchRoute: (location, opts) => {\n // const location = router.buildNext(opts)\n\n location = {\n ...location,\n to: location.to\n ? router.resolvePath(location.from ?? '', location.to)\n : undefined,\n }\n\n const next = router.buildNext(location)\n\n if (opts?.pending) {\n if (!router.state.pending?.location) {\n return false\n }\n return !!matchPathname(router.state.pending.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n }\n\n return !!matchPathname(router.state.location.pathname, {\n ...opts,\n to: next.pathname,\n })\n },\n\n navigate: async ({ from, to = '.', search, hash, replace, params }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n const toString = String(to)\n const fromString = String(from)\n\n let isExternal\n\n try {\n new URL(`${toString}`)\n isExternal = true\n } catch (e) {}\n\n invariant(\n !isExternal,\n 'Attempting to navigate to external url with router.navigate!',\n )\n\n return router.__.navigate({\n from: fromString,\n to: toString,\n search,\n hash,\n replace,\n params,\n })\n },\n\n buildLink: ({\n from,\n to = '.',\n search,\n params,\n hash,\n target,\n replace,\n activeOptions,\n preload,\n preloadMaxAge: userPreloadMaxAge,\n preloadGcMaxAge: userPreloadGcMaxAge,\n preloadDelay: userPreloadDelay,\n disabled,\n }) => {\n // If this link simply reloads the current route,\n // make sure it has a new key so it will trigger a data refresh\n\n // If this `to` is a valid external URL, return\n // null for LinkUtils\n\n try {\n new URL(`${to}`)\n return {\n type: 'external',\n href: to,\n }\n } catch (e) {}\n\n const nextOpts = {\n from,\n to,\n search,\n params,\n hash,\n replace,\n }\n\n const next = router.buildNext(nextOpts)\n\n preload = preload ?? router.options.defaultPreload\n const preloadDelay =\n userPreloadDelay ?? router.options.defaultPreloadDelay ?? 0\n\n // Compare path/hash for matches\n const pathIsEqual = router.state.location.pathname === next.pathname\n const currentPathSplit = router.state.location.pathname.split('/')\n const nextPathSplit = next.pathname.split('/')\n const pathIsFuzzyEqual = nextPathSplit.every(\n (d, i) => d === currentPathSplit[i],\n )\n const hashIsEqual = router.state.location.hash === next.hash\n // Combine the matches based on user options\n const pathTest = activeOptions?.exact ? pathIsEqual : pathIsFuzzyEqual\n const hashTest = activeOptions?.includeHash ? hashIsEqual : true\n\n // The final \"active\" test\n const isActive = pathTest && hashTest\n\n // The click handler\n const handleClick = (e: MouseEvent) => {\n if (\n !disabled &&\n !isCtrlEvent(e) &&\n !e.defaultPrevented &&\n (!target || target === '_self') &&\n e.button === 0\n ) {\n e.preventDefault()\n if (pathIsEqual && !search && !hash) {\n router.invalidateRoute(nextOpts)\n }\n\n // All is well? Navigate!)\n router.__.navigate(nextOpts)\n }\n }\n\n // The click handler\n const handleFocus = (e: MouseEvent) => {\n if (preload) {\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\n }\n }\n\n const handleEnter = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (preload) {\n if (target.preloadTimeout) {\n return\n }\n\n target.preloadTimeout = setTimeout(() => {\n target.preloadTimeout = null\n router.preloadRoute(nextOpts, {\n maxAge: userPreloadMaxAge,\n gcMaxAge: userPreloadGcMaxAge,\n })\n }, preloadDelay)\n }\n }\n\n const handleLeave = (e: MouseEvent) => {\n const target = (e.target || {}) as LinkCurrentTargetElement\n\n if (target.preloadTimeout) {\n clearTimeout(target.preloadTimeout)\n target.preloadTimeout = null\n }\n }\n\n return {\n type: 'internal',\n next,\n handleFocus,\n handleClick,\n handleEnter,\n handleLeave,\n isActive,\n disabled,\n }\n },\n buildNext: (opts: BuildNextOptions) => {\n const next = router.__.buildLocation(opts)\n\n const matches = router.matchRoutes(next.pathname)\n\n const __preSearchFilters = matches\n .map((match) => match.options.preSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n const __postSearchFilters = matches\n .map((match) => match.options.postSearchFilters ?? [])\n .flat()\n .filter(Boolean)\n\n return router.__.buildLocation({\n ...opts,\n __preSearchFilters,\n __postSearchFilters,\n })\n },\n\n __: {\n buildRouteTree: (rootRouteConfig: RouteConfig) => {\n const recurseRoutes = (\n routeConfigs: RouteConfig[],\n parent?: Route<TAllRouteInfo, any>,\n ): Route<TAllRouteInfo, any>[] => {\n return routeConfigs.map((routeConfig) => {\n const routeOptions = routeConfig.options\n const route = createRoute(routeConfig, routeOptions, parent, router)\n const existingRoute = (router.routesById as any)[route.routeId]\n\n if (existingRoute) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Duplicate routes found with id: ${String(route.routeId)}`,\n router.routesById,\n route,\n )\n }\n throw new Error()\n }\n\n ;(router.routesById as any)[route.routeId] = route\n\n const children = routeConfig.children as RouteConfig[]\n\n route.childRoutes = children?.length\n ? recurseRoutes(children, route)\n : undefined\n\n return route\n })\n }\n\n const routes = recurseRoutes([rootRouteConfig])\n\n return routes[0]!\n },\n\n parseLocation: (\n location: History['location'],\n previousLocation?: Location,\n ): Location => {\n const parsedSearch = router.options.parseSearch(location.search)\n\n return {\n pathname: location.pathname,\n searchStr: location.search,\n search: replaceEqualDeep(previousLocation?.search, parsedSearch),\n hash: location.hash.split('#').reverse()[0] ?? '',\n href: `${location.pathname}${location.search}${location.hash}`,\n state: location.state as LocationState,\n key: location.key,\n }\n },\n\n navigate: (location: BuildNextOptions & { replace?: boolean }) => {\n const next = router.buildNext(location)\n return router.__.commitLocation(next, location.replace)\n },\n\n buildLocation: (dest: BuildNextOptions = {}): Location => {\n // const resolvedFrom: Location = {\n // ...router.location,\n const fromPathname = dest.fromCurrent\n ? router.location.pathname\n : dest.from ?? router.location.pathname\n\n let pathname = resolvePath(\n router.basepath ?? '/',\n fromPathname,\n `${dest.to ?? '.'}`,\n )\n\n const fromMatches = router.matchRoutes(router.location.pathname, {\n strictParseParams: true,\n })\n\n const toMatches = router.matchRoutes(pathname)\n\n const prevParams = { ...last(fromMatches)?.params }\n\n let nextParams =\n (dest.params ?? true) === true\n ? prevParams\n : functionalUpdate(dest.params!, prevParams)\n\n if (nextParams) {\n toMatches\n .map((d) => d.options.stringifyParams)\n .filter(Boolean)\n .forEach((fn) => {\n Object.assign({}, nextParams!, fn!(nextParams!))\n })\n }\n\n pathname = interpolatePath(pathname, nextParams ?? {})\n\n // Pre filters first\n const preFilteredSearch = dest.__preSearchFilters?.length\n ? dest.__preSearchFilters.reduce(\n (prev, next) => next(prev),\n router.location.search,\n )\n : router.location.search\n\n // Then the link/navigate function\n const destSearch =\n dest.search === true\n ? preFilteredSearch // Preserve resolvedFrom true\n : dest.search\n ? functionalUpdate(dest.search, preFilteredSearch) ?? {} // Updater\n : dest.__preSearchFilters?.length\n ? preFilteredSearch // Preserve resolvedFrom filters\n : {}\n\n // Then post filters\n const postFilteredSearch = dest.__postSearchFilters?.length\n ? dest.__postSearchFilters.reduce(\n (prev, next) => next(prev),\n destSearch,\n )\n : destSearch\n\n const search = replaceEqualDeep(\n router.location.search,\n postFilteredSearch,\n )\n\n const searchStr = router.options.stringifySearch(search)\n let hash =\n dest.hash === true\n ? router.location.hash\n : functionalUpdate(dest.hash!, router.location.hash)\n hash = hash ? `#${hash}` : ''\n\n return {\n pathname,\n search,\n searchStr,\n state: router.location.state,\n hash,\n href: `${pathname}${searchStr}${hash}`,\n key: dest.key,\n }\n },\n\n commitLocation: (next: Location, replace?: boolean): Promise<void> => {\n const id = '' + Date.now() + Math.random()\n\n if (router.navigateTimeout) clearTimeout(router.navigateTimeout)\n\n let nextAction: 'push' | 'replace' = 'replace'\n\n if (!replace) {\n nextAction = 'push'\n }\n\n const isSameUrl =\n router.__.parseLocation(history.location).href === next.href\n\n if (isSameUrl && !next.key) {\n nextAction = 'replace'\n }\n\n if (nextAction === 'replace') {\n history.replace(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n } else {\n history.push(\n {\n pathname: next.pathname,\n hash: next.hash,\n search: next.searchStr,\n },\n {\n id,\n },\n )\n }\n\n router.navigationPromise = new Promise((resolve) => {\n const previousNavigationResolve = router.resolveNavigation\n\n router.resolveNavigation = () => {\n previousNavigationResolve()\n resolve()\n }\n })\n\n return router.navigationPromise\n },\n },\n }\n\n router.update(userOptions)\n\n // Allow frameworks to hook into the router creation\n router.options.createRouter?.(router)\n\n return router\n}\n\nfunction isCtrlEvent(e: MouseEvent) {\n return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey)\n}\n\nfunction cascadeLoaderData(matches: RouteMatch<any, any>[]) {\n matches.forEach((match, index) => {\n const parent = matches[index - 1]\n\n if (parent) {\n match.loaderData = replaceEqualDeep(match.loaderData, {\n ...parent.loaderData,\n ...match.routeLoaderData,\n })\n }\n })\n}\n"],"names":["isServer","window","document","createElement","createDefaultHistory","createMemoryHistory","createBrowserHistory","createRouter","userOptions","history","originalOptions","_extends","defaultLoaderGcMaxAge","defaultLoaderMaxAge","defaultPreloadMaxAge","defaultPreloadDelay","stringifySearch","defaultStringifySearch","parseSearch","defaultParseSearch","router","options","listeners","removeActionQueue","basepath","routeTree","undefined","routesById","location","allRouteInfo","navigationPromise","Promise","resolve","resolveNavigation","matchCache","state","status","matches","actions","loaders","lastUpdated","Date","now","isFetching","isPreloading","startedLoadingAt","subscribe","listener","push","filter","x","getRoute","id","notify","some","d","Object","values","match","find","dd","matchId","cascadeLoaderData","forEach","dehydrateState","pick","map","hydrateState","dehydratedState","matchRoutes","pathname","strictParseParams","dehydratedMatch","invariant","assign","mount","next","__","buildLocation","to","search","hash","href","commitLocation","loadLocation","unsub","listen","event","console","log","parseLocation","addEventListener","onFocus","removeEventListener","update","opts","newHistory","routeConfig","cleanPath","buildRouteTree","cancelMatches","pending","cancel","Math","random","action","actionState","currentAction","current","loadMatches","withPending","previousMatches","exiting","staying","onExit","params","routeSearch","error","gc","max","loaderGcMaxAge","loaderMaxAge","Infinity","Number","MAX_SAFE_INTEGER","onTransition","entering","onMatch","all","loaderPromise","cleanMatchCache","keys","entry","loadRoute","navigateOpts","buildNext","preloadRoute","loaderOpts","preload","maxAge","gcMaxAge","defaultPreloadGcMaxAge","existingMatches","recurse","routes","parentMatch","last","filteredRoutes","filterRoutes","foundRoutes","findMatchInRoutes","parentRoutes","route","routePath","childRoutes","length","fuzzy","matchParams","matchPathname","fullPath","caseSensitive","parsedParams","parseParams","err","foundRoute","interpolatedPath","interpolatePath","routeId","createRouteMatch","joinPaths","resolvedMatches","matchPromises","validate","load","startPending","loadPromise","invalidateRoute","unloadedMatchIds","includes","invalidate","reload","navigate","fromCurrent","replace","resolvePath","from","path","matchRoute","toString","String","fromString","isExternal","URL","e","buildLink","target","activeOptions","preloadMaxAge","userPreloadMaxAge","preloadGcMaxAge","userPreloadGcMaxAge","preloadDelay","userPreloadDelay","disabled","type","nextOpts","defaultPreload","pathIsEqual","currentPathSplit","split","nextPathSplit","pathIsFuzzyEqual","every","i","hashIsEqual","pathTest","exact","hashTest","includeHash","isActive","handleClick","isCtrlEvent","defaultPrevented","button","preventDefault","handleFocus","handleEnter","preloadTimeout","setTimeout","handleLeave","clearTimeout","__preSearchFilters","preSearchFilters","flat","Boolean","__postSearchFilters","postSearchFilters","rootRouteConfig","recurseRoutes","routeConfigs","parent","routeOptions","createRoute","existingRoute","process","env","NODE_ENV","warn","Error","children","previousLocation","parsedSearch","searchStr","replaceEqualDeep","reverse","key","dest","fromPathname","fromMatches","toMatches","prevParams","nextParams","functionalUpdate","stringifyParams","fn","preFilteredSearch","reduce","prev","destSearch","postFilteredSearch","navigateTimeout","nextAction","isSameUrl","previousNavigationResolve","metaKey","altKey","ctrlKey","shiftKey","index","loaderData","routeLoaderData"],"mappings":"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"}
@@ -1334,15 +1334,6 @@ function createRoute(routeConfig, options, parent, router) {
1334
1334
  });
1335
1335
  return route;
1336
1336
  }
1337
- function cascadeLoaderData(matches) {
1338
- matches.forEach((match, index) => {
1339
- const parent = matches[index - 1];
1340
-
1341
- if (parent) {
1342
- match.loaderData = replaceEqualDeep(match.loaderData, _extends({}, parent.loaderData, match.routeLoaderData));
1343
- }
1344
- });
1345
- }
1346
1337
 
1347
1338
  const rootRouteId = '__root__';
1348
1339
  const createRouteConfig = function createRouteConfig(options, children, isRoot, parentId, parentPath) {
@@ -2476,5 +2467,15 @@ function isCtrlEvent(e) {
2476
2467
  return !!(e.metaKey || e.altKey || e.ctrlKey || e.shiftKey);
2477
2468
  }
2478
2469
 
2479
- export { cascadeLoaderData, cleanPath, createBrowserHistory, createHashHistory, createMemoryHistory, createRoute, createRouteConfig, createRouteMatch, createRouter, decode, defaultParseSearch, defaultStringifySearch, encode, functionalUpdate, interpolatePath, invariant, joinPaths, last, matchByPath, matchPathname, parsePathname, parseSearchWith, pick, replaceEqualDeep, resolvePath, rootRouteId, stringifySearchWith, trimPath, trimPathLeft, trimPathRight, warning };
2470
+ function cascadeLoaderData(matches) {
2471
+ matches.forEach((match, index) => {
2472
+ const parent = matches[index - 1];
2473
+
2474
+ if (parent) {
2475
+ match.loaderData = replaceEqualDeep(match.loaderData, _extends({}, parent.loaderData, match.routeLoaderData));
2476
+ }
2477
+ });
2478
+ }
2479
+
2480
+ export { cleanPath, createBrowserHistory, createHashHistory, createMemoryHistory, createRoute, createRouteConfig, createRouteMatch, createRouter, decode, defaultParseSearch, defaultStringifySearch, encode, functionalUpdate, interpolatePath, invariant, joinPaths, last, matchByPath, matchPathname, parsePathname, parseSearchWith, pick, replaceEqualDeep, resolvePath, rootRouteId, stringifySearchWith, trimPath, trimPathLeft, trimPathRight, warning };
2480
2481
  //# sourceMappingURL=index.js.map