@qwik.dev/router 2.0.0-beta.2 → 2.0.0-beta.23

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 (78) hide show
  1. package/adapters/static/vite.d.ts +1 -1
  2. package/lib/adapters/azure-swa/vite/index.d.ts +2 -2
  3. package/lib/adapters/azure-swa/vite/index.mjs +9 -9
  4. package/lib/adapters/bun-server/vite/index.d.ts +2 -2
  5. package/lib/adapters/bun-server/vite/index.mjs +9 -7
  6. package/lib/adapters/cloud-run/vite/index.d.ts +2 -2
  7. package/lib/adapters/cloud-run/vite/index.mjs +9 -7
  8. package/lib/adapters/cloudflare-pages/vite/index.d.ts +2 -2
  9. package/lib/adapters/cloudflare-pages/vite/index.mjs +9 -24
  10. package/lib/adapters/deno-server/vite/index.d.ts +2 -2
  11. package/lib/adapters/deno-server/vite/index.mjs +9 -7
  12. package/lib/adapters/netlify-edge/vite/index.d.ts +2 -2
  13. package/lib/adapters/netlify-edge/vite/index.mjs +10 -14
  14. package/lib/adapters/node-server/vite/index.d.ts +2 -2
  15. package/lib/adapters/node-server/vite/index.mjs +9 -7
  16. package/lib/adapters/shared/vite/index.d.ts +13 -19
  17. package/lib/adapters/shared/vite/index.mjs +107 -139
  18. package/lib/adapters/ssg/vite/index.d.ts +13 -0
  19. package/lib/adapters/ssg/vite/index.mjs +18 -0
  20. package/lib/adapters/vercel-edge/vite/index.d.ts +3 -3
  21. package/lib/adapters/vercel-edge/vite/index.mjs +9 -11
  22. package/lib/chunks/error-handler.mjs +57 -0
  23. package/lib/chunks/format-error.mjs +137 -0
  24. package/lib/chunks/fs.mjs +254 -0
  25. package/lib/{static/node.mjs → chunks/index.mjs} +362 -564
  26. package/lib/chunks/mime-types.mjs +52 -0
  27. package/lib/chunks/routing.qwik.mjs +429 -0
  28. package/lib/chunks/types.qwik.mjs +22 -0
  29. package/lib/index.d.ts +240 -60
  30. package/lib/index.qwik.mjs +701 -983
  31. package/lib/middleware/aws-lambda/index.d.ts +3 -2
  32. package/lib/middleware/aws-lambda/index.mjs +8 -12
  33. package/lib/middleware/azure-swa/index.mjs +10 -216
  34. package/lib/middleware/bun/index.d.ts +11 -0
  35. package/lib/middleware/bun/index.mjs +24 -83
  36. package/lib/middleware/cloudflare-pages/index.mjs +10 -22
  37. package/lib/middleware/deno/index.d.ts +11 -0
  38. package/lib/middleware/deno/index.mjs +24 -83
  39. package/lib/middleware/firebase/index.mjs +7 -11
  40. package/lib/middleware/netlify-edge/index.mjs +10 -23
  41. package/lib/middleware/node/index.mjs +22 -87
  42. package/lib/middleware/request-handler/index.d.ts +89 -70
  43. package/lib/middleware/request-handler/index.mjs +589 -664
  44. package/lib/middleware/vercel-edge/index.mjs +15 -27
  45. package/lib/modules.d.ts +4 -12
  46. package/lib/service-worker/index.mjs +4 -0
  47. package/lib/{static → ssg}/index.d.ts +17 -17
  48. package/lib/ssg/index.mjs +14 -0
  49. package/lib/vite/index.d.ts +32 -10
  50. package/lib/vite/index.mjs +1524 -26934
  51. package/modules.d.ts +4 -12
  52. package/package.json +62 -68
  53. package/ssg.d.ts +2 -0
  54. package/static.d.ts +1 -1
  55. package/lib/adapters/azure-swa/vite/index.cjs +0 -96
  56. package/lib/adapters/bun-server/vite/index.cjs +0 -50
  57. package/lib/adapters/cloud-run/vite/index.cjs +0 -47
  58. package/lib/adapters/cloudflare-pages/vite/index.cjs +0 -115
  59. package/lib/adapters/deno-server/vite/index.cjs +0 -62
  60. package/lib/adapters/netlify-edge/vite/index.cjs +0 -129
  61. package/lib/adapters/node-server/vite/index.cjs +0 -50
  62. package/lib/adapters/shared/vite/index.cjs +0 -378
  63. package/lib/adapters/static/vite/index.cjs +0 -368
  64. package/lib/adapters/static/vite/index.d.ts +0 -10
  65. package/lib/adapters/static/vite/index.mjs +0 -331
  66. package/lib/adapters/vercel-edge/vite/index.cjs +0 -118
  67. package/lib/index.qwik.cjs +0 -1947
  68. package/lib/middleware/node/index.cjs +0 -314
  69. package/lib/middleware/request-handler/index.cjs +0 -1614
  70. package/lib/service-worker.cjs +0 -17
  71. package/lib/service-worker.mjs +0 -15
  72. package/lib/static/deno.mjs +0 -8
  73. package/lib/static/index.cjs +0 -67
  74. package/lib/static/index.mjs +0 -48
  75. package/lib/static/node.cjs +0 -1124
  76. package/lib/vite/index.cjs +0 -27445
  77. package/middleware/request-handler/generated/not-found-paths.ts +0 -7
  78. package/middleware/request-handler/generated/static-paths.ts +0 -35
@@ -1,24 +1,27 @@
1
1
  import type { Action } from '@qwik.dev/router';
2
- import type { _deserialize } from '@qwik.dev/core/internal';
2
+ import type { AsyncLocalStorage } from 'node:async_hooks';
3
3
  import type { EnvGetter as EnvGetter_2 } from '@qwik.dev/router/middleware/request-handler';
4
4
  import type { FailReturn } from '@qwik.dev/router';
5
5
  import type { Loader as Loader_2 } from '@qwik.dev/router';
6
6
  import type { QwikCityPlan } from '@qwik.dev/router';
7
7
  import type { QwikIntrinsicElements } from '@qwik.dev/core';
8
8
  import type { QwikRouterConfig } from '@qwik.dev/router';
9
+ import { RedirectMessage as RedirectMessage_2 } from '@qwik.dev/router/middleware/request-handler';
9
10
  import type { Render } from '@qwik.dev/core/server';
10
11
  import type { RenderOptions } from '@qwik.dev/core/server';
11
12
  import { RequestEvent as RequestEvent_2 } from '@qwik.dev/router/middleware/request-handler';
12
13
  import type { RequestHandler as RequestHandler_2 } from '@qwik.dev/router/middleware/request-handler';
13
14
  import type { ResolveSyncValue as ResolveSyncValue_2 } from '@qwik.dev/router/middleware/request-handler';
14
- import type { _serialize } from '@qwik.dev/core/internal';
15
+ import { SerializationStrategy } from '@qwik.dev/core/internal';
15
16
  import type { ValueOrPromise } from '@qwik.dev/core';
16
- import type { _verifySerializable } from '@qwik.dev/core/internal';
17
17
 
18
18
  /** @public */
19
19
  export declare class AbortMessage {
20
20
  }
21
21
 
22
+ /** @internal */
23
+ export declare let _asyncRequestStore: AsyncLocalStorage<RequestEventInternal> | undefined;
24
+
22
25
  /** @public */
23
26
  export declare type CacheControl = CacheControlOptions | number | 'day' | 'week' | 'month' | 'year' | 'no-cache' | 'immutable' | 'private';
24
27
 
@@ -206,6 +209,7 @@ declare type DocumentHead = DocumentHeadValue | ((props: DocumentHeadProps) => D
206
209
  /** @public */
207
210
  declare interface DocumentHeadProps extends RouteLocation {
208
211
  readonly head: ResolvedDocumentHead;
212
+ /** @deprecated This is not necessary, it works correctly without */
209
213
  readonly withLocale: <T>(fn: () => T) => T;
210
214
  readonly resolveValue: ResolveSyncValue_2;
211
215
  }
@@ -214,10 +218,7 @@ declare interface DocumentHeadProps extends RouteLocation {
214
218
  declare interface DocumentHeadValue<FrontMatter extends Record<string, any> = Record<string, unknown>> {
215
219
  /** Sets `document.title`. */
216
220
  readonly title?: string;
217
- /**
218
- * Used to manually set meta tags in the head. Additionally, the `data` property could be used to
219
- * set arbitrary data which the `<head>` component could later use to generate `<meta>` tags.
220
- */
221
+ /** Used to manually set meta tags in the head. */
221
222
  readonly meta?: readonly DocumentMeta[];
222
223
  /** Used to manually append `<link>` elements to the `<head>`. */
223
224
  readonly links?: readonly DocumentLink[];
@@ -234,50 +235,48 @@ declare interface DocumentHeadValue<FrontMatter extends Record<string, any> = Re
234
235
  }
235
236
 
236
237
  /** @public */
237
- declare interface DocumentLink {
238
- as?: string;
239
- crossorigin?: string;
240
- disabled?: boolean;
241
- href?: string;
242
- hreflang?: string;
243
- id?: string;
244
- imagesizes?: string;
245
- imagesrcset?: string;
246
- integrity?: string;
247
- media?: string;
248
- prefetch?: string;
249
- referrerpolicy?: string;
250
- rel?: string;
251
- sizes?: string;
252
- title?: string;
253
- type?: string;
254
- key?: string;
255
- }
238
+ declare type DocumentLink = QwikIntrinsicElements['link'];
256
239
 
257
240
  /** @public */
258
- declare interface DocumentMeta {
259
- readonly content?: string;
260
- readonly httpEquiv?: string;
261
- readonly name?: string;
262
- readonly property?: string;
263
- readonly key?: string;
264
- readonly itemprop?: string;
265
- readonly media?: string;
266
- }
241
+ declare type DocumentMeta = QwikIntrinsicElements['meta'];
267
242
 
268
- /** @beta */
269
- declare interface DocumentScript {
270
- readonly script?: string;
271
- readonly props?: Readonly<QwikIntrinsicElements['script']>;
272
- readonly key?: string;
273
- }
243
+ /** @public */
244
+ declare type DocumentScript = ((Omit<QwikIntrinsicElements['script'], 'dangerouslySetInnerHTML'> & {
245
+ props?: never;
246
+ }) | {
247
+ key?: string;
248
+ /**
249
+ * The props of the script element. @deprecated Prefer setting the properties directly instead
250
+ * of using this property.
251
+ */
252
+ props: Readonly<QwikIntrinsicElements['script']>;
253
+ }) & ({
254
+ /** The inline script content. */
255
+ script?: string;
256
+ dangerouslySetInnerHTML?: never;
257
+ } | {
258
+ dangerouslySetInnerHTML?: string;
259
+ script?: never;
260
+ });
274
261
 
275
262
  /** @public */
276
- declare interface DocumentStyle {
277
- readonly style: string;
278
- readonly props?: Readonly<QwikIntrinsicElements['style']>;
279
- readonly key?: string;
280
- }
263
+ declare type DocumentStyle = Readonly<((Omit<QwikIntrinsicElements['style'], 'dangerouslySetInnerHTML'> & {
264
+ props?: never;
265
+ }) | {
266
+ key?: string;
267
+ /**
268
+ * The props of the style element. @deprecated Prefer setting the properties directly
269
+ * instead of using this property.
270
+ */
271
+ props: Readonly<QwikIntrinsicElements['style']>;
272
+ }) & ({
273
+ /** The inline style content. */
274
+ style?: string;
275
+ dangerouslySetInnerHTML?: never;
276
+ } | {
277
+ dangerouslySetInnerHTML?: string;
278
+ style?: never;
279
+ })>;
281
280
 
282
281
  /** @public */
283
282
  export declare interface EnvGetter {
@@ -289,12 +288,26 @@ declare type ErrorCodes = ClientErrorCode | ServerErrorCode;
289
288
  /** @public */
290
289
  export declare function getErrorHtml(status: number, e: any): string;
291
290
 
291
+ /**
292
+ * Return the HTML for a 404 page.
293
+ *
294
+ * @internal
295
+ */
296
+ export declare function getNotFound(prefix: string): string;
297
+
292
298
  /**
293
299
  * HTTP Informational Status Codes Status codes in the 1xx range indicate that the server has
294
300
  * received and is processing the request, but no response is available yet.
295
301
  */
296
302
  declare type InformationalCode = 100 | 101 | 102 | 103;
297
303
 
304
+ /**
305
+ * Decide whether a given request path is a static path, for optimizing file access.
306
+ *
307
+ * @internal
308
+ */
309
+ export declare function isStaticPath(method: string, url: URL): boolean;
310
+
298
311
  declare interface LayoutModule extends RouteModule {
299
312
  readonly default: unknown;
300
313
  readonly head?: ContentModuleHead;
@@ -323,16 +336,21 @@ declare interface PageModule extends RouteModule {
323
336
  declare type PathParams = Record<string, string>;
324
337
 
325
338
  declare interface QwikRouterRun<T> {
339
+ /**
340
+ * The response to the request, if any. If there is no response, there might have been an error,
341
+ * or the request was aborted.
342
+ */
326
343
  response: Promise<T | null>;
327
344
  requestEv: RequestEvent_2;
328
- completion: Promise<unknown>;
329
- }
330
-
331
- /** @public */
332
- declare interface QwikSerializer {
333
- _deserialize: typeof _deserialize;
334
- _serialize: typeof _serialize;
335
- _verifySerializable: typeof _verifySerializable;
345
+ /**
346
+ * Promise for the completion of the request.
347
+ *
348
+ * If it returns a RedirectMessage, it means the request must be redirected.
349
+ *
350
+ * If it returns an Error, it means there was an error, and if possible, the response already
351
+ * includes the error. The error is informational only.
352
+ */
353
+ completion: Promise<RedirectMessage_2 | Error | undefined>;
336
354
  }
337
355
 
338
356
  /**
@@ -528,12 +546,11 @@ export declare interface RequestEventCommon<PLATFORM = QwikRouterPlatform> exten
528
546
  readonly exit: () => AbortMessage;
529
547
  }
530
548
 
531
- declare interface RequestEventInternal extends RequestEvent, RequestEventLoader {
532
- [RequestEvLoaders]: Record<string, ValueOrPromise<unknown> | undefined>;
533
- [RequestEvMode]: ServerRequestMode;
534
- [RequestEvTrailingSlash]: boolean;
535
- [RequestEvRoute]: LoadedRoute | null;
536
- [RequestEvQwikSerializer]: QwikSerializer;
549
+ declare interface RequestEventInternal extends Readonly<RequestEvent>, Readonly<RequestEventLoader> {
550
+ readonly [RequestEvLoaders]: Record<string, ValueOrPromise<unknown> | undefined>;
551
+ readonly [RequestEvLoaderSerializationStrategyMap]: Map<string, SerializationStrategy>;
552
+ readonly [RequestEvMode]: ServerRequestMode;
553
+ readonly [RequestEvRoute]: LoadedRoute | null;
537
554
  /**
538
555
  * Check if this request is already written to.
539
556
  *
@@ -558,37 +575,38 @@ export declare interface RequestEventLoader<PLATFORM = QwikRouterPlatform> exten
558
575
 
559
576
  declare const RequestEvLoaders: unique symbol;
560
577
 
561
- declare const RequestEvMode: unique symbol;
578
+ declare const RequestEvLoaderSerializationStrategyMap: unique symbol;
562
579
 
563
- declare const RequestEvQwikSerializer: unique symbol;
580
+ declare const RequestEvMode: unique symbol;
564
581
 
565
582
  declare const RequestEvRoute: unique symbol;
566
583
 
567
- declare const RequestEvTrailingSlash: unique symbol;
584
+ /** @internal */
585
+ export declare const RequestEvShareQData = "qData";
568
586
 
569
587
  /** @public */
570
588
  export declare type RequestHandler<PLATFORM = QwikRouterPlatform> = (ev: RequestEvent<PLATFORM>) => Promise<void> | void;
571
589
 
572
590
  /**
573
- * The request handler for QwikRouter. Called by every integration.
591
+ * The request handler for QwikRouter. Called by every adapter.
574
592
  *
575
593
  * @public
576
594
  */
577
- export declare function requestHandler<T = unknown>(serverRequestEv: ServerRequestEvent<T>, opts: ServerRenderOptions, qwikSerializer: QwikSerializer): Promise<QwikRouterRun<T> | null>;
595
+ export declare function requestHandler<T = unknown>(serverRequestEv: ServerRequestEvent<T>, opts: ServerRenderOptions): Promise<QwikRouterRun<T> | null>;
578
596
 
579
597
  /** @public */
580
598
  declare type ResolvedDocumentHead<FrontMatter extends Record<string, any> = Record<string, unknown>> = Required<DocumentHeadValue<FrontMatter>>;
581
599
 
582
600
  /** @public */
583
601
  export declare interface ResolveSyncValue {
602
+ <T, INPUT, OPTIONAL extends boolean>(action: Action<T, INPUT, OPTIONAL>): Awaited<T> | undefined;
584
603
  <T>(loader: Loader_2<T>): Awaited<T> extends () => any ? never : Awaited<T>;
585
- <T>(action: Action<T>): Awaited<T> | undefined;
586
604
  }
587
605
 
588
606
  /** @public */
589
607
  export declare interface ResolveValue {
608
+ <T, INPUT, OPTIONAL extends boolean>(action: Action<T, INPUT, OPTIONAL>): Promise<T | undefined>;
590
609
  <T>(loader: Loader_2<T>): Awaited<T> extends () => any ? never : Promise<T>;
591
- <T>(action: Action<T>): Promise<T | undefined>;
592
610
  }
593
611
 
594
612
  /** @public */
@@ -638,20 +656,21 @@ declare type ServerErrorCode = 500 | 501 | 502 | 503 | 504 | 505 | 506 | 507 | 5
638
656
  /** @public */
639
657
  export declare interface ServerRenderOptions extends RenderOptions {
640
658
  render: Render;
641
- /** @deprecated Use `QwikRouterConfig` instead. Will be removed in V3 */
659
+ /** @deprecated Not used */
642
660
  qwikCityPlan?: QwikCityPlan;
661
+ /** @deprecated Not used */
643
662
  qwikRouterConfig?: QwikRouterConfig;
644
663
  /**
645
664
  * Protection against cross-site request forgery (CSRF) attacks.
646
665
  *
647
666
  * When `true`, for every incoming POST, PUT, PATCH, or DELETE form submissions, the request
648
- * origin is checked to match the server's origin.
667
+ * origin is checked to match the server's origin. `lax-proto` is for SSL-terminating proxies
649
668
  *
650
669
  * Be careful when disabling this option as it may lead to CSRF attacks.
651
670
  *
652
671
  * Defaults to `true`.
653
672
  */
654
- checkOrigin?: boolean;
673
+ checkOrigin?: boolean | 'lax-proto';
655
674
  }
656
675
 
657
676
  /**