@tanstack/react-router 1.47.5 → 1.48.0

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.
@@ -32,7 +32,7 @@ export type RoutePathOptionsIntersection<TCustomId, TPath> = {
32
32
  path: TPath;
33
33
  id: TCustomId;
34
34
  };
35
- export type RouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TSearchSchemaInput = Record<string, unknown>, TSearchSchema = {}, TFullSearchSchema = TSearchSchema, TParams = AnyPathParams, TAllParams = TParams, TRouteContextReturn = RouteContext, TRouteContext = RouteContext, TParentAllContext = AnyContext, TAllContext = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>> = BaseRouteOptions<TParentRoute, TCustomId, TPath, TSearchSchemaInput, TSearchSchema, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TParentAllContext, TAllContext, TLoaderDeps, TLoaderDataReturn> & UpdatableRouteOptions<NoInfer<TCustomId>, NoInfer<TAllParams>, NoInfer<TFullSearchSchema>, NoInfer<TLoaderData>, NoInfer<TAllContext>, NoInfer<TRouteContext>, NoInfer<TLoaderDeps>>;
35
+ export type RouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = AnyPathParams, TAllParams = TParams, TRouteContextReturn = RouteContext, TRouteContext = RouteContext, TParentAllContext = AnyContext, TAllContext = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>> = BaseRouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TParentAllContext, TAllContext, TLoaderDeps, TLoaderDataReturn> & UpdatableRouteOptions<NoInfer<TParentRoute>, NoInfer<TCustomId>, NoInfer<TAllParams>, NoInfer<TSearchValidator>, NoInfer<TLoaderData>, NoInfer<TAllContext>, NoInfer<TRouteContext>, NoInfer<TLoaderDeps>>;
36
36
  export type ParseParamsFn<TPath extends string, TParams> = (rawParams: Record<ParsePathParams<TPath>, string>) => TParams extends Record<ParsePathParams<TPath>, any> ? TParams : Record<ParsePathParams<TPath>, any>;
37
37
  export type StringifyParamsFn<TPath extends string, TParams> = (params: TParams) => Record<ParsePathParams<TPath>, string>;
38
38
  export type ParamsOptions<TPath extends string, TParams> = {
@@ -52,16 +52,14 @@ export type ParamsOptions<TPath extends string, TParams> = {
52
52
  export interface FullSearchSchemaOption<TFullSearchSchema> {
53
53
  search: TFullSearchSchema;
54
54
  }
55
- export type FileBaseRouteOptions<TPath extends string = string, TSearchSchemaInput = Record<string, unknown>, TSearchSchema = {}, TFullSearchSchema = TSearchSchema, TParams = {}, TAllParams = {}, TRouteContextReturn = RouteContext, TParentAllContext = AnyContext, TAllContext = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}> = {
56
- validateSearch?: ((input: TSearchSchemaInput) => TSearchSchema) | {
57
- parse: (input: TSearchSchemaInput) => TSearchSchema;
58
- };
59
- shouldReload?: boolean | ((match: LoaderFnContext<TAllParams, TFullSearchSchema, TAllContext>) => any);
60
- beforeLoad?: (ctx: BeforeLoadContext<TFullSearchSchema, TAllParams, TParentAllContext>) => Promise<TRouteContextReturn> | TRouteContextReturn | void;
61
- loaderDeps?: (opts: FullSearchSchemaOption<TFullSearchSchema>) => TLoaderDeps;
55
+ export type FileBaseRouteOptions<TParentRoute extends AnyRoute = AnyRoute, TPath extends string = string, TSearchValidator extends AnySearchValidator = undefined, TParams = {}, TAllParams = {}, TRouteContextReturn = RouteContext, TParentAllContext = AnyContext, TAllContext = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}> = {
56
+ validateSearch?: TSearchValidator;
57
+ shouldReload?: boolean | ((match: LoaderFnContext<TAllParams, ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TAllContext>) => any);
58
+ beforeLoad?: (ctx: BeforeLoadContext<ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TAllParams, TParentAllContext>) => Promise<TRouteContextReturn> | TRouteContextReturn | void;
59
+ loaderDeps?: (opts: FullSearchSchemaOption<ResolveFullSearchSchema<TParentRoute, TSearchValidator>>) => TLoaderDeps;
62
60
  loader?: (ctx: LoaderFnContext<TAllParams, TLoaderDeps, TAllContext>) => TLoaderDataReturn | Promise<TLoaderDataReturn>;
63
61
  } & ParamsOptions<TPath, TParams>;
64
- export type BaseRouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TSearchSchemaInput = Record<string, unknown>, TSearchSchema = {}, TFullSearchSchema = TSearchSchema, TParams = {}, TAllParams = {}, TRouteContextReturn = RouteContext, TParentAllContext = AnyContext, TAllContext = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}> = RoutePathOptions<TCustomId, TPath> & FileBaseRouteOptions<TPath, TSearchSchemaInput, TSearchSchema, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TParentAllContext, TAllContext, TLoaderDeps, TLoaderDataReturn> & {
62
+ export type BaseRouteOptions<TParentRoute extends AnyRoute = AnyRoute, TCustomId extends string = string, TPath extends string = string, TSearchValidator extends AnySearchValidator = undefined, TParams = {}, TAllParams = {}, TRouteContextReturn = RouteContext, TParentAllContext = AnyContext, TAllContext = AnyContext, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}> = RoutePathOptions<TCustomId, TPath> & FileBaseRouteOptions<TParentRoute, TPath, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TParentAllContext, TAllContext, TLoaderDeps, TLoaderDataReturn> & {
65
63
  getParentRoute: () => TParentRoute;
66
64
  };
67
65
  export interface BeforeLoadContext<TFullSearchSchema, TAllParams, TParentAllContext> extends FullSearchSchemaOption<TFullSearchSchema> {
@@ -77,7 +75,7 @@ export interface BeforeLoadContext<TFullSearchSchema, TAllParams, TParentAllCont
77
75
  buildLocation: BuildLocationFn;
78
76
  cause: 'preload' | 'enter' | 'stay';
79
77
  }
80
- export type UpdatableRouteOptions<TRouteId, TAllParams, TFullSearchSchema, TLoaderData, TAllContext, TRouteContext, TLoaderDeps, TRouteMatch = RouteMatch<TRouteId, TAllParams, TFullSearchSchema, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>> = {
78
+ export type UpdatableRouteOptions<TParentRoute extends AnyRoute, TRouteId, TAllParams, TSearchValidator extends AnySearchValidator, TLoaderData, TAllContext, TRouteContext, TLoaderDeps> = {
81
79
  caseSensitive?: boolean;
82
80
  wrapInSuspense?: boolean;
83
81
  component?: RouteComponent;
@@ -90,16 +88,16 @@ export type UpdatableRouteOptions<TRouteId, TAllParams, TFullSearchSchema, TLoad
90
88
  gcTime?: number;
91
89
  preloadStaleTime?: number;
92
90
  preloadGcTime?: number;
93
- preSearchFilters?: Array<SearchFilter<TFullSearchSchema>>;
94
- postSearchFilters?: Array<SearchFilter<TFullSearchSchema>>;
91
+ preSearchFilters?: Array<SearchFilter<ResolveFullSearchSchema<TParentRoute, TSearchValidator>>>;
92
+ postSearchFilters?: Array<SearchFilter<ResolveFullSearchSchema<TParentRoute, TSearchValidator>>>;
95
93
  onCatch?: (error: Error, errorInfo: React.ErrorInfo) => void;
96
94
  onError?: (err: any) => void;
97
- onEnter?: (match: TRouteMatch) => void;
98
- onStay?: (match: TRouteMatch) => void;
99
- onLeave?: (match: TRouteMatch) => void;
95
+ onEnter?: (match: RouteMatch<TRouteId, TAllParams, ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>) => void;
96
+ onStay?: (match: RouteMatch<TRouteId, TAllParams, ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>) => void;
97
+ onLeave?: (match: RouteMatch<TRouteId, TAllParams, ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>) => void;
100
98
  meta?: (ctx: {
101
- matches: Array<TRouteMatch>;
102
- match: TRouteMatch;
99
+ matches: Array<RouteMatch<TRouteId, TAllParams, ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>>;
100
+ match: RouteMatch<TRouteId, TAllParams, ResolveFullSearchSchema<TParentRoute, TSearchValidator>, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>;
103
101
  params: TAllParams;
104
102
  loaderData: TLoaderData;
105
103
  }) => Array<React.JSX.IntrinsicElements['meta']>;
@@ -142,11 +140,23 @@ type LdJsonArray = Array<LdJsonValue> | ReadonlyArray<LdJsonValue>;
142
140
  type LdJsonPrimitive = string | number | boolean | null;
143
141
  type LdJsonValue = LdJsonPrimitive | LdJsonObject | LdJsonArray;
144
142
  export type RouteLinkEntry = {};
145
- export type SearchSchemaValidator<TInput, TReturn> = SearchSchemaValidatorObj<TInput, TReturn> | SearchSchemaValidatorFn<TInput, TReturn>;
146
- export type SearchSchemaValidatorObj<TInput, TReturn> = {
147
- parse?: SearchSchemaValidatorFn<TInput, TReturn>;
148
- };
149
- export type SearchSchemaValidatorFn<TInput, TReturn> = (searchObj: TInput) => TReturn;
143
+ export interface SearchValidatorObj<TInput, TOutput> {
144
+ parse: SearchValidatorFn<TInput, TOutput>;
145
+ }
146
+ export type AnySearchValidatorObj = SearchValidatorObj<any, any>;
147
+ export interface SearchValidatorAdapter<TInput, TOutput> {
148
+ types: {
149
+ input: TInput;
150
+ output: TOutput;
151
+ };
152
+ parse: (input: unknown) => TOutput;
153
+ }
154
+ export type AnySearchValidatorAdapter = SearchValidatorAdapter<any, any>;
155
+ export type AnySearchValidatorFn = SearchValidatorFn<any, any>;
156
+ export type SearchValidatorFn<TInput, TOutput> = (input: TInput) => TOutput;
157
+ export type SearchValidator<TInput, TOutput> = SearchValidatorObj<TInput, TOutput> | SearchValidatorFn<TInput, TOutput> | SearchValidatorAdapter<TInput, TOutput> | undefined;
158
+ export type AnySearchValidator = SearchValidator<any, any>;
159
+ export type DefaultSearchValidator = SearchValidator<Record<string, unknown>, AnySearchSchema>;
150
160
  export type RouteLoaderFn<in out TAllParams = {}, in out TLoaderDeps extends Record<string, any> = {}, in out TAllContext = AnyContext, TLoaderData = undefined> = (match: LoaderFnContext<TAllParams, TLoaderDeps, TAllContext>) => TLoaderData | Promise<TLoaderData>;
151
161
  export interface LoaderFnContext<in out TAllParams = {}, in out TLoaderDeps = {}, in out TAllContext = AnyContext> {
152
162
  abortController: AbortController;
@@ -187,9 +197,12 @@ export type InferAllContext<TRoute> = TRoute extends {
187
197
  allContext: infer TAllContext;
188
198
  };
189
199
  } ? TAllContext : {};
190
- export type ResolveSearchSchemaUsed<TSearchSchemaInput, TSearchSchema> = TSearchSchemaInput extends SearchSchemaInput ? Omit<TSearchSchemaInput, keyof SearchSchemaInput> : TSearchSchema;
191
- export type ResolveFullSearchSchema<TParentRoute extends AnyRoute, TSearchSchema> = Assign<InferFullSearchSchema<TParentRoute>, TSearchSchema>;
192
- export type ResolveFullSearchSchemaInput<TParentRoute extends AnyRoute, TSearchSchemaUsed> = Assign<InferFullSearchSchemaInput<TParentRoute>, TSearchSchemaUsed>;
200
+ export type ResolveSearchSchemaFnInput<TSearchValidator extends AnySearchValidator> = TSearchValidator extends (input: infer TSearchSchemaInput) => any ? TSearchSchemaInput extends SearchSchemaInput ? Omit<TSearchSchemaInput, keyof SearchSchemaInput> : ResolveSearchSchemaFn<TSearchValidator> : AnySearchSchema;
201
+ export type ResolveSearchSchemaInput<TSearchValidator extends AnySearchValidator> = TSearchValidator extends AnySearchValidatorAdapter ? TSearchValidator['types']['input'] : TSearchValidator extends AnySearchValidatorObj ? ResolveSearchSchemaFnInput<TSearchValidator['parse']> : ResolveSearchSchemaFnInput<TSearchValidator>;
202
+ export type ResolveSearchSchemaFn<TSearchValidator extends AnySearchValidator> = TSearchValidator extends (...args: any) => infer TSearchSchema ? TSearchSchema : AnySearchSchema;
203
+ export type ResolveSearchSchema<TSearchValidator extends AnySearchValidator> = unknown extends TSearchValidator ? TSearchValidator : TSearchValidator extends AnySearchValidatorAdapter ? TSearchValidator['types']['output'] : TSearchValidator extends AnySearchValidatorObj ? ResolveSearchSchemaFn<TSearchValidator['parse']> : ResolveSearchSchemaFn<TSearchValidator>;
204
+ export type ResolveFullSearchSchema<TParentRoute extends AnyRoute, TSearchValidator extends AnySearchValidator> = unknown extends TParentRoute ? ResolveSearchSchema<TSearchValidator> : Assign<InferFullSearchSchema<TParentRoute>, ResolveSearchSchema<TSearchValidator>>;
205
+ export type ResolveFullSearchSchemaInput<TParentRoute extends AnyRoute, TSearchValidator extends AnySearchValidator> = Assign<InferFullSearchSchemaInput<TParentRoute>, ResolveSearchSchemaInput<TSearchValidator>>;
193
206
  export type ResolveRouteContext<TRouteContextReturn> = [
194
207
  TRouteContextReturn
195
208
  ] extends [never] ? RouteContext : TRouteContextReturn;
@@ -197,9 +210,9 @@ export type ResolveAllContext<TParentRoute extends AnyRoute, TRouteContext> = As
197
210
  export type ResolveLoaderData<TLoaderDataReturn> = [TLoaderDataReturn] extends [
198
211
  never
199
212
  ] ? undefined : TLoaderDataReturn;
200
- export interface AnyRoute extends Route<any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any> {
213
+ export interface AnyRoute extends Route<any, any, any, any, any, any, any, any, any, any, any, any, any, any, any> {
201
214
  }
202
- export type AnyRouteWithContext<TContext> = Route<any, any, any, any, any, any, any, any, any, any, any, any, any, any, TContext, any, any, any, any>;
215
+ export type AnyRouteWithContext<TContext> = Route<any, any, any, any, any, any, any, any, any, any, any, any, TContext, any, any>;
203
216
  export type ResolveAllParamsFromParent<TParentRoute extends AnyRoute, TParams> = Assign<InferAllParams<TParentRoute>, TParams>;
204
217
  export type RouteConstraints = {
205
218
  TParentRoute: AnyRoute;
@@ -248,9 +261,9 @@ export declare class RouteApi<TId extends RouteIds<RegisteredRouter['routeTree']
248
261
  useNavigate: () => UseNavigateResult<TRoute["fullPath"]>;
249
262
  notFound: (opts?: NotFoundError) => NotFoundError;
250
263
  }
251
- export declare class Route<in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, in out TPath extends RouteConstraints['TPath'] = '/', in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, in out TCustomId extends RouteConstraints['TCustomId'] = string, in out TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, in out TSearchSchemaInput = Record<string, unknown>, in out TSearchSchema = {}, in out TSearchSchemaUsed = ResolveSearchSchemaUsed<TSearchSchemaInput, TSearchSchema>, in out TFullSearchSchemaInput = ResolveFullSearchSchemaInput<TParentRoute, TSearchSchemaUsed>, in out TFullSearchSchema = ResolveFullSearchSchema<TParentRoute, TSearchSchema>, in out TParams = Record<ParsePathParams<TPath>, string>, in out TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextReturn = RouteContext, in out TRouteContext = ResolveRouteContext<TRouteContextReturn>, in out TAllContext = ResolveAllContext<TParentRoute, TRouteContext>, in out TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, in out TLoaderData = ResolveLoaderData<TLoaderDataReturn>, in out TChildren = unknown> {
264
+ export declare class Route<in out TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, in out TPath extends RouteConstraints['TPath'] = '/', in out TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, in out TCustomId extends RouteConstraints['TCustomId'] = string, in out TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, in out TSearchValidator extends AnySearchValidator = DefaultSearchValidator, in out TParams = Record<ParsePathParams<TPath>, string>, in out TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextReturn = RouteContext, in out TRouteContext = ResolveRouteContext<TRouteContextReturn>, in out TAllContext = ResolveAllContext<TParentRoute, TRouteContext>, in out TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, in out TLoaderData = ResolveLoaderData<TLoaderDataReturn>, in out TChildren = unknown> {
252
265
  isRoot: TParentRoute extends Route<any> ? true : false;
253
- options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchSchemaInput, TSearchSchema, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>;
266
+ options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>;
254
267
  parentRoute: TParentRoute;
255
268
  id: TId;
256
269
  path: TPath;
@@ -265,7 +278,7 @@ export declare class Route<in out TParentRoute extends RouteConstraints['TParent
265
278
  /**
266
279
  * @deprecated Use the `createRoute` function instead.
267
280
  */
268
- constructor(options?: RouteOptions<TParentRoute, TCustomId, TPath, TSearchSchemaInput, TSearchSchema, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>);
281
+ constructor(options?: RouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>);
269
282
  types: {
270
283
  parentRoute: TParentRoute;
271
284
  path: TPath;
@@ -273,11 +286,11 @@ export declare class Route<in out TParentRoute extends RouteConstraints['TParent
273
286
  fullPath: TFullPath;
274
287
  customId: TCustomId;
275
288
  id: TId;
276
- searchSchema: TSearchSchema;
277
- searchSchemaInput: TSearchSchemaInput;
278
- searchSchemaUsed: TSearchSchemaUsed;
279
- fullSearchSchema: TFullSearchSchema;
280
- fullSearchSchemaInput: TFullSearchSchemaInput;
289
+ searchSchema: ResolveSearchSchema<TSearchValidator>;
290
+ searchSchemaInput: ResolveSearchSchemaInput<TSearchValidator>;
291
+ searchValidator: TSearchValidator;
292
+ fullSearchSchema: ResolveFullSearchSchema<TParentRoute, TSearchValidator>;
293
+ fullSearchSchemaInput: ResolveFullSearchSchemaInput<TParentRoute, TSearchValidator>;
281
294
  params: TParams;
282
295
  allParams: TAllParams;
283
296
  routeContext: TRouteContext;
@@ -289,11 +302,11 @@ export declare class Route<in out TParentRoute extends RouteConstraints['TParent
289
302
  init: (opts: {
290
303
  originalIndex: number;
291
304
  }) => void;
292
- addChildren<const TNewChildren extends Record<string, AnyRoute> | ReadonlyArray<AnyRoute>>(children: TNewChildren): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TFullSearchSchemaInput, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TNewChildren>;
305
+ addChildren<const TNewChildren extends Record<string, AnyRoute> | ReadonlyArray<AnyRoute>>(children: TNewChildren): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TNewChildren>;
293
306
  updateLoader: <TNewLoaderData = unknown>(options: {
294
307
  loader: RouteLoaderFn<TAllParams, TLoaderDeps, TAllContext, TNewLoaderData>;
295
- }) => Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TFullSearchSchemaInput, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TNewLoaderData, TChildren>;
296
- update: (options: UpdatableRouteOptions<TCustomId, TAllParams, TFullSearchSchema, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>) => this;
308
+ }) => Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TNewLoaderData, TChildren>;
309
+ update: (options: UpdatableRouteOptions<TParentRoute, TCustomId, TAllParams, TSearchValidator, TLoaderData, TAllContext, TRouteContext, TLoaderDeps>) => this;
297
310
  lazy: (lazyFn: () => Promise<LazyRoute<any>>) => this;
298
311
  useMatch: <TRouter extends AnyRouter = AnyRouter, TRouteTree extends AnyRoute = TRouter["routeTree"], TRouteMatch = MakeRouteMatch<TRouteTree, TId>, TSelected = TRouteMatch>(opts?: {
299
312
  select?: (match: TRouteMatch) => TSelected;
@@ -301,8 +314,8 @@ export declare class Route<in out TParentRoute extends RouteConstraints['TParent
301
314
  useRouteContext: <TSelected = Expand<TAllContext>>(opts?: {
302
315
  select?: (search: Expand<TAllContext>) => TSelected;
303
316
  }) => TSelected;
304
- useSearch: <TSelected = Expand<TFullSearchSchema>>(opts?: {
305
- select?: (search: Expand<TFullSearchSchema>) => TSelected;
317
+ useSearch: <TSelected = Expand<ResolveFullSearchSchema<TParentRoute, TSearchValidator>>>(opts?: {
318
+ select?: (search: Expand<ResolveFullSearchSchema<TParentRoute, TSearchValidator>>) => TSelected;
306
319
  }) => TSelected;
307
320
  useParams: <TSelected = Expand<TAllParams>>(opts?: {
308
321
  select?: (search: Expand<TAllParams>) => TSelected;
@@ -315,15 +328,12 @@ export declare class Route<in out TParentRoute extends RouteConstraints['TParent
315
328
  }) => TSelected;
316
329
  useNavigate: () => UseNavigateResult<TFullPath>;
317
330
  }
318
- export declare function createRoute<TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, TPath extends RouteConstraints['TPath'] = '/', TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, TCustomId extends RouteConstraints['TCustomId'] = string, TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, TSearchSchemaInput = Record<string, unknown>, TSearchSchema = {}, TSearchSchemaUsed = ResolveSearchSchemaUsed<TSearchSchemaInput, TSearchSchema>, TFullSearchSchemaInput = ResolveFullSearchSchemaInput<TParentRoute, TSearchSchemaUsed>, TFullSearchSchema = ResolveFullSearchSchema<TParentRoute, TSearchSchema>, TParams = Record<ParsePathParams<TPath>, string>, TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextReturn = RouteContext, TRouteContext = ResolveRouteContext<TRouteContextReturn>, TAllContext = ResolveAllContext<TParentRoute, TRouteContext>, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown>(options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchSchemaInput, TSearchSchema, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TFullSearchSchemaInput, TFullSearchSchema, TParams, TAllParams, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren>;
331
+ export declare function createRoute<TParentRoute extends RouteConstraints['TParentRoute'] = AnyRoute, TPath extends RouteConstraints['TPath'] = '/', TFullPath extends RouteConstraints['TFullPath'] = ResolveFullPath<TParentRoute, TPath>, TCustomId extends RouteConstraints['TCustomId'] = string, TId extends RouteConstraints['TId'] = ResolveId<TParentRoute, TCustomId, TPath>, TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TParams = Record<ParsePathParams<TPath>, string>, TAllParams = ResolveAllParamsFromParent<TParentRoute, TParams>, TRouteContextReturn = RouteContext, TRouteContext = ResolveRouteContext<TRouteContextReturn>, TAllContext = ResolveAllContext<TParentRoute, TRouteContext>, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown>(options: RouteOptions<TParentRoute, TCustomId, TPath, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>): Route<TParentRoute, TPath, TFullPath, TCustomId, TId, TSearchValidator, TParams, TAllParams, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren>;
319
332
  export type AnyRootRoute = RootRoute<any, any, any, any, any, any, any, any>;
320
- export type RootRouteOptions<TSearchSchemaInput = {}, TSearchSchema = {}, TRouteContextReturn = RouteContext, TRouteContext = ResolveRouteContext<TRouteContextReturn>, TRouterContext = {}, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>> = Omit<RouteOptions<any, // TParentRoute
333
+ export type RootRouteOptions<TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TRouteContextReturn = RouteContext, TRouteContext = ResolveRouteContext<TRouteContextReturn>, TRouterContext = {}, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>> = Omit<RouteOptions<any, // TParentRoute
321
334
  RootRouteId, // TCustomId
322
335
  '', // TPath
323
- TSearchSchemaInput, // TSearchSchemaInput
324
- TSearchSchema, // TSearchSchema
325
- TSearchSchema, // TFullSearchSchema
326
- {}, // TParams
336
+ TSearchValidator, {}, // TParams
327
337
  {}, // TAllParams
328
338
  TRouteContextReturn, // TRouteContextReturn
329
339
  TRouteContext, // TRouteContext
@@ -331,20 +341,17 @@ TRouterContext, // TParentAllContext
331
341
  Assign<TRouterContext, TRouteContext>, // TAllContext
332
342
  TLoaderDeps, TLoaderDataReturn, // TLoaderDataReturn,
333
343
  TLoaderData>, 'path' | 'id' | 'getParentRoute' | 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'params'>;
334
- export declare function createRootRouteWithContext<TRouterContext extends {}>(): <TSearchSchemaInput = {}, TSearchSchema = {}, TSearchSchemaUsed = ResolveSearchSchemaUsed<TSearchSchemaInput, TSearchSchema>, TRouteContextReturn extends RouteContext = RouteContext, TRouteContext extends RouteContext = ResolveRouteContext<TRouteContextReturn>, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>>(options?: RootRouteOptions<TSearchSchemaInput, TSearchSchema, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>) => RootRoute<TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderData, ResolveLoaderData<TLoaderData>, unknown>;
344
+ export declare function createRootRouteWithContext<TRouterContext extends {}>(): <TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TRouteContextReturn extends RouteContext = RouteContext, TRouteContext extends RouteContext = ResolveRouteContext<TRouteContextReturn>, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>>(options?: RootRouteOptions<TSearchValidator, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>) => RootRoute<TSearchValidator, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderData, ResolveLoaderData<TLoaderData>, unknown>;
335
345
  /**
336
346
  * @deprecated Use the `createRootRouteWithContext` function instead.
337
347
  */
338
348
  export declare const rootRouteWithContext: typeof createRootRouteWithContext;
339
- export declare class RootRoute<in out TSearchSchemaInput = {}, in out TSearchSchema = {}, in out TSearchSchemaUsed = {}, TRouteContextReturn = RouteContext, in out TRouteContext = ResolveRouteContext<TRouteContextReturn>, in out TRouterContext = {}, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, in out TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown> extends Route<any, // TParentRoute
349
+ export declare class RootRoute<in out TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TRouteContextReturn = RouteContext, in out TRouteContext = ResolveRouteContext<TRouteContextReturn>, in out TRouterContext = {}, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, in out TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown> extends Route<any, // TParentRoute
340
350
  '/', // TPath
341
351
  '/', // TFullPath
342
352
  string, // TCustomId
343
353
  RootRouteId, // TId
344
- TSearchSchemaInput, // TSearchSchemaInput
345
- TSearchSchema, // TSearchSchema
346
- TSearchSchemaUsed, TSearchSchemaUsed, // TFullSearchSchemaInput
347
- TSearchSchema, // TFullSearchSchema
354
+ TSearchValidator, // TSearchValidator
348
355
  {}, // TParams
349
356
  {}, // TAllParams
350
357
  TRouteContextReturn, // TRouteContextReturn
@@ -354,20 +361,10 @@ TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren> {
354
361
  /**
355
362
  * @deprecated `RootRoute` is now an internal implementation detail. Use `createRootRoute()` instead.
356
363
  */
357
- constructor(options?: RootRouteOptions<TSearchSchemaInput, TSearchSchema, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>);
358
- addChildren<const TNewChildren extends Record<string, AnyRoute> | ReadonlyArray<AnyRoute>>(children: TNewChildren): RootRoute<TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TNewChildren>;
364
+ constructor(options?: RootRouteOptions<TSearchValidator, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>);
365
+ addChildren<const TNewChildren extends Record<string, AnyRoute> | ReadonlyArray<AnyRoute>>(children: TNewChildren): RootRoute<TSearchValidator, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TNewChildren>;
359
366
  }
360
- export declare function createRootRoute<TSearchSchemaInput = {}, TSearchSchema = {}, TSearchSchemaUsed = ResolveSearchSchemaUsed<TSearchSchemaInput, TSearchSchema>, TRouteContextReturn = RouteContext, TRouteContext = ResolveRouteContext<TRouteContextReturn>, TRouterContext = {}, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>>(options?: Omit<RouteOptions<any, // TParentRoute
361
- RootRouteId, // TCustomId
362
- '', // TPath
363
- TSearchSchemaInput, // TSearchSchemaInput
364
- TSearchSchema, // TSearchSchema
365
- TSearchSchema, {}, // TParams
366
- {}, // TAllParams
367
- TRouteContextReturn, // TRouteContextReturn
368
- TRouteContext, // TRouteContext
369
- TRouterContext, Assign<TRouterContext, TRouteContext>, // TAllContext
370
- TLoaderDeps, TLoaderDataReturn, TLoaderData>, 'path' | 'id' | 'getParentRoute' | 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'params'>): RootRoute<TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, unknown>;
367
+ export declare function createRootRoute<TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TRouteContextReturn = RouteContext, TRouteContext = ResolveRouteContext<TRouteContextReturn>, TRouterContext = {}, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>>(options?: RootRouteOptions<TSearchValidator, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>): RootRoute<TSearchValidator, TRouteContextReturn, TRouteContext, TRouterContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, unknown>;
371
368
  export type ResolveFullPath<TParentRoute extends AnyRoute, TPath extends string, TPrefixed = RoutePrefix<TParentRoute['fullPath'], TPath>> = TPrefixed extends RootRouteId ? '/' : TPrefixed;
372
369
  type RoutePrefix<TPrefix extends string, TPath extends string> = string extends TPath ? RootRouteId : TPath extends string ? TPrefix extends RootRouteId ? TPath extends '/' ? '/' : `/${TrimPath<TPath>}` : `${TPrefix}/${TPath}` extends '/' ? '/' : `/${TrimPathLeft<`${TrimPathRight<TPrefix>}/${TrimPath<TPath>}`>}` : never;
373
370
  export type TrimPath<T extends string> = '' extends T ? '' : TrimPathRight<TrimPathLeft<T>>;
@@ -414,7 +411,7 @@ export type AsyncRouteComponent<TProps> = SyncRouteComponent<TProps> & {
414
411
  export type RouteComponent<TProps = any> = AsyncRouteComponent<TProps>;
415
412
  export type ErrorRouteComponent = RouteComponent<ErrorComponentProps>;
416
413
  export type NotFoundRouteComponent = SyncRouteComponent<NotFoundRouteProps>;
417
- export declare class NotFoundRoute<TParentRoute extends AnyRootRoute, TSearchSchemaInput = Record<string, unknown>, TSearchSchema = {}, TSearchSchemaUsed = {}, TFullSearchSchemaInput = ResolveFullSearchSchemaInput<TParentRoute, TSearchSchemaUsed>, TFullSearchSchema = ResolveFullSearchSchema<TParentRoute, TSearchSchema>, TRouteContextReturn = AnyContext, TRouteContext = RouteContext, TAllContext = ResolveAllContext<TParentRoute, TRouteContext>, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown> extends Route<TParentRoute, '/404', '/404', '404', '404', TSearchSchemaInput, TSearchSchema, TSearchSchemaUsed, TFullSearchSchemaInput, TFullSearchSchema, {}, {}, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren> {
418
- constructor(options: Omit<RouteOptions<TParentRoute, string, string, TSearchSchemaInput, TSearchSchema, TFullSearchSchema, {}, {}, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>, 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'path' | 'id' | 'params'>);
414
+ export declare class NotFoundRoute<TParentRoute extends AnyRootRoute, TSearchValidator extends AnySearchValidator = DefaultSearchValidator, TRouteContextReturn = AnyContext, TRouteContext = RouteContext, TAllContext = ResolveAllContext<TParentRoute, TRouteContext>, TLoaderDeps extends Record<string, any> = {}, TLoaderDataReturn = {}, TLoaderData = ResolveLoaderData<TLoaderDataReturn>, TChildren = unknown> extends Route<TParentRoute, '/404', '/404', '404', '404', TSearchValidator, {}, {}, TRouteContextReturn, TRouteContext, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData, TChildren> {
415
+ constructor(options: Omit<RouteOptions<TParentRoute, string, string, TSearchValidator, {}, {}, TRouteContextReturn, TRouteContext, InferAllContext<TParentRoute>, TAllContext, TLoaderDeps, TLoaderDataReturn, TLoaderData>, 'caseSensitive' | 'parseParams' | 'stringifyParams' | 'path' | 'id' | 'params'>);
419
416
  }
420
417
  export {};