@tanstack/start-client-core 1.132.0-alpha.9 → 1.132.1

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 (90) hide show
  1. package/dist/esm/{serializer → client}/ServerFunctionSerializationAdapter.js +2 -2
  2. package/dist/esm/client/ServerFunctionSerializationAdapter.js.map +1 -0
  3. package/dist/esm/client/createClientRpc.d.ts +6 -0
  4. package/dist/esm/{createClientRpc.js → client/createClientRpc.js} +4 -4
  5. package/dist/esm/client/createClientRpc.js.map +1 -0
  6. package/dist/esm/client/hydrateStart.d.ts +2 -0
  7. package/dist/esm/client/hydrateStart.js +30 -0
  8. package/dist/esm/client/hydrateStart.js.map +1 -0
  9. package/dist/esm/client/index.d.ts +2 -0
  10. package/dist/esm/client/index.js +7 -0
  11. package/dist/esm/client/index.js.map +1 -0
  12. package/dist/esm/{serverFnFetcher.js → client/serverFnFetcher.js} +6 -6
  13. package/dist/esm/client/serverFnFetcher.js.map +1 -0
  14. package/dist/esm/constants.d.ts +1 -0
  15. package/dist/esm/constants.js +4 -0
  16. package/dist/esm/constants.js.map +1 -1
  17. package/dist/esm/createMiddleware.d.ts +95 -86
  18. package/dist/esm/createMiddleware.js +5 -5
  19. package/dist/esm/createMiddleware.js.map +1 -1
  20. package/dist/esm/createServerFn.d.ts +63 -69
  21. package/dist/esm/createServerFn.js +38 -22
  22. package/dist/esm/createServerFn.js.map +1 -1
  23. package/dist/esm/createStart.d.ts +27 -0
  24. package/dist/esm/createStart.js +14 -0
  25. package/dist/esm/createStart.js.map +1 -0
  26. package/dist/esm/fake-start-entry.d.ts +5 -0
  27. package/dist/esm/fake-start-entry.js +11 -0
  28. package/dist/esm/fake-start-entry.js.map +1 -0
  29. package/dist/esm/getDefaultSerovalPlugins.d.ts +1 -0
  30. package/dist/esm/getDefaultSerovalPlugins.js +14 -0
  31. package/dist/esm/getDefaultSerovalPlugins.js.map +1 -0
  32. package/dist/esm/getGlobalStartContext.d.ts +3 -0
  33. package/dist/esm/getGlobalStartContext.js +15 -0
  34. package/dist/esm/getGlobalStartContext.js.map +1 -0
  35. package/dist/esm/getRouterInstance.d.ts +2 -1
  36. package/dist/esm/getRouterInstance.js +1 -1
  37. package/dist/esm/getRouterInstance.js.map +1 -1
  38. package/dist/esm/getServerContextAfterGlobalMiddlewares.d.ts +1 -0
  39. package/dist/esm/getServerContextAfterGlobalMiddlewares.js +10 -0
  40. package/dist/esm/getServerContextAfterGlobalMiddlewares.js.map +1 -0
  41. package/dist/esm/getStartOptions.d.ts +1 -0
  42. package/dist/esm/getStartOptions.js +7 -0
  43. package/dist/esm/getStartOptions.js.map +1 -0
  44. package/dist/esm/global.d.ts +7 -0
  45. package/dist/esm/index.d.ts +11 -6
  46. package/dist/esm/index.js +9 -9
  47. package/dist/esm/index.js.map +1 -1
  48. package/dist/esm/serverRoute.d.ts +66 -0
  49. package/dist/esm/startEntry.d.ts +8 -0
  50. package/package.json +18 -5
  51. package/src/{serializer → client}/ServerFunctionSerializationAdapter.ts +2 -2
  52. package/src/{createClientRpc.ts → client/createClientRpc.ts} +5 -3
  53. package/src/client/hydrateStart.ts +35 -0
  54. package/src/client/index.ts +3 -0
  55. package/src/{serverFnFetcher.ts → client/serverFnFetcher.ts} +11 -16
  56. package/src/constants.ts +3 -0
  57. package/src/createMiddleware.ts +269 -255
  58. package/src/createServerFn.ts +248 -300
  59. package/src/createStart.ts +122 -0
  60. package/src/fake-start-entry.ts +4 -0
  61. package/src/getDefaultSerovalPlugins.ts +17 -0
  62. package/src/getGlobalStartContext.ts +18 -0
  63. package/src/getRouterInstance.ts +5 -4
  64. package/src/getServerContextAfterGlobalMiddlewares.ts +7 -0
  65. package/src/getStartOptions.ts +6 -0
  66. package/src/global.ts +9 -0
  67. package/src/index.tsx +12 -11
  68. package/src/serverRoute.ts +474 -0
  69. package/src/start-entry.d.ts +11 -0
  70. package/src/startEntry.ts +10 -0
  71. package/src/tests/createServerFn.test-d.ts +68 -128
  72. package/src/tests/createServerMiddleware.test-d.ts +22 -17
  73. package/dist/esm/createClientRpc.d.ts +0 -6
  74. package/dist/esm/createClientRpc.js.map +0 -1
  75. package/dist/esm/registerGlobalMiddleware.d.ts +0 -5
  76. package/dist/esm/registerGlobalMiddleware.js +0 -9
  77. package/dist/esm/registerGlobalMiddleware.js.map +0 -1
  78. package/dist/esm/serializer/ServerFunctionSerializationAdapter.js.map +0 -1
  79. package/dist/esm/serializer/getClientSerovalPlugins.d.ts +0 -3
  80. package/dist/esm/serializer/getClientSerovalPlugins.js +0 -13
  81. package/dist/esm/serializer/getClientSerovalPlugins.js.map +0 -1
  82. package/dist/esm/serializer/getDefaultSerovalPlugins.d.ts +0 -3
  83. package/dist/esm/serializer/getDefaultSerovalPlugins.js +0 -19
  84. package/dist/esm/serializer/getDefaultSerovalPlugins.js.map +0 -1
  85. package/dist/esm/serverFnFetcher.js.map +0 -1
  86. package/src/registerGlobalMiddleware.ts +0 -9
  87. package/src/serializer/getClientSerovalPlugins.ts +0 -10
  88. package/src/serializer/getDefaultSerovalPlugins.ts +0 -24
  89. /package/dist/esm/{serializer → client}/ServerFunctionSerializationAdapter.d.ts +0 -0
  90. /package/dist/esm/{serverFnFetcher.d.ts → client/serverFnFetcher.d.ts} +0 -0
@@ -0,0 +1,474 @@
1
+ import type {
2
+ AnyContext,
3
+ AnyRoute,
4
+ Assign,
5
+ Constrain,
6
+ Expand,
7
+ ResolveParams,
8
+ UnionToIntersection,
9
+ } from '@tanstack/router-core'
10
+ import type {
11
+ AnyRequestMiddleware,
12
+ AssignAllServerRequestContext,
13
+ } from './createMiddleware'
14
+
15
+ declare module '@tanstack/router-core' {
16
+ interface FilebaseRouteOptionsInterface<
17
+ TRegister,
18
+ TParentRoute extends AnyRoute = AnyRoute,
19
+ TId extends string = string,
20
+ TPath extends string = string,
21
+ TSearchValidator = undefined,
22
+ TParams = {},
23
+ TLoaderDeps extends Record<string, any> = {},
24
+ TLoaderFn = undefined,
25
+ TRouterContext = {},
26
+ TRouteContextFn = AnyContext,
27
+ TBeforeLoadFn = AnyContext,
28
+ TRemountDepsFn = AnyContext,
29
+ TSSR = unknown,
30
+ TServerMiddlewares = unknown,
31
+ THandlers = undefined,
32
+ > {
33
+ server?: RouteServerOptions<
34
+ TRegister,
35
+ AnyRoute,
36
+ TPath,
37
+ TParams,
38
+ TLoaderDeps,
39
+ TLoaderFn,
40
+ TRouterContext,
41
+ TRouteContextFn,
42
+ TBeforeLoadFn,
43
+ TServerMiddlewares,
44
+ THandlers
45
+ >
46
+ }
47
+
48
+ interface RouteTypes<
49
+ in out TRegister,
50
+ in out TParentRoute extends AnyRoute,
51
+ in out TPath extends string,
52
+ in out TFullPath extends string,
53
+ in out TCustomId extends string,
54
+ in out TId extends string,
55
+ in out TSearchValidator,
56
+ in out TParams,
57
+ in out TRouterContext,
58
+ in out TRouteContextFn,
59
+ in out TBeforeLoadFn,
60
+ in out TLoaderDeps,
61
+ in out TLoaderFn,
62
+ in out TChildren,
63
+ in out TFileRouteTypes,
64
+ in out TSSR,
65
+ in out TServerMiddlewares,
66
+ in out THandlers,
67
+ > {
68
+ middleware: TServerMiddlewares
69
+ allServerContext: ResolveAllServerContext<
70
+ TRegister,
71
+ TParentRoute,
72
+ TServerMiddlewares
73
+ >
74
+ }
75
+
76
+ interface BeforeLoadContextOptions<
77
+ in out TRegister,
78
+ in out TParentRoute extends AnyRoute,
79
+ in out TSearchValidator,
80
+ in out TParams,
81
+ in out TRouterContext,
82
+ in out TRouteContextFn,
83
+ in out TServerMiddlewares,
84
+ in out THandlers,
85
+ > {
86
+ serverContext?: Expand<
87
+ Assign<
88
+ ResolveAllServerContext<TRegister, TParentRoute, TServerMiddlewares>,
89
+ ExtractHandlersContext<THandlers>
90
+ >
91
+ >
92
+ }
93
+
94
+ interface LoaderFnContext<
95
+ in out TRegister,
96
+ in out TParentRoute extends AnyRoute = AnyRoute,
97
+ in out TId extends string = string,
98
+ in out TParams = {},
99
+ in out TLoaderDeps = {},
100
+ in out TRouterContext = {},
101
+ in out TRouteContextFn = AnyContext,
102
+ in out TBeforeLoadFn = AnyContext,
103
+ in out TServerMiddlewares = unknown,
104
+ in out THandlers = undefined,
105
+ > {
106
+ serverContext?: Expand<
107
+ Assign<
108
+ ResolveAllServerContext<TRegister, TParentRoute, TServerMiddlewares>,
109
+ ExtractHandlersContext<THandlers>
110
+ >
111
+ >
112
+ }
113
+ }
114
+
115
+ type ExtractHandlersContext<THandlers> = THandlers extends (
116
+ ...args: any
117
+ ) => CustomHandlerFunctionsRecord<any, any, any, any, any, infer TServerContext>
118
+ ? UnionToIntersection<TServerContext>
119
+ : THandlers extends Record<
120
+ string,
121
+ RouteMethodHandler<any, any, any, any, any, infer TServerContext>
122
+ >
123
+ ? UnionToIntersection<TServerContext>
124
+ : undefined
125
+
126
+ export interface RouteServerOptions<
127
+ TRegister,
128
+ TParentRoute extends AnyRoute,
129
+ TPath extends string,
130
+ TParams,
131
+ TLoaderDeps,
132
+ TLoaderFn,
133
+ TRouterContext,
134
+ TRouteContextFn,
135
+ TBeforeLoadFn,
136
+ TServerMiddlewares,
137
+ THandlers,
138
+ > {
139
+ middleware?: Constrain<
140
+ TServerMiddlewares,
141
+ ReadonlyArray<AnyRequestMiddleware>
142
+ >
143
+
144
+ handlers?: Constrain<
145
+ THandlers,
146
+ | Partial<
147
+ Record<
148
+ RouteMethod,
149
+ RouteMethodHandlerFn<
150
+ TRegister,
151
+ TParentRoute,
152
+ TPath,
153
+ TServerMiddlewares,
154
+ any,
155
+ any
156
+ >
157
+ >
158
+ >
159
+ | ((
160
+ opts: HandlersFnOpts<
161
+ TRegister,
162
+ TParentRoute,
163
+ TPath,
164
+ TServerMiddlewares
165
+ >,
166
+ ) => CustomHandlerFunctionsRecord<
167
+ TRegister,
168
+ TParentRoute,
169
+ TPath,
170
+ TServerMiddlewares,
171
+ any,
172
+ any
173
+ >)
174
+ >
175
+ test?: (test: Expand<ExtractHandlersContext<THandlers>>) => void
176
+ }
177
+
178
+ declare const createHandlersSymbol: unique symbol
179
+
180
+ type CustomHandlerFunctionsRecord<
181
+ TRegister,
182
+ TParentRoute extends AnyRoute,
183
+ TPath extends string,
184
+ TServerMiddlewares,
185
+ TMethodMiddlewares,
186
+ TServerContext,
187
+ > = {
188
+ [createHandlersSymbol]: true
189
+ } & Partial<
190
+ Record<
191
+ RouteMethod,
192
+ RouteMethodHandler<
193
+ TRegister,
194
+ TParentRoute,
195
+ TPath,
196
+ TServerMiddlewares,
197
+ TMethodMiddlewares,
198
+ TServerContext
199
+ >
200
+ >
201
+ >
202
+
203
+ export interface HandlersFnOpts<
204
+ TRegister,
205
+ TParentRoute extends AnyRoute,
206
+ TPath extends string,
207
+ TServerMiddlewares,
208
+ > {
209
+ createHandlers: CreateHandlersFn<
210
+ TRegister,
211
+ TParentRoute,
212
+ TPath,
213
+ TServerMiddlewares
214
+ >
215
+ }
216
+
217
+ export type CreateHandlersFn<
218
+ TRegister,
219
+ TParentRoute extends AnyRoute,
220
+ TPath extends string,
221
+ TServerMiddlewares,
222
+ > = <
223
+ const TMethodAllMiddlewares,
224
+ const TMethodGetMiddlewares,
225
+ const TMethodPostMiddlewares,
226
+ const TMethodPutMiddlewares,
227
+ const TMethodPatchMiddlewares,
228
+ const TMethodDeleteMiddlewares,
229
+ const TMethodOptionsMiddlewares,
230
+ const TMethodHeadMiddlewares,
231
+ TServerContext,
232
+ >(
233
+ opts: CreateMethodFnOpts<
234
+ TRegister,
235
+ TParentRoute,
236
+ TPath,
237
+ TServerMiddlewares,
238
+ TMethodAllMiddlewares,
239
+ TMethodGetMiddlewares,
240
+ TMethodPostMiddlewares,
241
+ TMethodPutMiddlewares,
242
+ TMethodPatchMiddlewares,
243
+ TMethodDeleteMiddlewares,
244
+ TMethodOptionsMiddlewares,
245
+ TMethodHeadMiddlewares,
246
+ TServerContext
247
+ >,
248
+ ) => CustomHandlerFunctionsRecord<
249
+ TRegister,
250
+ TParentRoute,
251
+ TPath,
252
+ TServerMiddlewares,
253
+ any,
254
+ TServerContext
255
+ >
256
+
257
+ export interface CreateMethodFnOpts<
258
+ TRegister,
259
+ TParentRoute extends AnyRoute,
260
+ TPath extends string,
261
+ TServerMiddlewares,
262
+ TMethodAllMiddlewares,
263
+ TMethodGetMiddlewares,
264
+ TMethodPostMiddlewares,
265
+ TMethodPutMiddlewares,
266
+ TMethodPatchMiddlewares,
267
+ TMethodDeleteMiddlewares,
268
+ TMethodOptionsMiddlewares,
269
+ TMethodHeadMiddlewares,
270
+ TServerContext,
271
+ > {
272
+ ALL?: RouteMethodHandler<
273
+ TRegister,
274
+ TParentRoute,
275
+ TPath,
276
+ TServerMiddlewares,
277
+ TMethodAllMiddlewares,
278
+ TServerContext
279
+ >
280
+ GET?: RouteMethodHandler<
281
+ TRegister,
282
+ TParentRoute,
283
+ TPath,
284
+ TServerMiddlewares,
285
+ TMethodGetMiddlewares,
286
+ TServerContext
287
+ >
288
+ POST?: RouteMethodHandler<
289
+ TRegister,
290
+ TParentRoute,
291
+ TPath,
292
+ TServerMiddlewares,
293
+ TMethodPostMiddlewares,
294
+ TServerContext
295
+ >
296
+ PUT?: RouteMethodHandler<
297
+ TRegister,
298
+ TParentRoute,
299
+ TPath,
300
+ TServerMiddlewares,
301
+ TMethodPutMiddlewares,
302
+ TServerContext
303
+ >
304
+ PATCH?: RouteMethodHandler<
305
+ TRegister,
306
+ TParentRoute,
307
+ TPath,
308
+ TServerMiddlewares,
309
+ TMethodPatchMiddlewares,
310
+ TServerContext
311
+ >
312
+ DELETE?: RouteMethodHandler<
313
+ TRegister,
314
+ TParentRoute,
315
+ TPath,
316
+ TServerMiddlewares,
317
+ TMethodDeleteMiddlewares,
318
+ TServerContext
319
+ >
320
+ OPTIONS?: RouteMethodHandler<
321
+ TRegister,
322
+ TParentRoute,
323
+ TPath,
324
+ TServerMiddlewares,
325
+ TMethodOptionsMiddlewares,
326
+ TServerContext
327
+ >
328
+ HEAD?: RouteMethodHandler<
329
+ TRegister,
330
+ TParentRoute,
331
+ TPath,
332
+ TServerMiddlewares,
333
+ TMethodHeadMiddlewares,
334
+ TServerContext
335
+ >
336
+ }
337
+
338
+ export type RouteMethodHandler<
339
+ TRegister,
340
+ TParentRoute extends AnyRoute,
341
+ TPath extends string,
342
+ TServerMiddlewares,
343
+ TMethodMiddlewares,
344
+ TServerContext,
345
+ > =
346
+ | RouteMethodHandlerFn<
347
+ TRegister,
348
+ TParentRoute,
349
+ TPath,
350
+ TServerMiddlewares,
351
+ TMethodMiddlewares,
352
+ TServerContext
353
+ >
354
+ | RouteMethodBuilderOptions<
355
+ TRegister,
356
+ TParentRoute,
357
+ TPath,
358
+ TServerMiddlewares,
359
+ TMethodMiddlewares,
360
+ TServerContext
361
+ >
362
+
363
+ export interface RouteMethodBuilderOptions<
364
+ TRegister,
365
+ TParentRoute extends AnyRoute,
366
+ TFullPath extends string,
367
+ TServerMiddlewares,
368
+ TMethodMiddlewares,
369
+ TResponse,
370
+ > {
371
+ handler?: RouteMethodHandlerFn<
372
+ TRegister,
373
+ TParentRoute,
374
+ TFullPath,
375
+ TServerMiddlewares,
376
+ TMethodMiddlewares,
377
+ TResponse
378
+ >
379
+ middleware?: Constrain<
380
+ TMethodMiddlewares,
381
+ ReadonlyArray<AnyRequestMiddleware>
382
+ >
383
+ }
384
+
385
+ export type ResolveAllServerContext<
386
+ TRegister,
387
+ TParentRoute extends AnyRoute,
388
+ TServerMiddlewares,
389
+ > = unknown extends TParentRoute
390
+ ? AssignAllServerRequestContext<TRegister, TServerMiddlewares, {}>
391
+ : Assign<
392
+ TParentRoute['types']['allServerContext'],
393
+ AssignAllServerRequestContext<TRegister, TServerMiddlewares, {}>
394
+ >
395
+
396
+ export type RouteMethod =
397
+ | 'ALL'
398
+ | 'GET'
399
+ | 'POST'
400
+ | 'PUT'
401
+ | 'PATCH'
402
+ | 'DELETE'
403
+ | 'OPTIONS'
404
+ | 'HEAD'
405
+
406
+ export type RouteMethodHandlerFn<
407
+ TRegister,
408
+ TParentRoute extends AnyRoute,
409
+ TFullPath extends string,
410
+ TServerMiddlewares,
411
+ TMethodMiddlewares,
412
+ TServerContext,
413
+ > = (
414
+ ctx: RouteMethodHandlerCtx<
415
+ TRegister,
416
+ TParentRoute,
417
+ TFullPath,
418
+ TServerMiddlewares,
419
+ TMethodMiddlewares
420
+ >,
421
+ ) =>
422
+ | RouteMethodResult<TServerContext>
423
+ | Promise<RouteMethodResult<TServerContext>>
424
+
425
+ export type RouteMethodResult<TContext> =
426
+ | Response
427
+ | undefined
428
+ | RouteMethodNextResult<TContext>
429
+
430
+ export type RouteMethodNextResult<TContext> = {
431
+ isNext: true
432
+ context: TContext
433
+ }
434
+
435
+ export interface RouteMethodHandlerCtx<
436
+ in out TRegister,
437
+ in out TParentRoute extends AnyRoute,
438
+ in out TFullPath extends string,
439
+ in out TServerMiddlewares,
440
+ in out TMethodMiddlewares,
441
+ > {
442
+ context: Expand<
443
+ AssignAllMethodContext<
444
+ TRegister,
445
+ TParentRoute,
446
+ TServerMiddlewares,
447
+ TMethodMiddlewares
448
+ >
449
+ >
450
+ request: Request
451
+ params: Expand<ResolveParams<TFullPath>>
452
+ pathname: TFullPath
453
+ next: <TContext = undefined>(options?: {
454
+ context?: TContext
455
+ }) => RouteMethodNextResult<TContext>
456
+ }
457
+
458
+ export type MergeMethodMiddlewares<TServerMiddlewares, TMethodMiddlewares> =
459
+ TServerMiddlewares extends ReadonlyArray<any>
460
+ ? TMethodMiddlewares extends ReadonlyArray<any>
461
+ ? readonly [...TServerMiddlewares, ...TMethodMiddlewares]
462
+ : TServerMiddlewares
463
+ : TMethodMiddlewares
464
+
465
+ export type AssignAllMethodContext<
466
+ TRegister,
467
+ TParentRoute extends AnyRoute,
468
+ TServerMiddlewares,
469
+ TMethodMiddlewares,
470
+ > = ResolveAllServerContext<
471
+ TRegister,
472
+ TParentRoute,
473
+ MergeMethodMiddlewares<TServerMiddlewares, TMethodMiddlewares>
474
+ >
@@ -0,0 +1,11 @@
1
+ declare module '#tanstack-start-entry' {
2
+ import type { StartEntry } from '@tanstack/start-client-core'
3
+
4
+ export const startInstance: StartEntry['startInstance']
5
+ }
6
+
7
+ declare module '#tanstack-router-entry' {
8
+ import type { RouterEntry } from '@tanstack/start-client-core'
9
+
10
+ export const getRouter: RouterEntry['getRouter']
11
+ }
@@ -0,0 +1,10 @@
1
+ import type { AnyRouter, Awaitable } from '@tanstack/router-core'
2
+ import type { AnyStartInstance } from './createStart.js'
3
+
4
+ export interface StartEntry {
5
+ startInstance: AnyStartInstance | undefined
6
+ }
7
+
8
+ export interface RouterEntry {
9
+ getRouter: () => Awaitable<AnyRouter>
10
+ }