@reckona/mreact-router 0.0.132 → 0.0.134
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.
- package/dist/adapters/cloudflare.js +1 -1
- package/dist/adapters/cloudflare.js.map +1 -1
- package/dist/adapters/static.js +5 -1
- package/dist/adapters/static.js.map +1 -1
- package/dist/build.d.ts +1 -0
- package/dist/build.d.ts.map +1 -1
- package/dist/build.js +136 -41
- package/dist/build.js.map +1 -1
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +166 -8
- package/dist/client.js.map +1 -1
- package/dist/http.d.ts +1 -0
- package/dist/http.d.ts.map +1 -1
- package/dist/http.js +7 -1
- package/dist/http.js.map +1 -1
- package/dist/module-runner.d.ts +4 -1
- package/dist/module-runner.d.ts.map +1 -1
- package/dist/module-runner.js +3 -2
- package/dist/module-runner.js.map +1 -1
- package/dist/render.d.ts +6 -1
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +84 -46
- package/dist/render.js.map +1 -1
- package/dist/routes.js +1 -1
- package/dist/routes.js.map +1 -1
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +110 -17
- package/dist/serve.js.map +1 -1
- package/dist/vite-plugin-cache-key.d.ts +2 -1
- package/dist/vite-plugin-cache-key.d.ts.map +1 -1
- package/dist/vite-plugin-cache-key.js +9 -0
- package/dist/vite-plugin-cache-key.js.map +1 -1
- package/dist/vite.d.ts +2 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +2 -0
- package/dist/vite.js.map +1 -1
- package/package.json +11 -11
- package/src/adapters/cloudflare.ts +1 -1
- package/src/adapters/static.ts +7 -1
- package/src/build.ts +201 -53
- package/src/client.ts +284 -17
- package/src/http.ts +9 -1
- package/src/module-runner.ts +8 -2
- package/src/render.ts +117 -21
- package/src/routes.ts +1 -1
- package/src/serve.ts +167 -18
- package/src/vite-plugin-cache-key.ts +12 -1
- package/src/vite.ts +4 -0
package/dist/http.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import type { ServerResponse } from "node:http";
|
|
2
2
|
import type { IncomingMessage } from "node:http";
|
|
3
3
|
export declare function nodeRequestToWebRequest(incoming: IncomingMessage, origin: string): Request;
|
|
4
|
+
export declare function rawNodeRequestUrl(request: Request): string | undefined;
|
|
4
5
|
/**
|
|
5
6
|
* Constructs a Response whose body is a single string (the common HTML
|
|
6
7
|
* render result). Equivalent to `new Response(html, init)` but tagged so
|
package/dist/http.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"http.d.ts","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAKjD,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,eAAe,EACzB,MAAM,EAAE,MAAM,GACb,OAAO,CA8BT;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEtE;AAmBD;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAIxE;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,UAAU,EAAE,IAAI,CAAC,EAAE,YAAY,GAAG,QAAQ,CAI9E;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE3D;AAED,wBAAsB,YAAY,CAChC,QAAQ,EAAE,cAAc,EACxB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,IAAI,CAAC,CAgDf"}
|
package/dist/http.js
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Readable } from "node:stream";
|
|
2
|
+
const rawUrlByRequest = new WeakMap();
|
|
2
3
|
export function nodeRequestToWebRequest(incoming, origin) {
|
|
3
4
|
const method = incoming.method ?? "GET";
|
|
4
5
|
const headers = new Headers();
|
|
@@ -21,7 +22,12 @@ export function nodeRequestToWebRequest(incoming, origin) {
|
|
|
21
22
|
init.body = Readable.toWeb(incoming);
|
|
22
23
|
init.duplex = "half";
|
|
23
24
|
}
|
|
24
|
-
|
|
25
|
+
const request = new Request(new URL(incoming.url ?? "/", origin), init);
|
|
26
|
+
rawUrlByRequest.set(request, incoming.url ?? "/");
|
|
27
|
+
return request;
|
|
28
|
+
}
|
|
29
|
+
export function rawNodeRequestUrl(request) {
|
|
30
|
+
return rawUrlByRequest.get(request);
|
|
25
31
|
}
|
|
26
32
|
/**
|
|
27
33
|
* WeakMap-backed marker holding the underlying body for Response objects
|
package/dist/http.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEvC,MAAM,UAAU,uBAAuB,CACrC,QAAyB,EACzB,MAAc;IAEd,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC;IACxC,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;IAE9B,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;QAC7D,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAC7B,CAAC;YACD,SAAS;QACX,CAAC;QAED,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YACxB,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,IAAI,GAAsC;QAC9C,OAAO;QACP,MAAM;KACP,CAAC;IAEF,IAAI,MAAM,KAAK,KAAK,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QAC1C,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAA+B,CAAC;QACnE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,OAAO,IAAI,OAAO,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"http.js","sourceRoot":"","sources":["../src/http.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ServerResponse } from \"node:http\";\nimport type { IncomingMessage } from \"node:http\";\nimport { Readable } from \"node:stream\";\n\nconst rawUrlByRequest = new WeakMap<Request, string>();\n\nexport function nodeRequestToWebRequest(\n incoming: IncomingMessage,\n origin: string,\n): Request {\n const method = incoming.method ?? \"GET\";\n const headers = new Headers();\n\n for (const [name, value] of Object.entries(incoming.headers)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n headers.append(name, item);\n }\n continue;\n }\n\n if (value !== undefined) {\n headers.set(name, value);\n }\n }\n\n const init: RequestInit & { duplex?: \"half\" } = {\n headers,\n method,\n };\n\n if (method !== \"GET\" && method !== \"HEAD\") {\n init.body = Readable.toWeb(incoming) as ReadableStream<Uint8Array>;\n init.duplex = \"half\";\n }\n\n const request = new Request(new URL(incoming.url ?? \"/\", origin), init);\n rawUrlByRequest.set(request, incoming.url ?? \"/\");\n return request;\n}\n\nexport function rawNodeRequestUrl(request: Request): string | undefined {\n return rawUrlByRequest.get(request);\n}\n\n/**\n * WeakMap-backed marker holding the underlying body for Response objects\n * that mreact built from a known-shape body (string / Buffer /\n * Uint8Array). When `sendResponse` sees this marker, it bypasses the\n * `ReadableStream → reader.read()` pump and writes the body directly to\n * the Node HTTP socket.\n *\n * A WeakMap is used instead of a Symbol property to avoid forcing a\n * hidden-class transition on the Response — Response is a global host\n * object whose IC chain is shared, and adding own properties slows down\n * subsequent `response.headers` / `response.body` accesses.\n *\n * Measured savings (Node 24 / Linux x64, minimal page bench): ~10-15μs/req\n * vs the stream path. See docs/issues/054.\n */\nconst rawBodyByResponse = new WeakMap<Response, string | Uint8Array>();\n\n/**\n * Constructs a Response whose body is a single string (the common HTML\n * render result). Equivalent to `new Response(html, init)` but tagged so\n * `sendResponse` can take its string fast path.\n */\nexport function htmlResponse(html: string, init?: ResponseInit): Response {\n const response = new Response(html, init);\n rawBodyByResponse.set(response, html);\n return response;\n}\n\n/**\n * Constructs a Response whose body is raw bytes (e.g., pre-rendered HTML\n * already encoded, or static assets). Tagged so `sendResponse` writes the\n * bytes directly without going through the stream reader.\n */\nexport function bytesResponse(bytes: Uint8Array, init?: ResponseInit): Response {\n const response = new Response(bytes as BodyInit, init);\n rawBodyByResponse.set(response, bytes);\n return response;\n}\n\n/**\n * Test-only probe: returns true when the Response was constructed via\n * `htmlResponse` / `bytesResponse` and is therefore eligible for the\n * `sendResponse` raw-body fast path. Not part of the public runtime API.\n */\nexport function hasFastPathBody(response: Response): boolean {\n return rawBodyByResponse.has(response);\n}\n\nexport async function sendResponse(\n outgoing: ServerResponse,\n response: Response,\n): Promise<void> {\n outgoing.statusCode = response.status;\n const setCookieHeaders = responseSetCookieHeaders(response.headers);\n response.headers.forEach((value, key) => {\n if (key.toLowerCase() === \"set-cookie\" && setCookieHeaders.length > 0) {\n return;\n }\n outgoing.setHeader(key, value);\n });\n if (setCookieHeaders.length > 0) {\n outgoing.setHeader(\"set-cookie\", setCookieHeaders);\n }\n\n if (response.body === null) {\n outgoing.end();\n return;\n }\n\n // Fast path: when the Response was constructed via `htmlResponse` /\n // `bytesResponse` (i.e., mreact knows the underlying body shape), skip\n // the Response→ReadableStream→reader pump and write directly.\n const rawBody = rawBodyByResponse.get(response);\n if (rawBody !== undefined) {\n outgoing.end(rawBody);\n return;\n }\n\n outgoing.flushHeaders();\n const reader = response.body.getReader();\n\n try {\n while (true) {\n const result = await reader.read();\n\n if (result.done) {\n outgoing.end();\n return;\n }\n\n if (!outgoing.write(result.value)) {\n await new Promise<void>((resolve) => outgoing.once(\"drain\", resolve));\n }\n }\n } catch (error) {\n outgoing.destroy(error instanceof Error ? error : new Error(String(error)));\n } finally {\n reader.releaseLock();\n }\n}\n\nfunction responseSetCookieHeaders(headers: Headers): string[] {\n const getSetCookie = (headers as Headers & { getSetCookie?: () => string[] }).getSetCookie;\n\n if (typeof getSetCookie === \"function\") {\n return getSetCookie.call(headers);\n }\n\n const value = headers.get(\"set-cookie\");\n return value === null ? [] : [value];\n}\n"]}
|
package/dist/module-runner.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ServerOutputMode } from "@reckona/mreact-shared/compiler-contract";
|
|
2
|
-
import { type PluginOption } from "vite";
|
|
2
|
+
import { type PluginOption, type UserConfig } 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";
|
|
@@ -8,6 +8,7 @@ export declare function routerModuleRunnerRuntimeCacheStats(): RouterRuntimeCach
|
|
|
8
8
|
export declare function importAppRouterSourceModule<T>(options: {
|
|
9
9
|
cacheKey?: string | undefined;
|
|
10
10
|
code: string;
|
|
11
|
+
define?: UserConfig["define"] | undefined;
|
|
11
12
|
externalizeAppSourceModuleDirs?: readonly string[] | undefined;
|
|
12
13
|
label: string;
|
|
13
14
|
plugins?: readonly RouterCompatPlugin[] | undefined;
|
|
@@ -24,6 +25,7 @@ export declare function importAppRouterBuiltFileModule<T>(options: {
|
|
|
24
25
|
}): Promise<T>;
|
|
25
26
|
export declare function bundleAppRouterSourceModule(options: {
|
|
26
27
|
code: string;
|
|
28
|
+
define?: UserConfig["define"] | undefined;
|
|
27
29
|
externalizeAppSourceModuleDirs?: readonly string[] | undefined;
|
|
28
30
|
label: string;
|
|
29
31
|
plugins?: readonly RouterCompatPlugin[] | undefined;
|
|
@@ -36,6 +38,7 @@ export declare function bundleAppRouterSourceModule(options: {
|
|
|
36
38
|
export declare function fileImportMetaUrlPlugin(): RouterCompatPlugin;
|
|
37
39
|
interface ServerSourceTransformOptions {
|
|
38
40
|
clientRouteInferenceCache?: ClientRouteInferenceCache | undefined;
|
|
41
|
+
define?: UserConfig["define"] | undefined;
|
|
39
42
|
dev: boolean;
|
|
40
43
|
serverModules?: ReadonlyMap<string, BuiltServerModuleArtifact> | undefined;
|
|
41
44
|
serverOutput: ServerOutputMode;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAKL,KAAK,YAAY,
|
|
1
|
+
{"version":3,"file":"module-runner.d.ts","sourceRoot":"","sources":["../src/module-runner.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAEjF,OAAO,EAKL,KAAK,YAAY,EAEjB,KAAK,UAAU,EAChB,MAAM,MAAM,CAAC;AAEd,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;AA0BrC,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,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,8BAA8B,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,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;AAmCD,wBAAsB,yBAAyB,CAAC,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,CAK3E;AAgFD,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,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,8BAA8B,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAC;IAC/D,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,kBAAkB,EAAE,GAAG,SAAS,CAAC;IACpD,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,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,CAwBlB;AAED,wBAAgB,uBAAuB,IAAI,kBAAkB,CAwB5D;AAED,UAAU,4BAA4B;IACpC,yBAAyB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAClE,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,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"}
|
package/dist/module-runner.js
CHANGED
|
@@ -11,7 +11,7 @@ import { bundleRouterModule, } from "./bundle-pipeline.js";
|
|
|
11
11
|
import { resolveRouterCacheLimit } from "./cache-config.js";
|
|
12
12
|
import { createRouterRuntimeCacheCounters, readRouterRuntimeCacheEntry, routerRuntimeCacheStat, } from "./cache-stats.js";
|
|
13
13
|
import { compilerModuleContextForSource, createClientRouteInferenceCache, formatClientRouteInferenceDiagnostic, inferClientRouteModule, } from "./client-route-inference.js";
|
|
14
|
-
import { vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
|
|
14
|
+
import { viteDefineCacheKey, vitePluginsCacheKey } from "./vite-plugin-cache-key.js";
|
|
15
15
|
const runnerConfig = {
|
|
16
16
|
configFile: false,
|
|
17
17
|
logLevel: "silent",
|
|
@@ -157,6 +157,7 @@ export async function importAppRouterBuiltFileModule(options) {
|
|
|
157
157
|
export async function bundleAppRouterSourceModule(options) {
|
|
158
158
|
const output = await bundleRouterModule({
|
|
159
159
|
code: options.code,
|
|
160
|
+
define: options.define,
|
|
160
161
|
externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,
|
|
161
162
|
filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), "module.js"),
|
|
162
163
|
platform: "node",
|
|
@@ -251,7 +252,7 @@ async function transformServerSourceFile(options) {
|
|
|
251
252
|
for (const diagnostic of clientInference.diagnostics) {
|
|
252
253
|
console.warn(formatClientRouteInferenceDiagnostic(diagnostic));
|
|
253
254
|
}
|
|
254
|
-
const cacheKey = `${options.serverOutput}\0${options.dev ? "dev" : "prod"}\0${options.filename}\0${transformedSourceHash}\0${clientInference.clientBoundaryImports.join("\0")}\0${clientInference.clientBoundaryFallbackImports.join("\0")}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
255
|
+
const cacheKey = `${options.serverOutput}\0${options.dev ? "dev" : "prod"}\0${options.filename}\0${transformedSourceHash}\0${clientInference.clientBoundaryImports.join("\0")}\0${clientInference.clientBoundaryFallbackImports.join("\0")}\0${viteDefineCacheKey(options.define)}\0${vitePluginsCacheKey(options.vitePlugins)}`;
|
|
255
256
|
const cached = readRouterRuntimeCacheEntry(serverSourceTransformCache, cacheKey, serverSourceTransformCacheCounters);
|
|
256
257
|
if (cached !== undefined) {
|
|
257
258
|
return cached;
|
|
@@ -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 { existsSync, readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, 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 {\n createRunnableDevEnvironment,\n mergeConfig,\n resolveConfig,\n type InlineConfig,\n type PluginOption,\n type RunnableDevEnvironment,\n} 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();\nconst packageTypeCache = new Map<string, string | undefined>();\nconst runnerVirtualModulePrefix = \"virtual:mreact-router-source/\";\nconst runnerVirtualModules = new Map<string, string>();\nlet sharedRunnerEnvironment: Promise<RunnableDevEnvironment> | undefined;\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 externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: 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 externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: 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 sourcefile = options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\");\n const executableCode = withNodeRequireShimForEsmBundle({\n code: withFileImportMetaUrl(code, sourcefile),\n filename: sourcefile,\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 publicId = `${runnerVirtualModulePrefix}${encodedLabel}-${Date.now()}-${Math.random()}.mjs`;\n runnerVirtualModules.set(publicId, executableCode);\n\n try {\n return await importWithSharedRunner<T>(publicId, { invalidateEntry: true });\n } finally {\n runnerVirtualModules.delete(publicId);\n }\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\n return await importWithSharedRunner<T>(url, { invalidateEntry: true });\n}\n\nasync function importWithSharedRunner<T>(\n moduleId: string,\n options?: { invalidateEntry?: boolean | undefined },\n): Promise<T> {\n const environment = await getSharedRunnerEnvironment();\n const module = (await environment.runner.import(moduleId)) as T;\n\n if (options?.invalidateEntry === true) {\n const evaluatedModule =\n environment.runner.evaluatedModules.getModuleByUrl(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(`\\0${moduleId}`);\n\n if (evaluatedModule !== undefined) {\n environment.runner.evaluatedModules.invalidateModule(evaluatedModule);\n }\n }\n\n return module;\n}\n\nasync function getSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n if (sharedRunnerEnvironment !== undefined) {\n return await sharedRunnerEnvironment;\n }\n\n sharedRunnerEnvironment = createSharedRunnerEnvironment().catch((error) => {\n sharedRunnerEnvironment = undefined;\n throw error;\n });\n\n return await sharedRunnerEnvironment;\n}\n\nasync function createSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n const config = await resolveConfig(\n mergeConfig(runnerConfig, {\n cacheDir: process.cwd(),\n configFile: false,\n envDir: false,\n environments: {\n mreact_router: {\n consumer: \"server\",\n dev: { moduleRunnerTransform: true },\n resolve: {\n conditions: [\"node\"],\n external: true,\n mainFields: [],\n },\n },\n },\n plugins: [\n {\n name: \"mreact-router-source-module\",\n resolveId(source) {\n return runnerVirtualModules.has(source) ? `\\0${source}` : undefined;\n },\n load(id) {\n const source = id.startsWith(\"\\0\") ? id.slice(1) : id;\n\n return source.startsWith(runnerVirtualModulePrefix)\n ? runnerVirtualModules.get(source)\n : undefined;\n },\n },\n ],\n } satisfies InlineConfig),\n \"serve\",\n );\n const environment = createRunnableDevEnvironment(\"mreact_router\", config, {\n hot: false,\n runnerOptions: { hmr: { logger: false } },\n });\n await environment.init();\n\n return environment;\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 externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: 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 externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,\n filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\"),\n platform: \"node\",\n root: options.root,\n vitePlugins: options.vitePlugins,\n plugins: [\n workspacePackageResolutionPlugin(),\n ...(options.serverSourceTransform === undefined\n ? []\n : [serverSourceTransformPlugin(options.serverSourceTransform)]),\n ...(options.plugins ?? []),\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${clientInference.clientBoundaryFallbackImports.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 clientBoundaryFallbackImports: clientInference.clientBoundaryFallbackImports,\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 filename: 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 rewritten = rewriteNodeModulesExternalImports(options.code);\n const code = rewritten.code.replaceAll(\n \"createRequire(import.meta.url)\",\n `createRequire(${JSON.stringify(requireBaseUrl)})`,\n );\n const needsFilenameGlobalShim = needsCommonJsFilenameGlobalShim(options.code);\n const needsRequireShim = needsNodeRequireShim(options.code);\n\n if (\n !rewritten.needsNativeImport &&\n !rewritten.needsRequire &&\n !needsFilenameGlobalShim &&\n !needsRequireShim\n ) {\n return code;\n }\n\n return `${rewritten.needsNativeImport ? 'const __mreactNativeImport = Function(\"specifier\", \"return import(specifier)\");\\n' : \"\"}${\n needsFilenameGlobalShim\n ? `const __filename = ${JSON.stringify(options.filename)};\nconst __dirname = ${JSON.stringify(dirname(options.filename))};\n`\n : \"\"\n }${\n rewritten.needsRequire || needsRequireShim\n ? `import { createRequire as __mreactCreateRequire } from \"node:module\";\nconst __mreactRequire = __mreactCreateRequire(${JSON.stringify(requireBaseUrl)});\nconst require = __mreactRequire;\n`\n : \"\"\n }${code}`;\n}\n\nfunction needsCommonJsFilenameGlobalShim(code: string): boolean {\n return /\\b__(?:filename|dirname)\\b/.test(code);\n}\n\nfunction needsNodeRequireShim(code: string): boolean {\n return code.includes(\"Dynamic require of\") && /\\b__require\\s*=/.test(code);\n}\n\nfunction rewriteNodeModulesExternalImports(code: string): {\n code: string;\n needsNativeImport: boolean;\n needsRequire: boolean;\n} {\n const nativeImportBindings = new Map<string, string>();\n let needsNativeImport = false;\n let needsRequire = false;\n let importIndex = 0;\n const importFromPattern = /^import\\s+([^;\\n]+?)\\s+from\\s+([\"'])([^\"']+)\\2;?$/gm;\n const sideEffectImportPattern = /^import\\s+([\"'])([^\"']+)\\1;?$/gm;\n const withRewrittenImports = code.replace(\n importFromPattern,\n (statement: string, clause: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n const requireExpression = `__mreactRequire(${JSON.stringify(file)})`;\n return commonJsImportClauseToRequireStatements(\n clause.trim(),\n requireExpression,\n importIndex++,\n );\n }\n\n needsNativeImport = true;\n const rewritten = esmImportClauseToNativeImportStatements(\n clause.trim(),\n specifier,\n importIndex++,\n );\n for (const [name, replacement] of rewritten.bindings) {\n nativeImportBindings.set(name, replacement);\n }\n\n return rewritten.code;\n },\n );\n const rewrittenCode = withRewrittenImports.replace(\n sideEffectImportPattern,\n (statement: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n return `__mreactRequire(${JSON.stringify(file)});`;\n }\n\n needsNativeImport = true;\n return `await __mreactNativeImport(${JSON.stringify(specifier)});`;\n },\n );\n\n return {\n code:\n nativeImportBindings.size === 0\n ? rewrittenCode\n : replaceImportedIdentifiers(rewrittenCode, nativeImportBindings),\n needsNativeImport,\n needsRequire,\n };\n}\n\nfunction nodeModulesExternalImportPath(specifier: string): string | undefined {\n const file = externalImportFilePath(specifier);\n\n if (file === undefined || !isNodeModulesPath(file)) {\n return undefined;\n }\n\n return file;\n}\n\nfunction externalImportFilePath(specifier: string): string | undefined {\n if (specifier.startsWith(\"file://\")) {\n try {\n return fileURLToPath(specifier);\n } catch {\n return undefined;\n }\n }\n\n return isAbsolute(specifier) ? specifier : undefined;\n}\n\nfunction isNodeModulesPath(file: string): boolean {\n return file.split(sep).includes(\"node_modules\");\n}\n\nfunction isNodeImportableModuleFile(file: string): boolean {\n const extension = extname(file);\n\n return (\n extension === \".cjs\" || extension === \".mjs\" || extension === \".js\" || extension === \".node\"\n );\n}\n\nfunction isNodeCommonJsModuleFile(file: string): boolean {\n const extension = extname(file);\n\n if (extension === \".cjs\" || extension === \".cts\" || extension === \".node\") {\n return true;\n }\n\n if (extension === \".mjs\" || extension === \".mts\" || extension !== \".js\") {\n return false;\n }\n\n return nearestPackageType(file) !== \"module\";\n}\n\nfunction nearestPackageType(file: string): string | undefined {\n let directory = dirname(file);\n\n while (true) {\n const packageJson = join(directory, \"package.json\");\n\n if (packageTypeCache.has(packageJson)) {\n return packageTypeCache.get(packageJson);\n }\n\n if (existsSync(packageJson)) {\n const type = readPackageType(packageJson);\n packageTypeCache.set(packageJson, type);\n return type;\n }\n\n const parent = dirname(directory);\n\n if (parent === directory) {\n return undefined;\n }\n\n directory = parent;\n }\n}\n\nfunction readPackageType(packageJson: string): string | undefined {\n try {\n const parsed = JSON.parse(readFileSync(packageJson, \"utf8\")) as { type?: unknown };\n\n return typeof parsed.type === \"string\" ? parsed.type : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction commonJsImportClauseToRequireStatements(\n clause: string,\n requireExpression: string,\n importIndex: number,\n): string {\n if (clause.startsWith(\"* as \")) {\n return `const ${clause.slice(5).trim()} = ${requireExpression};`;\n }\n\n if (clause.startsWith(\"{\")) {\n return namedCommonJsImportsToRequireStatements(clause, requireExpression);\n }\n\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n return `const ${clause} = ${requireExpression};`;\n }\n\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n const temporaryName = `__mreactExternalCommonJs${importIndex}`;\n const statements = [\n `const ${temporaryName} = ${requireExpression};`,\n `const ${defaultName} = ${temporaryName};`,\n ];\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n statements.push(namedCommonJsImportsToRequireStatements(namedOrNamespace, temporaryName));\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction esmImportClauseToNativeImportStatements(\n clause: string,\n specifier: string,\n importIndex: number,\n): { bindings: Map<string, string>; code: string } {\n const bindings = new Map<string, string>();\n const temporaryName = `__mreactExternalModule${importIndex}`;\n const statements = [\n `const ${temporaryName} = await __mreactNativeImport(${JSON.stringify(specifier)});`,\n ];\n\n if (clause.startsWith(\"* as \")) {\n statements.push(`const ${clause.slice(5).trim()} = ${temporaryName};`);\n } else if (clause.startsWith(\"{\")) {\n collectNamedEsmImportBindings(clause, temporaryName, bindings);\n } else {\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n bindings.set(clause, `${temporaryName}.default`);\n } else {\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n bindings.set(defaultName, `${temporaryName}.default`);\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n collectNamedEsmImportBindings(namedOrNamespace, temporaryName, bindings);\n }\n }\n }\n\n return { bindings, code: statements.join(\"\\n\") };\n}\n\nfunction collectNamedEsmImportBindings(\n clause: string,\n moduleName: string,\n bindings: Map<string, string>,\n): void {\n for (const binding of namedImportBindings(clause)) {\n const replacement =\n binding.imported === \"default\"\n ? `${moduleName}.default`\n : `${moduleName}[${JSON.stringify(binding.imported)}]`;\n bindings.set(binding.local, replacement);\n }\n}\n\nfunction namedCommonJsImportsToRequireStatements(clause: string, sourceExpression: string): string {\n const objectBindings: string[] = [];\n const statements: string[] = [];\n\n for (const binding of namedImportBindings(clause)) {\n if (binding.imported === \"default\") {\n statements.push(`const ${binding.local} = ${sourceExpression};`);\n } else if (binding.imported === binding.local) {\n objectBindings.push(binding.imported);\n } else {\n objectBindings.push(`${JSON.stringify(binding.imported)}: ${binding.local}`);\n }\n }\n\n if (objectBindings.length > 0) {\n statements.unshift(`const { ${objectBindings.join(\", \")} } = ${sourceExpression};`);\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction namedImportBindings(clause: string): Array<{ imported: string; local: string }> {\n return clause\n .slice(1, -1)\n .split(\",\")\n .map((binding) => binding.trim())\n .filter((binding) => binding.length > 0)\n .map((binding) => {\n const alias = binding.match(/^(.+?)\\s+as\\s+(.+)$/);\n const imported = alias?.[1]?.trim() ?? binding;\n const local = alias?.[2]?.trim() ?? binding;\n\n return { imported, local };\n });\n}\n\nfunction replaceImportedIdentifiers(code: string, bindings: ReadonlyMap<string, string>): string {\n let rewritten = \"\";\n let index = 0;\n\n while (index < code.length) {\n const char = code[index];\n const next = code[index + 1];\n\n if (char === '\"' || char === \"'\") {\n const end = quotedStringEnd(code, index, char);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"`\") {\n const end = templateLiteralEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n const end = lineCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n const end = blockCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (isIdentifierStart(char)) {\n const end = identifierEnd(code, index);\n const identifier = code.slice(index, end);\n const replacement = bindings.get(identifier);\n\n if (replacement !== undefined && shouldReplaceImportedIdentifier(code, index, end)) {\n rewritten += importedIdentifierReplacement(code, index, end, identifier, replacement);\n } else {\n rewritten += identifier;\n }\n\n index = end;\n continue;\n }\n\n rewritten += char;\n index += 1;\n }\n\n return rewritten;\n}\n\nfunction shouldReplaceImportedIdentifier(code: string, start: number, end: number): boolean {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return previous !== \".\" && previous !== \"?\" && next !== \":\";\n}\n\nfunction importedIdentifierReplacement(\n code: string,\n start: number,\n end: number,\n identifier: string,\n replacement: string,\n): string {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return (previous === \"{\" || previous === \",\") && (next === \",\" || next === \"}\")\n ? `${identifier}: ${replacement}`\n : replacement;\n}\n\nfunction previousNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index - 1; position >= 0; position -= 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction nextNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index; position < code.length; position += 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction quotedStringEnd(code: string, start: number, quote: string): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === quote) {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction templateLiteralEnd(code: string, start: number): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === \"`\") {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction lineCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"\\n\", start + 2);\n\n return end === -1 ? code.length : end;\n}\n\nfunction blockCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"*/\", start + 2);\n\n return end === -1 ? code.length : end + 2;\n}\n\nfunction identifierEnd(code: string, start: number): number {\n let end = start + 1;\n\n while (end < code.length && isIdentifierPart(code[end] ?? \"\")) {\n end += 1;\n }\n\n return end;\n}\n\nfunction isIdentifierStart(char: string | undefined): boolean {\n return char !== undefined && /[A-Za-z_$]/u.test(char);\n}\n\nfunction isIdentifierPart(char: string): boolean {\n return /[A-Za-z0-9_$]/u.test(char);\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 [\n \"react\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/client\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/server\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"react/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\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/hooks\",\n { entry: \"hooks-entry\", 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 /^(?:react(?:\\/jsx-(?:dev-)?runtime)?|react-dom(?:\\/(?:client|server))?|@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 { existsSync, readFileSync } from \"node:fs\";\nimport { readFile } from \"node:fs/promises\";\nimport { dirname, extname, isAbsolute, 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 {\n createRunnableDevEnvironment,\n mergeConfig,\n resolveConfig,\n type InlineConfig,\n type PluginOption,\n type RunnableDevEnvironment,\n type UserConfig,\n} 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 { viteDefineCacheKey, 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();\nconst packageTypeCache = new Map<string, string | undefined>();\nconst runnerVirtualModulePrefix = \"virtual:mreact-router-source/\";\nconst runnerVirtualModules = new Map<string, string>();\nlet sharedRunnerEnvironment: Promise<RunnableDevEnvironment> | undefined;\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 define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: 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 define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: 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 sourcefile = options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\");\n const executableCode = withNodeRequireShimForEsmBundle({\n code: withFileImportMetaUrl(code, sourcefile),\n filename: sourcefile,\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 publicId = `${runnerVirtualModulePrefix}${encodedLabel}-${Date.now()}-${Math.random()}.mjs`;\n runnerVirtualModules.set(publicId, executableCode);\n\n try {\n return await importWithSharedRunner<T>(publicId, { invalidateEntry: true });\n } finally {\n runnerVirtualModules.delete(publicId);\n }\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\n return await importWithSharedRunner<T>(url, { invalidateEntry: true });\n}\n\nasync function importWithSharedRunner<T>(\n moduleId: string,\n options?: { invalidateEntry?: boolean | undefined },\n): Promise<T> {\n const environment = await getSharedRunnerEnvironment();\n const module = (await environment.runner.import(moduleId)) as T;\n\n if (options?.invalidateEntry === true) {\n const evaluatedModule =\n environment.runner.evaluatedModules.getModuleByUrl(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(moduleId) ??\n environment.runner.evaluatedModules.getModuleById(`\\0${moduleId}`);\n\n if (evaluatedModule !== undefined) {\n environment.runner.evaluatedModules.invalidateModule(evaluatedModule);\n }\n }\n\n return module;\n}\n\nasync function getSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n if (sharedRunnerEnvironment !== undefined) {\n return await sharedRunnerEnvironment;\n }\n\n sharedRunnerEnvironment = createSharedRunnerEnvironment().catch((error) => {\n sharedRunnerEnvironment = undefined;\n throw error;\n });\n\n return await sharedRunnerEnvironment;\n}\n\nasync function createSharedRunnerEnvironment(): Promise<RunnableDevEnvironment> {\n const config = await resolveConfig(\n mergeConfig(runnerConfig, {\n cacheDir: process.cwd(),\n configFile: false,\n envDir: false,\n environments: {\n mreact_router: {\n consumer: \"server\",\n dev: { moduleRunnerTransform: true },\n resolve: {\n conditions: [\"node\"],\n external: true,\n mainFields: [],\n },\n },\n },\n plugins: [\n {\n name: \"mreact-router-source-module\",\n resolveId(source) {\n return runnerVirtualModules.has(source) ? `\\0${source}` : undefined;\n },\n load(id) {\n const source = id.startsWith(\"\\0\") ? id.slice(1) : id;\n\n return source.startsWith(runnerVirtualModulePrefix)\n ? runnerVirtualModules.get(source)\n : undefined;\n },\n },\n ],\n } satisfies InlineConfig),\n \"serve\",\n );\n const environment = createRunnableDevEnvironment(\"mreact_router\", config, {\n hot: false,\n runnerOptions: { hmr: { logger: false } },\n });\n await environment.init();\n\n return environment;\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 define?: UserConfig[\"define\"] | undefined;\n externalizeAppSourceModuleDirs?: readonly string[] | undefined;\n label: string;\n plugins?: readonly RouterCompatPlugin[] | undefined;\n resolveDir?: string | undefined;\n root?: 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 define: options.define,\n externalizeAppSourceModuleDirs: options.externalizeAppSourceModuleDirs,\n filename: options.sourcefile ?? join(options.resolveDir ?? process.cwd(), \"module.js\"),\n platform: \"node\",\n root: options.root,\n vitePlugins: options.vitePlugins,\n plugins: [\n workspacePackageResolutionPlugin(),\n ...(options.serverSourceTransform === undefined\n ? []\n : [serverSourceTransformPlugin(options.serverSourceTransform)]),\n ...(options.plugins ?? []),\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 define?: UserConfig[\"define\"] | 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${clientInference.clientBoundaryFallbackImports.join(\"\\0\")}\\0${viteDefineCacheKey(options.define)}\\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 clientBoundaryFallbackImports: clientInference.clientBoundaryFallbackImports,\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 filename: 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 rewritten = rewriteNodeModulesExternalImports(options.code);\n const code = rewritten.code.replaceAll(\n \"createRequire(import.meta.url)\",\n `createRequire(${JSON.stringify(requireBaseUrl)})`,\n );\n const needsFilenameGlobalShim = needsCommonJsFilenameGlobalShim(options.code);\n const needsRequireShim = needsNodeRequireShim(options.code);\n\n if (\n !rewritten.needsNativeImport &&\n !rewritten.needsRequire &&\n !needsFilenameGlobalShim &&\n !needsRequireShim\n ) {\n return code;\n }\n\n return `${rewritten.needsNativeImport ? 'const __mreactNativeImport = Function(\"specifier\", \"return import(specifier)\");\\n' : \"\"}${\n needsFilenameGlobalShim\n ? `const __filename = ${JSON.stringify(options.filename)};\nconst __dirname = ${JSON.stringify(dirname(options.filename))};\n`\n : \"\"\n }${\n rewritten.needsRequire || needsRequireShim\n ? `import { createRequire as __mreactCreateRequire } from \"node:module\";\nconst __mreactRequire = __mreactCreateRequire(${JSON.stringify(requireBaseUrl)});\nconst require = __mreactRequire;\n`\n : \"\"\n }${code}`;\n}\n\nfunction needsCommonJsFilenameGlobalShim(code: string): boolean {\n return /\\b__(?:filename|dirname)\\b/.test(code);\n}\n\nfunction needsNodeRequireShim(code: string): boolean {\n return code.includes(\"Dynamic require of\") && /\\b__require\\s*=/.test(code);\n}\n\nfunction rewriteNodeModulesExternalImports(code: string): {\n code: string;\n needsNativeImport: boolean;\n needsRequire: boolean;\n} {\n const nativeImportBindings = new Map<string, string>();\n let needsNativeImport = false;\n let needsRequire = false;\n let importIndex = 0;\n const importFromPattern = /^import\\s+([^;\\n]+?)\\s+from\\s+([\"'])([^\"']+)\\2;?$/gm;\n const sideEffectImportPattern = /^import\\s+([\"'])([^\"']+)\\1;?$/gm;\n const withRewrittenImports = code.replace(\n importFromPattern,\n (statement: string, clause: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n const requireExpression = `__mreactRequire(${JSON.stringify(file)})`;\n return commonJsImportClauseToRequireStatements(\n clause.trim(),\n requireExpression,\n importIndex++,\n );\n }\n\n needsNativeImport = true;\n const rewritten = esmImportClauseToNativeImportStatements(\n clause.trim(),\n specifier,\n importIndex++,\n );\n for (const [name, replacement] of rewritten.bindings) {\n nativeImportBindings.set(name, replacement);\n }\n\n return rewritten.code;\n },\n );\n const rewrittenCode = withRewrittenImports.replace(\n sideEffectImportPattern,\n (statement: string, _quote: string, specifier: string) => {\n const file = nodeModulesExternalImportPath(specifier);\n\n if (file === undefined || !isNodeImportableModuleFile(file)) {\n return statement;\n }\n\n if (isNodeCommonJsModuleFile(file)) {\n needsRequire = true;\n return `__mreactRequire(${JSON.stringify(file)});`;\n }\n\n needsNativeImport = true;\n return `await __mreactNativeImport(${JSON.stringify(specifier)});`;\n },\n );\n\n return {\n code:\n nativeImportBindings.size === 0\n ? rewrittenCode\n : replaceImportedIdentifiers(rewrittenCode, nativeImportBindings),\n needsNativeImport,\n needsRequire,\n };\n}\n\nfunction nodeModulesExternalImportPath(specifier: string): string | undefined {\n const file = externalImportFilePath(specifier);\n\n if (file === undefined || !isNodeModulesPath(file)) {\n return undefined;\n }\n\n return file;\n}\n\nfunction externalImportFilePath(specifier: string): string | undefined {\n if (specifier.startsWith(\"file://\")) {\n try {\n return fileURLToPath(specifier);\n } catch {\n return undefined;\n }\n }\n\n return isAbsolute(specifier) ? specifier : undefined;\n}\n\nfunction isNodeModulesPath(file: string): boolean {\n return file.split(sep).includes(\"node_modules\");\n}\n\nfunction isNodeImportableModuleFile(file: string): boolean {\n const extension = extname(file);\n\n return (\n extension === \".cjs\" || extension === \".mjs\" || extension === \".js\" || extension === \".node\"\n );\n}\n\nfunction isNodeCommonJsModuleFile(file: string): boolean {\n const extension = extname(file);\n\n if (extension === \".cjs\" || extension === \".cts\" || extension === \".node\") {\n return true;\n }\n\n if (extension === \".mjs\" || extension === \".mts\" || extension !== \".js\") {\n return false;\n }\n\n return nearestPackageType(file) !== \"module\";\n}\n\nfunction nearestPackageType(file: string): string | undefined {\n let directory = dirname(file);\n\n while (true) {\n const packageJson = join(directory, \"package.json\");\n\n if (packageTypeCache.has(packageJson)) {\n return packageTypeCache.get(packageJson);\n }\n\n if (existsSync(packageJson)) {\n const type = readPackageType(packageJson);\n packageTypeCache.set(packageJson, type);\n return type;\n }\n\n const parent = dirname(directory);\n\n if (parent === directory) {\n return undefined;\n }\n\n directory = parent;\n }\n}\n\nfunction readPackageType(packageJson: string): string | undefined {\n try {\n const parsed = JSON.parse(readFileSync(packageJson, \"utf8\")) as { type?: unknown };\n\n return typeof parsed.type === \"string\" ? parsed.type : undefined;\n } catch {\n return undefined;\n }\n}\n\nfunction commonJsImportClauseToRequireStatements(\n clause: string,\n requireExpression: string,\n importIndex: number,\n): string {\n if (clause.startsWith(\"* as \")) {\n return `const ${clause.slice(5).trim()} = ${requireExpression};`;\n }\n\n if (clause.startsWith(\"{\")) {\n return namedCommonJsImportsToRequireStatements(clause, requireExpression);\n }\n\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n return `const ${clause} = ${requireExpression};`;\n }\n\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n const temporaryName = `__mreactExternalCommonJs${importIndex}`;\n const statements = [\n `const ${temporaryName} = ${requireExpression};`,\n `const ${defaultName} = ${temporaryName};`,\n ];\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n statements.push(namedCommonJsImportsToRequireStatements(namedOrNamespace, temporaryName));\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction esmImportClauseToNativeImportStatements(\n clause: string,\n specifier: string,\n importIndex: number,\n): { bindings: Map<string, string>; code: string } {\n const bindings = new Map<string, string>();\n const temporaryName = `__mreactExternalModule${importIndex}`;\n const statements = [\n `const ${temporaryName} = await __mreactNativeImport(${JSON.stringify(specifier)});`,\n ];\n\n if (clause.startsWith(\"* as \")) {\n statements.push(`const ${clause.slice(5).trim()} = ${temporaryName};`);\n } else if (clause.startsWith(\"{\")) {\n collectNamedEsmImportBindings(clause, temporaryName, bindings);\n } else {\n const commaIndex = clause.indexOf(\",\");\n\n if (commaIndex === -1) {\n bindings.set(clause, `${temporaryName}.default`);\n } else {\n const defaultName = clause.slice(0, commaIndex).trim();\n const namedOrNamespace = clause.slice(commaIndex + 1).trim();\n bindings.set(defaultName, `${temporaryName}.default`);\n\n if (namedOrNamespace.startsWith(\"* as \")) {\n statements.push(`const ${namedOrNamespace.slice(5).trim()} = ${temporaryName};`);\n } else if (namedOrNamespace.startsWith(\"{\")) {\n collectNamedEsmImportBindings(namedOrNamespace, temporaryName, bindings);\n }\n }\n }\n\n return { bindings, code: statements.join(\"\\n\") };\n}\n\nfunction collectNamedEsmImportBindings(\n clause: string,\n moduleName: string,\n bindings: Map<string, string>,\n): void {\n for (const binding of namedImportBindings(clause)) {\n const replacement =\n binding.imported === \"default\"\n ? `${moduleName}.default`\n : `${moduleName}[${JSON.stringify(binding.imported)}]`;\n bindings.set(binding.local, replacement);\n }\n}\n\nfunction namedCommonJsImportsToRequireStatements(clause: string, sourceExpression: string): string {\n const objectBindings: string[] = [];\n const statements: string[] = [];\n\n for (const binding of namedImportBindings(clause)) {\n if (binding.imported === \"default\") {\n statements.push(`const ${binding.local} = ${sourceExpression};`);\n } else if (binding.imported === binding.local) {\n objectBindings.push(binding.imported);\n } else {\n objectBindings.push(`${JSON.stringify(binding.imported)}: ${binding.local}`);\n }\n }\n\n if (objectBindings.length > 0) {\n statements.unshift(`const { ${objectBindings.join(\", \")} } = ${sourceExpression};`);\n }\n\n return statements.join(\"\\n\");\n}\n\nfunction namedImportBindings(clause: string): Array<{ imported: string; local: string }> {\n return clause\n .slice(1, -1)\n .split(\",\")\n .map((binding) => binding.trim())\n .filter((binding) => binding.length > 0)\n .map((binding) => {\n const alias = binding.match(/^(.+?)\\s+as\\s+(.+)$/);\n const imported = alias?.[1]?.trim() ?? binding;\n const local = alias?.[2]?.trim() ?? binding;\n\n return { imported, local };\n });\n}\n\nfunction replaceImportedIdentifiers(code: string, bindings: ReadonlyMap<string, string>): string {\n let rewritten = \"\";\n let index = 0;\n\n while (index < code.length) {\n const char = code[index];\n const next = code[index + 1];\n\n if (char === '\"' || char === \"'\") {\n const end = quotedStringEnd(code, index, char);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"`\") {\n const end = templateLiteralEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"/\") {\n const end = lineCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (char === \"/\" && next === \"*\") {\n const end = blockCommentEnd(code, index);\n rewritten += code.slice(index, end);\n index = end;\n continue;\n }\n\n if (isIdentifierStart(char)) {\n const end = identifierEnd(code, index);\n const identifier = code.slice(index, end);\n const replacement = bindings.get(identifier);\n\n if (replacement !== undefined && shouldReplaceImportedIdentifier(code, index, end)) {\n rewritten += importedIdentifierReplacement(code, index, end, identifier, replacement);\n } else {\n rewritten += identifier;\n }\n\n index = end;\n continue;\n }\n\n rewritten += char;\n index += 1;\n }\n\n return rewritten;\n}\n\nfunction shouldReplaceImportedIdentifier(code: string, start: number, end: number): boolean {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return previous !== \".\" && previous !== \"?\" && next !== \":\";\n}\n\nfunction importedIdentifierReplacement(\n code: string,\n start: number,\n end: number,\n identifier: string,\n replacement: string,\n): string {\n const previous = previousNonWhitespace(code, start);\n const next = nextNonWhitespace(code, end);\n\n return (previous === \"{\" || previous === \",\") && (next === \",\" || next === \"}\")\n ? `${identifier}: ${replacement}`\n : replacement;\n}\n\nfunction previousNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index - 1; position >= 0; position -= 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction nextNonWhitespace(code: string, index: number): string | undefined {\n for (let position = index; position < code.length; position += 1) {\n if (!/\\s/u.test(code[position] ?? \"\")) {\n return code[position];\n }\n }\n\n return undefined;\n}\n\nfunction quotedStringEnd(code: string, start: number, quote: string): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === quote) {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction templateLiteralEnd(code: string, start: number): number {\n for (let index = start + 1; index < code.length; index += 1) {\n if (code[index] === \"\\\\\") {\n index += 1;\n } else if (code[index] === \"`\") {\n return index + 1;\n }\n }\n\n return code.length;\n}\n\nfunction lineCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"\\n\", start + 2);\n\n return end === -1 ? code.length : end;\n}\n\nfunction blockCommentEnd(code: string, start: number): number {\n const end = code.indexOf(\"*/\", start + 2);\n\n return end === -1 ? code.length : end + 2;\n}\n\nfunction identifierEnd(code: string, start: number): number {\n let end = start + 1;\n\n while (end < code.length && isIdentifierPart(code[end] ?? \"\")) {\n end += 1;\n }\n\n return end;\n}\n\nfunction isIdentifierStart(char: string | undefined): boolean {\n return char !== undefined && /[A-Za-z_$]/u.test(char);\n}\n\nfunction isIdentifierPart(char: string): boolean {\n return /[A-Za-z0-9_$]/u.test(char);\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 [\n \"react\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/client\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react-dom/server\",\n { entry: \"index\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\n [\n \"react/jsx-dev-runtime\",\n {\n entry: \"jsx-dev-runtime\",\n monorepoDir: \"react-compat\",\n packageName: \"@reckona/mreact-compat\",\n },\n ],\n [\n \"react/jsx-runtime\",\n { entry: \"jsx-runtime\", monorepoDir: \"react-compat\", packageName: \"@reckona/mreact-compat\" },\n ],\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/hooks\",\n { entry: \"hooks-entry\", 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 /^(?:react(?:\\/jsx-(?:dev-)?runtime)?|react-dom(?:\\/(?:client|server))?|@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"]}
|
package/dist/render.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import type { AppRoute, RouteMatcher } from "./routes.js";
|
|
|
3
3
|
import { type AppRouterServerActionOptions, type PreparedFormActionReference } from "./actions.js";
|
|
4
4
|
import { type AppRouterCache } from "./cache.js";
|
|
5
5
|
import { type AppRouterImportPolicy } from "./import-policy.js";
|
|
6
|
-
import type { PluginOption } from "vite";
|
|
6
|
+
import type { PluginOption, UserConfig } from "vite";
|
|
7
7
|
import type { BuiltServerModuleArtifact } from "./build.js";
|
|
8
8
|
import { type AppRouterLogger } from "./logger.js";
|
|
9
9
|
import { type RouterRuntimeCacheStat } from "./cache-stats.js";
|
|
@@ -18,6 +18,7 @@ export interface RenderAppRequestOptions {
|
|
|
18
18
|
clientScripts?: ReadonlyMap<string, string>;
|
|
19
19
|
clientStylesByFile?: ReadonlyMap<string, readonly string[]>;
|
|
20
20
|
clientStyles?: ReadonlyMap<string, readonly string[]>;
|
|
21
|
+
define?: UserConfig["define"] | undefined;
|
|
21
22
|
env?: unknown;
|
|
22
23
|
importPolicy?: AppRouterImportPolicy | undefined;
|
|
23
24
|
instrumentation?: RouterInstrumentation | undefined;
|
|
@@ -48,6 +49,7 @@ export interface AppRouterResponseHookContext {
|
|
|
48
49
|
}
|
|
49
50
|
export declare function preloadBuiltRequestModules(options: {
|
|
50
51
|
appDir: string;
|
|
52
|
+
define?: UserConfig["define"] | undefined;
|
|
51
53
|
includeRenderModules?: boolean | undefined;
|
|
52
54
|
importPolicy?: AppRouterImportPolicy | undefined;
|
|
53
55
|
routes: readonly AppRoute[];
|
|
@@ -67,6 +69,7 @@ export type AppRouterMiddlewareResult = {
|
|
|
67
69
|
};
|
|
68
70
|
export declare function resolveAppRouterMiddleware(options: {
|
|
69
71
|
appDir: string;
|
|
72
|
+
define?: UserConfig["define"] | undefined;
|
|
70
73
|
importPolicy?: AppRouterImportPolicy | undefined;
|
|
71
74
|
instrumentation?: RouterInstrumentation | undefined;
|
|
72
75
|
middlewareControl?: RouteMiddlewareControl | undefined;
|
|
@@ -80,6 +83,7 @@ export declare function resolveAppRouterMiddleware(options: {
|
|
|
80
83
|
export declare function bundleMiddlewareModuleCode(options: {
|
|
81
84
|
appDir: string;
|
|
82
85
|
code: string;
|
|
86
|
+
define?: UserConfig["define"] | undefined;
|
|
83
87
|
file: string;
|
|
84
88
|
importPolicy?: AppRouterImportPolicy | undefined;
|
|
85
89
|
vitePlugins?: readonly PluginOption[] | undefined;
|
|
@@ -87,6 +91,7 @@ export declare function bundleMiddlewareModuleCode(options: {
|
|
|
87
91
|
export declare function bundleRouteLoaderModuleCode(options: {
|
|
88
92
|
appDir: string;
|
|
89
93
|
code: string;
|
|
94
|
+
define?: UserConfig["define"] | undefined;
|
|
90
95
|
externalizeAppSourceModuleDirs?: readonly string[] | undefined;
|
|
91
96
|
filename: string;
|
|
92
97
|
importPolicy?: AppRouterImportPolicy | undefined;
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAUA,OAAO,EAML,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|