@tanstack/router-core 1.132.0-alpha.0 → 1.132.0-alpha.12

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 (128) hide show
  1. package/dist/cjs/Matches.cjs.map +1 -1
  2. package/dist/cjs/Matches.d.cts +9 -11
  3. package/dist/cjs/config.cjs +10 -0
  4. package/dist/cjs/config.cjs.map +1 -0
  5. package/dist/cjs/config.d.cts +17 -0
  6. package/dist/cjs/fileRoute.d.cts +3 -2
  7. package/dist/cjs/index.cjs +10 -2
  8. package/dist/cjs/index.cjs.map +1 -1
  9. package/dist/cjs/index.d.cts +8 -3
  10. package/dist/cjs/load-matches.cjs +636 -0
  11. package/dist/cjs/load-matches.cjs.map +1 -0
  12. package/dist/cjs/load-matches.d.cts +16 -0
  13. package/dist/cjs/qss.cjs +19 -19
  14. package/dist/cjs/qss.cjs.map +1 -1
  15. package/dist/cjs/qss.d.cts +6 -4
  16. package/dist/cjs/redirect.cjs +3 -3
  17. package/dist/cjs/redirect.cjs.map +1 -1
  18. package/dist/cjs/route.cjs.map +1 -1
  19. package/dist/cjs/route.d.cts +42 -41
  20. package/dist/cjs/router.cjs +85 -654
  21. package/dist/cjs/router.cjs.map +1 -1
  22. package/dist/cjs/router.d.cts +19 -23
  23. package/dist/cjs/scroll-restoration.cjs +32 -29
  24. package/dist/cjs/scroll-restoration.cjs.map +1 -1
  25. package/dist/cjs/scroll-restoration.d.cts +1 -10
  26. package/dist/cjs/searchParams.cjs +7 -15
  27. package/dist/cjs/searchParams.cjs.map +1 -1
  28. package/dist/cjs/ssr/constants.cjs +5 -0
  29. package/dist/cjs/ssr/constants.cjs.map +1 -0
  30. package/dist/cjs/ssr/constants.d.cts +1 -0
  31. package/dist/cjs/ssr/{seroval-plugins.cjs → serializer/ShallowErrorPlugin.cjs} +2 -2
  32. package/dist/cjs/ssr/serializer/ShallowErrorPlugin.cjs.map +1 -0
  33. package/dist/cjs/ssr/{seroval-plugins.d.cts → serializer/ShallowErrorPlugin.d.cts} +1 -2
  34. package/dist/cjs/ssr/serializer/seroval-plugins.cjs +11 -0
  35. package/dist/cjs/ssr/serializer/seroval-plugins.cjs.map +1 -0
  36. package/dist/cjs/ssr/serializer/seroval-plugins.d.cts +2 -0
  37. package/dist/cjs/ssr/serializer/transformer.cjs +52 -0
  38. package/dist/cjs/ssr/serializer/transformer.cjs.map +1 -0
  39. package/dist/cjs/ssr/serializer/transformer.d.cts +56 -0
  40. package/dist/cjs/ssr/server.d.cts +5 -0
  41. package/dist/cjs/ssr/ssr-client.cjs +53 -40
  42. package/dist/cjs/ssr/ssr-client.cjs.map +1 -1
  43. package/dist/cjs/ssr/ssr-client.d.cts +5 -1
  44. package/dist/cjs/ssr/ssr-server.cjs +12 -10
  45. package/dist/cjs/ssr/ssr-server.cjs.map +1 -1
  46. package/dist/cjs/ssr/ssr-server.d.cts +0 -1
  47. package/dist/cjs/ssr/tsrScript.cjs +1 -1
  48. package/dist/cjs/ssr/tsrScript.cjs.map +1 -1
  49. package/dist/cjs/typePrimitives.d.cts +6 -6
  50. package/dist/cjs/utils.cjs +14 -7
  51. package/dist/cjs/utils.cjs.map +1 -1
  52. package/dist/cjs/utils.d.cts +2 -1
  53. package/dist/esm/Matches.d.ts +9 -11
  54. package/dist/esm/Matches.js.map +1 -1
  55. package/dist/esm/config.d.ts +17 -0
  56. package/dist/esm/config.js +10 -0
  57. package/dist/esm/config.js.map +1 -0
  58. package/dist/esm/fileRoute.d.ts +3 -2
  59. package/dist/esm/index.d.ts +8 -3
  60. package/dist/esm/index.js +11 -3
  61. package/dist/esm/index.js.map +1 -1
  62. package/dist/esm/load-matches.d.ts +16 -0
  63. package/dist/esm/load-matches.js +636 -0
  64. package/dist/esm/load-matches.js.map +1 -0
  65. package/dist/esm/qss.d.ts +6 -4
  66. package/dist/esm/qss.js +19 -19
  67. package/dist/esm/qss.js.map +1 -1
  68. package/dist/esm/redirect.js +3 -3
  69. package/dist/esm/redirect.js.map +1 -1
  70. package/dist/esm/route.d.ts +42 -41
  71. package/dist/esm/route.js.map +1 -1
  72. package/dist/esm/router.d.ts +19 -23
  73. package/dist/esm/router.js +85 -654
  74. package/dist/esm/router.js.map +1 -1
  75. package/dist/esm/scroll-restoration.d.ts +1 -10
  76. package/dist/esm/scroll-restoration.js +32 -29
  77. package/dist/esm/scroll-restoration.js.map +1 -1
  78. package/dist/esm/searchParams.js +7 -15
  79. package/dist/esm/searchParams.js.map +1 -1
  80. package/dist/esm/ssr/constants.d.ts +1 -0
  81. package/dist/esm/ssr/constants.js +5 -0
  82. package/dist/esm/ssr/constants.js.map +1 -0
  83. package/dist/esm/ssr/{seroval-plugins.d.ts → serializer/ShallowErrorPlugin.d.ts} +1 -2
  84. package/dist/esm/ssr/{seroval-plugins.js → serializer/ShallowErrorPlugin.js} +2 -2
  85. package/dist/esm/ssr/serializer/ShallowErrorPlugin.js.map +1 -0
  86. package/dist/esm/ssr/serializer/seroval-plugins.d.ts +2 -0
  87. package/dist/esm/ssr/serializer/seroval-plugins.js +11 -0
  88. package/dist/esm/ssr/serializer/seroval-plugins.js.map +1 -0
  89. package/dist/esm/ssr/serializer/transformer.d.ts +56 -0
  90. package/dist/esm/ssr/serializer/transformer.js +52 -0
  91. package/dist/esm/ssr/serializer/transformer.js.map +1 -0
  92. package/dist/esm/ssr/server.d.ts +5 -0
  93. package/dist/esm/ssr/ssr-client.d.ts +5 -1
  94. package/dist/esm/ssr/ssr-client.js +53 -40
  95. package/dist/esm/ssr/ssr-client.js.map +1 -1
  96. package/dist/esm/ssr/ssr-server.d.ts +0 -1
  97. package/dist/esm/ssr/ssr-server.js +12 -10
  98. package/dist/esm/ssr/ssr-server.js.map +1 -1
  99. package/dist/esm/ssr/tsrScript.js +1 -1
  100. package/dist/esm/ssr/tsrScript.js.map +1 -1
  101. package/dist/esm/typePrimitives.d.ts +6 -6
  102. package/dist/esm/utils.d.ts +2 -1
  103. package/dist/esm/utils.js +14 -7
  104. package/dist/esm/utils.js.map +1 -1
  105. package/package.json +2 -2
  106. package/src/Matches.ts +18 -10
  107. package/src/config.ts +42 -0
  108. package/src/fileRoute.ts +15 -3
  109. package/src/index.ts +24 -2
  110. package/src/load-matches.ts +955 -0
  111. package/src/qss.ts +27 -24
  112. package/src/redirect.ts +3 -3
  113. package/src/route.ts +146 -35
  114. package/src/router.ts +135 -925
  115. package/src/scroll-restoration.ts +42 -37
  116. package/src/searchParams.ts +8 -19
  117. package/src/ssr/constants.ts +1 -0
  118. package/src/ssr/{seroval-plugins.ts → serializer/ShallowErrorPlugin.ts} +2 -2
  119. package/src/ssr/serializer/seroval-plugins.ts +9 -0
  120. package/src/ssr/serializer/transformer.ts +215 -0
  121. package/src/ssr/server.ts +6 -0
  122. package/src/ssr/ssr-client.ts +72 -44
  123. package/src/ssr/ssr-server.ts +18 -10
  124. package/src/ssr/tsrScript.ts +5 -1
  125. package/src/typePrimitives.ts +6 -6
  126. package/src/utils.ts +21 -10
  127. package/dist/cjs/ssr/seroval-plugins.cjs.map +0 -1
  128. package/dist/esm/ssr/seroval-plugins.js.map +0 -1
package/src/route.ts CHANGED
@@ -15,7 +15,7 @@ import type {
15
15
  } from './Matches'
16
16
  import type { RootRouteId } from './root'
17
17
  import type { ParseRoute, RouteById, RoutePaths } from './routeInfo'
18
- import type { AnyRouter, RegisteredRouter } from './router'
18
+ import type { AnyRouter, Register, RegisteredRouter, SSROption } from './router'
19
19
  import type { BuildLocationFn, NavigateFn } from './RouterProvider'
20
20
  import type {
21
21
  Assign,
@@ -41,6 +41,7 @@ import type {
41
41
  ValidatorFn,
42
42
  ValidatorObj,
43
43
  } from './validators'
44
+ import type { ValidateSerializableLifecycleResult } from './ssr/serializer/transformer'
44
45
 
45
46
  export type AnyPathParams = {}
46
47
 
@@ -391,6 +392,7 @@ export interface RouteTypes<
391
392
  in out TLoaderFn,
392
393
  in out TChildren,
393
394
  in out TFileRouteTypes,
395
+ in out TSSR,
394
396
  > {
395
397
  parentRoute: TParentRoute
396
398
  path: TPath
@@ -422,8 +424,23 @@ export interface RouteTypes<
422
424
  loaderData: ResolveLoaderData<TLoaderFn>
423
425
  loaderDeps: TLoaderDeps
424
426
  fileRouteTypes: TFileRouteTypes
427
+ ssr: ResolveSSR<TSSR>
428
+ allSsr: ResolveAllSSR<TParentRoute, TSSR>
425
429
  }
426
430
 
431
+ export type ResolveSSR<TSSR> = TSSR extends (...args: ReadonlyArray<any>) => any
432
+ ? LooseReturnType<TSSR>
433
+ : TSSR
434
+
435
+ export type ResolveAllSSR<
436
+ TParentRoute extends AnyRoute,
437
+ TSSR,
438
+ > = unknown extends TParentRoute
439
+ ? ResolveSSR<TSSR>
440
+ : unknown extends TSSR
441
+ ? TParentRoute['types']['ssr']
442
+ : ResolveSSR<TSSR>
443
+
427
444
  export type ResolveFullPath<
428
445
  TParentRoute extends AnyRoute,
429
446
  TPath extends string,
@@ -440,6 +457,7 @@ export type RouteLazyFn<TRoute extends AnyRoute> = (
440
457
  ) => TRoute
441
458
 
442
459
  export type RouteAddChildrenFn<
460
+ in out TRegister extends Register,
443
461
  in out TParentRoute extends AnyRoute,
444
462
  in out TPath extends string,
445
463
  in out TFullPath extends string,
@@ -453,12 +471,14 @@ export type RouteAddChildrenFn<
453
471
  in out TLoaderDeps extends Record<string, any>,
454
472
  in out TLoaderFn,
455
473
  in out TFileRouteTypes,
474
+ in out TSSR,
456
475
  > = <const TNewChildren>(
457
476
  children: Constrain<
458
477
  TNewChildren,
459
478
  ReadonlyArray<AnyRoute> | Record<string, AnyRoute>
460
479
  >,
461
480
  ) => Route<
481
+ TRegister,
462
482
  TParentRoute,
463
483
  TPath,
464
484
  TFullPath,
@@ -472,10 +492,12 @@ export type RouteAddChildrenFn<
472
492
  TLoaderDeps,
473
493
  TLoaderFn,
474
494
  TNewChildren,
475
- TFileRouteTypes
495
+ TFileRouteTypes,
496
+ TSSR
476
497
  >
477
498
 
478
499
  export type RouteAddFileChildrenFn<
500
+ in out TRegister extends Register,
479
501
  in out TParentRoute extends AnyRoute,
480
502
  in out TPath extends string,
481
503
  in out TFullPath extends string,
@@ -489,9 +511,11 @@ export type RouteAddFileChildrenFn<
489
511
  in out TLoaderDeps extends Record<string, any>,
490
512
  in out TLoaderFn,
491
513
  in out TFileRouteTypes,
514
+ in out TSSR,
492
515
  > = <const TNewChildren>(
493
516
  children: TNewChildren,
494
517
  ) => Route<
518
+ TRegister,
495
519
  TParentRoute,
496
520
  TPath,
497
521
  TFullPath,
@@ -505,10 +529,12 @@ export type RouteAddFileChildrenFn<
505
529
  TLoaderDeps,
506
530
  TLoaderFn,
507
531
  TNewChildren,
508
- TFileRouteTypes
532
+ TFileRouteTypes,
533
+ TSSR
509
534
  >
510
535
 
511
536
  export type RouteAddFileTypesFn<
537
+ TRegister extends Register,
512
538
  TParentRoute extends AnyRoute,
513
539
  TPath extends string,
514
540
  TFullPath extends string,
@@ -522,7 +548,9 @@ export type RouteAddFileTypesFn<
522
548
  TLoaderDeps extends Record<string, any>,
523
549
  TLoaderFn,
524
550
  TChildren,
551
+ TSSR,
525
552
  > = <TNewFileRouteTypes>() => Route<
553
+ TRegister,
526
554
  TParentRoute,
527
555
  TPath,
528
556
  TFullPath,
@@ -536,10 +564,12 @@ export type RouteAddFileTypesFn<
536
564
  TLoaderDeps,
537
565
  TLoaderFn,
538
566
  TChildren,
539
- TNewFileRouteTypes
567
+ TNewFileRouteTypes,
568
+ TSSR
540
569
  >
541
570
 
542
571
  export interface Route<
572
+ in out TRegister extends Register,
543
573
  in out TParentRoute extends AnyRoute,
544
574
  in out TPath extends string,
545
575
  in out TFullPath extends string,
@@ -554,6 +584,7 @@ export interface Route<
554
584
  in out TLoaderFn,
555
585
  in out TChildren,
556
586
  in out TFileRouteTypes,
587
+ in out TSSR,
557
588
  > extends RouteExtensions<TId, TFullPath> {
558
589
  path: TPath
559
590
  parentRoute: TParentRoute
@@ -572,9 +603,11 @@ export interface Route<
572
603
  TLoaderDeps,
573
604
  TLoaderFn,
574
605
  TChildren,
575
- TFileRouteTypes
606
+ TFileRouteTypes,
607
+ TSSR
576
608
  >
577
609
  options: RouteOptions<
610
+ TRegister,
578
611
  TParentRoute,
579
612
  TId,
580
613
  TCustomId,
@@ -586,13 +619,18 @@ export interface Route<
586
619
  TLoaderFn,
587
620
  TRouterContext,
588
621
  TRouteContextFn,
589
- TBeforeLoadFn
622
+ TBeforeLoadFn,
623
+ TSSR
590
624
  >
591
625
  isRoot: TParentRoute extends AnyRoute ? true : false
592
- _componentsPromise?: Promise<Array<void>>
626
+ /** @internal */
627
+ _componentsPromise?: Promise<void>
628
+ /** @internal */
629
+ _componentsLoaded?: boolean
593
630
  lazyFn?: () => Promise<
594
631
  LazyRoute<
595
632
  Route<
633
+ TRegister,
596
634
  TParentRoute,
597
635
  TPath,
598
636
  TFullPath,
@@ -606,11 +644,15 @@ export interface Route<
606
644
  TLoaderDeps,
607
645
  TLoaderFn,
608
646
  TChildren,
609
- TFileRouteTypes
647
+ TFileRouteTypes,
648
+ TSSR
610
649
  >
611
650
  >
612
651
  >
652
+ /** @internal */
613
653
  _lazyPromise?: Promise<void>
654
+ /** @internal */
655
+ _lazyLoaded?: boolean
614
656
  rank: number
615
657
  to: TrimPathRight<TFullPath>
616
658
  init: (opts: { originalIndex: number }) => void
@@ -630,6 +672,7 @@ export interface Route<
630
672
  ) => this
631
673
  lazy: RouteLazyFn<
632
674
  Route<
675
+ TRegister,
633
676
  TParentRoute,
634
677
  TPath,
635
678
  TFullPath,
@@ -643,10 +686,12 @@ export interface Route<
643
686
  TLoaderDeps,
644
687
  TLoaderFn,
645
688
  TChildren,
646
- TFileRouteTypes
689
+ TFileRouteTypes,
690
+ TSSR
647
691
  >
648
692
  >
649
693
  addChildren: RouteAddChildrenFn<
694
+ TRegister,
650
695
  TParentRoute,
651
696
  TPath,
652
697
  TFullPath,
@@ -659,9 +704,11 @@ export interface Route<
659
704
  TBeforeLoadFn,
660
705
  TLoaderDeps,
661
706
  TLoaderFn,
662
- TFileRouteTypes
707
+ TFileRouteTypes,
708
+ TSSR
663
709
  >
664
710
  _addFileChildren: RouteAddFileChildrenFn<
711
+ TRegister,
665
712
  TParentRoute,
666
713
  TPath,
667
714
  TFullPath,
@@ -674,9 +721,11 @@ export interface Route<
674
721
  TBeforeLoadFn,
675
722
  TLoaderDeps,
676
723
  TLoaderFn,
677
- TFileRouteTypes
724
+ TFileRouteTypes,
725
+ TSSR
678
726
  >
679
727
  _addFileTypes: RouteAddFileTypesFn<
728
+ TRegister,
680
729
  TParentRoute,
681
730
  TPath,
682
731
  TFullPath,
@@ -689,7 +738,8 @@ export interface Route<
689
738
  TBeforeLoadFn,
690
739
  TLoaderDeps,
691
740
  TLoaderFn,
692
- TChildren
741
+ TChildren,
742
+ TSSR
693
743
  >
694
744
  }
695
745
 
@@ -707,6 +757,8 @@ export type AnyRoute = Route<
707
757
  any,
708
758
  any,
709
759
  any,
760
+ any,
761
+ any,
710
762
  any
711
763
  >
712
764
 
@@ -715,6 +767,7 @@ export type AnyRouteWithContext<TContext> = AnyRoute & {
715
767
  }
716
768
 
717
769
  export type RouteOptions<
770
+ TRegister extends Register,
718
771
  TParentRoute extends AnyRoute = AnyRoute,
719
772
  TId extends string = string,
720
773
  TCustomId extends string = string,
@@ -727,7 +780,9 @@ export type RouteOptions<
727
780
  TRouterContext = {},
728
781
  TRouteContextFn = AnyContext,
729
782
  TBeforeLoadFn = AnyContext,
783
+ TSSR = unknown,
730
784
  > = BaseRouteOptions<
785
+ TRegister,
731
786
  TParentRoute,
732
787
  TId,
733
788
  TCustomId,
@@ -738,7 +793,8 @@ export type RouteOptions<
738
793
  TLoaderFn,
739
794
  TRouterContext,
740
795
  TRouteContextFn,
741
- TBeforeLoadFn
796
+ TBeforeLoadFn,
797
+ TSSR
742
798
  > &
743
799
  UpdatableRouteOptions<
744
800
  NoInfer<TParentRoute>,
@@ -784,6 +840,7 @@ export type BeforeLoadFn<
784
840
  ) => any
785
841
 
786
842
  export type FileBaseRouteOptions<
843
+ TRegister extends Register,
787
844
  TParentRoute extends AnyRoute = AnyRoute,
788
845
  TId extends string = string,
789
846
  TPath extends string = string,
@@ -795,6 +852,7 @@ export type FileBaseRouteOptions<
795
852
  TRouteContextFn = AnyContext,
796
853
  TBeforeLoadFn = AnyContext,
797
854
  TRemountDepsFn = AnyContext,
855
+ TSSR = unknown,
798
856
  > = ParamsOptions<TPath, TParams> & {
799
857
  validateSearch?: Constrain<TSearchValidator, AnyValidator, DefaultValidator>
800
858
 
@@ -824,13 +882,14 @@ export type FileBaseRouteOptions<
824
882
  ) => any
825
883
  >
826
884
 
827
- ssr?:
885
+ ssr?: Constrain<
886
+ TSSR,
828
887
  | undefined
829
- | boolean
830
- | 'data-only'
888
+ | SSROption
831
889
  | ((
832
890
  ctx: SsrContextOptions<TParentRoute, TSearchValidator, TParams>,
833
- ) => Awaitable<undefined | boolean | 'data-only'>)
891
+ ) => Awaitable<undefined | SSROption>)
892
+ >
834
893
 
835
894
  // This async function is called before a route is loaded.
836
895
  // If an error is thrown here, the route's loader will not be called.
@@ -846,7 +905,12 @@ export type FileBaseRouteOptions<
846
905
  TRouterContext,
847
906
  TRouteContextFn
848
907
  >,
849
- ) => any
908
+ ) => ValidateSerializableLifecycleResult<
909
+ TRegister,
910
+ TParentRoute,
911
+ TSSR,
912
+ TBeforeLoadFn
913
+ >
850
914
  >
851
915
 
852
916
  loaderDeps?: (
@@ -877,11 +941,17 @@ export type FileBaseRouteOptions<
877
941
  TRouteContextFn,
878
942
  TBeforeLoadFn
879
943
  >,
880
- ) => any
944
+ ) => ValidateSerializableLifecycleResult<
945
+ TRegister,
946
+ TParentRoute,
947
+ TSSR,
948
+ TLoaderFn
949
+ >
881
950
  >
882
951
  }
883
952
 
884
953
  export type BaseRouteOptions<
954
+ TRegister extends Register,
885
955
  TParentRoute extends AnyRoute = AnyRoute,
886
956
  TId extends string = string,
887
957
  TCustomId extends string = string,
@@ -893,8 +963,10 @@ export type BaseRouteOptions<
893
963
  TRouterContext = {},
894
964
  TRouteContextFn = AnyContext,
895
965
  TBeforeLoadFn = AnyContext,
966
+ TSSR = unknown,
896
967
  > = RoutePathOptions<TCustomId, TPath> &
897
968
  FileBaseRouteOptions<
969
+ TRegister,
898
970
  TParentRoute,
899
971
  TId,
900
972
  TPath,
@@ -904,7 +976,9 @@ export type BaseRouteOptions<
904
976
  TLoaderFn,
905
977
  TRouterContext,
906
978
  TRouteContextFn,
907
- TBeforeLoadFn
979
+ TBeforeLoadFn,
980
+ AnyContext,
981
+ TSSR
908
982
  > & {
909
983
  getParentRoute: () => TParentRoute
910
984
  }
@@ -1243,14 +1317,17 @@ export interface RootRouteOptionsExtensions
1243
1317
  extends DefaultRootRouteOptionsExtensions {}
1244
1318
 
1245
1319
  export type RootRouteOptions<
1320
+ TRegister extends Register = Register,
1246
1321
  TSearchValidator = undefined,
1247
1322
  TRouterContext = {},
1248
1323
  TRouteContextFn = AnyContext,
1249
1324
  TBeforeLoadFn = AnyContext,
1250
1325
  TLoaderDeps extends Record<string, any> = {},
1251
1326
  TLoaderFn = undefined,
1327
+ TSSR = unknown,
1252
1328
  > = Omit<
1253
1329
  RouteOptions<
1330
+ TRegister,
1254
1331
  any, // TParentRoute
1255
1332
  RootRouteId, // TId
1256
1333
  RootRouteId, // TCustomId
@@ -1262,7 +1339,8 @@ export type RootRouteOptions<
1262
1339
  TLoaderFn,
1263
1340
  TRouterContext,
1264
1341
  TRouteContextFn,
1265
- TBeforeLoadFn
1342
+ TBeforeLoadFn,
1343
+ TSSR
1266
1344
  >,
1267
1345
  | 'path'
1268
1346
  | 'id'
@@ -1328,6 +1406,7 @@ export type NotFoundRouteProps = {
1328
1406
  }
1329
1407
 
1330
1408
  export class BaseRoute<
1409
+ in out TRegister extends Register,
1331
1410
  in out TParentRoute extends AnyRoute = AnyRoute,
1332
1411
  in out TPath extends string = '/',
1333
1412
  in out TFullPath extends string = ResolveFullPath<TParentRoute, TPath>,
@@ -1342,9 +1421,11 @@ export class BaseRoute<
1342
1421
  in out TLoaderFn = undefined,
1343
1422
  in out TChildren = unknown,
1344
1423
  in out TFileRouteTypes = unknown,
1424
+ in out TSSR = unknown,
1345
1425
  > {
1346
1426
  isRoot: TParentRoute extends AnyRoute ? true : false
1347
1427
  options: RouteOptions<
1428
+ TRegister,
1348
1429
  TParentRoute,
1349
1430
  TId,
1350
1431
  TCustomId,
@@ -1356,7 +1437,8 @@ export class BaseRoute<
1356
1437
  TLoaderFn,
1357
1438
  TRouterContext,
1358
1439
  TRouteContextFn,
1359
- TBeforeLoadFn
1440
+ TBeforeLoadFn,
1441
+ TSSR
1360
1442
  >
1361
1443
 
1362
1444
  // The following properties are set up in this.init()
@@ -1389,6 +1471,7 @@ export class BaseRoute<
1389
1471
  lazyFn?: () => Promise<
1390
1472
  LazyRoute<
1391
1473
  Route<
1474
+ TRegister,
1392
1475
  TParentRoute,
1393
1476
  TPath,
1394
1477
  TFullPath,
@@ -1402,15 +1485,19 @@ export class BaseRoute<
1402
1485
  TLoaderDeps,
1403
1486
  TLoaderFn,
1404
1487
  TChildren,
1405
- TFileRouteTypes
1488
+ TFileRouteTypes,
1489
+ TSSR
1406
1490
  >
1407
1491
  >
1408
1492
  >
1493
+ /** @internal */
1409
1494
  _lazyPromise?: Promise<void>
1410
- _componentsPromise?: Promise<Array<void>>
1495
+ /** @internal */
1496
+ _componentsPromise?: Promise<void>
1411
1497
 
1412
1498
  constructor(
1413
1499
  options?: RouteOptions<
1500
+ TRegister,
1414
1501
  TParentRoute,
1415
1502
  TId,
1416
1503
  TCustomId,
@@ -1422,7 +1509,8 @@ export class BaseRoute<
1422
1509
  TLoaderFn,
1423
1510
  TRouterContext,
1424
1511
  TRouteContextFn,
1425
- TBeforeLoadFn
1512
+ TBeforeLoadFn,
1513
+ TSSR
1426
1514
  >,
1427
1515
  ) {
1428
1516
  this.options = (options as any) || {}
@@ -1447,7 +1535,8 @@ export class BaseRoute<
1447
1535
  TLoaderDeps,
1448
1536
  TLoaderFn,
1449
1537
  TChildren,
1450
- TFileRouteTypes
1538
+ TFileRouteTypes,
1539
+ TSSR
1451
1540
  >
1452
1541
 
1453
1542
  init = (opts: { originalIndex: number }): void => {
@@ -1455,6 +1544,7 @@ export class BaseRoute<
1455
1544
 
1456
1545
  const options = this.options as
1457
1546
  | (RouteOptions<
1547
+ TRegister,
1458
1548
  TParentRoute,
1459
1549
  TId,
1460
1550
  TCustomId,
@@ -1466,7 +1556,8 @@ export class BaseRoute<
1466
1556
  TLoaderFn,
1467
1557
  TRouterContext,
1468
1558
  TRouteContextFn,
1469
- TBeforeLoadFn
1559
+ TBeforeLoadFn,
1560
+ TSSR
1470
1561
  > &
1471
1562
  RoutePathOptionsIntersection<TCustomId, TPath>)
1472
1563
  | undefined
@@ -1528,6 +1619,7 @@ export class BaseRoute<
1528
1619
  }
1529
1620
 
1530
1621
  addChildren: RouteAddChildrenFn<
1622
+ TRegister,
1531
1623
  TParentRoute,
1532
1624
  TPath,
1533
1625
  TFullPath,
@@ -1540,12 +1632,14 @@ export class BaseRoute<
1540
1632
  TBeforeLoadFn,
1541
1633
  TLoaderDeps,
1542
1634
  TLoaderFn,
1543
- TFileRouteTypes
1635
+ TFileRouteTypes,
1636
+ TSSR
1544
1637
  > = (children) => {
1545
1638
  return this._addFileChildren(children) as any
1546
1639
  }
1547
1640
 
1548
1641
  _addFileChildren: RouteAddFileChildrenFn<
1642
+ TRegister,
1549
1643
  TParentRoute,
1550
1644
  TPath,
1551
1645
  TFullPath,
@@ -1558,7 +1652,8 @@ export class BaseRoute<
1558
1652
  TBeforeLoadFn,
1559
1653
  TLoaderDeps,
1560
1654
  TLoaderFn,
1561
- TFileRouteTypes
1655
+ TFileRouteTypes,
1656
+ TSSR
1562
1657
  > = (children) => {
1563
1658
  if (Array.isArray(children)) {
1564
1659
  this.children = children as TChildren
@@ -1572,6 +1667,7 @@ export class BaseRoute<
1572
1667
  }
1573
1668
 
1574
1669
  _addFileTypes: RouteAddFileTypesFn<
1670
+ TRegister,
1575
1671
  TParentRoute,
1576
1672
  TPath,
1577
1673
  TFullPath,
@@ -1584,7 +1680,8 @@ export class BaseRoute<
1584
1680
  TBeforeLoadFn,
1585
1681
  TLoaderDeps,
1586
1682
  TLoaderFn,
1587
- TChildren
1683
+ TChildren,
1684
+ TSSR
1588
1685
  > = () => {
1589
1686
  return this as any
1590
1687
  }
@@ -1605,6 +1702,7 @@ export class BaseRoute<
1605
1702
  }) => {
1606
1703
  Object.assign(this.options, options)
1607
1704
  return this as unknown as BaseRoute<
1705
+ TRegister,
1608
1706
  TParentRoute,
1609
1707
  TPath,
1610
1708
  TFullPath,
@@ -1618,7 +1716,8 @@ export class BaseRoute<
1618
1716
  TLoaderDeps,
1619
1717
  TNewLoaderFn,
1620
1718
  TChildren,
1621
- TFileRouteTypes
1719
+ TFileRouteTypes,
1720
+ TSSR
1622
1721
  >
1623
1722
  }
1624
1723
 
@@ -1642,6 +1741,7 @@ export class BaseRoute<
1642
1741
 
1643
1742
  lazy: RouteLazyFn<
1644
1743
  Route<
1744
+ TRegister,
1645
1745
  TParentRoute,
1646
1746
  TPath,
1647
1747
  TFullPath,
@@ -1655,7 +1755,8 @@ export class BaseRoute<
1655
1755
  TLoaderDeps,
1656
1756
  TLoaderFn,
1657
1757
  TChildren,
1658
- TFileRouteTypes
1758
+ TFileRouteTypes,
1759
+ TSSR
1659
1760
  >
1660
1761
  > = (lazyFn) => {
1661
1762
  this.lazyFn = lazyFn
@@ -1676,6 +1777,7 @@ export class BaseRouteApi<TId, TRouter extends AnyRouter = RegisteredRouter> {
1676
1777
  }
1677
1778
 
1678
1779
  export interface RootRoute<
1780
+ in out TRegister extends Register,
1679
1781
  in out TSearchValidator = undefined,
1680
1782
  in out TRouterContext = {},
1681
1783
  in out TRouteContextFn = AnyContext,
@@ -1684,7 +1786,9 @@ export interface RootRoute<
1684
1786
  in out TLoaderFn = undefined,
1685
1787
  in out TChildren = unknown,
1686
1788
  in out TFileRouteTypes = unknown,
1789
+ in out TSSR = unknown,
1687
1790
  > extends Route<
1791
+ TRegister,
1688
1792
  any, // TParentRoute
1689
1793
  '/', // TPath
1690
1794
  '/', // TFullPath
@@ -1698,10 +1802,12 @@ export interface RootRoute<
1698
1802
  TLoaderDeps,
1699
1803
  TLoaderFn,
1700
1804
  TChildren, // TChildren
1701
- TFileRouteTypes
1805
+ TFileRouteTypes,
1806
+ TSSR
1702
1807
  > {}
1703
1808
 
1704
1809
  export class BaseRootRoute<
1810
+ in out TRegister extends Register,
1705
1811
  in out TSearchValidator = undefined,
1706
1812
  in out TRouterContext = {},
1707
1813
  in out TRouteContextFn = AnyContext,
@@ -1710,7 +1816,9 @@ export class BaseRootRoute<
1710
1816
  in out TLoaderFn = undefined,
1711
1817
  in out TChildren = unknown,
1712
1818
  in out TFileRouteTypes = unknown,
1819
+ in out TSSR = unknown,
1713
1820
  > extends BaseRoute<
1821
+ TRegister,
1714
1822
  any, // TParentRoute
1715
1823
  '/', // TPath
1716
1824
  '/', // TFullPath
@@ -1724,16 +1832,19 @@ export class BaseRootRoute<
1724
1832
  TLoaderDeps,
1725
1833
  TLoaderFn,
1726
1834
  TChildren, // TChildren
1727
- TFileRouteTypes
1835
+ TFileRouteTypes,
1836
+ TSSR
1728
1837
  > {
1729
1838
  constructor(
1730
1839
  options?: RootRouteOptions<
1840
+ TRegister,
1731
1841
  TSearchValidator,
1732
1842
  TRouterContext,
1733
1843
  TRouteContextFn,
1734
1844
  TBeforeLoadFn,
1735
1845
  TLoaderDeps,
1736
- TLoaderFn
1846
+ TLoaderFn,
1847
+ TSSR
1737
1848
  >,
1738
1849
  ) {
1739
1850
  super(options as any)