spiceflow 1.19.0-rsc.5 → 1.19.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.
Files changed (55) hide show
  1. package/README.md +77 -0
  2. package/dist/any-spiceflow-types.test.js +56 -0
  3. package/dist/any-spiceflow-types.test.js.map +1 -1
  4. package/dist/context.d.ts +6 -1
  5. package/dist/context.d.ts.map +1 -1
  6. package/dist/load-global-css.rsc.d.ts.map +1 -1
  7. package/dist/load-global-css.rsc.js +2 -3
  8. package/dist/load-global-css.rsc.js.map +1 -1
  9. package/dist/prevent-process-exit-if-busy.d.ts +0 -9
  10. package/dist/prevent-process-exit-if-busy.d.ts.map +1 -1
  11. package/dist/prevent-process-exit-if-busy.js +11 -19
  12. package/dist/prevent-process-exit-if-busy.js.map +1 -1
  13. package/dist/react/errors.d.ts +21 -4
  14. package/dist/react/errors.d.ts.map +1 -1
  15. package/dist/react/errors.js +35 -21
  16. package/dist/react/errors.js.map +1 -1
  17. package/dist/react/link.d.ts +2 -8
  18. package/dist/react/link.d.ts.map +1 -1
  19. package/dist/react/link.js.map +1 -1
  20. package/dist/react/router.d.ts +2 -3
  21. package/dist/react/router.d.ts.map +1 -1
  22. package/dist/react/router.js.map +1 -1
  23. package/dist/spiceflow.d.ts +3 -3
  24. package/dist/spiceflow.d.ts.map +1 -1
  25. package/dist/spiceflow.js +7 -6
  26. package/dist/spiceflow.js.map +1 -1
  27. package/dist/types.d.ts +10 -1
  28. package/dist/types.d.ts.map +1 -1
  29. package/dist/vite.d.ts.map +1 -1
  30. package/dist/vite.js +16 -0
  31. package/dist/vite.js.map +1 -1
  32. package/dist/wait-until.d.ts +1 -0
  33. package/dist/wait-until.d.ts.map +1 -1
  34. package/dist/wait-until.js +21 -5
  35. package/dist/wait-until.js.map +1 -1
  36. package/dist/wait-until.workerd.d.ts +1 -0
  37. package/dist/wait-until.workerd.d.ts.map +1 -1
  38. package/dist/wait-until.workerd.js +4 -0
  39. package/dist/wait-until.workerd.js.map +1 -1
  40. package/dist/waitUntil.test.js +45 -0
  41. package/dist/waitUntil.test.js.map +1 -1
  42. package/package.json +2 -2
  43. package/src/any-spiceflow-types.test.ts +68 -1
  44. package/src/context.ts +12 -1
  45. package/src/load-global-css.rsc.ts +2 -3
  46. package/src/prevent-process-exit-if-busy.ts +12 -20
  47. package/src/react/errors.tsx +94 -24
  48. package/src/react/link.tsx +3 -11
  49. package/src/react/router.tsx +2 -16
  50. package/src/spiceflow.tsx +11 -24
  51. package/src/types.ts +22 -4
  52. package/src/vite.tsx +16 -0
  53. package/src/wait-until.ts +24 -5
  54. package/src/wait-until.workerd.ts +5 -0
  55. package/src/waitUntil.test.ts +52 -0
package/README.md CHANGED
@@ -282,6 +282,40 @@ new Spiceflow().use(({ request }) => {
282
282
  })
283
283
  ```
284
284
 
285
+ ### Mounted Apps
286
+
287
+ Middleware is scoped to the app where you register it. **Parent app middleware runs for child sub-app routes too**, but **sub-app middleware does not run for parent or sibling routes**.
288
+
289
+ ```ts
290
+ import { Spiceflow } from 'spiceflow'
291
+
292
+ const admin = new Spiceflow({ basePath: '/admin' })
293
+ .use(() => {
294
+ console.log('admin only')
295
+ })
296
+ .get('/users', () => 'users')
297
+
298
+ new Spiceflow()
299
+ .use(() => {
300
+ console.log('root')
301
+ })
302
+ .use(admin)
303
+ .get('/health', () => 'ok')
304
+
305
+ // GET /admin/users -> runs "root" and "admin only"
306
+ // GET /health -> runs only "root"
307
+ ```
308
+
309
+ If you want a mounted app's middleware to run for **every** request, create that mounted app with `scoped: false`:
310
+
311
+ ```ts
312
+ const globalMiddleware = new Spiceflow({ scoped: false }).use(({ request }) => {
313
+ console.log(request.parsedUrl.pathname)
314
+ })
315
+
316
+ new Spiceflow().use(globalMiddleware)
317
+ ```
318
+
285
319
  ### Response Modification
286
320
 
287
321
  Call `next()` to get the response from downstream handlers, then modify it before sending:
@@ -2054,6 +2088,49 @@ throw redirect('/login', {
2054
2088
 
2055
2089
  </details>
2056
2090
 
2091
+ <details>
2092
+ <summary>Authentication: pages vs API routes</summary>
2093
+
2094
+ Pages and layouts should always `throw redirect('/login')` when the user is not authenticated. API routes (`.get()`, `.post()`, etc.) should return a JSON error with a 401 status instead. This keeps the experience clean: users visiting a protected page get redirected to login instead of seeing a raw JSON blob, while API consumers get a proper typed error response they can handle programmatically.
2095
+
2096
+ ```tsx
2097
+ // Page — redirect to login
2098
+ .page('/dashboard', async ({ request }) => {
2099
+ const user = await getUser(request)
2100
+ if (!user) throw redirect('/login')
2101
+ return <Dashboard user={user} />
2102
+ })
2103
+
2104
+ // Layout — redirect to login (protects all nested pages)
2105
+ .layout('/app/*', async ({ children, request }) => {
2106
+ const user = await getUser(request)
2107
+ if (!user) throw redirect('/login')
2108
+ return <AppLayout>{children}</AppLayout>
2109
+ })
2110
+
2111
+ // API route — return JSON 401
2112
+ .get('/api/profile', async ({ request }) => {
2113
+ const user = await getUser(request)
2114
+ if (!user) return json({ error: 'Not authenticated' }, { status: 401 })
2115
+ return json({ user })
2116
+ })
2117
+
2118
+ // Middleware — protect all routes in a sub-app with JSON 401
2119
+ const api = new Spiceflow()
2120
+ .use(async ({ request }) => {
2121
+ const user = await getUser(request)
2122
+ if (!user) return json({ error: 'Not authenticated' }, { status: 401 })
2123
+ })
2124
+ .get('/profile', async ({ request }) => {
2125
+ const user = await getUser(request)
2126
+ return json({ user })
2127
+ })
2128
+
2129
+ app.use(api, { prefix: '/api' })
2130
+ ```
2131
+
2132
+ </details>
2133
+
2057
2134
  ### Code Splitting
2058
2135
 
2059
2136
  Code splitting of client components is **automatic** — you don't need `React.lazy()` or dynamic `import()`. Each `"use client"` file becomes a separate chunk, and the browser only loads the chunks needed for the current page.
@@ -1,9 +1,33 @@
1
1
  // Regression tests for ergonomic `AnySpiceflow` fallbacks across public typed APIs.
2
+ import { rmSync, writeFileSync } from 'node:fs';
3
+ import { dirname, join } from 'node:path';
2
4
  import { z } from 'zod';
3
5
  import { expect, test } from 'vitest';
6
+ import ts from 'typescript';
4
7
  import { createSpiceflowClient, createSpiceflowFetch } from "./client/index.js";
5
8
  import { getRouter, redirect, useLoaderData, useRouterState } from "./react/index.js";
6
9
  import { createHref, Spiceflow } from "./spiceflow.js";
10
+ function getDiagnosticsForSnippet(source) {
11
+ const srcDir = dirname(new URL(import.meta.url).pathname);
12
+ const tsconfigPath = join(srcDir, '..', 'tsconfig.json');
13
+ const snippetPath = join(srcDir, '__tmp-redirect-register-check.ts');
14
+ writeFileSync(snippetPath, source);
15
+ try {
16
+ const configFile = ts.readConfigFile(tsconfigPath, ts.sys.readFile);
17
+ const parsedConfig = ts.parseJsonConfigFileContent(configFile.config, ts.sys, dirname(tsconfigPath), { noEmit: true }, tsconfigPath);
18
+ const program = ts.createProgram({
19
+ rootNames: [snippetPath],
20
+ options: parsedConfig.options,
21
+ });
22
+ return ts
23
+ .getPreEmitDiagnostics(program)
24
+ .filter((diagnostic) => diagnostic.file?.fileName === snippetPath)
25
+ .map((diagnostic) => ts.flattenDiagnosticMessageText(diagnostic.messageText, '\n'));
26
+ }
27
+ finally {
28
+ rmSync(snippetPath);
29
+ }
30
+ }
7
31
  test('SpiceflowRegister: router import is typed via register pattern', () => {
8
32
  // Tests the register mechanism by importing the typed `router` export directly.
9
33
  // In real apps, users add `declare module 'spiceflow/react' { ... }` once
@@ -329,4 +353,36 @@ test('Link: typed app validates href paths and requires params', () => {
329
353
  // @ts-expect-error - wrong param key rejected
330
354
  expectLink({ href: '/users/:id', params: { slug: '1' } });
331
355
  });
356
+ test('redirect is typed through SpiceflowRegister', () => {
357
+ const diagnostics = getDiagnosticsForSnippet(`
358
+ import { Spiceflow } from './spiceflow.tsx'
359
+ import { redirect } from './react/index.ts'
360
+
361
+ const app = new Spiceflow()
362
+ .page('/login', async () => 'login')
363
+ .page('/users/:id', async () => 'user')
364
+
365
+ declare module './react/router.js' {
366
+ interface SpiceflowRegister {
367
+ app: typeof app
368
+ }
369
+ }
370
+
371
+ redirect('/login')
372
+ redirect('/users/:id', { params: { id: '42' } })
373
+ const id = '42'
374
+ redirect(\`/users/\${id}\`)
375
+ redirect('https://example.com')
376
+
377
+ // @ts-expect-error missing params
378
+ redirect('/users/:id')
379
+
380
+ // @ts-expect-error wrong param key
381
+ redirect('/users/:id', { params: { slug: '1' } })
382
+
383
+ // @ts-expect-error invalid path
384
+ redirect('/missing')
385
+ `);
386
+ expect(diagnostics).toEqual([]);
387
+ });
332
388
  //# sourceMappingURL=any-spiceflow-types.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"any-spiceflow-types.test.js","sourceRoot":"","sources":["../src/any-spiceflow-types.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"any-spiceflow-types.test.js","sourceRoot":"","sources":["../src/any-spiceflow-types.test.ts"],"names":[],"mappings":"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"}
package/dist/context.d.ts CHANGED
@@ -1,7 +1,11 @@
1
- import type { Redirect } from './utils.js';
2
1
  import type { RouteSchema, Prettify, ResolvePath, SingletonBase, GetRequestSchema } from './types.js';
3
2
  import { SpiceflowRequest, WaitUntil } from './spiceflow.js';
4
3
  import type { SpiceflowSpan, SpiceflowTracer } from './instrumentation.js';
4
+ type Redirect = (location: string, options?: {
5
+ status?: number;
6
+ headers?: Record<string, string>;
7
+ params?: Record<string, string | number | boolean>;
8
+ }) => Response;
5
9
  export interface ContextResponse {
6
10
  headers: Headers;
7
11
  status: number;
@@ -68,4 +72,5 @@ export type MiddlewareContext<in out Singleton extends SingletonBase = {
68
72
  tracer: SpiceflowTracer;
69
73
  redirect: Redirect;
70
74
  }>;
75
+ export {};
71
76
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../src/context.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"load-global-css.rsc.d.ts","sourceRoot":"","sources":["../src/load-global-css.rsc.ts"],"names":[],"mappings":"AAOA,wBAAgB,aAAa,IAAI,GAAG,CAKnC"}
1
+ {"version":3,"file":"load-global-css.rsc.d.ts","sourceRoot":"","sources":["../src/load-global-css.rsc.ts"],"names":[],"mappings":"AAMA,wBAAgB,aAAa,IAAI,GAAG,CAKnC"}
@@ -1,7 +1,6 @@
1
1
  // RSC-only: loads global CSS via the vite-rsc transform.
2
- // The import.meta.viteRsc.loadCss call MUST appear exactly as written below
3
- // because vite-rsc's transform uses a regex to find and replace it at build time.
4
- // Do not use optional chaining, ternaries, or put the pattern in comments.
2
+ // The static-analysis token below must appear only in executable code, not
3
+ // comments, because vite-rsc scans raw source before asserting the RSC env.
5
4
  import * as errore from 'errore';
6
5
  export function loadGlobalCss() {
7
6
  const result = errore.try(() => import.meta.viteRsc.loadCss('virtual:app-entry'));
@@ -1 +1 @@
1
- {"version":3,"file":"load-global-css.rsc.js","sourceRoot":"","sources":["../src/load-global-css.rsc.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,4EAA4E;AAC5E,kFAAkF;AAClF,2EAA2E;AAE3E,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAEhC,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CACjD,CAAA;IACD,OAAO,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AACrD,CAAC"}
1
+ {"version":3,"file":"load-global-css.rsc.js","sourceRoot":"","sources":["../src/load-global-css.rsc.ts"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,2EAA2E;AAC3E,4EAA4E;AAE5E,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAEhC,MAAM,UAAU,aAAa;IAC3B,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,GAAG,EAAE,CAC7B,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CACjD,CAAA;IACD,OAAO,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,MAAM,CAAA;AACrD,CAAC"}
@@ -2,15 +2,6 @@ interface GracefulShutdownOptions {
2
2
  maxWaitSeconds?: number;
3
3
  checkIntervalMs?: number;
4
4
  }
5
- /**
6
- * Creates a Spiceflow middleware that tracks in-flight requests and prevents
7
- * the process from exiting while requests are being processed.
8
- *
9
- * @param options - Configuration options
10
- * @param options.maxWaitSeconds - Maximum time to wait for requests to complete (default: 300)
11
- * @param options.checkIntervalMs - Interval to check if requests are complete (default: 250)
12
- * @returns Spiceflow app that can be mounted with .use()
13
- */
14
5
  export declare function preventProcessExitIfBusy(options?: GracefulShutdownOptions): any;
15
6
  export {};
16
7
  //# sourceMappingURL=prevent-process-exit-if-busy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"prevent-process-exit-if-busy.d.ts","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AAGA,UAAU,uBAAuB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,uBAA4B,GACpC,GAAG,CAkDL"}
1
+ {"version":3,"file":"prevent-process-exit-if-busy.d.ts","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AAKA,UAAU,uBAAuB;IAC/B,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB,eAAe,CAAC,EAAE,MAAM,CAAA;CACzB;AAED,wBAAgB,wBAAwB,CACtC,OAAO,GAAE,uBAA4B,GACpC,GAAG,CAiDL"}
@@ -1,44 +1,36 @@
1
+ // Middleware that tracks in-flight requests and pending waitUntil promises,
2
+ // preventing the process from exiting while work is still in progress.
1
3
  import { Spiceflow } from './spiceflow.js';
2
- /**
3
- * Creates a Spiceflow middleware that tracks in-flight requests and prevents
4
- * the process from exiting while requests are being processed.
5
- *
6
- * @param options - Configuration options
7
- * @param options.maxWaitSeconds - Maximum time to wait for requests to complete (default: 300)
8
- * @param options.checkIntervalMs - Interval to check if requests are complete (default: 250)
9
- * @returns Spiceflow app that can be mounted with .use()
10
- */
4
+ import { pendingWaitUntilCount } from '#wait-until';
11
5
  export function preventProcessExitIfBusy(options = {}) {
12
6
  const { maxWaitSeconds = 300, checkIntervalMs = 250 } = options;
13
- // Track in-flight requests in closure
14
7
  let inFlightRequests = 0;
15
8
  let isShuttingDown = false;
16
- // Sleep utility
17
9
  const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
18
- // Graceful shutdown handler
10
+ function isBusy() {
11
+ return inFlightRequests > 0 || pendingWaitUntilCount() > 0;
12
+ }
19
13
  async function handleShutdown(signal) {
20
14
  if (isShuttingDown)
21
- return; // Prevent multiple shutdown attempts
15
+ return;
22
16
  isShuttingDown = true;
23
17
  const startTime = Date.now();
24
18
  const deadline = Date.now() + maxWaitSeconds * 1000;
25
- while (inFlightRequests > 0 && Date.now() < deadline) {
19
+ while (isBusy() && Date.now() < deadline) {
26
20
  await sleep(checkIntervalMs);
27
21
  }
28
22
  const elapsedSeconds = ((Date.now() - startTime) / 1000).toFixed(1);
29
- if (inFlightRequests > 0) {
30
- console.error(`[${new Date().toISOString()}] Shutdown timeout reached after ${elapsedSeconds}s; ${inFlightRequests} request(s) still in progress, forcing exit`);
23
+ if (isBusy()) {
24
+ console.error(`[${new Date().toISOString()}] Shutdown timeout reached after ${elapsedSeconds}s; ${inFlightRequests} request(s) and ${pendingWaitUntilCount()} waitUntil promise(s) still in progress, forcing exit`);
31
25
  }
32
- process.exit(inFlightRequests > 0 ? 1 : 0);
26
+ process.exit(isBusy() ? 1 : 0);
33
27
  }
34
- // Register shutdown handlers only in Node.js environments
35
28
  if (typeof process !== 'undefined' && process.prependListener) {
36
29
  ;
37
30
  ['SIGINT', 'SIGTERM'].forEach((sig) => {
38
31
  process.prependListener(sig, handleShutdown);
39
32
  });
40
33
  }
41
- // Return Spiceflow middleware with scoped: false
42
34
  return new Spiceflow({ scoped: false }).use(async (_, next) => {
43
35
  inFlightRequests++;
44
36
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"prevent-process-exit-if-busy.js","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAQ1C;;;;;;;;GAQG;AACH,MAAM,UAAU,wBAAwB,CACtC,UAAmC,EAAE;IAErC,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,eAAe,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAE/D,sCAAsC;IACtC,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,gBAAgB;IAChB,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAC3B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAEzD,4BAA4B;IAC5B,KAAK,UAAU,cAAc,CAAC,MAAsB;QAClD,IAAI,cAAc;YAAE,OAAM,CAAC,qCAAqC;QAChE,cAAc,GAAG,IAAI,CAAA;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAA;QAEnD,OAAO,gBAAgB,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACrD,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEnE,IAAI,gBAAgB,GAAG,CAAC,EAAE,CAAC;YACzB,OAAO,CAAC,KAAK,CACX,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,oCAAoC,cAAc,MAAM,gBAAgB,6CAA6C,CAClJ,CAAA;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,0DAA0D;IAC1D,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9D,CAAC;QAAA,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,OAAO,CAAC,eAAe,CAAC,GAAqB,EAAE,cAAc,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,iDAAiD;IACjD,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC5D,gBAAgB,EAAE,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAA;QACd,CAAC;gBAAS,CAAC;YACT,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
1
+ {"version":3,"file":"prevent-process-exit-if-busy.js","sourceRoot":"","sources":["../src/prevent-process-exit-if-busy.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,uEAAuE;AACvE,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAA;AAC1C,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAOnD,MAAM,UAAU,wBAAwB,CACtC,UAAmC,EAAE;IAErC,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,eAAe,GAAG,GAAG,EAAE,GAAG,OAAO,CAAA;IAE/D,IAAI,gBAAgB,GAAG,CAAC,CAAA;IACxB,IAAI,cAAc,GAAG,KAAK,CAAA;IAE1B,MAAM,KAAK,GAAG,CAAC,EAAU,EAAE,EAAE,CAC3B,IAAI,OAAO,CAAO,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,CAAA;IAEzD,SAAS,MAAM;QACb,OAAO,gBAAgB,GAAG,CAAC,IAAI,qBAAqB,EAAE,GAAG,CAAC,CAAA;IAC5D,CAAC;IAED,KAAK,UAAU,cAAc,CAAC,MAAsB;QAClD,IAAI,cAAc;YAAE,OAAM;QAC1B,cAAc,GAAG,IAAI,CAAA;QAErB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,GAAG,IAAI,CAAA;QAEnD,OAAO,MAAM,EAAE,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE,CAAC;YACzC,MAAM,KAAK,CAAC,eAAe,CAAC,CAAA;QAC9B,CAAC;QAED,MAAM,cAAc,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAA;QAEnE,IAAI,MAAM,EAAE,EAAE,CAAC;YACb,OAAO,CAAC,KAAK,CACX,IAAI,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,oCAAoC,cAAc,MAAM,gBAAgB,mBAAmB,qBAAqB,EAAE,uDAAuD,CACtM,CAAA;QACH,CAAC;QAED,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;IAChC,CAAC;IAED,IAAI,OAAO,OAAO,KAAK,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;QAC9D,CAAC;QAAA,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACrC,OAAO,CAAC,eAAe,CAAC,GAAqB,EAAE,cAAc,CAAC,CAAA;QAChE,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,OAAO,IAAI,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,IAAI,EAAE,EAAE;QAC5D,gBAAgB,EAAE,CAAA;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,EAAE,CAAA;QACd,CAAC;gBAAS,CAAC;YACT,gBAAgB,EAAE,CAAA;QACpB,CAAC;IACH,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -1,13 +1,29 @@
1
+ import type { AllHrefPaths, ExtractParamsFromPath, PathParamsProp } from '../types.js';
2
+ import type { RegisteredApp, RouterPaths } from './router.js';
1
3
  export interface ReactServerErrorContext {
2
4
  status: number;
3
5
  headers?: Record<string, string> | [string, string][];
4
6
  }
5
- export declare function contextHeaders(ctx: ReactServerErrorContext): Record<string, string>;
6
- export declare function contextToHeaders(ctx: ReactServerErrorContext): Headers;
7
- export declare function redirect(location: string, options?: {
7
+ type RedirectOptions = {
8
8
  status?: number;
9
9
  headers?: Record<string, string>;
10
- }): Response;
10
+ };
11
+ type RedirectParamsOptions<Path extends string> = RedirectOptions & PathParamsProp<Path>;
12
+ type RedirectArgs<Path extends string> = [ExtractParamsFromPath<Path>] extends [undefined] ? [options?: RedirectParamsOptions<Path>] : [options: RedirectParamsOptions<Path>];
13
+ type RedirectAnyOptions = RedirectOptions & {
14
+ params?: Record<string, string | number | boolean>;
15
+ };
16
+ type ExternalRedirectLocation = `${string}://${string}` | `//${string}` | `?${string}` | `#${string}`;
17
+ type UnionToIntersection<U> = (U extends any ? (value: U) => void : never) extends (value: infer I) => void ? I : never;
18
+ type RedirectPatternOverloads<Paths extends string> = UnionToIntersection<{
19
+ [Path in Paths]: (location: Path, ...rest: RedirectArgs<Path>) => Response;
20
+ }[Paths]>;
21
+ type RedirectResolvedOverload<Paths extends string> = <Location extends AllHrefPaths<Paths>>(location: Location extends Paths ? never : Location, ...rest: RedirectArgs<Location>) => Response;
22
+ type DynamicStringRedirect = <Location extends string>(location: string extends Location ? Location : never, options?: RedirectAnyOptions) => Response;
23
+ type RedirectFn = string extends RouterPaths<RegisteredApp> ? (location: string, options?: RedirectAnyOptions) => Response : RedirectPatternOverloads<RouterPaths<RegisteredApp>> & RedirectResolvedOverload<RouterPaths<RegisteredApp>> & DynamicStringRedirect & ((location: ExternalRedirectLocation, options?: RedirectOptions) => Response);
24
+ export declare function contextHeaders(ctx: ReactServerErrorContext): Record<string, string>;
25
+ export declare function contextToHeaders(ctx: ReactServerErrorContext): Headers;
26
+ export declare const redirect: RedirectFn;
11
27
  export declare function notFound(): Response;
12
28
  export declare function isRedirectError(ctx?: ReactServerErrorContext): false | {
13
29
  location: string;
@@ -15,4 +31,5 @@ export declare function isRedirectError(ctx?: ReactServerErrorContext): false |
15
31
  export declare function isRedirectStatus(status: number): boolean;
16
32
  export declare function isNotFoundError(ctx?: ReactServerErrorContext): boolean;
17
33
  export declare function getErrorContext(error: unknown): ReactServerErrorContext | undefined;
34
+ export {};
18
35
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/react/errors.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAA;CACtD;AAKD,wBAAgB,cAAc,CAC5B,GAAG,EAAE,uBAAuB,GAC3B,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAMxB;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,uBAAuB,GAAG,OAAO,CAGtE;AAQD,wBAAgB,QAAQ,CACtB,QAAQ,EAAE,MAAM,EAChB,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,YAoBhE;AAED,wBAAgB,QAAQ,aAEvB;AAED,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,uBAAuB;;EAQ5D;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,MAAM,WAE9C;AAED,wBAAgB,eAAe,CAAC,GAAG,CAAC,EAAE,uBAAuB,WAG5D;AAMD,wBAAgB,eAAe,CAC7B,KAAK,EAAE,OAAO,GACb,uBAAuB,GAAG,SAAS,CAgBrC"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/react/errors.tsx"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { getBasePath } from '../base-path.js';
2
+ import { buildHref } from './loader-utils.js';
2
3
  // Normalizes headers from either Record or entries array into a plain
3
4
  // object. Used when reading headers from decoded digest contexts where
4
5
  // we only need single-value access (e.g. checking the location header).
@@ -15,7 +16,9 @@ export function contextHeaders(ctx) {
15
16
  export function contextToHeaders(ctx) {
16
17
  if (!ctx.headers)
17
18
  return new Headers();
18
- return new Headers(ctx.headers);
19
+ if (Array.isArray(ctx.headers))
20
+ return new Headers(ctx.headers);
21
+ return new Headers(Object.entries(ctx.headers));
19
22
  }
20
23
  function hasBasePrefix(path, base) {
21
24
  if (path === base)
@@ -23,24 +26,34 @@ function hasBasePrefix(path, base) {
23
26
  const next = path.charAt(base.length);
24
27
  return path.startsWith(base) && (next === '/' || next === '?' || next === '#');
25
28
  }
26
- export function redirect(location, options) {
29
+ const redirectImpl = (location, options) => {
30
+ const [target, resolvedOptions] = options?.params
31
+ ? [buildHref(location, options.params), options]
32
+ : [location, options];
27
33
  const base = getBasePath();
28
34
  // Auto-prepend base path to absolute redirect targets so user code
29
35
  // can write redirect("/dashboard") without worrying about base config.
30
36
  if (base &&
31
- location.startsWith('/') &&
32
- !location.startsWith('//') &&
33
- !hasBasePrefix(location, base)) {
34
- location = base + location;
37
+ target.startsWith('/') &&
38
+ !target.startsWith('//') &&
39
+ !hasBasePrefix(target, base)) {
40
+ return new Response(null, {
41
+ status: resolvedOptions?.status ?? 307,
42
+ headers: {
43
+ ...resolvedOptions?.headers,
44
+ location: base + target,
45
+ },
46
+ });
35
47
  }
36
48
  return new Response(null, {
37
- status: options?.status ?? 307,
49
+ status: resolvedOptions?.status ?? 307,
38
50
  headers: {
39
- ...options?.headers,
40
- location,
51
+ ...resolvedOptions?.headers,
52
+ location: target,
41
53
  },
42
54
  });
43
- }
55
+ };
56
+ export const redirect = redirectImpl;
44
57
  export function notFound() {
45
58
  return new Response(null, { status: 404 });
46
59
  }
@@ -67,17 +80,18 @@ export function isNotFoundError(ctx) {
67
80
  // "__REACT_SERVER_ERROR__:{status,headers}" digest strings, and the SSR
68
81
  // layer uses this function to recover the original status/headers.
69
82
  export function getErrorContext(error) {
70
- if (error instanceof Error &&
71
- 'digest' in error &&
72
- typeof error.digest === 'string') {
73
- const m = error.digest.match(/^__REACT_SERVER_ERROR__:(.*)$/);
74
- if (m && m[1]) {
75
- try {
76
- return JSON.parse(m[1]);
77
- }
78
- catch (e) {
79
- console.error(e);
80
- }
83
+ if (!(error instanceof Error))
84
+ return;
85
+ const digest = Reflect.get(error, 'digest');
86
+ if (typeof digest !== 'string')
87
+ return;
88
+ const m = digest.match(/^__REACT_SERVER_ERROR__:(.*)$/);
89
+ if (m && m[1]) {
90
+ try {
91
+ return JSON.parse(m[1]);
92
+ }
93
+ catch (e) {
94
+ console.error(e);
81
95
  }
82
96
  }
83
97
  return;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/react/errors.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/react/errors.tsx"],"names":[],"mappings":"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"}
@@ -1,16 +1,10 @@
1
1
  import React from 'react';
2
2
  import type { AnySpiceflow } from '../spiceflow.js';
3
- import type { AllHrefPaths, ExtractParamsFromPath } from '../types.js';
3
+ import type { AllHrefPaths, PathParamsProp } from '../types.js';
4
4
  import { type RegisteredApp, type RouterPaths } from './router.js';
5
- type LinkParamsProps<Paths extends string, Path extends AllHrefPaths<Paths>> = [ExtractParamsFromPath<Path>] extends [undefined] ? {
6
- params?: Record<string, string | number | boolean>;
7
- } : {
8
- params: ExtractParamsFromPath<Path>;
9
- };
10
5
  export type LinkProps<App extends AnySpiceflow = RegisteredApp, Paths extends string = RouterPaths<App>, Path extends AllHrefPaths<Paths> = AllHrefPaths<Paths>> = Omit<React.ComponentPropsWithRef<'a'>, 'href'> & {
11
6
  rawHref?: boolean;
12
7
  href?: Path;
13
- } & LinkParamsProps<Paths, Path>;
8
+ } & PathParamsProp<Path>;
14
9
  export declare function Link<App extends AnySpiceflow = RegisteredApp, Paths extends string = RouterPaths<App>, const Path extends AllHrefPaths<Paths> = AllHrefPaths<Paths>>(props: LinkProps<App, Paths, Path>): import("react/jsx-runtime").JSX.Element;
15
- export {};
16
10
  //# sourceMappingURL=link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/react/link.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAA;AAGtE,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAU,MAAM,aAAa,CAAA;AAsB1E,KAAK,eAAe,CAClB,KAAK,SAAS,MAAM,EACpB,IAAI,SAAS,YAAY,CAAC,KAAK,CAAC,IAC9B,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,SAAS,CAAC,GACjD;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAA;CAAE,GACtD;IAAE,MAAM,EAAE,qBAAqB,CAAC,IAAI,CAAC,CAAA;CAAE,CAAA;AAE3C,MAAM,MAAM,SAAS,CACnB,GAAG,SAAS,YAAY,GAAG,aAAa,EACxC,KAAK,SAAS,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EACvC,IAAI,SAAS,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IACpD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,GAAG,eAAe,CAAC,KAAK,EAAE,IAAI,CAAC,CAAA;AAEhC,wBAAgB,IAAI,CAClB,GAAG,SAAS,YAAY,GAAG,aAAa,EACxC,KAAK,SAAS,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EACvC,KAAK,CAAC,IAAI,SAAS,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,EAC5D,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,2CAgCnC"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../src/react/link.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAA;AACnD,OAAO,KAAK,EAAE,YAAY,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAG/D,OAAO,EAAE,KAAK,aAAa,EAAE,KAAK,WAAW,EAAU,MAAM,aAAa,CAAA;AAqB1E,MAAM,MAAM,SAAS,CACnB,GAAG,SAAS,YAAY,GAAG,aAAa,EACxC,KAAK,SAAS,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EACvC,IAAI,SAAS,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,IACpD,IAAI,CAAC,KAAK,CAAC,qBAAqB,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,GAAG;IACnD,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,IAAI,CAAC,EAAE,IAAI,CAAA;CACZ,GAAG,cAAc,CAAC,IAAI,CAAC,CAAA;AAExB,wBAAgB,IAAI,CAClB,GAAG,SAAS,YAAY,GAAG,aAAa,EACxC,KAAK,SAAS,MAAM,GAAG,WAAW,CAAC,GAAG,CAAC,EACvC,KAAK,CAAC,IAAI,SAAS,YAAY,CAAC,KAAK,CAAC,GAAG,YAAY,CAAC,KAAK,CAAC,EAC5D,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,2CAgCnC"}
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/react/link.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAKZ,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAwC,MAAM,EAAE,MAAM,aAAa,CAAA;AAE1E,SAAS,OAAO;IACd,OAAO,WAAW,EAAE,CAAA;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAAY;IAC/C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAA;AAChF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAwB;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/D,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1C,OAAO,IAAI,GAAG,IAAI,CAAA;AACpB,CAAC;AAmBD,MAAM,UAAU,IAAI,CAIlB,KAAkC;IAClC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAqD,CAAA;IAC1G,MAAM,QAAQ,GAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEpD,OAAO,CACL,eACM,IAAI,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,IACE,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,MAAM;gBACR,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;gBAC3C,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EACjD,CAAC;gBACD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClB,OAAM;YACR,CAAC;YACD,CAAC,CAAC,cAAc,EAAE,CAAA;YAElB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YAClB,MAAM,CAAC,IAAI,CACT,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACtB,CAAC,CAAC,aAAa,CAAC,MAAM;gBACtB,CAAC,CAAC,aAAa,CAAC,IAAI,CACvB,CAAA;QACH,CAAC,GACD,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../../src/react/link.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAKZ,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAA;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAA;AAC7C,OAAO,EAAwC,MAAM,EAAE,MAAM,aAAa,CAAA;AAE1E,SAAS,OAAO;IACd,OAAO,WAAW,EAAE,CAAA;AACtB,CAAC;AAED,SAAS,aAAa,CAAC,IAAY,EAAE,IAAY;IAC/C,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IAC9B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,IAAI,IAAI,KAAK,GAAG,CAAC,CAAA;AAChF,CAAC;AAED,SAAS,QAAQ,CAAC,IAAwB;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,MAAM,IAAI,GAAG,OAAO,EAAE,CAAA;IACtB,IAAI,CAAC,IAAI;QAAE,OAAO,IAAI,CAAA;IACtB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC/D,IAAI,aAAa,CAAC,IAAI,EAAE,IAAI,CAAC;QAAE,OAAO,IAAI,CAAA;IAC1C,OAAO,IAAI,GAAG,IAAI,CAAA;AACpB,CAAC;AAWD,MAAM,UAAU,IAAI,CAIlB,KAAkC;IAClC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,IAAI,EAAE,GAAG,KAAK,CAAA;IAC1D,MAAM,QAAQ,GAAG,MAAM,IAAI,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAA;IAC5E,MAAM,IAAI,GAAG,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAA;IAEpD,OAAO,CACL,eACM,IAAI,EACR,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,CAAC,CAAC,EAAE,EAAE;YACb,IACE,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,OAAO;gBACT,CAAC,CAAC,QAAQ;gBACV,CAAC,CAAC,MAAM;gBACR,CAAC,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,MAAM,KAAK,QAAQ,CAAC;gBAC3C,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,MAAM,CAAC,QAAQ,CAAC,MAAM,EACjD,CAAC;gBACD,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;gBAClB,OAAM;YACR,CAAC;YACD,CAAC,CAAC,cAAc,EAAE,CAAA;YAElB,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAA;YAClB,MAAM,CAAC,IAAI,CACT,CAAC,CAAC,aAAa,CAAC,QAAQ;gBACtB,CAAC,CAAC,aAAa,CAAC,MAAM;gBACtB,CAAC,CAAC,aAAa,CAAC,IAAI,CACvB,CAAA;QACH,CAAC,GACD,CACH,CAAA;AACH,CAAC"}
@@ -1,6 +1,6 @@
1
1
  import { type Location } from 'history';
2
2
  import type { AnySpiceflow } from '../spiceflow.js';
3
- import type { AllHrefPaths, AllLoaderData, ExtractParamsFromPath, HrefArgs, IsAny, MergedLoaderData } from '../types.js';
3
+ import type { AllLoaderData, HrefBuilder, IsAny, MergedLoaderData } from '../types.js';
4
4
  declare const history: import("history").BrowserHistory;
5
5
  type NavigationMethod = 'push' | 'replace' | 'refresh';
6
6
  type NavigationRequestedEvent = {
@@ -37,13 +37,12 @@ export type RouterPaths<App extends AnySpiceflow> = IsAny<App['_types']['RoutePa
37
37
  type RouterQuerySchemas<App extends AnySpiceflow> = IsAny<App['_types']['RoutePaths']> extends true ? Record<string, any> : App['_types']['RouteQuerySchemas'];
38
38
  export type LoaderDataForPath<App extends AnySpiceflow, Path extends string> = IsAny<App['_types']['RoutePaths']> extends true ? any : LoaderDataReturn<App['_types']['Metadata']['loaderData'], Path>;
39
39
  export type RouterPathArg<App extends AnySpiceflow> = RouterPaths<App> | (string & {});
40
- export type RouterHrefArgs<App extends AnySpiceflow, Path extends AllHrefPaths<RouterPaths<App>>, Params extends ExtractParamsFromPath<Path>> = HrefArgs<RouterPaths<App>, RouterQuerySchemas<App>, Path, Params>;
41
40
  export declare function coerceLoaderData<App extends AnySpiceflow, Path extends string>(data: any): LoaderDataForPath<App, Path>;
42
41
  export type RouterBase<App extends AnySpiceflow = AnySpiceflow> = {
43
42
  readonly location: Location;
44
43
  readonly pathname: string;
45
44
  readonly searchParams: ReadonlyURLSearchParams;
46
- href<const Path extends AllHrefPaths<RouterPaths<App>>, const Params extends ExtractParamsFromPath<Path> = ExtractParamsFromPath<Path>>(path: Path, ...rest: RouterHrefArgs<App, Path, Params>): string;
45
+ href: HrefBuilder<RouterPaths<App>, RouterQuerySchemas<App>>;
47
46
  push(...args: Parameters<typeof history.push>): void;
48
47
  replace(...args: Parameters<typeof history.replace>): void;
49
48
  go(...args: Parameters<typeof history.go>): void;