@reckona/mreact-router 0.0.193 → 0.0.194
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/build.d.ts.map +1 -1
- package/dist/build.js +28 -2
- package/dist/build.js.map +1 -1
- package/dist/built-server-module-artifacts.d.ts +1 -0
- package/dist/built-server-module-artifacts.d.ts.map +1 -1
- package/dist/built-server-module-artifacts.js +11 -0
- package/dist/built-server-module-artifacts.js.map +1 -1
- package/dist/render.d.ts +1 -0
- package/dist/render.d.ts.map +1 -1
- package/dist/render.js +42 -3
- package/dist/render.js.map +1 -1
- package/dist/serve.d.ts +1 -1
- package/dist/serve.d.ts.map +1 -1
- package/dist/serve.js +52 -7
- package/dist/serve.js.map +1 -1
- package/dist/vite.d.ts.map +1 -1
- package/dist/vite.js +31 -0
- package/dist/vite.js.map +1 -1
- package/package.json +11 -11
- package/src/build.ts +37 -2
- package/src/built-server-module-artifacts.ts +15 -0
- package/src/render.ts +68 -3
- package/src/serve.ts +76 -7
- package/src/vite.ts +43 -0
|
@@ -16,4 +16,5 @@ export declare function loadBuiltServerModuleArtifactsForRequest(runtime: BuiltS
|
|
|
16
16
|
includeRender?: boolean | undefined;
|
|
17
17
|
includeShells?: boolean | undefined;
|
|
18
18
|
}): Promise<void>;
|
|
19
|
+
export declare function loadBuiltResponseHookArtifacts(runtime: BuiltServerModuleArtifactRuntime): Promise<void>;
|
|
19
20
|
//# sourceMappingURL=built-server-module-artifacts.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-server-module-artifacts.d.ts","sourceRoot":"","sources":["../src/built-server-module-artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACzD,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,uBAAuB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,wBAAwB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACtD,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,6BAA6B,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzE,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,gCAAgC,EACzC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,IAAI,GAAE,6BAAqC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAIf;AA2DD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,QAAQ,CAAC,MAAM,CAAC,CAMlB;AAyDD,wBAAsB,wCAAwC,CAC5D,OAAO,EAAE,gCAAgC,EACzC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,GACL,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"built-server-module-artifacts.d.ts","sourceRoot":"","sources":["../src/built-server-module-artifacts.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAG5D,MAAM,WAAW,gCAAgC;IAC/C,MAAM,EAAE,MAAM,CAAC;IACf,yBAAyB,EAAE,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,wBAAwB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACzD,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,uBAAuB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrD,wBAAwB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtD,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,yBAAyB,CAAC,CAAC;IACtD,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChD;AAED,MAAM,MAAM,6BAA6B,GAAG,KAAK,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEzE,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,gCAAgC,EACzC,KAAK,EAAE,QAAQ,CAAC,MAAM,CAAC,EACvB,IAAI,GAAE,6BAAqC,GAC1C,OAAO,CAAC,IAAI,CAAC,CAIf;AA2DD,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,gCAAgC,GACxC,QAAQ,CAAC,MAAM,CAAC,CAMlB;AAyDD,wBAAsB,wCAAwC,CAC5D,OAAO,EAAE,gCAAgC,EACzC,SAAS,EAAE,MAAM,GAAG,SAAS,EAC7B,OAAO,GAAE;IACP,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACpC,aAAa,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;CAChC,GACL,OAAO,CAAC,IAAI,CAAC,CAyBf;AAED,wBAAsB,8BAA8B,CAClD,OAAO,EAAE,gCAAgC,GACxC,OAAO,CAAC,IAAI,CAAC,CASf"}
|
|
@@ -89,6 +89,8 @@ export async function loadBuiltServerModuleArtifactsForRequest(runtime, routeFil
|
|
|
89
89
|
const roots = [
|
|
90
90
|
join(runtime.appDir, "middleware.ts"),
|
|
91
91
|
join(runtime.appDir, "middleware.mreact.ts"),
|
|
92
|
+
join(runtime.appDir, "on-response.ts"),
|
|
93
|
+
join(runtime.appDir, "on-response.mreact.ts"),
|
|
92
94
|
...(routeFile === undefined
|
|
93
95
|
? []
|
|
94
96
|
: [
|
|
@@ -107,6 +109,15 @@ export async function loadBuiltServerModuleArtifactsForRequest(runtime, routeFil
|
|
|
107
109
|
}
|
|
108
110
|
}
|
|
109
111
|
}
|
|
112
|
+
export async function loadBuiltResponseHookArtifacts(runtime) {
|
|
113
|
+
const seen = new Set();
|
|
114
|
+
for (const file of [
|
|
115
|
+
join(runtime.appDir, "on-response.ts"),
|
|
116
|
+
join(runtime.appDir, "on-response.mreact.ts"),
|
|
117
|
+
]) {
|
|
118
|
+
await loadBuiltServerModuleArtifactClosure(runtime, file, seen, "request");
|
|
119
|
+
}
|
|
120
|
+
}
|
|
110
121
|
async function loadBuiltServerModuleArtifactClosure(runtime, file, seen, kind) {
|
|
111
122
|
for (const closureFile of builtServerModuleClosureFiles(runtime, file)) {
|
|
112
123
|
if (seen.has(closureFile)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"built-server-module-artifacts.js","sourceRoot":"","sources":["../src/built-server-module-artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join, normalize, sep } from \"node:path\";\nimport type { BuiltServerModuleArtifact } from \"./build.js\";\nimport { routeShellCandidates } from \"./route-shells.js\";\n\nexport interface BuiltServerModuleArtifactRuntime {\n appDir: string;\n serverModuleArtifactLoads: Map<string, Promise<void>>;\n serverModuleClosureFiles: Map<string, readonly string[]>;\n serverModuleFiles: ReadonlyMap<string, string>;\n serverModuleRenderFiles: ReadonlyMap<string, string>;\n serverModuleRequestFiles: ReadonlyMap<string, string>;\n serverModules: Map<string, BuiltServerModuleArtifact>;\n serverSourceFiles: ReadonlyMap<string, string>;\n}\n\nexport type BuiltServerModuleArtifactKind = \"all\" | \"render\" | \"request\";\n\nexport async function loadBuiltServerModuleArtifacts(\n runtime: BuiltServerModuleArtifactRuntime,\n files: Iterable<string>,\n kind: BuiltServerModuleArtifactKind = \"all\",\n): Promise<void> {\n for (const file of files) {\n await loadBuiltServerModuleArtifact(runtime, file, kind);\n }\n}\n\nasync function loadBuiltServerModuleArtifact(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n kind: BuiltServerModuleArtifactKind = \"all\",\n): Promise<void> {\n if (kind === \"all\") {\n await loadBuiltServerModuleArtifact(runtime, file, \"request\");\n await loadBuiltServerModuleArtifact(runtime, file, \"render\");\n return;\n }\n\n const artifactPath =\n kind === \"request\"\n ? runtime.serverModuleRequestFiles.get(file) ?? runtime.serverModuleFiles.get(file)\n : runtime.serverModuleRenderFiles.get(file) ?? runtime.serverModuleFiles.get(file);\n\n if (artifactPath === undefined) {\n return;\n }\n\n const cached = runtime.serverModuleArtifactLoads.get(`${kind}\\0${file}`);\n\n if (cached !== undefined) {\n await cached;\n return;\n }\n\n const loaded = readFile(artifactPath, \"utf8\")\n .then((text) => {\n const existing = runtime.serverModules.get(file) ?? {};\n runtime.serverModules.set(\n file,\n mergeBuiltServerModuleArtifacts(\n existing,\n hydrateBuiltServerModuleArtifact(\n parseBuiltJsonArtifact<BuiltServerModuleArtifact>(\n text,\n artifactPath,\n `built server module artifact for ${file}`,\n ),\n builtServerDirForArtifactPath(artifactPath),\n ),\n ),\n );\n })\n .catch((error) => {\n runtime.serverModuleArtifactLoads.delete(`${kind}\\0${file}`);\n if (isMissingFileError(error)) {\n throw builtArtifactReadError(`built server module artifact for ${file}`, artifactPath, error);\n }\n throw error;\n });\n runtime.serverModuleArtifactLoads.set(`${kind}\\0${file}`, loaded);\n\n await loaded;\n}\n\nexport function allBuiltServerModuleFiles(\n runtime: BuiltServerModuleArtifactRuntime,\n): Iterable<string> {\n return new Set([\n ...runtime.serverModuleFiles.keys(),\n ...runtime.serverModuleRequestFiles.keys(),\n ...runtime.serverModuleRenderFiles.keys(),\n ]);\n}\n\nfunction builtServerDirForArtifactPath(artifactPath: string): string {\n const marker = `${sep}server-modules${sep}`;\n const index = artifactPath.lastIndexOf(marker);\n\n return index === -1 ? dirname(dirname(artifactPath)) : artifactPath.slice(0, index);\n}\n\nfunction hydrateBuiltServerModuleArtifact(\n artifact: BuiltServerModuleArtifact,\n serverDir: string,\n): BuiltServerModuleArtifact {\n return {\n ...(artifact.analysis === undefined ? {} : { analysis: artifact.analysis }),\n ...(artifact.loader === undefined\n ? {}\n : { loader: hydrateBuiltServerModuleOutput(artifact.loader, serverDir) }),\n ...(artifact.routeMetadata === undefined\n ? {}\n : { routeMetadata: hydrateBuiltServerModuleOutput(artifact.routeMetadata, serverDir) }),\n ...(artifact.request === undefined\n ? {}\n : { request: hydrateBuiltServerModuleOutput(artifact.request, serverDir) }),\n ...(artifact.stream === undefined\n ? {}\n : { stream: hydrateBuiltServerModuleOutput(artifact.stream, serverDir) }),\n ...(artifact.string === undefined\n ? {}\n : { string: hydrateBuiltServerModuleOutput(artifact.string, serverDir) }),\n };\n}\n\nfunction hydrateBuiltServerModuleOutput<T extends { moduleFile?: string | undefined }>(\n output: T,\n serverDir: string,\n): T {\n if (output.moduleFile === undefined || isAbsolute(output.moduleFile)) {\n return output;\n }\n\n return {\n ...output,\n moduleFile: join(serverDir, safeBuiltServerManifestFilePath(output.moduleFile)),\n };\n}\n\nfunction mergeBuiltServerModuleArtifacts(\n existing: BuiltServerModuleArtifact,\n loaded: BuiltServerModuleArtifact,\n): BuiltServerModuleArtifact {\n return {\n ...existing,\n ...loaded,\n };\n}\n\nexport async function loadBuiltServerModuleArtifactsForRequest(\n runtime: BuiltServerModuleArtifactRuntime,\n routeFile: string | undefined,\n options: {\n includeRender?: boolean | undefined;\n includeShells?: boolean | undefined;\n } = {},\n): Promise<void> {\n const roots = [\n join(runtime.appDir, \"middleware.ts\"),\n join(runtime.appDir, \"middleware.mreact.ts\"),\n ...(routeFile === undefined\n ? []\n : [\n routeFile,\n ...(options.includeShells === false ? [] : shellFilesForRoute(runtime, routeFile)),\n ]),\n ];\n const seen = new Set<string>();\n\n for (const file of roots) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"request\");\n }\n\n if (options.includeRender === true) {\n seen.clear();\n for (const file of roots) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"render\");\n }\n }\n}\n\nasync function loadBuiltServerModuleArtifactClosure(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n seen: Set<string>,\n kind: BuiltServerModuleArtifactKind,\n): Promise<void> {\n for (const closureFile of builtServerModuleClosureFiles(runtime, file)) {\n if (seen.has(closureFile)) {\n continue;\n }\n seen.add(closureFile);\n await loadBuiltServerModuleArtifact(runtime, closureFile, kind);\n }\n}\n\nfunction builtServerModuleClosureFiles(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n): readonly string[] {\n const cached = runtime.serverModuleClosureFiles.get(file);\n if (cached !== undefined) {\n return cached;\n }\n\n const closure: string[] = [];\n collectBuiltServerModuleClosureFiles(runtime, file, new Set(), closure);\n runtime.serverModuleClosureFiles.set(file, closure);\n return closure;\n}\n\nfunction collectBuiltServerModuleClosureFiles(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n seen: Set<string>,\n closure: string[],\n): void {\n if (seen.has(file)) {\n return;\n }\n seen.add(file);\n closure.push(file);\n\n const source = runtime.serverSourceFiles.get(file);\n if (source === undefined) {\n return;\n }\n\n for (const specifier of localServerModuleSpecifiers(source)) {\n const resolved = resolveBuiltLocalServerSourceImport(runtime, file, specifier);\n if (resolved !== undefined) {\n collectBuiltServerModuleClosureFiles(runtime, resolved, seen, closure);\n }\n }\n}\n\nconst localServerModuleImportPattern =\n /\\b(?:import|export)\\s+(?:type\\s+)?(?:[^\"']*?\\s+from\\s*)?[\"'](?<source>\\.{1,2}\\/[^\"']+)[\"']/g;\n\nfunction localServerModuleSpecifiers(code: string): string[] {\n const specifiers = new Set<string>();\n localServerModuleImportPattern.lastIndex = 0;\n\n for (const match of code.matchAll(localServerModuleImportPattern)) {\n const source = match.groups?.source;\n\n if (source !== undefined) {\n specifiers.add(source);\n }\n }\n\n return Array.from(specifiers);\n}\n\nfunction resolveBuiltLocalServerSourceImport(\n runtime: BuiltServerModuleArtifactRuntime,\n fromFile: string,\n specifier: string,\n): string | undefined {\n const base = join(dirname(fromFile), specifier);\n\n for (const candidate of localServerSourceImportCandidates(base)) {\n if (runtime.serverSourceFiles.has(candidate)) {\n return candidate;\n }\n }\n\n return undefined;\n}\n\nfunction localServerSourceImportCandidates(base: string): string[] {\n const candidates = [base];\n\n if (base.endsWith(\".js\")) {\n const withoutJs = base.slice(0, -\".js\".length);\n candidates.push(`${withoutJs}.ts`, `${withoutJs}.tsx`, `${withoutJs}.mreact.tsx`);\n } else if (base.endsWith(\".jsx\")) {\n const withoutJsx = base.slice(0, -\".jsx\".length);\n candidates.push(`${withoutJsx}.tsx`, `${withoutJsx}.mreact.tsx`);\n } else if (base.endsWith(\".mreact\")) {\n candidates.push(`${base}.tsx`);\n } else {\n candidates.push(\n `${base}.ts`,\n `${base}.tsx`,\n `${base}.mreact.tsx`,\n join(base, \"index.ts\"),\n join(base, \"index.tsx\"),\n join(base, \"index.mreact.tsx\"),\n );\n }\n\n return candidates;\n}\n\nfunction shellFilesForRoute(\n runtime: BuiltServerModuleArtifactRuntime,\n routeFile: string,\n): string[] {\n return routeShellCandidates(runtime.appDir, routeFile)\n .map((candidate) => candidate.file)\n .filter((file) => runtime.serverSourceFiles.has(file));\n}\n\nfunction isMissingFileError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: unknown }).code === \"ENOENT\"\n );\n}\n\nfunction builtArtifactReadError(label: string, artifactPath: string, error: unknown): Error {\n const prefix = isMissingFileError(error) ? \"Missing\" : \"Unable to read\";\n const detail = error instanceof Error && error.message !== \"\" ? `: ${error.message}` : \"\";\n\n return new Error(`${prefix} ${label}: ${artifactPath}${detail}`, { cause: error });\n}\n\nfunction parseBuiltJsonArtifact<T>(text: string, artifactPath: string, label: string): T {\n try {\n return JSON.parse(text) as T;\n } catch (error) {\n const detail = error instanceof Error && error.message !== \"\" ? `: ${error.message}` : \"\";\n\n throw new Error(`Invalid ${label}: ${artifactPath}${detail}`, { cause: error });\n }\n}\n\nfunction safeBuiltServerManifestFilePath(pathname: string): string {\n const normalized = normalize(pathname);\n\n if (isAbsolute(normalized) || normalized === \"..\" || normalized.startsWith(\"../\")) {\n throw new Error(`Invalid built app manifest file path: ${pathname}`);\n }\n\n return normalized;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"built-server-module-artifacts.js","sourceRoot":"","sources":["../src/built-server-module-artifacts.ts"],"names":[],"mappings":"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","sourcesContent":["import { readFile } from \"node:fs/promises\";\nimport { dirname, isAbsolute, join, normalize, sep } from \"node:path\";\nimport type { BuiltServerModuleArtifact } from \"./build.js\";\nimport { routeShellCandidates } from \"./route-shells.js\";\n\nexport interface BuiltServerModuleArtifactRuntime {\n appDir: string;\n serverModuleArtifactLoads: Map<string, Promise<void>>;\n serverModuleClosureFiles: Map<string, readonly string[]>;\n serverModuleFiles: ReadonlyMap<string, string>;\n serverModuleRenderFiles: ReadonlyMap<string, string>;\n serverModuleRequestFiles: ReadonlyMap<string, string>;\n serverModules: Map<string, BuiltServerModuleArtifact>;\n serverSourceFiles: ReadonlyMap<string, string>;\n}\n\nexport type BuiltServerModuleArtifactKind = \"all\" | \"render\" | \"request\";\n\nexport async function loadBuiltServerModuleArtifacts(\n runtime: BuiltServerModuleArtifactRuntime,\n files: Iterable<string>,\n kind: BuiltServerModuleArtifactKind = \"all\",\n): Promise<void> {\n for (const file of files) {\n await loadBuiltServerModuleArtifact(runtime, file, kind);\n }\n}\n\nasync function loadBuiltServerModuleArtifact(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n kind: BuiltServerModuleArtifactKind = \"all\",\n): Promise<void> {\n if (kind === \"all\") {\n await loadBuiltServerModuleArtifact(runtime, file, \"request\");\n await loadBuiltServerModuleArtifact(runtime, file, \"render\");\n return;\n }\n\n const artifactPath =\n kind === \"request\"\n ? runtime.serverModuleRequestFiles.get(file) ?? runtime.serverModuleFiles.get(file)\n : runtime.serverModuleRenderFiles.get(file) ?? runtime.serverModuleFiles.get(file);\n\n if (artifactPath === undefined) {\n return;\n }\n\n const cached = runtime.serverModuleArtifactLoads.get(`${kind}\\0${file}`);\n\n if (cached !== undefined) {\n await cached;\n return;\n }\n\n const loaded = readFile(artifactPath, \"utf8\")\n .then((text) => {\n const existing = runtime.serverModules.get(file) ?? {};\n runtime.serverModules.set(\n file,\n mergeBuiltServerModuleArtifacts(\n existing,\n hydrateBuiltServerModuleArtifact(\n parseBuiltJsonArtifact<BuiltServerModuleArtifact>(\n text,\n artifactPath,\n `built server module artifact for ${file}`,\n ),\n builtServerDirForArtifactPath(artifactPath),\n ),\n ),\n );\n })\n .catch((error) => {\n runtime.serverModuleArtifactLoads.delete(`${kind}\\0${file}`);\n if (isMissingFileError(error)) {\n throw builtArtifactReadError(`built server module artifact for ${file}`, artifactPath, error);\n }\n throw error;\n });\n runtime.serverModuleArtifactLoads.set(`${kind}\\0${file}`, loaded);\n\n await loaded;\n}\n\nexport function allBuiltServerModuleFiles(\n runtime: BuiltServerModuleArtifactRuntime,\n): Iterable<string> {\n return new Set([\n ...runtime.serverModuleFiles.keys(),\n ...runtime.serverModuleRequestFiles.keys(),\n ...runtime.serverModuleRenderFiles.keys(),\n ]);\n}\n\nfunction builtServerDirForArtifactPath(artifactPath: string): string {\n const marker = `${sep}server-modules${sep}`;\n const index = artifactPath.lastIndexOf(marker);\n\n return index === -1 ? dirname(dirname(artifactPath)) : artifactPath.slice(0, index);\n}\n\nfunction hydrateBuiltServerModuleArtifact(\n artifact: BuiltServerModuleArtifact,\n serverDir: string,\n): BuiltServerModuleArtifact {\n return {\n ...(artifact.analysis === undefined ? {} : { analysis: artifact.analysis }),\n ...(artifact.loader === undefined\n ? {}\n : { loader: hydrateBuiltServerModuleOutput(artifact.loader, serverDir) }),\n ...(artifact.routeMetadata === undefined\n ? {}\n : { routeMetadata: hydrateBuiltServerModuleOutput(artifact.routeMetadata, serverDir) }),\n ...(artifact.request === undefined\n ? {}\n : { request: hydrateBuiltServerModuleOutput(artifact.request, serverDir) }),\n ...(artifact.stream === undefined\n ? {}\n : { stream: hydrateBuiltServerModuleOutput(artifact.stream, serverDir) }),\n ...(artifact.string === undefined\n ? {}\n : { string: hydrateBuiltServerModuleOutput(artifact.string, serverDir) }),\n };\n}\n\nfunction hydrateBuiltServerModuleOutput<T extends { moduleFile?: string | undefined }>(\n output: T,\n serverDir: string,\n): T {\n if (output.moduleFile === undefined || isAbsolute(output.moduleFile)) {\n return output;\n }\n\n return {\n ...output,\n moduleFile: join(serverDir, safeBuiltServerManifestFilePath(output.moduleFile)),\n };\n}\n\nfunction mergeBuiltServerModuleArtifacts(\n existing: BuiltServerModuleArtifact,\n loaded: BuiltServerModuleArtifact,\n): BuiltServerModuleArtifact {\n return {\n ...existing,\n ...loaded,\n };\n}\n\nexport async function loadBuiltServerModuleArtifactsForRequest(\n runtime: BuiltServerModuleArtifactRuntime,\n routeFile: string | undefined,\n options: {\n includeRender?: boolean | undefined;\n includeShells?: boolean | undefined;\n } = {},\n): Promise<void> {\n const roots = [\n join(runtime.appDir, \"middleware.ts\"),\n join(runtime.appDir, \"middleware.mreact.ts\"),\n join(runtime.appDir, \"on-response.ts\"),\n join(runtime.appDir, \"on-response.mreact.ts\"),\n ...(routeFile === undefined\n ? []\n : [\n routeFile,\n ...(options.includeShells === false ? [] : shellFilesForRoute(runtime, routeFile)),\n ]),\n ];\n const seen = new Set<string>();\n\n for (const file of roots) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"request\");\n }\n\n if (options.includeRender === true) {\n seen.clear();\n for (const file of roots) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"render\");\n }\n }\n}\n\nexport async function loadBuiltResponseHookArtifacts(\n runtime: BuiltServerModuleArtifactRuntime,\n): Promise<void> {\n const seen = new Set<string>();\n\n for (const file of [\n join(runtime.appDir, \"on-response.ts\"),\n join(runtime.appDir, \"on-response.mreact.ts\"),\n ]) {\n await loadBuiltServerModuleArtifactClosure(runtime, file, seen, \"request\");\n }\n}\n\nasync function loadBuiltServerModuleArtifactClosure(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n seen: Set<string>,\n kind: BuiltServerModuleArtifactKind,\n): Promise<void> {\n for (const closureFile of builtServerModuleClosureFiles(runtime, file)) {\n if (seen.has(closureFile)) {\n continue;\n }\n seen.add(closureFile);\n await loadBuiltServerModuleArtifact(runtime, closureFile, kind);\n }\n}\n\nfunction builtServerModuleClosureFiles(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n): readonly string[] {\n const cached = runtime.serverModuleClosureFiles.get(file);\n if (cached !== undefined) {\n return cached;\n }\n\n const closure: string[] = [];\n collectBuiltServerModuleClosureFiles(runtime, file, new Set(), closure);\n runtime.serverModuleClosureFiles.set(file, closure);\n return closure;\n}\n\nfunction collectBuiltServerModuleClosureFiles(\n runtime: BuiltServerModuleArtifactRuntime,\n file: string,\n seen: Set<string>,\n closure: string[],\n): void {\n if (seen.has(file)) {\n return;\n }\n seen.add(file);\n closure.push(file);\n\n const source = runtime.serverSourceFiles.get(file);\n if (source === undefined) {\n return;\n }\n\n for (const specifier of localServerModuleSpecifiers(source)) {\n const resolved = resolveBuiltLocalServerSourceImport(runtime, file, specifier);\n if (resolved !== undefined) {\n collectBuiltServerModuleClosureFiles(runtime, resolved, seen, closure);\n }\n }\n}\n\nconst localServerModuleImportPattern =\n /\\b(?:import|export)\\s+(?:type\\s+)?(?:[^\"']*?\\s+from\\s*)?[\"'](?<source>\\.{1,2}\\/[^\"']+)[\"']/g;\n\nfunction localServerModuleSpecifiers(code: string): string[] {\n const specifiers = new Set<string>();\n localServerModuleImportPattern.lastIndex = 0;\n\n for (const match of code.matchAll(localServerModuleImportPattern)) {\n const source = match.groups?.source;\n\n if (source !== undefined) {\n specifiers.add(source);\n }\n }\n\n return Array.from(specifiers);\n}\n\nfunction resolveBuiltLocalServerSourceImport(\n runtime: BuiltServerModuleArtifactRuntime,\n fromFile: string,\n specifier: string,\n): string | undefined {\n const base = join(dirname(fromFile), specifier);\n\n for (const candidate of localServerSourceImportCandidates(base)) {\n if (runtime.serverSourceFiles.has(candidate)) {\n return candidate;\n }\n }\n\n return undefined;\n}\n\nfunction localServerSourceImportCandidates(base: string): string[] {\n const candidates = [base];\n\n if (base.endsWith(\".js\")) {\n const withoutJs = base.slice(0, -\".js\".length);\n candidates.push(`${withoutJs}.ts`, `${withoutJs}.tsx`, `${withoutJs}.mreact.tsx`);\n } else if (base.endsWith(\".jsx\")) {\n const withoutJsx = base.slice(0, -\".jsx\".length);\n candidates.push(`${withoutJsx}.tsx`, `${withoutJsx}.mreact.tsx`);\n } else if (base.endsWith(\".mreact\")) {\n candidates.push(`${base}.tsx`);\n } else {\n candidates.push(\n `${base}.ts`,\n `${base}.tsx`,\n `${base}.mreact.tsx`,\n join(base, \"index.ts\"),\n join(base, \"index.tsx\"),\n join(base, \"index.mreact.tsx\"),\n );\n }\n\n return candidates;\n}\n\nfunction shellFilesForRoute(\n runtime: BuiltServerModuleArtifactRuntime,\n routeFile: string,\n): string[] {\n return routeShellCandidates(runtime.appDir, routeFile)\n .map((candidate) => candidate.file)\n .filter((file) => runtime.serverSourceFiles.has(file));\n}\n\nfunction isMissingFileError(error: unknown): boolean {\n return (\n typeof error === \"object\" &&\n error !== null &&\n \"code\" in error &&\n (error as { code?: unknown }).code === \"ENOENT\"\n );\n}\n\nfunction builtArtifactReadError(label: string, artifactPath: string, error: unknown): Error {\n const prefix = isMissingFileError(error) ? \"Missing\" : \"Unable to read\";\n const detail = error instanceof Error && error.message !== \"\" ? `: ${error.message}` : \"\";\n\n return new Error(`${prefix} ${label}: ${artifactPath}${detail}`, { cause: error });\n}\n\nfunction parseBuiltJsonArtifact<T>(text: string, artifactPath: string, label: string): T {\n try {\n return JSON.parse(text) as T;\n } catch (error) {\n const detail = error instanceof Error && error.message !== \"\" ? `: ${error.message}` : \"\";\n\n throw new Error(`Invalid ${label}: ${artifactPath}${detail}`, { cause: error });\n }\n}\n\nfunction safeBuiltServerManifestFilePath(pathname: string): string {\n const normalized = normalize(pathname);\n\n if (isAbsolute(normalized) || normalized === \"..\" || normalized.startsWith(\"../\")) {\n throw new Error(`Invalid built app manifest file path: ${pathname}`);\n }\n\n return normalized;\n}\n"]}
|
package/dist/render.d.ts
CHANGED
|
@@ -111,6 +111,7 @@ export declare function resolveAppRouterMiddleware(options: {
|
|
|
111
111
|
timing?: RenderTiming | undefined;
|
|
112
112
|
vitePlugins?: readonly PluginOption[] | undefined;
|
|
113
113
|
}): Promise<AppRouterMiddlewareResult>;
|
|
114
|
+
export declare function resolveAppRouterResponseHook(options: Pick<RenderAppRequestOptions, "appDir" | "define" | "devServerModuleCacheVersion" | "importPolicy" | "onResponse" | "serverModules" | "serverModuleCacheVersion" | "serverSourceFiles" | "vitePlugins">): Promise<AppRouterResponseHook | undefined>;
|
|
114
115
|
export declare function bundleMiddlewareModuleCode(options: {
|
|
115
116
|
appDir: string;
|
|
116
117
|
code: string;
|
package/dist/render.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAEV,gBAAgB,EAChB,eAAe,EAChB,MAAM,0CAA0C,CAAC;AAClD,OAAO,EAOL,KAAK,WAAW,EACjB,MAAM,uBAAuB,CAAC;AAS/B,OAAO,EAIL,KAAK,yBAAyB,EAE/B,MAAM,6BAA6B,CAAC;AAUrC,OAAO,KAAK,EAAE,QAAQ,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EACL,KAAK,4BAA4B,EACjC,KAAK,2BAA2B,EAIjC,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,KAAK,cAAc,EAOpB,MAAM,YAAY,CAAC;AAWpB,OAAO,EAAqC,KAAK,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AAEnG,OAAO,KAAK,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AACrD,OAAO,KAAK,EAAmC,yBAAyB,EAAE,MAAM,YAAY,CAAC;AAY7F,OAAO,EAAwC,KAAK,eAAe,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAKL,KAAK,sBAAsB,EAC5B,MAAM,kBAAkB,CAAC;AAU1B,OAAO,EAGL,KAAK,qBAAqB,EAC3B,MAAM,YAAY,CAAC;AACpB,OAAO,EAQL,KAAK,sBAAsB,EAC5B,MAAM,iBAAiB,CAAC;AAqDzB,UAAU,YAAY;IACpB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,mCAAmC;IAClD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACxC;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAClC,yBAAyB,CAAC,EAAE,yBAAyB,GAAG,SAAS,CAAC;IAClE,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5C,kBAAkB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC5D,YAAY,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IACtD,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,YAAY,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACjD,eAAe,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACpD,MAAM,CAAC,EAAE,eAAe,GAAG,SAAS,CAAC;IACrC,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,aAAa,CAAC,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAC,GAAG,SAAS,CAAC;IACvD,UAAU,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC/C,WAAW,CAAC,EAAE,WAAW,GAAG,SAAS,CAAC;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,UAAU,CAAC,EAAE,GAAG,GAAG,SAAS,CAAC;IAC7B,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,UAAU,CAAC,EAAE,cAAc,GAAG,SAAS,CAAC;IACxC,YAAY,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IACxC,MAAM,CAAC,EAAE,SAAS,QAAQ,EAAE,GAAG,SAAS,CAAC;IACzC,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC3E,wBAAwB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9C,2BAA2B,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAGjD,GAAG,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC1B,iBAAiB,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAAC;IAC5D,aAAa,CAAC,EAAE,4BAA4B,GAAG,SAAS,CAAC;IACzD,4BAA4B,CAAC,EACzB,WAAW,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,GAC3D,SAAS,CAAC;IACd,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IACrC,OAAO,CAAC,EAAE,sBAAsB,GAAG,SAAS,CAAC;IAC7C,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD;AAED,MAAM,WAAW,8BAA+B,SAAQ,uBAAuB;IAC7E,0BAA0B,CAAC,EAAE,mCAAmC,GAAG,SAAS,CAAC;CAC9E;AAED,MAAM,WAAW,sBAAsB;IACrC,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,EAAE,eAAe,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAClC,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,4BAA4B,KAClC,QAAQ,GAAG,SAAS,GAAG,IAAI,GAAG,OAAO,CAAC,QAAQ,GAAG,SAAS,GAAG,IAAI,CAAC,CAAC;AAExE;;GAEG;AACH,MAAM,WAAW,4BAA4B;IAC3C,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,0BAA0B,CAAC,OAAO,EAAE;IACxD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,UAAU,CAAC,QAAQ,CAAC,GAAG,SAAS,CAAC;IAC1C,oBAAoB,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAC3C,YAAY,CAAC,EAAE,qBAAqB,GAAG,SAAS,CAAC;IACjD,MAAM,EAAE,SAAS,QAAQ,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,WAAW,CAAC,MAAM,EAAE,yBAAyB,CAAC,GAAG,SAAS,CAAC;IAC3E,wBAAwB,EAAE,MAAM,CAAC;IACjC,iBAAiB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/C,4BAA4B,CAAC,EACzB,WAAW,CAAC,MAAM,EAAE,SAAS,2BAA2B,EAAE,CAAC,GAC3D,SAAS,CAAC;IACd,WAAW,CAAC,EAAE,SAAS,YAAY,EAAE,GAAG,SAAS,CAAC;CACnD,GAAG,OAAO,CAAC,IAAI,CAAC,CAsFhB;AAyND,wBAAgB,6BAA6B,IAAI,sBAAsB,EAAE,CA+DxE;AAiCD;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,uBAAuB,GAAG,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../src/render.ts"],"names":[],"mappings":"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"}
|
package/dist/render.js
CHANGED
|
@@ -275,11 +275,12 @@ export async function renderAppRequest(options) {
|
|
|
275
275
|
};
|
|
276
276
|
invokeRouterInstrumentation(options.instrumentation?.onRequestStart, requestEvent);
|
|
277
277
|
const response = await renderAppRequestInternal({ ...options, requestUrl: url });
|
|
278
|
+
const finalResponse = await applyAppRouterResponseHook(response, options);
|
|
278
279
|
invokeRouterInstrumentation(options.instrumentation?.onRequestEnd, {
|
|
279
280
|
...requestEvent,
|
|
280
|
-
status:
|
|
281
|
+
status: finalResponse.status,
|
|
281
282
|
});
|
|
282
|
-
return
|
|
283
|
+
return finalResponse;
|
|
283
284
|
}
|
|
284
285
|
function createRenderTiming(logger) {
|
|
285
286
|
return logger?.debug === undefined ? undefined : { phases: {} };
|
|
@@ -1105,11 +1106,49 @@ async function renderAppRequestInternal(options) {
|
|
|
1105
1106
|
})).value;
|
|
1106
1107
|
}
|
|
1107
1108
|
async function applyAppRouterResponseHook(response, options) {
|
|
1108
|
-
const
|
|
1109
|
+
const onResponse = await resolveAppRouterResponseHook(options);
|
|
1110
|
+
const hooked = await onResponse?.(response, {
|
|
1109
1111
|
request: options.request,
|
|
1110
1112
|
});
|
|
1111
1113
|
return hooked instanceof Response ? hooked : response;
|
|
1112
1114
|
}
|
|
1115
|
+
export async function resolveAppRouterResponseHook(options) {
|
|
1116
|
+
if (options.onResponse !== undefined) {
|
|
1117
|
+
return options.onResponse;
|
|
1118
|
+
}
|
|
1119
|
+
const candidates = [
|
|
1120
|
+
join(options.appDir, "on-response.ts"),
|
|
1121
|
+
join(options.appDir, "on-response.mreact.ts"),
|
|
1122
|
+
];
|
|
1123
|
+
for (const file of candidates) {
|
|
1124
|
+
const embedded = options.serverSourceFiles?.has(file) === true || options.serverModules?.has(file) === true;
|
|
1125
|
+
if (!embedded) {
|
|
1126
|
+
try {
|
|
1127
|
+
await access(file);
|
|
1128
|
+
}
|
|
1129
|
+
catch {
|
|
1130
|
+
continue;
|
|
1131
|
+
}
|
|
1132
|
+
}
|
|
1133
|
+
const code = await readServerSourceFile(file, options.serverModuleCacheVersion, options.serverSourceFiles);
|
|
1134
|
+
const loaded = (await loadBundledMiddlewareModule({
|
|
1135
|
+
appDir: options.appDir,
|
|
1136
|
+
code,
|
|
1137
|
+
define: options.define,
|
|
1138
|
+
devServerModuleCacheVersion: options.devServerModuleCacheVersion,
|
|
1139
|
+
file,
|
|
1140
|
+
importPolicy: options.importPolicy,
|
|
1141
|
+
prebuiltArtifact: prebuiltRequestModuleArtifact(options.serverModules, file, code),
|
|
1142
|
+
serverModuleCacheVersion: options.serverModuleCacheVersion,
|
|
1143
|
+
vitePlugins: options.vitePlugins,
|
|
1144
|
+
}));
|
|
1145
|
+
if (typeof loaded.onResponse !== "function") {
|
|
1146
|
+
throw new Error(`Invalid on-response convention ${file}: expected a callable onResponse export.`);
|
|
1147
|
+
}
|
|
1148
|
+
return loaded.onResponse;
|
|
1149
|
+
}
|
|
1150
|
+
return undefined;
|
|
1151
|
+
}
|
|
1113
1152
|
function withOptionalActionCookie(response, csrfToken, csrfTokenIsNew) {
|
|
1114
1153
|
// Only re-issue Set-Cookie when this render minted the token. Reusing
|
|
1115
1154
|
// an incoming cookie value (Issue 070) means no Set-Cookie is needed
|