@timber-js/app 0.2.0-alpha.183 → 0.2.0-alpha.185
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/_chunks/{build-output-helper-BC-Zg0_w.js → build-output-helper-DOGYFb_X.js} +11 -3
- package/dist/_chunks/build-output-helper-DOGYFb_X.js.map +1 -0
- package/dist/_chunks/{cli-schema-sync-D3naS3eH.js → cli-schema-sync-BTWEKJXo.js} +1 -21
- package/dist/_chunks/cli-schema-sync-BTWEKJXo.js.map +1 -0
- package/dist/_chunks/{cloudflare-nlD9KhDj.js → cloudflare-CnT5Lr7U.js} +2 -2
- package/dist/_chunks/{cloudflare-nlD9KhDj.js.map → cloudflare-CnT5Lr7U.js.map} +1 -1
- package/dist/_chunks/logger-AWfuX-KJ.js.map +1 -1
- package/dist/_chunks/plugin-context---kTF5v8.js.map +1 -1
- package/dist/_chunks/segment-classify-Byy425ng.js.map +1 -1
- package/dist/_chunks/{walkers-BtTlKviE.js → walkers-_6zKFlch.js} +2 -2
- package/dist/_chunks/{walkers-BtTlKviE.js.map → walkers-_6zKFlch.js.map} +1 -1
- package/dist/adapters/build-output-helper.d.ts.map +1 -1
- package/dist/adapters/cloudflare-dev.js +1 -1
- package/dist/adapters/cloudflare-kv-cache.js +1 -1
- package/dist/adapters/cloudflare.js +1 -1
- package/dist/adapters/nitro.js +1 -1
- package/dist/adapters/shared.d.ts.map +1 -1
- package/dist/cli.js +1 -1
- package/dist/client/internal.js +70 -22
- package/dist/client/internal.js.map +1 -1
- package/dist/client/router.d.ts.map +1 -1
- package/dist/client/rsc-fetch.d.ts +17 -0
- package/dist/client/rsc-fetch.d.ts.map +1 -1
- package/dist/index.js +128 -9
- package/dist/index.js.map +1 -1
- package/dist/plugin-context.d.ts +7 -0
- package/dist/plugin-context.d.ts.map +1 -1
- package/dist/plugins/static-build.d.ts +42 -0
- package/dist/plugins/static-build.d.ts.map +1 -1
- package/dist/routing/index.js +2 -2
- package/dist/routing/manifest-codegen.d.ts.map +1 -1
- package/dist/routing/scanner.d.ts.map +1 -1
- package/dist/routing/types.d.ts +1 -3
- package/dist/routing/types.d.ts.map +1 -1
- package/dist/server/deny-boundary.d.ts +4 -7
- package/dist/server/deny-boundary.d.ts.map +1 -1
- package/dist/server/internal.js +135 -161
- package/dist/server/internal.js.map +1 -1
- package/dist/server/prebuilt-builder.d.ts.map +1 -1
- package/dist/server/primitives.d.ts +0 -12
- package/dist/server/primitives.d.ts.map +1 -1
- package/dist/server/sitemap-generator.d.ts.map +1 -1
- package/dist/server/static-generator.d.ts.map +1 -1
- package/dist/server/status-code-resolver.d.ts +3 -10
- package/dist/server/status-code-resolver.d.ts.map +1 -1
- package/dist/shims/navigation-client.d.ts +8 -19
- package/dist/shims/navigation-client.d.ts.map +1 -1
- package/dist/shims/navigation.d.ts +0 -1
- package/dist/shims/navigation.d.ts.map +1 -1
- package/docs/learn/11-error-handling.mdx +2 -3
- package/package.json +1 -1
- package/src/adapters/build-output-helper.ts +6 -1
- package/src/adapters/shared.ts +5 -2
- package/src/client/router.ts +24 -7
- package/src/client/rsc-fetch.ts +85 -39
- package/src/plugin-context.ts +7 -0
- package/src/plugins/routing.ts +1 -1
- package/src/plugins/static-build.ts +161 -6
- package/src/routing/manifest-codegen.ts +1 -6
- package/src/routing/scanner.ts +0 -24
- package/src/routing/types.ts +1 -3
- package/src/server/deny-boundary.ts +5 -31
- package/src/server/deny-renderer.ts +2 -2
- package/src/server/pipeline-outcome.ts +1 -1
- package/src/server/prebuilt-builder.ts +1 -7
- package/src/server/primitives.ts +0 -18
- package/src/server/rsc-entry/render-route.ts +3 -3
- package/src/server/sitemap-generator.ts +1 -7
- package/src/server/static-generator.ts +2 -18
- package/src/server/status-code-resolver.ts +4 -47
- package/src/shims/navigation-client.ts +8 -26
- package/src/shims/navigation.ts +0 -4
- package/dist/_chunks/build-output-helper-BC-Zg0_w.js.map +0 -1
- package/dist/_chunks/cli-schema-sync-D3naS3eH.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/client/router.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../../src/client/router.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,6 +37,22 @@ export declare function setClientDeploymentId(id: string | null): void;
|
|
|
37
37
|
export declare function getClientDeploymentId(): string | null;
|
|
38
38
|
export declare function setStaticMode(enabled: boolean): void;
|
|
39
39
|
export declare function isStaticMode(): boolean;
|
|
40
|
+
/**
|
|
41
|
+
* RSC manifest entry: hashed URL with optional inlined route params.
|
|
42
|
+
* Params are embedded at build time (TIM-1255) so no sidecar fetch needed.
|
|
43
|
+
*/
|
|
44
|
+
interface RscManifestEntry {
|
|
45
|
+
url: string;
|
|
46
|
+
params?: Record<string, string | string[]>;
|
|
47
|
+
}
|
|
48
|
+
type RscManifest = Record<string, RscManifestEntry>;
|
|
49
|
+
/** @internal Exported for testing. */
|
|
50
|
+
export declare function setRscManifest(manifest: RscManifest | null): void;
|
|
51
|
+
/**
|
|
52
|
+
* Compute the unhashed _rsc/*.rsc URL for a route path.
|
|
53
|
+
* @internal Exported for testing.
|
|
54
|
+
*/
|
|
55
|
+
export declare function toUnhashedRscUrl(url: string): string;
|
|
40
56
|
/** Header name used by the server to signal a version skew reload. */
|
|
41
57
|
export declare const RELOAD_HEADER = "X-Timber-Reload";
|
|
42
58
|
/** Header name for the client's deployment ID. */
|
|
@@ -126,4 +142,5 @@ export declare class NonRscResponse extends Error {
|
|
|
126
142
|
export declare function fetchRscPayload(url: string, deps: RouterDeps, stateTree?: {
|
|
127
143
|
segments: string[];
|
|
128
144
|
}, currentUrl?: string, signal?: AbortSignal): Promise<FetchResult>;
|
|
145
|
+
export {};
|
|
129
146
|
//# sourceMappingURL=rsc-fetch.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsc-fetch.d.ts","sourceRoot":"","sources":["../../src/client/rsc-fetch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAI3C,qEAAqE;AACrE,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB;;;;;;OAMG;IACH,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACpC,uFAAuF;IACvF,WAAW,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC;IAClC,kFAAkF;IAClF,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjD,+EAA+E;IAC/E,eAAe,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;CAClC;AAID,eAAO,MAAM,gBAAgB,qBAAqB,CAAC;AAyCnD,8DAA8D;AAC9D,wBAAgB,qBAAqB,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,IAAI,CAE7D;AAED,oCAAoC;AACpC,wBAAgB,qBAAqB,IAAI,MAAM,GAAG,IAAI,CAErD;AAYD,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAEpD;AAED,wBAAgB,YAAY,IAAI,OAAO,CAEtC;AAoCD,sEAAsE;AACtE,eAAO,MAAM,aAAa,oBAAoB,CAAC;AAE/C,kDAAkD;AAClD,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D;;;GAGG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAE7D;AAID,wBAAgB,eAAe,CAC7B,SAAS,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,GAAG,SAAS,EAC7C,UAAU,CAAC,EAAE,MAAM,GAClB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAsBxB;AAeD;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,EAAE,GAAG,IAAI,CAS3E;AAED;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,EAAE,GAAG,IAAI,CAU1E;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,GAAG,IAAI,CAS1F;AAID;;;GAGG;AACH,qBAAa,aAAc,SAAQ,KAAK;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,YAAY,GAAG,EAAE,MAAM,EAGtB;CACF;AAED;;;;GAIG;AACH,qBAAa,gBAAiB,SAAQ,KAAK;IACzC,cAEC;CACF;AAED;;;;;;;;GAQG;AACH,qBAAa,mBAAoB,SAAQ,KAAK;IAC5C,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,YAAY,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAItC;CACF;AAED;;;;;;;;;GASG;AACH,qBAAa,cAAe,SAAQ,KAAK;IACvC,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,YAAY,GAAG,EAAE,MAAM,EAGtB;CACF;AAoDD;;;;GAIG;AACH,wBAAsB,eAAe,CACnC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,EAClC,UAAU,CAAC,EAAE,MAAM,EACnB,MAAM,CAAC,EAAE,WAAW,GACnB,OAAO,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"rsc-fetch.d.ts","sourceRoot":"","sources":["../../src/client/rsc-fetch.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { a as __esmMin, o as __exportAll, s as __toCommonJS } from "./_chunks/dist-BA3u1z3W.js";
|
|
2
2
|
import { c as isDynamicMetadataExtension, l as isMetadataRouteServePath, r as canonicalize } from "./_chunks/canonicalize-DQHyFClh.js";
|
|
3
3
|
import { h as swallow } from "./_chunks/logger-AWfuX-KJ.js";
|
|
4
|
-
import { i as scanRoutes } from "./_chunks/cli-schema-sync-
|
|
5
|
-
import { a as generateRouteMap, c as fileHasDirective, d as getPrerenderExport, i as validateSchemaAgainstRoutes, l as fileHasExport, n as collectInterceptionRewrites, o as fileHasAnyExport, s as fileHasDefaultExport, t as collectLeafRoutes, u as fileHasStarExport } from "./_chunks/walkers-
|
|
4
|
+
import { i as scanRoutes } from "./_chunks/cli-schema-sync-BTWEKJXo.js";
|
|
5
|
+
import { a as generateRouteMap, c as fileHasDirective, d as getPrerenderExport, i as validateSchemaAgainstRoutes, l as fileHasExport, n as collectInterceptionRewrites, o as fileHasAnyExport, s as fileHasDefaultExport, t as collectLeafRoutes, u as fileHasStarExport } from "./_chunks/walkers-_6zKFlch.js";
|
|
6
6
|
import { a as resolveAppDir, c as createNoopTimer, n as loadTimberConfigFile, o as resolveBuildDir, r as mergeFileConfig, s as resolveClientJavascript, t as createPluginContext } from "./_chunks/plugin-context---kTF5v8.js";
|
|
7
7
|
import { t as fnv1aHash } from "./_chunks/fast-hash-D6hIVt1Y.js";
|
|
8
8
|
import { t as formatSize } from "./_chunks/format-CfwjgPz9.js";
|
|
@@ -20,7 +20,7 @@ import { fileURLToPath, pathToFileURL } from "node:url";
|
|
|
20
20
|
import { styleText } from "node:util";
|
|
21
21
|
import { constants, createGzip, gzipSync } from "node:zlib";
|
|
22
22
|
import { createHash, randomUUID } from "node:crypto";
|
|
23
|
-
import { copyFile, mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
23
|
+
import { copyFile, mkdir, readFile, readdir, rename, rm, stat, writeFile } from "node:fs/promises";
|
|
24
24
|
//#region src/plugins/content.ts
|
|
25
25
|
var CONFIG_FILE_NAMES$1 = [
|
|
26
26
|
"content-collections.ts",
|
|
@@ -2401,7 +2401,6 @@ var SINGLE_FILE_KEYS = [
|
|
|
2401
2401
|
var RECORD_FILE_KEYS = [
|
|
2402
2402
|
"statusFiles",
|
|
2403
2403
|
"jsonStatusFiles",
|
|
2404
|
-
"legacyStatusFiles",
|
|
2405
2404
|
"metadataRoutes"
|
|
2406
2405
|
];
|
|
2407
2406
|
var SCHEMA_EXTENSIONS = [
|
|
@@ -2829,7 +2828,7 @@ var SEGMENT_PREFIX = "\0$segment:";
|
|
|
2829
2828
|
/**
|
|
2830
2829
|
* File convention names we track for changes that require manifest regeneration.
|
|
2831
2830
|
*/
|
|
2832
|
-
var ROUTE_FILE_PATTERNS = /\/(page|layout|middleware|access|route|error|global-error|default|denied|params|schema|\d{3}|[45]xx|
|
|
2831
|
+
var ROUTE_FILE_PATTERNS = /\/(page|layout|middleware|access|route|error|global-error|default|denied|params|schema|\d{3}|[45]xx|sitemap|robots|manifest|favicon|icon|opengraph-image|apple-icon)\./;
|
|
2833
2832
|
/**
|
|
2834
2833
|
* Create the timber-routing Vite plugin.
|
|
2835
2834
|
*
|
|
@@ -3491,7 +3490,7 @@ function filterBySubsets(faces, subsets) {
|
|
|
3491
3490
|
* Generate a content hash for font data.
|
|
3492
3491
|
* Returns the first 8 hex chars of the SHA-256 hash.
|
|
3493
3492
|
*/
|
|
3494
|
-
function contentHash(data) {
|
|
3493
|
+
function contentHash$1(data) {
|
|
3495
3494
|
return createHash("sha256").update(data).digest("hex").slice(0, 8);
|
|
3496
3495
|
}
|
|
3497
3496
|
/**
|
|
@@ -3502,7 +3501,7 @@ function contentHash(data) {
|
|
|
3502
3501
|
*/
|
|
3503
3502
|
function hashedFontFilename(face, data) {
|
|
3504
3503
|
const slug = face.family.toLowerCase().replace(/\s+/g, "-");
|
|
3505
|
-
const hash = contentHash(data);
|
|
3504
|
+
const hash = contentHash$1(data);
|
|
3506
3505
|
return `${slug}-${face.subset}-${face.weight}-${face.style}-${hash}.woff2`;
|
|
3507
3506
|
}
|
|
3508
3507
|
/**
|
|
@@ -4733,7 +4732,7 @@ var FontPipeline = class {
|
|
|
4733
4732
|
const absolutePath = normalize(resolve(src.path));
|
|
4734
4733
|
if (!existsSync(absolutePath)) continue;
|
|
4735
4734
|
const data = readFileSync(absolutePath);
|
|
4736
|
-
src.hashedBasename = hashedFontBasename(src.path, contentHash(data));
|
|
4735
|
+
src.hashedBasename = hashedFontBasename(src.path, contentHash$1(data));
|
|
4737
4736
|
}
|
|
4738
4737
|
this._entries.set(entry.id, entry);
|
|
4739
4738
|
}
|
|
@@ -6578,6 +6577,30 @@ async function stripJsFromRscAssetsManifests(buildDir) {
|
|
|
6578
6577
|
}
|
|
6579
6578
|
}
|
|
6580
6579
|
//#endregion
|
|
6580
|
+
//#region src/server/flight-scripts.ts
|
|
6581
|
+
/**
|
|
6582
|
+
* Shared Flight data script generation.
|
|
6583
|
+
*
|
|
6584
|
+
* Both html-injectors.ts (Web Streams / dev) and node-stream-transforms.ts
|
|
6585
|
+
* (Node streams / production) use this module to generate inline `<script>`
|
|
6586
|
+
* tags for RSC Flight data injection.
|
|
6587
|
+
*
|
|
6588
|
+
* The init script goes in `<head>` as part of the HTML shell (guaranteed
|
|
6589
|
+
* to execute before any streaming chunk scripts). Push scripts are emitted
|
|
6590
|
+
* as RSC chunks arrive during streaming.
|
|
6591
|
+
*
|
|
6592
|
+
* See design/02-rendering-pipeline.md, LOCAL-415
|
|
6593
|
+
*/
|
|
6594
|
+
/**
|
|
6595
|
+
* Escape a JSON string for safe embedding inside an HTML `<script>` tag.
|
|
6596
|
+
*
|
|
6597
|
+
* Prevents XSS via `<\/script>` injection and handles Unicode line/paragraph
|
|
6598
|
+
* separators that are valid JSON but invalid in JS string literals (pre-ES2019).
|
|
6599
|
+
*/
|
|
6600
|
+
function htmlEscapeJsonString(str) {
|
|
6601
|
+
return str.replace(/</g, "\\u003c").replace(/>/g, "\\u003e").replace(/\u2028/g, "\\u2028").replace(/\u2029/g, "\\u2029");
|
|
6602
|
+
}
|
|
6603
|
+
//#endregion
|
|
6581
6604
|
//#region src/plugins/static-build.ts
|
|
6582
6605
|
/**
|
|
6583
6606
|
* Patterns that indicate dynamic per-request API usage.
|
|
@@ -6684,10 +6707,15 @@ async function runStaticGeneration(ctx) {
|
|
|
6684
6707
|
const generate = mod.__timber_generateStaticSite;
|
|
6685
6708
|
if (typeof generate !== "function") throw new Error("[timber] Static generation: built RSC entry does not export __timber_generateStaticSite — rebuild from a clean build directory");
|
|
6686
6709
|
const staticDir = join(ctx.buildDir, "static-pages");
|
|
6710
|
+
await rm(join(staticDir, "_rsc"), {
|
|
6711
|
+
recursive: true,
|
|
6712
|
+
force: true
|
|
6713
|
+
}).catch(() => {});
|
|
6687
6714
|
await mkdir(staticDir, { recursive: true });
|
|
6688
6715
|
const sitemapConfig = ctx.config.sitemap;
|
|
6689
6716
|
const autoSitemapEnabled = Boolean(sitemapConfig?.enabled && sitemapConfig?.baseUrl);
|
|
6690
6717
|
const contentTypes = {};
|
|
6718
|
+
const routeParams = {};
|
|
6691
6719
|
const summary = await generate({
|
|
6692
6720
|
autoSitemapEnabled,
|
|
6693
6721
|
renderTimeoutMs: ctx.config.renderTimeoutMs,
|
|
@@ -6698,7 +6726,12 @@ async function runStaticGeneration(ctx) {
|
|
|
6698
6726
|
if (rel.startsWith("..") || resolve(staticDir, rel) !== fullPath) throw new Error(`[timber] Static generation: output path "${relPath}" escapes the static output directory — check generateStaticSegmentParams for path traversal characters in ${entry.urlPath}`);
|
|
6699
6727
|
await mkdir(dirname(fullPath), { recursive: true });
|
|
6700
6728
|
await writeFileAtomic$1(fullPath, entry.body);
|
|
6701
|
-
if (entry.kind === "rsc" && entry.headers["x-timber-params"])
|
|
6729
|
+
if (entry.kind === "rsc" && entry.headers["x-timber-params"]) {
|
|
6730
|
+
const rscUrlKey = entry.urlPath === "/" ? "/_rsc/index.rsc" : `/_rsc${entry.urlPath}.rsc`;
|
|
6731
|
+
try {
|
|
6732
|
+
routeParams[rscUrlKey] = JSON.parse(entry.headers["x-timber-params"]);
|
|
6733
|
+
} catch {}
|
|
6734
|
+
}
|
|
6702
6735
|
if (entry.kind === "api" && !extname(relPath) && entry.contentType) contentTypes[entry.urlPath] = entry.contentType;
|
|
6703
6736
|
}
|
|
6704
6737
|
});
|
|
@@ -6709,6 +6742,14 @@ async function runStaticGeneration(ctx) {
|
|
|
6709
6742
|
throw new Error(`[timber] Static generation failed:\n${details}`);
|
|
6710
6743
|
}
|
|
6711
6744
|
if (Object.keys(contentTypes).length > 0) ctx.staticContentTypes = contentTypes;
|
|
6745
|
+
if (!ctx.clientJavascript.disabled) {
|
|
6746
|
+
const rscManifest = await hashRscPayloads(staticDir, routeParams);
|
|
6747
|
+
if (Object.keys(rscManifest).length > 0) {
|
|
6748
|
+
await injectRscManifestIntoHtml(staticDir, rscManifest);
|
|
6749
|
+
ctx.rscManifest = rscManifest;
|
|
6750
|
+
console.log(`[timber] Static generation: hashed ${Object.keys(rscManifest).length} RSC flight payloads`);
|
|
6751
|
+
}
|
|
6752
|
+
}
|
|
6712
6753
|
if (summary.redirects.length > 0) {
|
|
6713
6754
|
const generated = generateRedirectsFile(summary.redirects);
|
|
6714
6755
|
const redirectsPath = join(staticDir, "_redirects");
|
|
@@ -6724,6 +6765,84 @@ async function runStaticGeneration(ctx) {
|
|
|
6724
6765
|
return summary;
|
|
6725
6766
|
}
|
|
6726
6767
|
/**
|
|
6768
|
+
* Compute a short content hash for immutable caching.
|
|
6769
|
+
* Uses 8 chars of base64url-encoded SHA-256, matching Vite's asset hash style.
|
|
6770
|
+
*/
|
|
6771
|
+
function contentHash(data) {
|
|
6772
|
+
return createHash("sha256").update(data).digest("base64url").slice(0, 8);
|
|
6773
|
+
}
|
|
6774
|
+
/**
|
|
6775
|
+
* Walk a directory recursively and return all file paths.
|
|
6776
|
+
*/
|
|
6777
|
+
async function walkDir(dir) {
|
|
6778
|
+
const results = [];
|
|
6779
|
+
let entries;
|
|
6780
|
+
try {
|
|
6781
|
+
entries = await readdir(dir, { withFileTypes: true });
|
|
6782
|
+
} catch {
|
|
6783
|
+
return results;
|
|
6784
|
+
}
|
|
6785
|
+
for (const entry of entries) {
|
|
6786
|
+
const full = join(dir, entry.name);
|
|
6787
|
+
if (entry.isDirectory()) results.push(...await walkDir(full));
|
|
6788
|
+
else results.push(full);
|
|
6789
|
+
}
|
|
6790
|
+
return results;
|
|
6791
|
+
}
|
|
6792
|
+
/**
|
|
6793
|
+
* Hash all RSC flight payloads in `_rsc/`, rename them with content
|
|
6794
|
+
* hashes, and build a manifest with optional inlined route params.
|
|
6795
|
+
*
|
|
6796
|
+
* Before: `_rsc/index.rsc`, `_rsc/about.rsc`
|
|
6797
|
+
* After: `_rsc/index-B7YxEKdN.rsc`, `_rsc/about-C8ZzFLfO.rsc`
|
|
6798
|
+
*
|
|
6799
|
+
* The manifest maps the original `_rsc/` URL to an entry object:
|
|
6800
|
+
* `{"/_rsc/index.rsc":{"url":"/_rsc/index-B7YxEKdN.rsc"}, ...}`
|
|
6801
|
+
*
|
|
6802
|
+
* Route params (from `routeParams`) are inlined into the manifest
|
|
6803
|
+
* entry, eliminating the need for .params.json sidecar files. TIM-1255.
|
|
6804
|
+
*
|
|
6805
|
+
* Injected into HTML as:
|
|
6806
|
+
* `<script>window.__TIMBER_RSC_MANIFEST__={...}<\/script>`
|
|
6807
|
+
*
|
|
6808
|
+
* @internal Exported for testing.
|
|
6809
|
+
*/
|
|
6810
|
+
async function hashRscPayloads(staticDir, routeParams) {
|
|
6811
|
+
const files = await walkDir(join(staticDir, "_rsc"));
|
|
6812
|
+
const manifest = {};
|
|
6813
|
+
for (const filePath of files) {
|
|
6814
|
+
if (!filePath.endsWith(".rsc")) continue;
|
|
6815
|
+
const hash = contentHash(await readFile(filePath));
|
|
6816
|
+
const rel = relative(staticDir, filePath).replace(/\\/g, "/");
|
|
6817
|
+
const hashedPath = `${filePath.slice(0, -4)}-${hash}.rsc`;
|
|
6818
|
+
await rename(filePath, hashedPath);
|
|
6819
|
+
const hashedRel = relative(staticDir, hashedPath).replace(/\\/g, "/");
|
|
6820
|
+
const key = `/${rel}`;
|
|
6821
|
+
const entry = { url: `/${hashedRel}` };
|
|
6822
|
+
if (routeParams?.[key]) entry.params = routeParams[key];
|
|
6823
|
+
manifest[key] = entry;
|
|
6824
|
+
}
|
|
6825
|
+
return manifest;
|
|
6826
|
+
}
|
|
6827
|
+
/**
|
|
6828
|
+
* Inject the RSC manifest into all HTML files as a `<script>` tag
|
|
6829
|
+
* before `</head>`. This lets the client resolve hashed RSC URLs
|
|
6830
|
+
* without an extra network request.
|
|
6831
|
+
*
|
|
6832
|
+
* @internal Exported for testing.
|
|
6833
|
+
*/
|
|
6834
|
+
async function injectRscManifestIntoHtml(staticDir, manifest) {
|
|
6835
|
+
const htmlFiles = (await walkDir(staticDir)).filter((f) => f.endsWith(".html"));
|
|
6836
|
+
const scriptTag = `<script>window.__TIMBER_RSC_MANIFEST__=${htmlEscapeJsonString(JSON.stringify(manifest))}<\/script>`;
|
|
6837
|
+
for (const htmlFile of htmlFiles) {
|
|
6838
|
+
let html = await readFile(htmlFile, "utf-8");
|
|
6839
|
+
const headClose = html.indexOf("</head>");
|
|
6840
|
+
if (headClose !== -1) html = html.slice(0, headClose) + scriptTag + html.slice(headClose);
|
|
6841
|
+
else html = scriptTag + html;
|
|
6842
|
+
await writeFile(htmlFile, html);
|
|
6843
|
+
}
|
|
6844
|
+
}
|
|
6845
|
+
/**
|
|
6727
6846
|
* Read a user-authored `_redirects` file from the project's `public/`
|
|
6728
6847
|
* directory. Returns `null` if no file exists.
|
|
6729
6848
|
*
|