@reckona/mreact-router 0.0.82 → 0.0.84

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 (80) hide show
  1. package/dist/adapters/aws-lambda.d.ts.map +1 -1
  2. package/dist/adapters/aws-lambda.js +17 -22
  3. package/dist/adapters/aws-lambda.js.map +1 -1
  4. package/dist/build.d.ts.map +1 -1
  5. package/dist/build.js +3 -1
  6. package/dist/build.js.map +1 -1
  7. package/dist/client-route-inference.d.ts +2 -0
  8. package/dist/client-route-inference.d.ts.map +1 -0
  9. package/dist/client-route-inference.js +2 -0
  10. package/dist/client-route-inference.js.map +1 -0
  11. package/dist/client.d.ts +2 -1
  12. package/dist/client.d.ts.map +1 -1
  13. package/dist/client.js +25 -19
  14. package/dist/client.js.map +1 -1
  15. package/dist/layout-composer.d.ts +24 -0
  16. package/dist/layout-composer.d.ts.map +1 -0
  17. package/dist/layout-composer.js +83 -0
  18. package/dist/layout-composer.js.map +1 -0
  19. package/dist/metadata.d.ts +9 -0
  20. package/dist/metadata.d.ts.map +1 -0
  21. package/dist/metadata.js +419 -0
  22. package/dist/metadata.js.map +1 -0
  23. package/dist/middleware.d.ts +22 -0
  24. package/dist/middleware.d.ts.map +1 -0
  25. package/dist/middleware.js +94 -0
  26. package/dist/middleware.js.map +1 -0
  27. package/dist/module-runner.d.ts +2 -2
  28. package/dist/module-runner.d.ts.map +1 -1
  29. package/dist/module-runner.js +1 -1
  30. package/dist/module-runner.js.map +1 -1
  31. package/dist/navigation-runtime.d.ts +2 -0
  32. package/dist/navigation-runtime.d.ts.map +1 -0
  33. package/dist/navigation-runtime.js +2 -0
  34. package/dist/navigation-runtime.js.map +1 -0
  35. package/dist/preload-policy.d.ts +24 -0
  36. package/dist/preload-policy.d.ts.map +1 -0
  37. package/dist/preload-policy.js +45 -0
  38. package/dist/preload-policy.js.map +1 -0
  39. package/dist/render.d.ts +1 -3
  40. package/dist/render.d.ts.map +1 -1
  41. package/dist/render.js +32 -676
  42. package/dist/render.js.map +1 -1
  43. package/dist/route-hydration-contract.d.ts +11 -0
  44. package/dist/route-hydration-contract.d.ts.map +1 -0
  45. package/dist/route-hydration-contract.js +21 -0
  46. package/dist/route-hydration-contract.js.map +1 -0
  47. package/dist/route-module-loader.d.ts +10 -0
  48. package/dist/route-module-loader.d.ts.map +1 -0
  49. package/dist/route-module-loader.js +61 -0
  50. package/dist/route-module-loader.js.map +1 -0
  51. package/dist/route-source.d.ts.map +1 -1
  52. package/dist/route-source.js +7 -5
  53. package/dist/route-source.js.map +1 -1
  54. package/dist/routes.js +6 -0
  55. package/dist/routes.js.map +1 -1
  56. package/dist/serve.d.ts +13 -0
  57. package/dist/serve.d.ts.map +1 -1
  58. package/dist/serve.js +63 -28
  59. package/dist/serve.js.map +1 -1
  60. package/dist/vite.d.ts.map +1 -1
  61. package/dist/vite.js +2 -1
  62. package/dist/vite.js.map +1 -1
  63. package/package.json +11 -11
  64. package/src/adapters/aws-lambda.ts +21 -28
  65. package/src/build.ts +9 -6
  66. package/src/client-route-inference.ts +18 -0
  67. package/src/client.ts +32 -20
  68. package/src/layout-composer.ts +142 -0
  69. package/src/metadata.ts +578 -0
  70. package/src/middleware.ts +153 -0
  71. package/src/module-runner.ts +3 -2
  72. package/src/navigation-runtime.ts +16 -0
  73. package/src/preload-policy.ts +89 -0
  74. package/src/render.ts +75 -986
  75. package/src/route-hydration-contract.ts +22 -0
  76. package/src/route-module-loader.ts +95 -0
  77. package/src/route-source.ts +9 -4
  78. package/src/routes.ts +8 -0
  79. package/src/serve.ts +110 -29
  80. package/src/vite.ts +6 -4
@@ -0,0 +1,22 @@
1
+ export interface RouteMiddlewareControl {
2
+ skip?: boolean | readonly string[];
3
+ }
4
+ export interface MiddlewareModule {
5
+ config?: {
6
+ id?: string | undefined;
7
+ matcher?: string | RegExp | readonly string[] | undefined;
8
+ };
9
+ default?: unknown;
10
+ middleware?: unknown;
11
+ }
12
+ export interface StaticMiddlewareConfig {
13
+ hasMatcher: boolean;
14
+ id?: string | undefined;
15
+ matcher?: string | readonly string[] | undefined;
16
+ }
17
+ export declare function shouldSkipMiddleware(config: Pick<NonNullable<MiddlewareModule["config"]>, "id"> | undefined, control: RouteMiddlewareControl | undefined): boolean;
18
+ export declare function parseStaticMiddlewareConfig(code: string): StaticMiddlewareConfig;
19
+ export declare function middlewareMatches(config: MiddlewareModule["config"], pathname: string): boolean;
20
+ export declare function parseRouteMiddlewareControl(code: string): RouteMiddlewareControl | undefined;
21
+ export declare function mergeRouteMiddlewareControls(controls: readonly (RouteMiddlewareControl | undefined)[]): RouteMiddlewareControl | undefined;
22
+ //# sourceMappingURL=middleware.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.d.ts","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,MAAM,EAAE,CAAC;CACpC;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE;QACP,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;QACxB,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;KAC3D,CAAC;IACF,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,sBAAsB;IACrC,UAAU,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;CAClD;AAED,wBAAgB,oBAAoB,CAClC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,SAAS,EACvE,OAAO,EAAE,sBAAsB,GAAG,SAAS,GAC1C,OAAO,CAUT;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,CAqChF;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAgB/F;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,MAAM,GAAG,sBAAsB,GAAG,SAAS,CAqB5F;AAED,wBAAgB,4BAA4B,CAC1C,QAAQ,EAAE,SAAS,CAAC,sBAAsB,GAAG,SAAS,CAAC,EAAE,GACxD,sBAAsB,GAAG,SAAS,CAgBpC"}
@@ -0,0 +1,94 @@
1
+ export function shouldSkipMiddleware(config, control) {
2
+ if (control?.skip === true) {
3
+ return true;
4
+ }
5
+ if (!Array.isArray(control?.skip)) {
6
+ return false;
7
+ }
8
+ return typeof config?.id === "string" && control.skip.includes(config.id);
9
+ }
10
+ export function parseStaticMiddlewareConfig(code) {
11
+ const configBody = /\bexport\s+const\s+config\s*=\s*\{(?<body>[\s\S]*?)\}\s*;?/.exec(code)
12
+ ?.groups?.body;
13
+ if (configBody === undefined) {
14
+ return { hasMatcher: false };
15
+ }
16
+ const id = /\bid\s*:\s*["'](?<id>[^"']+)["']/.exec(configBody)?.groups?.id;
17
+ const stringMatcher = /\bmatcher\s*:\s*["'](?<matcher>[^"']+)["']/.exec(configBody)?.groups
18
+ ?.matcher;
19
+ if (stringMatcher !== undefined) {
20
+ return {
21
+ hasMatcher: true,
22
+ ...(id === undefined ? {} : { id }),
23
+ matcher: stringMatcher,
24
+ };
25
+ }
26
+ const matcherArray = /\bmatcher\s*:\s*\[(?<items>[\s\S]*?)\]/.exec(configBody)?.groups?.items;
27
+ if (matcherArray !== undefined) {
28
+ return {
29
+ hasMatcher: true,
30
+ ...(id === undefined ? {} : { id }),
31
+ matcher: Array.from(matcherArray.matchAll(/["'](?<matcher>[^"']+)["']/g), (match) => match.groups?.matcher).filter((matcher) => matcher !== undefined),
32
+ };
33
+ }
34
+ return {
35
+ hasMatcher: /\bmatcher\s*:/.test(configBody),
36
+ ...(id === undefined ? {} : { id }),
37
+ };
38
+ }
39
+ export function middlewareMatches(config, pathname) {
40
+ const matcher = config?.matcher;
41
+ if (matcher === undefined) {
42
+ return true;
43
+ }
44
+ if (matcher instanceof RegExp) {
45
+ return matcher.test(pathname);
46
+ }
47
+ if (Array.isArray(matcher)) {
48
+ return matcher.some((item) => middlewarePatternMatches(item, pathname));
49
+ }
50
+ return typeof matcher === "string" && middlewarePatternMatches(matcher, pathname);
51
+ }
52
+ export function parseRouteMiddlewareControl(code) {
53
+ if (!/\bexport\s+const\s+middleware\s*=/.test(code)) {
54
+ return undefined;
55
+ }
56
+ if (/\bmiddleware\s*=\s*\{[\s\S]*?\bskip\s*:\s*true\b/.test(code)) {
57
+ return { skip: true };
58
+ }
59
+ const skipArray = /\bmiddleware\s*=\s*\{[\s\S]*?\bskip\s*:\s*\[([\s\S]*?)\]/.exec(code);
60
+ if (skipArray === null) {
61
+ return undefined;
62
+ }
63
+ const ids = Array.from(skipArray[1]?.matchAll(/["']([^"']+)["']/g) ?? [], (match) => match[1]).filter((id) => id !== undefined);
64
+ return ids.length === 0 ? undefined : { skip: ids };
65
+ }
66
+ export function mergeRouteMiddlewareControls(controls) {
67
+ const skippedIds = new Set();
68
+ for (const control of controls) {
69
+ if (control?.skip === true) {
70
+ return { skip: true };
71
+ }
72
+ if (Array.isArray(control?.skip)) {
73
+ for (const id of control.skip) {
74
+ skippedIds.add(id);
75
+ }
76
+ }
77
+ }
78
+ return skippedIds.size === 0 ? undefined : { skip: [...skippedIds] };
79
+ }
80
+ function middlewarePatternMatches(pattern, pathname) {
81
+ if (pattern === pathname) {
82
+ return true;
83
+ }
84
+ if (pattern.endsWith("/:path*")) {
85
+ const prefix = pattern.slice(0, -"/:path*".length);
86
+ return pathname === prefix || pathname.startsWith(`${prefix}/`);
87
+ }
88
+ if (pattern.endsWith("*")) {
89
+ const prefix = pattern.slice(0, -1);
90
+ return pathname.startsWith(prefix);
91
+ }
92
+ return false;
93
+ }
94
+ //# sourceMappingURL=middleware.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"middleware.js","sourceRoot":"","sources":["../src/middleware.ts"],"names":[],"mappings":"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","sourcesContent":["export interface RouteMiddlewareControl {\n skip?: boolean | readonly string[];\n}\n\nexport interface MiddlewareModule {\n config?: {\n id?: string | undefined;\n matcher?: string | RegExp | readonly string[] | undefined;\n };\n default?: unknown;\n middleware?: unknown;\n}\n\nexport interface StaticMiddlewareConfig {\n hasMatcher: boolean;\n id?: string | undefined;\n matcher?: string | readonly string[] | undefined;\n}\n\nexport function shouldSkipMiddleware(\n config: Pick<NonNullable<MiddlewareModule[\"config\"]>, \"id\"> | undefined,\n control: RouteMiddlewareControl | undefined,\n): boolean {\n if (control?.skip === true) {\n return true;\n }\n\n if (!Array.isArray(control?.skip)) {\n return false;\n }\n\n return typeof config?.id === \"string\" && control.skip.includes(config.id);\n}\n\nexport function parseStaticMiddlewareConfig(code: string): StaticMiddlewareConfig {\n const configBody = /\\bexport\\s+const\\s+config\\s*=\\s*\\{(?<body>[\\s\\S]*?)\\}\\s*;?/.exec(code)\n ?.groups?.body;\n\n if (configBody === undefined) {\n return { hasMatcher: false };\n }\n\n const id = /\\bid\\s*:\\s*[\"'](?<id>[^\"']+)[\"']/.exec(configBody)?.groups?.id;\n const stringMatcher = /\\bmatcher\\s*:\\s*[\"'](?<matcher>[^\"']+)[\"']/.exec(configBody)?.groups\n ?.matcher;\n\n if (stringMatcher !== undefined) {\n return {\n hasMatcher: true,\n ...(id === undefined ? {} : { id }),\n matcher: stringMatcher,\n };\n }\n\n const matcherArray = /\\bmatcher\\s*:\\s*\\[(?<items>[\\s\\S]*?)\\]/.exec(configBody)?.groups?.items;\n\n if (matcherArray !== undefined) {\n return {\n hasMatcher: true,\n ...(id === undefined ? {} : { id }),\n matcher: Array.from(\n matcherArray.matchAll(/[\"'](?<matcher>[^\"']+)[\"']/g),\n (match) => match.groups?.matcher,\n ).filter((matcher): matcher is string => matcher !== undefined),\n };\n }\n\n return {\n hasMatcher: /\\bmatcher\\s*:/.test(configBody),\n ...(id === undefined ? {} : { id }),\n };\n}\n\nexport function middlewareMatches(config: MiddlewareModule[\"config\"], pathname: string): boolean {\n const matcher = config?.matcher;\n\n if (matcher === undefined) {\n return true;\n }\n\n if (matcher instanceof RegExp) {\n return matcher.test(pathname);\n }\n\n if (Array.isArray(matcher)) {\n return matcher.some((item) => middlewarePatternMatches(item, pathname));\n }\n\n return typeof matcher === \"string\" && middlewarePatternMatches(matcher, pathname);\n}\n\nexport function parseRouteMiddlewareControl(code: string): RouteMiddlewareControl | undefined {\n if (!/\\bexport\\s+const\\s+middleware\\s*=/.test(code)) {\n return undefined;\n }\n\n if (/\\bmiddleware\\s*=\\s*\\{[\\s\\S]*?\\bskip\\s*:\\s*true\\b/.test(code)) {\n return { skip: true };\n }\n\n const skipArray = /\\bmiddleware\\s*=\\s*\\{[\\s\\S]*?\\bskip\\s*:\\s*\\[([\\s\\S]*?)\\]/.exec(code);\n\n if (skipArray === null) {\n return undefined;\n }\n\n const ids = Array.from(\n skipArray[1]?.matchAll(/[\"']([^\"']+)[\"']/g) ?? [],\n (match) => match[1],\n ).filter((id) => id !== undefined);\n\n return ids.length === 0 ? undefined : { skip: ids };\n}\n\nexport function mergeRouteMiddlewareControls(\n controls: readonly (RouteMiddlewareControl | undefined)[],\n): RouteMiddlewareControl | undefined {\n const skippedIds = new Set<string>();\n\n for (const control of controls) {\n if (control?.skip === true) {\n return { skip: true };\n }\n\n if (Array.isArray(control?.skip)) {\n for (const id of control.skip) {\n skippedIds.add(id);\n }\n }\n }\n\n return skippedIds.size === 0 ? undefined : { skip: [...skippedIds] };\n}\n\nfunction middlewarePatternMatches(pattern: string, pathname: string): boolean {\n if (pattern === pathname) {\n return true;\n }\n\n if (pattern.endsWith(\"/:path*\")) {\n const prefix = pattern.slice(0, -\"/:path*\".length);\n\n return pathname === prefix || pathname.startsWith(`${prefix}/`);\n }\n\n if (pattern.endsWith(\"*\")) {\n const prefix = pattern.slice(0, -1);\n\n return pathname.startsWith(prefix);\n }\n\n return false;\n}\n"]}
@@ -1,9 +1,9 @@
1
- import { type ServerOutputMode } from "@reckona/mreact-compiler";
1
+ import type { ServerOutputMode } from "@reckona/mreact-shared/compiler-contract";
2
2
  import { type PluginOption } from "vite";
3
3
  import { type RouterCompatPlugin } from "./bundle-pipeline.js";
4
4
  import type { BuiltServerModuleArtifact } from "./build.js";
5
5
  import { type RouterRuntimeCacheStat } from "./cache-stats.js";
6
- import { type ClientRouteInferenceCache } from "./client.js";
6
+ import { type ClientRouteInferenceCache } from "./client-route-inference.js";
7
7
  export declare function routerModuleRunnerRuntimeCacheStats(): RouterRuntimeCacheStat[];
8
8
  export declare function importAppRouterSourceModule<T>(options: {
9
9
  cacheKey?: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"AAIA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEnF,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAE1E,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,aAAa,CAAC;AAsBrB,wBAAgB,mCAAmC,IAAI,sBAAsB,EAAE,CAe9E;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Bb;AA2BD,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAM3E;AAED,wBAAsB,8BAA8B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Bb;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlB;AAED,wBAAgB,uBAAuB,IAAI,kBAAkB,CAwB5D;AAED,UAAU,4BAA4B;IACpC,yBAAyB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAClE,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC3E,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD"}
1
+ {"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAAmC,KAAK,YAAY,EAAE,MAAM,MAAM,CAAC;AAE1E,OAAO,EAGL,KAAK,kBAAkB,EACxB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAC5D,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAKL,KAAK,yBAAyB,EAC/B,MAAM,6BAA6B,CAAC;AAsBrC,wBAAgB,mCAAmC,IAAI,sBAAsB,EAAE,CAe9E;AAED,wBAAsB,2BAA2B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC5D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Bb;AA2BD,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAM3E;AAED,wBAAsB,8BAA8B,CAAC,CAAC,EAAE,OAAO,EAAE;IAC/D,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,IAAI,EAAE,MAAM,CAAC;CACd,GAAG,OAAO,CAAC,CAAC,CAAC,CA6Bb;AAED,wBAAsB,2BAA2B,CAAC,OAAO,EAAE;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,qBAAqB,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACjE,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,MAAM,CAAC,CAoBlB;AAED,wBAAgB,uBAAuB,IAAI,kBAAkB,CAwB5D;AAED,UAAU,4BAA4B;IACpC,yBAAyB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAClE,GAAG,EAAE,OAAO,CAAC;IACb,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC3E,YAAY,EAAE,gBAAgB,CAAC;IAC/B,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD"}
@@ -9,7 +9,7 @@ import { resolveWorkspacePackageFile } from "./workspace-packages.js";
9
9
  import { bundleRouterModule, } from "./bundle-pipeline.js";
10
10
  import { resolveRouterCacheLimit } from "./cache-config.js";
11
11
  import { createRouterRuntimeCacheCounters, readRouterRuntimeCacheEntry, routerRuntimeCacheStat, } from "./cache-stats.js";
12
- import { compilerModuleContextForSource, createClientRouteInferenceCache, formatClientRouteInferenceDiagnostic, inferClientRouteModule, } from "./client.js";
12
+ import { compilerModuleContextForSource, createClientRouteInferenceCache, formatClientRouteInferenceDiagnostic, inferClientRouteModule, } from "./client-route-inference.js";
13
13
  import { vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
14
14
  const runnerConfig = {
15
15
  configFile: false,
@@ -1 +1 @@
1
- {"version":3,"file":"module-runner.js","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, join, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { formatDiagnostic, type ServerOutputMode } from \"@reckona/mreact-compiler\";\nimport { transformCompilerModuleContext } from \"@reckona/mreact-compiler/internal\";\nimport { runnerImport, type InlineConfig, type PluginOption } from \"vite\";\nimport { resolveWorkspacePackageFile } from \"./workspace-packages.js\";\nimport {\n bundleRouterModule,\n type RouterCompatBuildApi,\n type RouterCompatPlugin,\n} from \"./bundle-pipeline.js\";\nimport { resolveRouterCacheLimit } from \"./cache-config.js\";\nimport type { BuiltServerModuleArtifact } from \"./build.js\";\nimport {\n createRouterRuntimeCacheCounters,\n readRouterRuntimeCacheEntry,\n routerRuntimeCacheStat,\n type RouterRuntimeCacheCounters,\n type RouterRuntimeCacheStat,\n} from \"./cache-stats.js\";\nimport {\n compilerModuleContextForSource,\n createClientRouteInferenceCache,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n type ClientRouteInferenceCache,\n} from \"./client.js\";\nimport { vitePluginsCacheKey } from \"./vite-plugin-cache-key.js\";\n\nconst runnerConfig = {\n configFile: false,\n logLevel: \"silent\",\n} satisfies InlineConfig;\nconst nativeEscapeTransform = {\n batchImportName: \"escapeHtmlBatch\",\n batchImportSource: \"@reckona/mreact-router/native-escape\",\n} as const;\nconst sourceModuleCache = new Map<string, Promise<unknown>>();\nconst maxSourceModuleCacheEntries = resolveRouterCacheLimit(\"SOURCE_MODULE\", 512);\nconst sourceModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst serverSourceTransformCache = new Map<string, string>();\nconst maxServerSourceTransformCacheEntries = resolveRouterCacheLimit(\n \"SERVER_SOURCE_TRANSFORM\",\n 512,\n);\nconst serverSourceTransformCacheCounters = createRouterRuntimeCacheCounters();\nlet fileImportVersion = 0;\n\nexport function routerModuleRunnerRuntimeCacheStats(): RouterRuntimeCacheStat[] {\n return [\n routerRuntimeCacheStat(\n \"source-module\",\n sourceModuleCache,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"server-source-transform\",\n serverSourceTransformCache,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n ),\n ];\n}\n\nexport async function importAppRouterSourceModule<T>(options: {\n cacheKey?: string | undefined;\n code: string;\n label: string;\n resolveDir?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = importAppRouterSourceModuleWithoutCache<T>(options).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return importAppRouterSourceModuleWithoutCache(options);\n}\n\nasync function importAppRouterSourceModuleWithoutCache<T>(options: {\n code: string;\n label: string;\n resolveDir?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n const code =\n options.resolveDir === undefined ? options.code : await bundleAppRouterSourceModule(options);\n const executableCode = withNodeRequireShimForEsmBundle({\n code,\n requireBaseDir:\n options.resolveDir ??\n (options.sourcefile === undefined ? undefined : dirname(options.sourcefile)),\n });\n const encodedLabel = encodeURIComponent(options.label.replace(/[^A-Za-z0-9_$.-]/g, \"-\"));\n const url = `data:text/javascript;base64,${Buffer.from(executableCode).toString(\n \"base64\",\n )}#${encodedLabel}-${Date.now()}-${Math.random()}`;\n const result = await runnerImport<T>(url, runnerConfig);\n\n return result.module;\n}\n\nexport async function importAppRouterFileModule<T>(file: string): Promise<T> {\n fileImportVersion += 1;\n const url = `${pathToFileURL(file).href}?t=${Date.now()}${fileImportVersion}`;\n const result = await runnerImport<T>(url, runnerConfig);\n\n return result.module;\n}\n\nexport async function importAppRouterBuiltFileModule<T>(options: {\n cacheKey?: string | undefined;\n file: string;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = import(pathToFileURL(options.file).href).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n }) as Promise<T>;\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return (await import(pathToFileURL(options.file).href)) as T;\n}\n\nexport async function bundleAppRouterSourceModule(options: {\n code: string;\n label: string;\n resolveDir?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: options.code,\n filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\"),\n platform: \"node\",\n vitePlugins: options.vitePlugins,\n plugins: [\n workspacePackageResolutionPlugin(),\n ...(options.serverSourceTransform === undefined\n ? []\n : [serverSourceTransformPlugin(options.serverSourceTransform)]),\n ],\n });\n const code = output.code;\n\n if (code === undefined) {\n throw new Error(`Failed to bundle ${options.label} for Vite runner.`);\n }\n\n return code;\n}\n\nexport function fileImportMetaUrlPlugin(): RouterCompatPlugin {\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-file-import-meta-url\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx?$/ }, async (args) => {\n if (\n args.path.includes(`${sep}node_modules${sep}`) ||\n args.path.startsWith(`${workspacePackagesDir}${sep}`)\n ) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n\n return {\n contents: withFileImportMetaUrl(source, args.path),\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\ninterface ServerSourceTransformOptions {\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n dev: boolean;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverOutput: ServerOutputMode;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\nfunction serverSourceTransformPlugin(options: ServerSourceTransformOptions): RouterCompatPlugin {\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-server-source-transform\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx$/ }, async (args) => {\n if (args.path.includes(`${sep}node_modules${sep}`)) {\n return undefined;\n }\n\n if (args.path.startsWith(`${workspacePackagesDir}${sep}`)) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n const contents = await transformServerSourceFile({\n ...options,\n clientRouteInferenceCache,\n filename: args.path,\n source,\n });\n\n return {\n contents,\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\nasync function transformServerSourceFile(\n options: ServerSourceTransformOptions & {\n filename: string;\n source: string;\n },\n): Promise<string> {\n const sourceHash = hashText(options.source);\n const artifact = options.serverModules?.get(options.filename)?.[options.serverOutput];\n\n if (artifact !== undefined && artifact.sourceHash === sourceHash) {\n return artifact.code;\n }\n\n const source = options.dev\n ? withFileImportMetaUrl(options.source, options.filename)\n : options.source;\n const transformedSourceHash = source === options.source ? sourceHash : hashText(source);\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const moduleContext = await compilerModuleContextForSource({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n });\n const clientInference = await inferClientRouteModule({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n moduleContext,\n vitePlugins: options.vitePlugins,\n });\n\n for (const diagnostic of clientInference.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n\n const cacheKey = `${options.serverOutput}\\0${options.dev ? \"dev\" : \"prod\"}\\0${options.filename}\\0${transformedSourceHash}\\0${clientInference.clientBoundaryImports.join(\"\\0\")}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n const cached = readRouterRuntimeCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n serverSourceTransformCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const output = transformCompilerModuleContext({\n code: source,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n dev: options.dev,\n filename: options.filename,\n moduleContext,\n serverEscape: nativeEscapeTransform,\n serverOutput: options.serverOutput,\n target: \"server\",\n });\n const fatalDiagnostics = output.diagnostics.filter(\n (diagnostic) => diagnostic.code !== \"MR_UNSUPPORTED_SERVER_EVENT_HANDLER\",\n );\n\n if (fatalDiagnostics.length > 0) {\n throw new Error(\n fatalDiagnostics\n .map((diagnostic) => formatDiagnostic(options.filename, diagnostic))\n .join(\"\\n\"),\n );\n }\n\n setBoundedCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n output.code,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n );\n\n return output.code;\n}\n\nfunction withFileImportMetaUrl(source: string, filename: string): string {\n if (!source.includes(\"import.meta.url\")) {\n return source;\n }\n\n return source.replaceAll(\"import.meta.url\", JSON.stringify(pathToFileURL(filename).href));\n}\n\nfunction withNodeRequireShimForEsmBundle(options: {\n code: string;\n requireBaseDir?: string | undefined;\n}): string {\n const requireBaseUrl = pathToFileURL(\n join(options.requireBaseDir ?? process.cwd(), \"__mreact_require_shim.cjs\"),\n ).href;\n const code = options.code.replaceAll(\n \"createRequire(import.meta.url)\",\n `createRequire(${JSON.stringify(requireBaseUrl)})`,\n );\n\n if (!needsNodeRequireShim(options.code)) {\n return code;\n }\n\n return `import { createRequire as __mreactCreateRequire } from \"node:module\";\nconst require = __mreactCreateRequire(${JSON.stringify(requireBaseUrl)});\n${code}`;\n}\n\nfunction needsNodeRequireShim(code: string): boolean {\n return code.includes(\"Dynamic require of\") && /\\b__require\\s*=/.test(code);\n}\n\nfunction workspacePackageResolutionPlugin() {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n const packageRoot = dirname(currentDir);\n const sourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/index.js\" : \"src/index.ts\";\n const appRouterGlobalsSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/app-router-globals.js\"\n : \"src/app-router-globals.ts\";\n const linkSourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/link.js\" : \"src/link.ts\";\n const nativeEscapeSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/native-escape.js\"\n : \"src/native-escape.ts\";\n const navigationStateSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/navigation-state.js\"\n : \"src/navigation-state.ts\";\n const sessionSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/session.js\"\n : \"src/session.ts\";\n const streamListSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/stream-list.js\"\n : \"src/stream-list.ts\";\n const packageFile = (\n monorepoDir: string,\n packageName: string,\n entry: string,\n specifier: string,\n resolveDir?: string | undefined,\n ): string =>\n resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir,\n packageName,\n resolveDir,\n specifier,\n });\n const entries = new Map<string, { entry: string; monorepoDir: string; packageName: string }>([\n [\"@reckona/mreact\", { entry: \"index\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" }],\n [\n \"@reckona/mreact/jsx-dev-runtime\",\n { entry: \"jsx-dev-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact-auth\",\n { entry: \"index\", monorepoDir: \"auth\", packageName: \"@reckona/mreact-auth\" },\n ],\n [\n \"@reckona/mreact-compat\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/event-priority\",\n {\n entry: \"event-priority\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/flight\",\n { entry: \"flight\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/internal\",\n { entry: \"internal\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/scheduler\",\n { entry: \"scheduler\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-reactive-core\",\n {\n entry: \"index\",\n monorepoDir: \"reactive-core\",\n packageName: \"@reckona/mreact-reactive-core\",\n },\n ],\n [\n \"@reckona/mreact-query\",\n { entry: \"index\", monorepoDir: \"query\", packageName: \"@reckona/mreact-query\" },\n ],\n [\n \"@reckona/mreact-server\",\n { entry: \"index\", monorepoDir: \"server\", packageName: \"@reckona/mreact-server\" },\n ],\n ]);\n const routerEntries = new Map([\n [\"@reckona/mreact-router\", join(packageRoot, sourceOrDist)],\n [\"@reckona/mreact-router/app-router-globals\", join(packageRoot, appRouterGlobalsSourceOrDist)],\n [\"@reckona/mreact-router/link\", join(packageRoot, linkSourceOrDist)],\n [\"@reckona/mreact-router/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/navigation-state\", join(packageRoot, navigationStateSourceOrDist)],\n [\"@reckona/mreact-router/session\", join(packageRoot, sessionSourceOrDist)],\n [\"@reckona/mreact-router/stream-list\", join(packageRoot, streamListSourceOrDist)],\n [\"@reckona/mreact-router/internal/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/internal/session\", join(packageRoot, sessionSourceOrDist)],\n ]);\n\n return {\n name: \"mreact-router-workspace-packages\",\n setup(buildApi: Pick<RouterCompatBuildApi, \"onResolve\">) {\n buildApi.onResolve(\n {\n filter:\n /^@reckona\\/(?:mreact(?:\\/(?:jsx-dev-runtime|jsx-runtime))?|mreact-(?:auth|query|reactive-core|server|router|compat)(?:\\/(?:event-priority|flight|internal|jsx-dev-runtime|jsx-runtime|scheduler|app-router-globals|link|native-escape|navigation-state|session|stream-list|internal\\/native-escape|internal\\/session))?)$/,\n },\n (args) => {\n const routerPath = routerEntries.get(args.path);\n\n if (routerPath !== undefined) {\n return { path: routerPath };\n }\n\n const entry = entries.get(args.path);\n\n return entry === undefined\n ? undefined\n : {\n path: packageFile(\n entry.monorepoDir,\n entry.packageName,\n entry.entry,\n args.path,\n args.resolveDir,\n ),\n };\n },\n );\n },\n };\n}\n\nfunction setBoundedCacheEntry<K, V>(\n cache: Map<K, V>,\n key: K,\n value: V,\n maxEntries: number,\n counters: RouterRuntimeCacheCounters,\n): void {\n if (cache.size >= maxEntries) {\n const oldestKey = cache.keys().next().value as K | undefined;\n\n if (oldestKey !== undefined) {\n cache.delete(oldestKey);\n counters.evictions += 1;\n }\n }\n\n cache.set(key, value);\n}\n\nfunction hashText(text: string): string {\n return createHash(\"sha256\").update(text).digest(\"hex\").slice(0, 16);\n}\n"]}
1
+ {"version":3,"file":"module-runner.js","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"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","sourcesContent":["import { createHash } from \"node:crypto\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, join, sep } from \"node:path\";\nimport { fileURLToPath, pathToFileURL } from \"node:url\";\nimport { formatDiagnostic } from \"@reckona/mreact-compiler\";\nimport type { ServerOutputMode } from \"@reckona/mreact-shared/compiler-contract\";\nimport { transformCompilerModuleContext } from \"@reckona/mreact-compiler/internal\";\nimport { runnerImport, type InlineConfig, type PluginOption } from \"vite\";\nimport { resolveWorkspacePackageFile } from \"./workspace-packages.js\";\nimport {\n bundleRouterModule,\n type RouterCompatBuildApi,\n type RouterCompatPlugin,\n} from \"./bundle-pipeline.js\";\nimport { resolveRouterCacheLimit } from \"./cache-config.js\";\nimport type { BuiltServerModuleArtifact } from \"./build.js\";\nimport {\n createRouterRuntimeCacheCounters,\n readRouterRuntimeCacheEntry,\n routerRuntimeCacheStat,\n type RouterRuntimeCacheCounters,\n type RouterRuntimeCacheStat,\n} from \"./cache-stats.js\";\nimport {\n compilerModuleContextForSource,\n createClientRouteInferenceCache,\n formatClientRouteInferenceDiagnostic,\n inferClientRouteModule,\n type ClientRouteInferenceCache,\n} from \"./client-route-inference.js\";\nimport { vitePluginsCacheKey } from \"./vite-plugin-cache-key.js\";\n\nconst runnerConfig = {\n configFile: false,\n logLevel: \"silent\",\n} satisfies InlineConfig;\nconst nativeEscapeTransform = {\n batchImportName: \"escapeHtmlBatch\",\n batchImportSource: \"@reckona/mreact-router/native-escape\",\n} as const;\nconst sourceModuleCache = new Map<string, Promise<unknown>>();\nconst maxSourceModuleCacheEntries = resolveRouterCacheLimit(\"SOURCE_MODULE\", 512);\nconst sourceModuleCacheCounters = createRouterRuntimeCacheCounters();\nconst serverSourceTransformCache = new Map<string, string>();\nconst maxServerSourceTransformCacheEntries = resolveRouterCacheLimit(\n \"SERVER_SOURCE_TRANSFORM\",\n 512,\n);\nconst serverSourceTransformCacheCounters = createRouterRuntimeCacheCounters();\nlet fileImportVersion = 0;\n\nexport function routerModuleRunnerRuntimeCacheStats(): RouterRuntimeCacheStat[] {\n return [\n routerRuntimeCacheStat(\n \"source-module\",\n sourceModuleCache,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n ),\n routerRuntimeCacheStat(\n \"server-source-transform\",\n serverSourceTransformCache,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n ),\n ];\n}\n\nexport async function importAppRouterSourceModule<T>(options: {\n cacheKey?: string | undefined;\n code: string;\n label: string;\n resolveDir?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = importAppRouterSourceModuleWithoutCache<T>(options).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n });\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return importAppRouterSourceModuleWithoutCache(options);\n}\n\nasync function importAppRouterSourceModuleWithoutCache<T>(options: {\n code: string;\n label: string;\n resolveDir?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<T> {\n const code =\n options.resolveDir === undefined ? options.code : await bundleAppRouterSourceModule(options);\n const executableCode = withNodeRequireShimForEsmBundle({\n code,\n requireBaseDir:\n options.resolveDir ??\n (options.sourcefile === undefined ? undefined : dirname(options.sourcefile)),\n });\n const encodedLabel = encodeURIComponent(options.label.replace(/[^A-Za-z0-9_$.-]/g, \"-\"));\n const url = `data:text/javascript;base64,${Buffer.from(executableCode).toString(\n \"base64\",\n )}#${encodedLabel}-${Date.now()}-${Math.random()}`;\n const result = await runnerImport<T>(url, runnerConfig);\n\n return result.module;\n}\n\nexport async function importAppRouterFileModule<T>(file: string): Promise<T> {\n fileImportVersion += 1;\n const url = `${pathToFileURL(file).href}?t=${Date.now()}${fileImportVersion}`;\n const result = await runnerImport<T>(url, runnerConfig);\n\n return result.module;\n}\n\nexport async function importAppRouterBuiltFileModule<T>(options: {\n cacheKey?: string | undefined;\n file: string;\n}): Promise<T> {\n if (options.cacheKey !== undefined) {\n const cacheKey = options.cacheKey;\n const cached = readRouterRuntimeCacheEntry(\n sourceModuleCache,\n cacheKey,\n sourceModuleCacheCounters,\n ) as Promise<T> | undefined;\n\n if (cached !== undefined) {\n return cached;\n }\n\n const loaded = import(pathToFileURL(options.file).href).catch((error) => {\n sourceModuleCache.delete(cacheKey);\n throw error;\n }) as Promise<T>;\n setBoundedCacheEntry(\n sourceModuleCache,\n cacheKey,\n loaded,\n maxSourceModuleCacheEntries,\n sourceModuleCacheCounters,\n );\n\n return loaded;\n }\n\n return (await import(pathToFileURL(options.file).href)) as T;\n}\n\nexport async function bundleAppRouterSourceModule(options: {\n code: string;\n label: string;\n resolveDir?: string | undefined;\n serverSourceTransform?: ServerSourceTransformOptions | undefined;\n sourcefile?: string | undefined;\n vitePlugins?: readonly PluginOption[] | undefined;\n}): Promise<string> {\n const output = await bundleRouterModule({\n code: options.code,\n filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\"),\n platform: \"node\",\n vitePlugins: options.vitePlugins,\n plugins: [\n workspacePackageResolutionPlugin(),\n ...(options.serverSourceTransform === undefined\n ? []\n : [serverSourceTransformPlugin(options.serverSourceTransform)]),\n ],\n });\n const code = output.code;\n\n if (code === undefined) {\n throw new Error(`Failed to bundle ${options.label} for Vite runner.`);\n }\n\n return code;\n}\n\nexport function fileImportMetaUrlPlugin(): RouterCompatPlugin {\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-file-import-meta-url\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx?$/ }, async (args) => {\n if (\n args.path.includes(`${sep}node_modules${sep}`) ||\n args.path.startsWith(`${workspacePackagesDir}${sep}`)\n ) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n\n return {\n contents: withFileImportMetaUrl(source, args.path),\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\ninterface ServerSourceTransformOptions {\n clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;\n dev: boolean;\n serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;\n serverOutput: ServerOutputMode;\n vitePlugins?: readonly PluginOption[] | undefined;\n}\n\nfunction serverSourceTransformPlugin(options: ServerSourceTransformOptions): RouterCompatPlugin {\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const workspacePackagesDir = dirname(dirname(dirname(fileURLToPath(import.meta.url))));\n\n return {\n name: \"mreact-router-server-source-transform\",\n setup(buildApi) {\n buildApi.onLoad({ filter: /(?:\\.mreact)?\\.[cm]?[jt]sx$/ }, async (args) => {\n if (args.path.includes(`${sep}node_modules${sep}`)) {\n return undefined;\n }\n\n if (args.path.startsWith(`${workspacePackagesDir}${sep}`)) {\n return undefined;\n }\n\n const source = await readFile(args.path, \"utf8\");\n const contents = await transformServerSourceFile({\n ...options,\n clientRouteInferenceCache,\n filename: args.path,\n source,\n });\n\n return {\n contents,\n loader: \"js\",\n resolveDir: dirname(args.path),\n };\n });\n },\n };\n}\n\nasync function transformServerSourceFile(\n options: ServerSourceTransformOptions & {\n filename: string;\n source: string;\n },\n): Promise<string> {\n const sourceHash = hashText(options.source);\n const artifact = options.serverModules?.get(options.filename)?.[options.serverOutput];\n\n if (artifact !== undefined && artifact.sourceHash === sourceHash) {\n return artifact.code;\n }\n\n const source = options.dev\n ? withFileImportMetaUrl(options.source, options.filename)\n : options.source;\n const transformedSourceHash = source === options.source ? sourceHash : hashText(source);\n const clientRouteInferenceCache =\n options.clientRouteInferenceCache ?? createClientRouteInferenceCache();\n const moduleContext = await compilerModuleContextForSource({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n });\n const clientInference = await inferClientRouteModule({\n cache: clientRouteInferenceCache,\n code: source,\n filename: options.filename,\n moduleContext,\n vitePlugins: options.vitePlugins,\n });\n\n for (const diagnostic of clientInference.diagnostics) {\n console.warn(formatClientRouteInferenceDiagnostic(diagnostic));\n }\n\n const cacheKey = `${options.serverOutput}\\0${options.dev ? \"dev\" : \"prod\"}\\0${options.filename}\\0${transformedSourceHash}\\0${clientInference.clientBoundaryImports.join(\"\\0\")}\\0${vitePluginsCacheKey(options.vitePlugins)}`;\n const cached = readRouterRuntimeCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n serverSourceTransformCacheCounters,\n );\n\n if (cached !== undefined) {\n return cached;\n }\n\n const output = transformCompilerModuleContext({\n code: source,\n clientBoundaryImports: clientInference.clientBoundaryImports,\n dev: options.dev,\n filename: options.filename,\n moduleContext,\n serverEscape: nativeEscapeTransform,\n serverOutput: options.serverOutput,\n target: \"server\",\n });\n const fatalDiagnostics = output.diagnostics.filter(\n (diagnostic) => diagnostic.code !== \"MR_UNSUPPORTED_SERVER_EVENT_HANDLER\",\n );\n\n if (fatalDiagnostics.length > 0) {\n throw new Error(\n fatalDiagnostics\n .map((diagnostic) => formatDiagnostic(options.filename, diagnostic))\n .join(\"\\n\"),\n );\n }\n\n setBoundedCacheEntry(\n serverSourceTransformCache,\n cacheKey,\n output.code,\n maxServerSourceTransformCacheEntries,\n serverSourceTransformCacheCounters,\n );\n\n return output.code;\n}\n\nfunction withFileImportMetaUrl(source: string, filename: string): string {\n if (!source.includes(\"import.meta.url\")) {\n return source;\n }\n\n return source.replaceAll(\"import.meta.url\", JSON.stringify(pathToFileURL(filename).href));\n}\n\nfunction withNodeRequireShimForEsmBundle(options: {\n code: string;\n requireBaseDir?: string | undefined;\n}): string {\n const requireBaseUrl = pathToFileURL(\n join(options.requireBaseDir ?? process.cwd(), \"__mreact_require_shim.cjs\"),\n ).href;\n const code = options.code.replaceAll(\n \"createRequire(import.meta.url)\",\n `createRequire(${JSON.stringify(requireBaseUrl)})`,\n );\n\n if (!needsNodeRequireShim(options.code)) {\n return code;\n }\n\n return `import { createRequire as __mreactCreateRequire } from \"node:module\";\nconst require = __mreactCreateRequire(${JSON.stringify(requireBaseUrl)});\n${code}`;\n}\n\nfunction needsNodeRequireShim(code: string): boolean {\n return code.includes(\"Dynamic require of\") && /\\b__require\\s*=/.test(code);\n}\n\nfunction workspacePackageResolutionPlugin() {\n const currentDir = dirname(fileURLToPath(import.meta.url));\n const packageRoot = dirname(currentDir);\n const sourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/index.js\" : \"src/index.ts\";\n const appRouterGlobalsSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/app-router-globals.js\"\n : \"src/app-router-globals.ts\";\n const linkSourceOrDist = currentDir.endsWith(`${sep}dist`) ? \"dist/link.js\" : \"src/link.ts\";\n const nativeEscapeSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/native-escape.js\"\n : \"src/native-escape.ts\";\n const navigationStateSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/navigation-state.js\"\n : \"src/navigation-state.ts\";\n const sessionSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/session.js\"\n : \"src/session.ts\";\n const streamListSourceOrDist = currentDir.endsWith(`${sep}dist`)\n ? \"dist/stream-list.js\"\n : \"src/stream-list.ts\";\n const packageFile = (\n monorepoDir: string,\n packageName: string,\n entry: string,\n specifier: string,\n resolveDir?: string | undefined,\n ): string =>\n resolveWorkspacePackageFile({\n currentFileUrl: import.meta.url,\n entry,\n monorepoDir,\n packageName,\n resolveDir,\n specifier,\n });\n const entries = new Map<string, { entry: string; monorepoDir: string; packageName: string }>([\n [\"@reckona/mreact\", { entry: \"index\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" }],\n [\n \"@reckona/mreact/jsx-dev-runtime\",\n { entry: \"jsx-dev-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react\", packageName: \"@reckona/mreact\" },\n ],\n [\n \"@reckona/mreact-auth\",\n { entry: \"index\", monorepoDir: \"auth\", packageName: \"@reckona/mreact-auth\" },\n ],\n [\n \"@reckona/mreact-compat\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/event-priority\",\n {\n entry: \"event-priority\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/flight\",\n { entry: \"flight\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/internal\",\n { entry: \"internal\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"@reckona/mreact-compat/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-compat/scheduler\",\n { entry: \"scheduler\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"@reckona/mreact-reactive-core\",\n {\n entry: \"index\",\n monorepoDir: \"reactive-core\",\n packageName: \"@reckona/mreact-reactive-core\",\n },\n ],\n [\n \"@reckona/mreact-query\",\n { entry: \"index\", monorepoDir: \"query\", packageName: \"@reckona/mreact-query\" },\n ],\n [\n \"@reckona/mreact-server\",\n { entry: \"index\", monorepoDir: \"server\", packageName: \"@reckona/mreact-server\" },\n ],\n ]);\n const routerEntries = new Map([\n [\"@reckona/mreact-router\", join(packageRoot, sourceOrDist)],\n [\"@reckona/mreact-router/app-router-globals\", join(packageRoot, appRouterGlobalsSourceOrDist)],\n [\"@reckona/mreact-router/link\", join(packageRoot, linkSourceOrDist)],\n [\"@reckona/mreact-router/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/navigation-state\", join(packageRoot, navigationStateSourceOrDist)],\n [\"@reckona/mreact-router/session\", join(packageRoot, sessionSourceOrDist)],\n [\"@reckona/mreact-router/stream-list\", join(packageRoot, streamListSourceOrDist)],\n [\"@reckona/mreact-router/internal/native-escape\", join(packageRoot, nativeEscapeSourceOrDist)],\n [\"@reckona/mreact-router/internal/session\", join(packageRoot, sessionSourceOrDist)],\n ]);\n\n return {\n name: \"mreact-router-workspace-packages\",\n setup(buildApi: Pick<RouterCompatBuildApi, \"onResolve\">) {\n buildApi.onResolve(\n {\n filter:\n /^@reckona\\/(?:mreact(?:\\/(?:jsx-dev-runtime|jsx-runtime))?|mreact-(?:auth|query|reactive-core|server|router|compat)(?:\\/(?:event-priority|flight|internal|jsx-dev-runtime|jsx-runtime|scheduler|app-router-globals|link|native-escape|navigation-state|session|stream-list|internal\\/native-escape|internal\\/session))?)$/,\n },\n (args) => {\n const routerPath = routerEntries.get(args.path);\n\n if (routerPath !== undefined) {\n return { path: routerPath };\n }\n\n const entry = entries.get(args.path);\n\n return entry === undefined\n ? undefined\n : {\n path: packageFile(\n entry.monorepoDir,\n entry.packageName,\n entry.entry,\n args.path,\n args.resolveDir,\n ),\n };\n },\n );\n },\n };\n}\n\nfunction setBoundedCacheEntry<K, V>(\n cache: Map<K, V>,\n key: K,\n value: V,\n maxEntries: number,\n counters: RouterRuntimeCacheCounters,\n): void {\n if (cache.size >= maxEntries) {\n const oldestKey = cache.keys().next().value as K | undefined;\n\n if (oldestKey !== undefined) {\n cache.delete(oldestKey);\n counters.evictions += 1;\n }\n }\n\n cache.set(key, value);\n}\n\nfunction hashText(text: string): string {\n return createHash(\"sha256\").update(text).digest(\"hex\").slice(0, 16);\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { buildClientRouteBatchOutput, buildClientRouteBundle, buildClientRouteEntrySource, buildClientRouteOutput, buildNavigationRuntimeBundle, clientScriptForPath, hydrationMarkerParts, navigationRuntimeScriptForDev, routeIdForPath, withHydrationMarkers, withRouteMarkers, type BuildClientRouteBatchOutput, type BuildClientRouteBatchRouteOutput, type BuildClientRouteOutputOptions, } from "./client.js";
2
+ //# sourceMappingURL=navigation-runtime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-runtime.d.ts","sourceRoot":"","sources":["../src/navigation-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,KAAK,2BAA2B,EAChC,KAAK,gCAAgC,EACrC,KAAK,6BAA6B,GACnC,MAAM,aAAa,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { buildClientRouteBatchOutput, buildClientRouteBundle, buildClientRouteEntrySource, buildClientRouteOutput, buildNavigationRuntimeBundle, clientScriptForPath, hydrationMarkerParts, navigationRuntimeScriptForDev, routeIdForPath, withHydrationMarkers, withRouteMarkers, } from "./client.js";
2
+ //# sourceMappingURL=navigation-runtime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation-runtime.js","sourceRoot":"","sources":["../src/navigation-runtime.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,sBAAsB,EACtB,2BAA2B,EAC3B,sBAAsB,EACtB,4BAA4B,EAC5B,mBAAmB,EACnB,oBAAoB,EACpB,6BAA6B,EAC7B,cAAc,EACd,oBAAoB,EACpB,gBAAgB,GAIjB,MAAM,aAAa,CAAC","sourcesContent":["export {\n buildClientRouteBatchOutput,\n buildClientRouteBundle,\n buildClientRouteEntrySource,\n buildClientRouteOutput,\n buildNavigationRuntimeBundle,\n clientScriptForPath,\n hydrationMarkerParts,\n navigationRuntimeScriptForDev,\n routeIdForPath,\n withHydrationMarkers,\n withRouteMarkers,\n type BuildClientRouteBatchOutput,\n type BuildClientRouteBatchRouteOutput,\n type BuildClientRouteOutputOptions,\n} from \"./client.js\";\n"]}
@@ -0,0 +1,24 @@
1
+ import type { BuiltAppRuntimePreloadMode, BuiltAppRuntimePreloadStrategy } from "./serve.js";
2
+ export type BuiltAppRuntimePreloadWait = "background" | "before-render" | "first-request";
3
+ export type BuiltAppRuntimeDefaultPreloadMode = "all" | "middleware";
4
+ export type BuiltAppRuntimePreloadInput = BuiltAppRuntimePreloadMode | (BuiltAppRuntimePreloadStrategy & {
5
+ wait?: BuiltAppRuntimePreloadWait | undefined;
6
+ }) | undefined;
7
+ export type NormalizedBuiltAppRuntimePreloadStrategy = BuiltAppRuntimePreloadStrategy & {
8
+ wait: BuiltAppRuntimePreloadWait;
9
+ };
10
+ export interface BuiltAppRuntimePreloadArtifactPlan extends NormalizedBuiltAppRuntimePreloadStrategy {
11
+ includeRenderModules: boolean;
12
+ loadAllArtifacts: boolean;
13
+ middlewareArtifacts?: {
14
+ includeRender: boolean;
15
+ } | undefined;
16
+ routeArtifacts?: {
17
+ includeRender: boolean;
18
+ includeShells: boolean;
19
+ } | undefined;
20
+ shouldPreload: boolean;
21
+ }
22
+ export declare function normalizeBuiltAppRuntimePreloadStrategy(strategy: BuiltAppRuntimePreloadInput, defaultMode?: BuiltAppRuntimeDefaultPreloadMode): NormalizedBuiltAppRuntimePreloadStrategy;
23
+ export declare function builtAppRuntimePreloadPlan(strategy: BuiltAppRuntimePreloadInput, defaultMode?: BuiltAppRuntimeDefaultPreloadMode): BuiltAppRuntimePreloadArtifactPlan;
24
+ //# sourceMappingURL=preload-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload-policy.d.ts","sourceRoot":"","sources":["../src/preload-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,0BAA0B,EAC1B,8BAA8B,EAC/B,MAAM,YAAY,CAAC;AAEpB,MAAM,MAAM,0BAA0B,GAClC,YAAY,GACZ,eAAe,GACf,eAAe,CAAC;AAEpB,MAAM,MAAM,iCAAiC,GAAG,KAAK,GAAG,YAAY,CAAC;AAErE,MAAM,MAAM,2BAA2B,GACnC,0BAA0B,GAC1B,CAAC,8BAA8B,GAAG;IAChC,IAAI,CAAC,EAAE,0BAA0B,GAAG,SAAS,CAAC;CAC/C,CAAC,GACF,SAAS,CAAC;AAEd,MAAM,MAAM,wCAAwC,GAAG,8BAA8B,GAAG;IACtF,IAAI,EAAE,0BAA0B,CAAC;CAClC,CAAC;AAEF,MAAM,WAAW,kCACf,SAAQ,wCAAwC;IAChD,oBAAoB,EAAE,OAAO,CAAC;IAC9B,gBAAgB,EAAE,OAAO,CAAC;IAC1B,mBAAmB,CAAC,EAAE;QAAE,aAAa,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAC7D,cAAc,CAAC,EAAE;QAAE,aAAa,EAAE,OAAO,CAAC;QAAC,aAAa,EAAE,OAAO,CAAA;KAAE,GAAG,SAAS,CAAC;IAChF,aAAa,EAAE,OAAO,CAAC;CACxB;AAED,wBAAgB,uCAAuC,CACrD,QAAQ,EAAE,2BAA2B,EACrC,WAAW,GAAE,iCAAyC,GACrD,wCAAwC,CAc1C;AAED,wBAAgB,0BAA0B,CACxC,QAAQ,EAAE,2BAA2B,EACrC,WAAW,GAAE,iCAAyC,GACrD,kCAAkC,CAkCpC"}
@@ -0,0 +1,45 @@
1
+ export function normalizeBuiltAppRuntimePreloadStrategy(strategy, defaultMode = "all") {
2
+ if (strategy === undefined) {
3
+ return { mode: defaultMode, wait: "background" };
4
+ }
5
+ if (typeof strategy === "string") {
6
+ return { mode: strategy, wait: "background" };
7
+ }
8
+ return {
9
+ mode: strategy.mode,
10
+ ...(strategy.routes === undefined ? {} : { routes: strategy.routes }),
11
+ wait: strategy.wait ?? "background",
12
+ };
13
+ }
14
+ export function builtAppRuntimePreloadPlan(strategy, defaultMode = "all") {
15
+ const normalized = normalizeBuiltAppRuntimePreloadStrategy(strategy, defaultMode);
16
+ if (normalized.mode === "none") {
17
+ return {
18
+ ...normalized,
19
+ includeRenderModules: false,
20
+ loadAllArtifacts: false,
21
+ shouldPreload: false,
22
+ };
23
+ }
24
+ if (normalized.mode === "all") {
25
+ return {
26
+ ...normalized,
27
+ includeRenderModules: true,
28
+ loadAllArtifacts: true,
29
+ shouldPreload: true,
30
+ };
31
+ }
32
+ const requestOnly = normalized.mode === "hot-route-requests";
33
+ return {
34
+ ...normalized,
35
+ includeRenderModules: !requestOnly,
36
+ loadAllArtifacts: false,
37
+ middlewareArtifacts: { includeRender: !requestOnly },
38
+ routeArtifacts: {
39
+ includeRender: !requestOnly,
40
+ includeShells: !requestOnly,
41
+ },
42
+ shouldPreload: true,
43
+ };
44
+ }
45
+ //# sourceMappingURL=preload-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"preload-policy.js","sourceRoot":"","sources":["../src/preload-policy.ts"],"names":[],"mappings":"AAgCA,MAAM,UAAU,uCAAuC,CACrD,QAAqC,EACrC,cAAiD,KAAK;IAEtD,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IACnD,CAAC;IAED,IAAI,OAAO,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACjC,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC;IAChD,CAAC;IAED,OAAO;QACL,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,GAAG,CAAC,QAAQ,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC;QACrE,IAAI,EAAE,QAAQ,CAAC,IAAI,IAAI,YAAY;KACpC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,QAAqC,EACrC,cAAiD,KAAK;IAEtD,MAAM,UAAU,GAAG,uCAAuC,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;IAElF,IAAI,UAAU,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC/B,OAAO;YACL,GAAG,UAAU;YACb,oBAAoB,EAAE,KAAK;YAC3B,gBAAgB,EAAE,KAAK;YACvB,aAAa,EAAE,KAAK;SACrB,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,IAAI,KAAK,KAAK,EAAE,CAAC;QAC9B,OAAO;YACL,GAAG,UAAU;YACb,oBAAoB,EAAE,IAAI;YAC1B,gBAAgB,EAAE,IAAI;YACtB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAED,MAAM,WAAW,GAAG,UAAU,CAAC,IAAI,KAAK,oBAAoB,CAAC;IAE7D,OAAO;QACL,GAAG,UAAU;QACb,oBAAoB,EAAE,CAAC,WAAW;QAClC,gBAAgB,EAAE,KAAK;QACvB,mBAAmB,EAAE,EAAE,aAAa,EAAE,CAAC,WAAW,EAAE;QACpD,cAAc,EAAE;YACd,aAAa,EAAE,CAAC,WAAW;YAC3B,aAAa,EAAE,CAAC,WAAW;SAC5B;QACD,aAAa,EAAE,IAAI;KACpB,CAAC;AACJ,CAAC","sourcesContent":["import type {\n BuiltAppRuntimePreloadMode,\n BuiltAppRuntimePreloadStrategy,\n} from \"./serve.js\";\n\nexport type BuiltAppRuntimePreloadWait =\n | \"background\"\n | \"before-render\"\n | \"first-request\";\n\nexport type BuiltAppRuntimeDefaultPreloadMode = \"all\" | \"middleware\";\n\nexport type BuiltAppRuntimePreloadInput =\n | BuiltAppRuntimePreloadMode\n | (BuiltAppRuntimePreloadStrategy & {\n wait?: BuiltAppRuntimePreloadWait | undefined;\n })\n | undefined;\n\nexport type NormalizedBuiltAppRuntimePreloadStrategy = BuiltAppRuntimePreloadStrategy & {\n wait: BuiltAppRuntimePreloadWait;\n};\n\nexport interface BuiltAppRuntimePreloadArtifactPlan\n extends NormalizedBuiltAppRuntimePreloadStrategy {\n includeRenderModules: boolean;\n loadAllArtifacts: boolean;\n middlewareArtifacts?: { includeRender: boolean } | undefined;\n routeArtifacts?: { includeRender: boolean; includeShells: boolean } | undefined;\n shouldPreload: boolean;\n}\n\nexport function normalizeBuiltAppRuntimePreloadStrategy(\n strategy: BuiltAppRuntimePreloadInput,\n defaultMode: BuiltAppRuntimeDefaultPreloadMode = \"all\",\n): NormalizedBuiltAppRuntimePreloadStrategy {\n if (strategy === undefined) {\n return { mode: defaultMode, wait: \"background\" };\n }\n\n if (typeof strategy === \"string\") {\n return { mode: strategy, wait: \"background\" };\n }\n\n return {\n mode: strategy.mode,\n ...(strategy.routes === undefined ? {} : { routes: strategy.routes }),\n wait: strategy.wait ?? \"background\",\n };\n}\n\nexport function builtAppRuntimePreloadPlan(\n strategy: BuiltAppRuntimePreloadInput,\n defaultMode: BuiltAppRuntimeDefaultPreloadMode = \"all\",\n): BuiltAppRuntimePreloadArtifactPlan {\n const normalized = normalizeBuiltAppRuntimePreloadStrategy(strategy, defaultMode);\n\n if (normalized.mode === \"none\") {\n return {\n ...normalized,\n includeRenderModules: false,\n loadAllArtifacts: false,\n shouldPreload: false,\n };\n }\n\n if (normalized.mode === \"all\") {\n return {\n ...normalized,\n includeRenderModules: true,\n loadAllArtifacts: true,\n shouldPreload: true,\n };\n }\n\n const requestOnly = normalized.mode === \"hot-route-requests\";\n\n return {\n ...normalized,\n includeRenderModules: !requestOnly,\n loadAllArtifacts: false,\n middlewareArtifacts: { includeRender: !requestOnly },\n routeArtifacts: {\n includeRender: !requestOnly,\n includeShells: !requestOnly,\n },\n shouldPreload: true,\n };\n}\n"]}
package/dist/render.d.ts CHANGED
@@ -8,6 +8,7 @@ import type { BuiltServerModuleArtifact } from "./build.js";
8
8
  import { type AppRouterLogger } from "./logger.js";
9
9
  import { type RouterRuntimeCacheStat } from "./cache-stats.js";
10
10
  import { type RouterInstrumentation } from "./trace.js";
11
+ import { type RouteMiddlewareControl } from "./middleware.js";
11
12
  interface RenderTiming {
12
13
  phases: Record<string, number>;
13
14
  }
@@ -63,9 +64,6 @@ export type AppRouterMiddlewareResult = {
63
64
  response: Response;
64
65
  type: "response";
65
66
  };
66
- interface RouteMiddlewareControl {
67
- skip?: boolean | readonly string[];
68
- }
69
67
  export declare function resolveAppRouterMiddleware(options: {
70
68
  appDir: string;
71
69
  importPolicy?: AppRouterImportPolicy | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}