@timber-js/app 0.2.0-alpha.8 → 0.2.0-alpha.9
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/index.d.ts +0 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +38 -34
- package/dist/index.js.map +1 -1
- package/dist/plugins/fonts.d.ts +7 -0
- package/dist/plugins/fonts.d.ts.map +1 -1
- package/dist/server/rsc-entry/index.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/index.ts +1 -2
- package/src/plugins/entries.ts +1 -1
- package/src/plugins/fonts.ts +54 -43
- package/src/server/rsc-entry/index.ts +7 -5
package/dist/index.d.ts
CHANGED
|
@@ -173,8 +173,6 @@ export interface PluginContext {
|
|
|
173
173
|
buildManifest: BuildManifest | null;
|
|
174
174
|
/** Startup timer for profiling cold start phases (active in dev, no-op in prod) */
|
|
175
175
|
timer: StartupTimer;
|
|
176
|
-
/** URL path to font CSS file, set by timber-fonts when fonts are registered */
|
|
177
|
-
fontCssUrl?: string;
|
|
178
176
|
}
|
|
179
177
|
/**
|
|
180
178
|
* Resolve the app directory. Checks (in order):
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAU,YAAY,EAAE,MAAM,MAAM,CAAC;AAwBjD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAG1D,uDAAuD;AACvD,MAAM,WAAW,sBAAsB;IACrC,yEAAyE;IACzE,QAAQ,EAAE,OAAO,CAAC;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,qEAAqE;AACrE,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,QAAQ,GAAG,QAAQ,CAAC;IAC7B;;;;;;;;;;OAUG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB;;;;;;;;;;;;;OAaG;IACH,gBAAgB,CAAC,EAAE,OAAO,GAAG,sBAAsB,CAAC;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE;QACP,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,cAAc,CAAC,EAAE,MAAM,CAAC;QACxB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;IACF,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B;;;;;OAKG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mEAAmE;IACnE,GAAG,CAAC,EAAE;QACJ,oFAAoF;QACpF,WAAW,CAAC,EAAE,MAAM,CAAC;KACtB,CAAC;IACF;;;;;OAKG;IACH,OAAO,CAAC,EAAE;QACR,gEAAgE;QAChE,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,4EAA4E;QAC5E,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF;;;;;;OAMG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,8FAA8F;IAC9F,GAAG,CAAC,EAAE;QACJ,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;QAC1B,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;QAC1B,YAAY,CAAC,EAAE,OAAO,EAAE,CAAC;QACzB,mBAAmB,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KAC/C,CAAC;IACF;;;;;;;;;OASG;IACH,SAAS,CAAC,EAAE;QACV,wDAAwD;QACxD,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,qCAAqC;QACrC,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,wCAAwC;QACxC,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,qDAAqD;QACrD,MAAM,CAAC,EAAE,OAAO,CAAC;QACjB,kFAAkF;QAClF,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kCAAkC;QAClC,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF;;;;;;;;;;OAUG;IACH,aAAa,CAAC,EACV,KAAK,GACL;QACE,gEAAgE;QAChE,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,kEAAkE;QAClE,KAAK,CAAC,EAAE,MAAM,CAAC;QACf;;;;;;;WAOG;QACH,UAAU,CAAC,EAAE,OAAO,CAAC;KACtB,CAAC;CACP;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,gBAAgB,GAAG,wBAAwB,CAmB1F;AAED;;;;;;GAMG;AACH,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,gBAAgB,CAAC;IACzB,+CAA+C;IAC/C,gBAAgB,EAAE,wBAAwB,CAAC;IAC3C,uFAAuF;IACvF,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,oFAAoF;IACpF,GAAG,EAAE,OAAO,CAAC;IACb,gFAAgF;IAChF,aAAa,EAAE,aAAa,GAAG,IAAI,CAAC;IACpC,mFAAmF;IACnF,KAAK,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -11935,8 +11935,7 @@ function generateConfigModule(ctx) {
|
|
|
11935
11935
|
cookieSecrets,
|
|
11936
11936
|
topLoader: ctx.config.topLoader,
|
|
11937
11937
|
responseCache: ctx.config.responseCache,
|
|
11938
|
-
debug: ctx.config.debug ?? false
|
|
11939
|
-
fontCssUrl: ctx.fontCssUrl ?? null
|
|
11938
|
+
debug: ctx.config.debug ?? false
|
|
11940
11939
|
};
|
|
11941
11940
|
return [
|
|
11942
11941
|
"// Auto-generated runtime config — do not edit.",
|
|
@@ -13360,8 +13359,15 @@ var VIRTUAL_GOOGLE = "@timber/fonts/google";
|
|
|
13360
13359
|
var VIRTUAL_LOCAL = "@timber/fonts/local";
|
|
13361
13360
|
var RESOLVED_GOOGLE = "\0@timber/fonts/google";
|
|
13362
13361
|
var RESOLVED_LOCAL = "\0@timber/fonts/local";
|
|
13363
|
-
/**
|
|
13364
|
-
|
|
13362
|
+
/**
|
|
13363
|
+
* Virtual module that exports the combined font CSS string.
|
|
13364
|
+
*
|
|
13365
|
+
* The RSC entry imports this module and inlines it as a <style> tag.
|
|
13366
|
+
* Unlike a config-based approach, this module is loaded lazily (on first
|
|
13367
|
+
* request), so it always has up-to-date font data from the registry.
|
|
13368
|
+
*/
|
|
13369
|
+
var VIRTUAL_FONT_CSS = "virtual:timber-font-css";
|
|
13370
|
+
var RESOLVED_FONT_CSS = "\0virtual:timber-font-css";
|
|
13365
13371
|
/**
|
|
13366
13372
|
* Convert a font family name to a PascalCase export name.
|
|
13367
13373
|
* e.g. "JetBrains Mono" → "JetBrains_Mono"
|
|
@@ -13509,6 +13515,24 @@ function generateLocalVirtualModule() {
|
|
|
13509
13515
|
].join("\n");
|
|
13510
13516
|
}
|
|
13511
13517
|
/**
|
|
13518
|
+
* Generate CSS for a single extracted font.
|
|
13519
|
+
*
|
|
13520
|
+
* Includes @font-face rules (for local fonts), fallback @font-face,
|
|
13521
|
+
* and the scoped class rule.
|
|
13522
|
+
*/
|
|
13523
|
+
function generateFontCss(font) {
|
|
13524
|
+
const cssParts = [];
|
|
13525
|
+
if (font.provider === "local" && font.localSources) {
|
|
13526
|
+
const faceCss = generateFontFaces(generateLocalFontFaces(font.family, font.localSources, font.display));
|
|
13527
|
+
if (faceCss) cssParts.push(faceCss);
|
|
13528
|
+
}
|
|
13529
|
+
const fallbackCss = generateFallbackCss(font.family);
|
|
13530
|
+
if (fallbackCss) cssParts.push(fallbackCss);
|
|
13531
|
+
if (font.variable) cssParts.push(generateVariableClass(font.className, font.variable, font.fontFamily));
|
|
13532
|
+
else cssParts.push(generateFontFamilyClass(font.className, font.fontFamily));
|
|
13533
|
+
return cssParts.join("\n\n");
|
|
13534
|
+
}
|
|
13535
|
+
/**
|
|
13512
13536
|
* Generate the CSS output for all extracted fonts.
|
|
13513
13537
|
*
|
|
13514
13538
|
* Includes @font-face rules for local fonts, fallback @font-face rules,
|
|
@@ -13516,16 +13540,7 @@ function generateLocalVirtualModule() {
|
|
|
13516
13540
|
*/
|
|
13517
13541
|
function generateAllFontCss(registry) {
|
|
13518
13542
|
const cssParts = [];
|
|
13519
|
-
for (const font of registry.values())
|
|
13520
|
-
if (font.provider === "local" && font.localSources) {
|
|
13521
|
-
const faceCss = generateFontFaces(generateLocalFontFaces(font.family, font.localSources, font.display));
|
|
13522
|
-
if (faceCss) cssParts.push(faceCss);
|
|
13523
|
-
}
|
|
13524
|
-
const fallbackCss = generateFallbackCss(font.family);
|
|
13525
|
-
if (fallbackCss) cssParts.push(fallbackCss);
|
|
13526
|
-
if (font.variable) cssParts.push(generateVariableClass(font.className, font.variable, font.fontFamily));
|
|
13527
|
-
else cssParts.push(generateFontFamilyClass(font.className, font.fontFamily));
|
|
13528
|
-
}
|
|
13543
|
+
for (const font of registry.values()) cssParts.push(generateFontCss(font));
|
|
13529
13544
|
return cssParts.join("\n\n");
|
|
13530
13545
|
}
|
|
13531
13546
|
/**
|
|
@@ -13581,11 +13596,16 @@ function timberFonts(ctx) {
|
|
|
13581
13596
|
resolveId(id) {
|
|
13582
13597
|
if (id === VIRTUAL_GOOGLE) return RESOLVED_GOOGLE;
|
|
13583
13598
|
if (id === VIRTUAL_LOCAL) return RESOLVED_LOCAL;
|
|
13599
|
+
if (id === VIRTUAL_FONT_CSS) return RESOLVED_FONT_CSS;
|
|
13584
13600
|
return null;
|
|
13585
13601
|
},
|
|
13586
13602
|
load(id) {
|
|
13587
13603
|
if (id === RESOLVED_GOOGLE) return generateGoogleVirtualModule(registry);
|
|
13588
13604
|
if (id === RESOLVED_LOCAL) return generateLocalVirtualModule();
|
|
13605
|
+
if (id === RESOLVED_FONT_CSS) {
|
|
13606
|
+
const css = generateAllFontCss(registry);
|
|
13607
|
+
return `export default ${JSON.stringify(css)};`;
|
|
13608
|
+
}
|
|
13589
13609
|
return null;
|
|
13590
13610
|
},
|
|
13591
13611
|
configureServer(server) {
|
|
@@ -13598,13 +13618,6 @@ function timberFonts(ctx) {
|
|
|
13598
13618
|
res.end("Bad request");
|
|
13599
13619
|
return;
|
|
13600
13620
|
}
|
|
13601
|
-
if (requestedFilename === "fonts.css") {
|
|
13602
|
-
const css = generateAllFontCss(registry);
|
|
13603
|
-
res.setHeader("Content-Type", "text/css");
|
|
13604
|
-
res.setHeader("Cache-Control", "no-cache");
|
|
13605
|
-
res.end(css);
|
|
13606
|
-
return;
|
|
13607
|
-
}
|
|
13608
13621
|
for (const font of registry.values()) {
|
|
13609
13622
|
if (font.provider !== "local" || !font.localSources) continue;
|
|
13610
13623
|
for (const src of font.localSources) if ((src.path.split("/").pop() ?? "") === requestedFilename) {
|
|
@@ -13687,13 +13700,10 @@ function timberFonts(ctx) {
|
|
|
13687
13700
|
}
|
|
13688
13701
|
}
|
|
13689
13702
|
if (hasLocalImport) transformedCode = transformLocalFonts(transformedCode, code, id, registry, this.error.bind(this));
|
|
13690
|
-
if (transformedCode !== code) {
|
|
13691
|
-
|
|
13692
|
-
|
|
13693
|
-
|
|
13694
|
-
map: null
|
|
13695
|
-
};
|
|
13696
|
-
}
|
|
13703
|
+
if (transformedCode !== code) return {
|
|
13704
|
+
code: transformedCode,
|
|
13705
|
+
map: null
|
|
13706
|
+
};
|
|
13697
13707
|
return null;
|
|
13698
13708
|
},
|
|
13699
13709
|
generateBundle() {
|
|
@@ -13719,12 +13729,6 @@ function timberFonts(ctx) {
|
|
|
13719
13729
|
});
|
|
13720
13730
|
}
|
|
13721
13731
|
}
|
|
13722
|
-
const fontCss = generateAllFontCss(registry);
|
|
13723
|
-
if (fontCss) this.emitFile({
|
|
13724
|
-
type: "asset",
|
|
13725
|
-
fileName: "_timber/fonts/fonts.css",
|
|
13726
|
-
source: fontCss
|
|
13727
|
-
});
|
|
13728
13732
|
if (!ctx.buildManifest) return;
|
|
13729
13733
|
const cachedByFamily = /* @__PURE__ */ new Map();
|
|
13730
13734
|
for (const cf of cachedFonts) {
|