@tanstack/router-core 1.132.0-alpha.1 → 1.132.0-alpha.3

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.
Files changed (115) hide show
  1. package/dist/cjs/Matches.cjs.map +1 -1
  2. package/dist/cjs/Matches.d.cts +7 -9
  3. package/dist/cjs/index.cjs +8 -2
  4. package/dist/cjs/index.cjs.map +1 -1
  5. package/dist/cjs/index.d.cts +6 -2
  6. package/dist/cjs/load-matches.cjs +636 -0
  7. package/dist/cjs/load-matches.cjs.map +1 -0
  8. package/dist/cjs/load-matches.d.cts +16 -0
  9. package/dist/cjs/qss.cjs +19 -19
  10. package/dist/cjs/qss.cjs.map +1 -1
  11. package/dist/cjs/qss.d.cts +6 -4
  12. package/dist/cjs/redirect.cjs +3 -3
  13. package/dist/cjs/redirect.cjs.map +1 -1
  14. package/dist/cjs/route.cjs.map +1 -1
  15. package/dist/cjs/route.d.cts +0 -4
  16. package/dist/cjs/router.cjs +64 -632
  17. package/dist/cjs/router.cjs.map +1 -1
  18. package/dist/cjs/router.d.cts +14 -26
  19. package/dist/cjs/scroll-restoration.cjs +20 -25
  20. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  21. package/dist/cjs/scroll-restoration.d.cts +0 -9
  22. package/dist/cjs/searchParams.cjs +7 -15
  23. package/dist/cjs/searchParams.cjs.map +1 -1
  24. package/dist/cjs/ssr/constants.cjs +5 -0
  25. package/dist/cjs/ssr/constants.cjs.map +1 -0
  26. package/dist/cjs/ssr/constants.d.cts +1 -0
  27. package/dist/cjs/ssr/{seroval-plugins.cjs → serializer/ShallowErrorPlugin.cjs} +2 -2
  28. package/dist/cjs/ssr/serializer/ShallowErrorPlugin.cjs.map +1 -0
  29. package/dist/cjs/ssr/{seroval-plugins.d.cts → serializer/ShallowErrorPlugin.d.cts} +1 -2
  30. package/dist/cjs/ssr/serializer/seroval-plugins.cjs +11 -0
  31. package/dist/cjs/ssr/serializer/seroval-plugins.cjs.map +1 -0
  32. package/dist/cjs/ssr/serializer/seroval-plugins.d.cts +2 -0
  33. package/dist/cjs/ssr/serializer/transformer.cjs +50 -0
  34. package/dist/cjs/ssr/serializer/transformer.cjs.map +1 -0
  35. package/dist/cjs/ssr/serializer/transformer.d.cts +18 -0
  36. package/dist/cjs/ssr/ssr-client.cjs +53 -40
  37. package/dist/cjs/ssr/ssr-client.cjs.map +1 -1
  38. package/dist/cjs/ssr/ssr-client.d.cts +5 -1
  39. package/dist/cjs/ssr/ssr-server.cjs +12 -10
  40. package/dist/cjs/ssr/ssr-server.cjs.map +1 -1
  41. package/dist/cjs/ssr/ssr-server.d.cts +0 -1
  42. package/dist/cjs/ssr/tsrScript.cjs +1 -1
  43. package/dist/cjs/ssr/tsrScript.cjs.map +1 -1
  44. package/dist/cjs/typePrimitives.d.cts +6 -6
  45. package/dist/cjs/utils.cjs +14 -7
  46. package/dist/cjs/utils.cjs.map +1 -1
  47. package/dist/cjs/utils.d.cts +2 -1
  48. package/dist/esm/Matches.d.ts +7 -9
  49. package/dist/esm/Matches.js.map +1 -1
  50. package/dist/esm/index.d.ts +6 -2
  51. package/dist/esm/index.js +9 -3
  52. package/dist/esm/index.js.map +1 -1
  53. package/dist/esm/load-matches.d.ts +16 -0
  54. package/dist/esm/load-matches.js +636 -0
  55. package/dist/esm/load-matches.js.map +1 -0
  56. package/dist/esm/qss.d.ts +6 -4
  57. package/dist/esm/qss.js +19 -19
  58. package/dist/esm/qss.js.map +1 -1
  59. package/dist/esm/redirect.js +3 -3
  60. package/dist/esm/redirect.js.map +1 -1
  61. package/dist/esm/route.d.ts +0 -4
  62. package/dist/esm/route.js.map +1 -1
  63. package/dist/esm/router.d.ts +14 -26
  64. package/dist/esm/router.js +64 -632
  65. package/dist/esm/router.js.map +1 -1
  66. package/dist/esm/scroll-restoration.d.ts +0 -9
  67. package/dist/esm/scroll-restoration.js +20 -25
  68. package/dist/esm/scroll-restoration.js.map +1 -1
  69. package/dist/esm/searchParams.js +7 -15
  70. package/dist/esm/searchParams.js.map +1 -1
  71. package/dist/esm/ssr/constants.d.ts +1 -0
  72. package/dist/esm/ssr/constants.js +5 -0
  73. package/dist/esm/ssr/constants.js.map +1 -0
  74. package/dist/esm/ssr/{seroval-plugins.d.ts → serializer/ShallowErrorPlugin.d.ts} +1 -2
  75. package/dist/esm/ssr/{seroval-plugins.js → serializer/ShallowErrorPlugin.js} +2 -2
  76. package/dist/esm/ssr/serializer/ShallowErrorPlugin.js.map +1 -0
  77. package/dist/esm/ssr/serializer/seroval-plugins.d.ts +2 -0
  78. package/dist/esm/ssr/serializer/seroval-plugins.js +11 -0
  79. package/dist/esm/ssr/serializer/seroval-plugins.js.map +1 -0
  80. package/dist/esm/ssr/serializer/transformer.d.ts +18 -0
  81. package/dist/esm/ssr/serializer/transformer.js +50 -0
  82. package/dist/esm/ssr/serializer/transformer.js.map +1 -0
  83. package/dist/esm/ssr/ssr-client.d.ts +5 -1
  84. package/dist/esm/ssr/ssr-client.js +53 -40
  85. package/dist/esm/ssr/ssr-client.js.map +1 -1
  86. package/dist/esm/ssr/ssr-server.d.ts +0 -1
  87. package/dist/esm/ssr/ssr-server.js +12 -10
  88. package/dist/esm/ssr/ssr-server.js.map +1 -1
  89. package/dist/esm/ssr/tsrScript.js +1 -1
  90. package/dist/esm/ssr/tsrScript.js.map +1 -1
  91. package/dist/esm/typePrimitives.d.ts +6 -6
  92. package/dist/esm/utils.d.ts +2 -1
  93. package/dist/esm/utils.js +14 -7
  94. package/dist/esm/utils.js.map +1 -1
  95. package/package.json +1 -1
  96. package/src/Matches.ts +16 -8
  97. package/src/index.ts +12 -2
  98. package/src/load-matches.ts +955 -0
  99. package/src/qss.ts +27 -24
  100. package/src/redirect.ts +3 -3
  101. package/src/route.ts +10 -2
  102. package/src/router.ts +99 -893
  103. package/src/scroll-restoration.ts +25 -32
  104. package/src/searchParams.ts +8 -19
  105. package/src/ssr/constants.ts +1 -0
  106. package/src/ssr/{seroval-plugins.ts → serializer/ShallowErrorPlugin.ts} +2 -2
  107. package/src/ssr/serializer/seroval-plugins.ts +9 -0
  108. package/src/ssr/serializer/transformer.ts +78 -0
  109. package/src/ssr/ssr-client.ts +72 -44
  110. package/src/ssr/ssr-server.ts +18 -10
  111. package/src/ssr/tsrScript.ts +5 -1
  112. package/src/typePrimitives.ts +6 -6
  113. package/src/utils.ts +21 -10
  114. package/dist/cjs/ssr/seroval-plugins.cjs.map +0 -1
  115. package/dist/esm/ssr/seroval-plugins.js.map +0 -1
@@ -1,4 +1,5 @@
1
1
  import { Store } from '@tanstack/store';
2
+ import { loadRouteChunk } from './load-matches.js';
2
3
  import { ParsePathnameCache } from './path.js';
3
4
  import { SearchParser, SearchSerializer } from './searchParams.js';
4
5
  import { AnyRedirect, ResolvedRedirect } from './redirect.js';
@@ -7,12 +8,11 @@ import { Awaitable, ControlledPromise, NoInfer, NonNullableUpdater, PickAsRequir
7
8
  import { ParsedLocation } from './location.js';
8
9
  import { AnyContext, AnyRoute, AnyRouteWithContext, MakeRemountDepsOptionsUnion, RouteMask } from './route.js';
9
10
  import { FullSearchSchema, RouteById, RoutePaths, RoutesById, RoutesByPath } from './routeInfo.js';
10
- import { AnyRouteMatch, MakeRouteMatch, MakeRouteMatchUnion, MatchRouteOptions } from './Matches.js';
11
+ import { AnyRouteMatch, MakeRouteMatchUnion, MatchRouteOptions } from './Matches.js';
11
12
  import { BuildLocationFn, CommitLocationOptions, NavigateFn } from './RouterProvider.js';
12
13
  import { Manifest } from './manifest.js';
13
14
  import { AnySchema } from './validators.js';
14
15
  import { NavigateOptions, ResolveRelativePath, ToOptions } from './link.js';
15
- import { NotFoundError } from './not-found.js';
16
16
  export type ControllablePromise<T = any> = Promise<T> & {
17
17
  resolve: (value: T) => void;
18
18
  reject: (value?: any) => void;
@@ -29,7 +29,7 @@ export interface DefaultRouterOptionsExtensions {
29
29
  }
30
30
  export interface RouterOptionsExtensions extends DefaultRouterOptionsExtensions {
31
31
  }
32
- export interface RouterOptions<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean = false, TRouterHistory extends RouterHistory = RouterHistory, TDehydrated extends Record<string, any> = Record<string, any>> extends RouterOptionsExtensions {
32
+ export interface RouterOptions<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean = false, TRouterHistory extends RouterHistory = RouterHistory, TDehydrated extends Record<string, any> = Record<string, any>, TTransformerConfig = any> extends RouterOptionsExtensions {
33
33
  /**
34
34
  * The history object that will be used to manage the browser history.
35
35
  *
@@ -320,6 +320,7 @@ export interface RouterOptions<TRouteTree extends AnyRoute, TTrailingSlashOption
320
320
  * @default false
321
321
  */
322
322
  disableGlobalCatchBoundary?: boolean;
323
+ serializationAdapters?: TTransformerConfig;
323
324
  }
324
325
  export interface RouterState<in out TRouteTree extends AnyRoute = AnyRoute, in out TRouteMatch = MakeRouteMatchUnion> {
325
326
  status: 'pending' | 'idle';
@@ -400,10 +401,10 @@ export type RouterContextOptions<TRouteTree extends AnyRoute> = AnyContext exten
400
401
  } : {
401
402
  context: InferRouterContext<TRouteTree>;
402
403
  };
403
- export type RouterConstructorOptions<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean, TRouterHistory extends RouterHistory, TDehydrated extends Record<string, any>> = Omit<RouterOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>, 'context'> & RouterContextOptions<TRouteTree>;
404
+ export type RouterConstructorOptions<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean, TRouterHistory extends RouterHistory, TDehydrated extends Record<string, any>, TTransformerConfig> = Omit<RouterOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>, 'context'> & RouterContextOptions<TRouteTree>;
404
405
  export type PreloadRouteFn<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean, TRouterHistory extends RouterHistory> = <TFrom extends RoutePaths<TRouteTree> | string = string, TTo extends string | undefined = undefined, TMaskFrom extends RoutePaths<TRouteTree> | string = TFrom, TMaskTo extends string = ''>(opts: NavigateOptions<RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory>, TFrom, TTo, TMaskFrom, TMaskTo>) => Promise<Array<AnyRouteMatch> | undefined>;
405
406
  export type MatchRouteFn<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean, TRouterHistory extends RouterHistory> = <TFrom extends RoutePaths<TRouteTree> = '/', TTo extends string | undefined = undefined, TResolved = ResolveRelativePath<TFrom, NoInfer<TTo>>>(location: ToOptions<RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory>, TFrom, TTo>, opts?: MatchRouteOptions) => false | RouteById<TRouteTree, TResolved>['types']['allParams'];
406
- export type UpdateFn<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean, TRouterHistory extends RouterHistory, TDehydrated extends Record<string, any>> = (newOptions: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>) => void;
407
+ export type UpdateFn<TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption, TDefaultStructuralSharingOption extends boolean, TRouterHistory extends RouterHistory, TDehydrated extends Record<string, any>, TTransformerConfig extends any> = (newOptions: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>) => void;
407
408
  export type InvalidateFn<TRouter extends AnyRouter> = (opts?: {
408
409
  filter?: (d: MakeRouteMatchUnion<TRouter>) => boolean;
409
410
  sync?: boolean;
@@ -446,8 +447,8 @@ export interface ServerSsr {
446
447
  onRenderFinished: (listener: () => void) => void;
447
448
  dehydrate: () => Promise<void>;
448
449
  }
449
- export type AnyRouterWithContext<TContext> = RouterCore<AnyRouteWithContext<TContext>, any, any, any, any>;
450
- export type AnyRouter = RouterCore<any, any, any, any, any>;
450
+ export type AnyRouterWithContext<TContext> = RouterCore<AnyRouteWithContext<TContext>, any, any, any, any, any>;
451
+ export type AnyRouter = RouterCore<any, any, any, any, any, any>;
451
452
  export interface ViewTransitionOptions {
452
453
  types: Array<string> | ((locationChangeInfo: {
453
454
  fromLocation?: ParsedLocation;
@@ -474,8 +475,8 @@ export declare function getLocationChangeInfo(routerState: {
474
475
  hrefChanged: boolean;
475
476
  hashChanged: boolean;
476
477
  };
477
- export type CreateRouterFn = <TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption = 'never', TDefaultStructuralSharingOption extends boolean = false, TRouterHistory extends RouterHistory = RouterHistory, TDehydrated extends Record<string, any> = Record<string, any>>(options: undefined extends number ? 'strictNullChecks must be enabled in tsconfig.json' : RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>) => RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>;
478
- export declare class RouterCore<in out TRouteTree extends AnyRoute, in out TTrailingSlashOption extends TrailingSlashOption, in out TDefaultStructuralSharingOption extends boolean, in out TRouterHistory extends RouterHistory = RouterHistory, in out TDehydrated extends Record<string, any> = Record<string, any>> {
478
+ export type CreateRouterFn = <TRouteTree extends AnyRoute, TTrailingSlashOption extends TrailingSlashOption = 'never', TDefaultStructuralSharingOption extends boolean = false, TRouterHistory extends RouterHistory = RouterHistory, TDehydrated extends Record<string, any> = Record<string, any>, TTransformerConfig = any>(options: undefined extends number ? 'strictNullChecks must be enabled in tsconfig.json' : RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>) => RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>;
479
+ export declare class RouterCore<in out TRouteTree extends AnyRoute, in out TTrailingSlashOption extends TrailingSlashOption, in out TDefaultStructuralSharingOption extends boolean, in out TRouterHistory extends RouterHistory = RouterHistory, in out TDehydrated extends Record<string, any> = Record<string, any>, in out TTransformerConfig = any> {
479
480
  tempLocationKey: string | undefined;
480
481
  resetNextScroll: boolean;
481
482
  shouldViewTransition?: boolean | ViewTransitionOptions;
@@ -485,7 +486,7 @@ export declare class RouterCore<in out TRouteTree extends AnyRoute, in out TTrai
485
486
  isScrollRestoring: boolean;
486
487
  isScrollRestorationSetup: boolean;
487
488
  __store: Store<RouterState<TRouteTree>>;
488
- options: PickAsRequired<RouterOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>, 'stringifySearch' | 'parseSearch' | 'context'>;
489
+ options: PickAsRequired<RouterOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>, 'stringifySearch' | 'parseSearch' | 'context'>;
489
490
  history: TRouterHistory;
490
491
  latestLocation: ParsedLocation<FullSearchSchema<TRouteTree>>;
491
492
  basepath: string;
@@ -498,11 +499,11 @@ export declare class RouterCore<in out TRouteTree extends AnyRoute, in out TTrai
498
499
  /**
499
500
  * @deprecated Use the `createRouter` function instead
500
501
  */
501
- constructor(options: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>);
502
+ constructor(options: RouterConstructorOptions<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>);
502
503
  startTransition: StartTransitionFn;
503
504
  isShell(): boolean;
504
505
  isPrerendering(): boolean;
505
- update: UpdateFn<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>;
506
+ update: UpdateFn<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated, TTransformerConfig>;
506
507
  get state(): RouterState<TRouteTree, import('./Matches.js').RouteMatch<any, any, any, any, any, any, any>>;
507
508
  buildRouteTree: () => void;
508
509
  subscribe: SubscribeFn;
@@ -528,29 +529,17 @@ export declare class RouterCore<in out TRouteTree extends AnyRoute, in out TTrai
528
529
  startViewTransition: (fn: () => Promise<void>) => void;
529
530
  updateMatch: UpdateMatchFn;
530
531
  getMatch: GetMatchFn;
531
- loadMatches: ({ location, matches, preload: allPreload, onReady, updateMatch, sync, }: {
532
- location: ParsedLocation;
533
- matches: Array<AnyRouteMatch>;
534
- preload?: boolean;
535
- onReady?: () => Promise<void>;
536
- updateMatch?: (id: string, updater: (match: AnyRouteMatch) => AnyRouteMatch) => void;
537
- getMatch?: (matchId: string) => AnyRouteMatch | undefined;
538
- sync?: boolean;
539
- }) => Promise<Array<MakeRouteMatch>>;
540
532
  invalidate: InvalidateFn<RouterCore<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory, TDehydrated>>;
541
533
  resolveRedirect: (redirect: AnyRedirect) => AnyRedirect;
542
534
  clearCache: ClearCacheFn<this>;
543
535
  clearExpiredCache: () => void;
544
- loadRouteChunk: (route: AnyRoute) => Promise<void[]>;
536
+ loadRouteChunk: typeof loadRouteChunk;
545
537
  preloadRoute: PreloadRouteFn<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory>;
546
538
  matchRoute: MatchRouteFn<TRouteTree, TTrailingSlashOption, TDefaultStructuralSharingOption, TRouterHistory>;
547
539
  ssr?: {
548
540
  manifest: Manifest | undefined;
549
541
  };
550
542
  serverSsr?: ServerSsr;
551
- _handleNotFound: (matches: Array<AnyRouteMatch>, err: NotFoundError, { updateMatch, }?: {
552
- updateMatch?: (id: string, updater: (match: AnyRouteMatch) => AnyRouteMatch) => void;
553
- }) => void;
554
543
  hasNotFoundMatch: () => boolean;
555
544
  }
556
545
  export declare class SearchParamError extends Error {
@@ -559,7 +548,6 @@ export declare class PathParamError extends Error {
559
548
  }
560
549
  export declare function lazyFn<T extends Record<string, (...args: Array<any>) => any>, TKey extends keyof T = 'default'>(fn: () => Promise<T>, key?: TKey): (...args: Parameters<T[TKey]>) => Promise<Awaited<ReturnType<T[TKey]>>>;
561
550
  export declare function getInitialRouterState(location: ParsedLocation): RouterState<any>;
562
- export declare const componentTypes: readonly ["component", "errorComponent", "pendingComponent", "notFoundComponent"];
563
551
  interface RouteLike {
564
552
  id: string;
565
553
  isRoot?: boolean;