@timber-js/app 0.2.0-alpha.170 → 0.2.0-alpha.172

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. package/dist/_chunks/{actions-O_LsyCE4.js → actions-pN8r5Vnh.js} +3 -3
  2. package/dist/_chunks/{actions-O_LsyCE4.js.map → actions-pN8r5Vnh.js.map} +1 -1
  3. package/dist/_chunks/{cache-api-B-lhk9p4.js → cache-api-2hT5kfsr.js} +2 -2
  4. package/dist/_chunks/{cache-api-B-lhk9p4.js.map → cache-api-2hT5kfsr.js.map} +1 -1
  5. package/dist/_chunks/{canonicalize-Du3o_ptW.js → canonicalize-DQHyFClh.js} +2 -1
  6. package/dist/_chunks/canonicalize-DQHyFClh.js.map +1 -0
  7. package/dist/_chunks/{cli-schema-sync-B5FDplGI.js → cli-schema-sync-DvdvFwwE.js} +3 -3
  8. package/dist/_chunks/{cli-schema-sync-B5FDplGI.js.map → cli-schema-sync-DvdvFwwE.js.map} +1 -1
  9. package/dist/_chunks/{logger-AWfuX-KJ.js → logger-kUT0QH0K.js} +23 -1
  10. package/dist/_chunks/logger-kUT0QH0K.js.map +1 -0
  11. package/dist/_chunks/{walkers-DCoE-LJf.js → walkers-Bv63zfAC.js} +2 -2
  12. package/dist/_chunks/{walkers-DCoE-LJf.js.map → walkers-Bv63zfAC.js.map} +1 -1
  13. package/dist/cache/index.js +1 -1
  14. package/dist/cli.d.ts +3 -2
  15. package/dist/cli.d.ts.map +1 -1
  16. package/dist/cli.js +9 -5
  17. package/dist/cli.js.map +1 -1
  18. package/dist/client/internal.js +40 -6
  19. package/dist/client/internal.js.map +1 -1
  20. package/dist/client/rsc-fetch.d.ts +1 -1
  21. package/dist/client/segment-cache.d.ts +20 -3
  22. package/dist/client/segment-cache.d.ts.map +1 -1
  23. package/dist/client/segment-outlet.d.ts +10 -2
  24. package/dist/client/segment-outlet.d.ts.map +1 -1
  25. package/dist/client/slot-context.d.ts +10 -8
  26. package/dist/client/slot-context.d.ts.map +1 -1
  27. package/dist/client/slot-provider.d.ts +5 -0
  28. package/dist/client/slot-provider.d.ts.map +1 -1
  29. package/dist/fonts/google.d.ts.map +1 -1
  30. package/dist/index.js +43 -23
  31. package/dist/index.js.map +1 -1
  32. package/dist/routing/index.js +2 -2
  33. package/dist/server/access-gate.d.ts.map +1 -1
  34. package/dist/server/als-registry.d.ts +26 -0
  35. package/dist/server/als-registry.d.ts.map +1 -1
  36. package/dist/server/cookie-context.d.ts.map +1 -1
  37. package/dist/server/index.js +2 -2
  38. package/dist/server/internal.js +1614 -1667
  39. package/dist/server/internal.js.map +1 -1
  40. package/dist/server/metadata-routes.d.ts +13 -0
  41. package/dist/server/metadata-routes.d.ts.map +1 -1
  42. package/dist/server/metadata.d.ts +8 -0
  43. package/dist/server/metadata.d.ts.map +1 -1
  44. package/dist/server/prebuilt/slots.d.ts +33 -8
  45. package/dist/server/prebuilt/slots.d.ts.map +1 -1
  46. package/dist/server/prebuilt-builder.d.ts.map +1 -1
  47. package/dist/server/request-context.d.ts +15 -0
  48. package/dist/server/request-context.d.ts.map +1 -1
  49. package/dist/server/route-element-builder.d.ts +9 -11
  50. package/dist/server/route-element-builder.d.ts.map +1 -1
  51. package/dist/server/rsc-entry/helpers.d.ts +18 -10
  52. package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
  53. package/dist/server/rsc-entry/render-route.d.ts.map +1 -1
  54. package/dist/server/rsc-entry/rsc-payload.d.ts +2 -1
  55. package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
  56. package/dist/server/rsc-entry/ssr-renderer.d.ts +2 -0
  57. package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
  58. package/dist/server/slot-resolver.d.ts +46 -1
  59. package/dist/server/slot-resolver.d.ts.map +1 -1
  60. package/dist/server/state-tree-diff.d.ts +36 -3
  61. package/dist/server/state-tree-diff.d.ts.map +1 -1
  62. package/dist/server/tree-builder.d.ts +7 -0
  63. package/dist/server/tree-builder.d.ts.map +1 -1
  64. package/package.json +2 -2
  65. package/src/cli.ts +15 -5
  66. package/src/client/rsc-fetch.ts +1 -1
  67. package/src/client/segment-cache.ts +83 -10
  68. package/src/client/segment-outlet.tsx +24 -2
  69. package/src/client/slot-context.ts +10 -8
  70. package/src/client/slot-provider.tsx +9 -2
  71. package/src/fonts/google.ts +63 -36
  72. package/src/server/access-gate.tsx +28 -1
  73. package/src/server/als-registry.ts +44 -0
  74. package/src/server/cookie-context.ts +7 -1
  75. package/src/server/deny-renderer.ts +1 -1
  76. package/src/server/metadata-routes.ts +95 -0
  77. package/src/server/metadata.ts +21 -0
  78. package/src/server/prebuilt/slots.ts +39 -16
  79. package/src/server/prebuilt-builder.ts +6 -5
  80. package/src/server/prebuilt-runtime.ts +11 -11
  81. package/src/server/request-context.ts +47 -1
  82. package/src/server/route-element-builder.ts +72 -144
  83. package/src/server/rsc-entry/helpers.ts +68 -14
  84. package/src/server/rsc-entry/render-route.ts +11 -3
  85. package/src/server/rsc-entry/rsc-payload.ts +16 -3
  86. package/src/server/rsc-entry/ssr-renderer.ts +3 -1
  87. package/src/server/slot-resolver.ts +299 -8
  88. package/src/server/state-tree-diff.ts +104 -8
  89. package/src/server/tree-builder.ts +10 -0
  90. package/dist/_chunks/canonicalize-Du3o_ptW.js.map +0 -1
  91. package/dist/_chunks/logger-AWfuX-KJ.js.map +0 -1
  92. package/dist/client/child-segment-context.d.ts +0 -22
  93. package/dist/client/child-segment-context.d.ts.map +0 -1
  94. package/dist/client/child-segment-outlet.d.ts +0 -18
  95. package/dist/client/child-segment-outlet.d.ts.map +0 -1
  96. package/dist/client/child-segment-provider.d.ts +0 -21
  97. package/dist/client/child-segment-provider.d.ts.map +0 -1
  98. package/src/client/child-segment-context.ts +0 -40
  99. package/src/client/child-segment-outlet.tsx +0 -25
  100. package/src/client/child-segment-provider.tsx +0 -27
@@ -1 +1 @@
1
- {"version":3,"file":"slot-provider.d.ts","sourceRoot":"","sources":["../../src/client/slot-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAIH,OAAO,EAAiB,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AACtD,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,kBAAkB,8FAErE"}
1
+ {"version":3,"file":"slot-provider.d.ts","sourceRoot":"","sources":["../../src/client/slot-provider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAIH,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,EAAe,KAAK,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAEjE,UAAU,kBAAkB;IAC1B,MAAM,EAAE,UAAU,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,kBAAkB,8FAIrE"}
@@ -1 +1 @@
1
- {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/fonts/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAsCpE,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAiC/D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CAwBhF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CA8BjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAI5F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAiBnE;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,aAAa,EAAE,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CA+CvB;AAeD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,SAAkB,GAC1B,kBAAkB,EAAE,CAStB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,kBAAkB,EAAE,CAStB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAK5F"}
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../src/fonts/google.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAKH,OAAO,KAAK,EAAE,aAAa,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA4DpE,oEAAoE;AACpE,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,uCAAuC;IACvC,GAAG,EAAE,MAAM,CAAC;IACZ,mEAAmE;IACnE,YAAY,EAAE,MAAM,CAAC;IACrB,8EAA8E;IAC9E,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,iEAAiE;AACjE,MAAM,WAAW,UAAU;IACzB,qCAAqC;IACrC,IAAI,EAAE,cAAc,CAAC;IACrB,4EAA4E;IAC5E,cAAc,EAAE,MAAM,CAAC;IACvB,wCAAwC;IACxC,SAAS,EAAE,MAAM,CAAC;IAClB,2BAA2B;IAC3B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAiC/D;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC,CA2BhF;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,EAAE,CA8BjE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,cAAc,EAAE,CAI5F;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAI7E;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,cAAc,GAAG,MAAM,CAGrD;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAmBnE;AAED;;;;;;;GAOG;AACH,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,aAAa,EAAE,EACtB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,UAAU,EAAE,CAAC,CA+CvB;AAeD;;;;;;;GAOG;AACH,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,UAAU,EAAE,EACzB,OAAO,EAAE,MAAM,EACf,SAAS,SAAkB,GAC1B,kBAAkB,EAAE,CAStB;AAED;;;;;;GAMG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,EAAE,MAAM,GACd,kBAAkB,EAAE,CAStB;AAED;;;;;GAKG;AACH,wBAAsB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAK5F"}
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
- import { c as isDynamicMetadataExtension, l as isMetadataRouteServePath, r as canonicalize } from "./_chunks/canonicalize-Du3o_ptW.js";
3
- import { h as swallow } from "./_chunks/logger-AWfuX-KJ.js";
4
- import { i as scanRoutes } from "./_chunks/cli-schema-sync-B5FDplGI.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-DCoE-LJf.js";
2
+ import { c as isDynamicMetadataExtension, l as isMetadataRouteServePath, r as canonicalize } from "./_chunks/canonicalize-DQHyFClh.js";
3
+ import { h as swallow } from "./_chunks/logger-kUT0QH0K.js";
4
+ import { i as scanRoutes } from "./_chunks/cli-schema-sync-DvdvFwwE.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-Bv63zfAC.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";
@@ -19,8 +19,8 @@ import "node:http2";
19
19
  import { fileURLToPath, pathToFileURL } from "node:url";
20
20
  import { styleText } from "node:util";
21
21
  import { constants, createGzip, gzipSync } from "node:zlib";
22
- import { copyFile, mkdir, readFile, rename, rm, stat, writeFile } from "node:fs/promises";
23
22
  import { createHash, randomUUID } from "node:crypto";
23
+ import { copyFile, mkdir, readFile, 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",
@@ -3373,6 +3373,22 @@ function extractNetworkErrorCode(err) {
3373
3373
  }
3374
3374
  if (cause instanceof Error) return cause.code;
3375
3375
  }
3376
+ var MAX_RETRIES = 3;
3377
+ var MIN_TIMEOUT_MS = 100;
3378
+ async function retry(fn) {
3379
+ let lastError;
3380
+ for (let attempt = 0; attempt <= MAX_RETRIES; attempt++) try {
3381
+ return await fn();
3382
+ } catch (err) {
3383
+ lastError = err;
3384
+ if (attempt < MAX_RETRIES) {
3385
+ const delay = MIN_TIMEOUT_MS * 2 ** attempt;
3386
+ console.error(`${err instanceof Error ? err.message : String(err)}\n\nRetrying ${attempt + 1}/${MAX_RETRIES}...`);
3387
+ await new Promise((resolve) => setTimeout(resolve, delay));
3388
+ }
3389
+ }
3390
+ throw lastError;
3391
+ }
3376
3392
  /** Google Fonts CSS API v2 base URL. */
3377
3393
  var GOOGLE_FONTS_API = "https://fonts.googleapis.com/css2";
3378
3394
  /**
@@ -3419,15 +3435,17 @@ function buildGoogleFontsUrl(font) {
3419
3435
  * We parse each block to extract the font URL, unicode-range, and subset label.
3420
3436
  */
3421
3437
  async function fetchGoogleFontsCss(url) {
3422
- let response;
3423
- try {
3424
- response = await fetch(url, { headers: { "User-Agent": WOFF2_USER_AGENT } });
3425
- } catch (err) {
3426
- const code = extractNetworkErrorCode(err);
3427
- throw new Error(`[timber] Failed to fetch Google Fonts CSS from ${url}` + (code ? ` (${code})` : "") + ". Build requires internet access for font optimization. If building offline, set TIMBER_SKIP_FONTS=1 to skip font downloading.");
3428
- }
3429
- if (!response.ok) throw new Error(`Google Fonts API returned ${response.status}: ${response.statusText} for ${url}`);
3430
- return parseGoogleFontsCss(await response.text());
3438
+ return parseGoogleFontsCss(await retry(async () => {
3439
+ let response;
3440
+ try {
3441
+ response = await fetch(url, { headers: { "User-Agent": WOFF2_USER_AGENT } });
3442
+ } catch (err) {
3443
+ const code = extractNetworkErrorCode(err);
3444
+ throw new Error(`[timber] Failed to fetch Google Fonts CSS from ${url}` + (code ? ` (${code})` : "") + ". Build requires internet access for font optimization. If building offline, set TIMBER_SKIP_FONTS=1 to skip font downloading.");
3445
+ }
3446
+ if (!response.ok) throw new Error(`Google Fonts API returned ${response.status}: ${response.statusText} for ${url}`);
3447
+ return response.text();
3448
+ }));
3431
3449
  }
3432
3450
  /**
3433
3451
  * Parse the CSS response from Google Fonts API into structured font face data.
@@ -3494,15 +3512,17 @@ function cacheKey(face) {
3494
3512
  * Download a single font file from its URL.
3495
3513
  */
3496
3514
  async function downloadFontFile(url) {
3497
- let response;
3498
- try {
3499
- response = await fetch(url);
3500
- } catch (err) {
3501
- const code = extractNetworkErrorCode(err);
3502
- throw new Error(`[timber] Failed to download font file from ${url}` + (code ? ` (${code})` : "") + ". Build requires internet access for font optimization. If building offline, set TIMBER_SKIP_FONTS=1 to skip font downloading.");
3503
- }
3504
- if (!response.ok) throw new Error(`Failed to download font from ${url}: ${response.status}`);
3505
- return Buffer.from(await response.arrayBuffer());
3515
+ return retry(async () => {
3516
+ let response;
3517
+ try {
3518
+ response = await fetch(url);
3519
+ } catch (err) {
3520
+ const code = extractNetworkErrorCode(err);
3521
+ throw new Error(`[timber] Failed to download font file from ${url}` + (code ? ` (${code})` : "") + ". Build requires internet access for font optimization. If building offline, set TIMBER_SKIP_FONTS=1 to skip font downloading.");
3522
+ }
3523
+ if (!response.ok) throw new Error(`Failed to download font from ${url}: ${response.status}`);
3524
+ return Buffer.from(await response.arrayBuffer());
3525
+ });
3506
3526
  }
3507
3527
  /**
3508
3528
  * Download and cache all font files for a set of extracted Google fonts.