@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,40 +0,0 @@
1
- /**
2
- * ChildSegmentContext — delivers child segment content to ChildSegmentOutlet.
3
- *
4
- * Each layout receives a stable <ChildSegmentOutlet /> client reference as
5
- * its `children` prop instead of varying server content. The actual child
6
- * content (page or inner layout) is provided via this context from a
7
- * ChildSegmentProvider placed ABOVE the layout in the element tree.
8
- *
9
- * This structural separation is what makes layout cache.component hits
10
- * possible: the cached layout payload contains a deterministic client
11
- * reference as children, not the varying inner content that changes per
12
- * route. Same pattern as Next.js LayoutRouter.
13
- *
14
- * SINGLETON GUARANTEE: Uses globalThis + Symbol.for — same pattern as
15
- * SegmentUpdateContext. The RSC client bundler can duplicate this module
16
- * across chunks; globalThis guarantees a single context instance.
17
- *
18
- * See design/45-cache-lifetimes.md §Layout Propagation.
19
- */
20
-
21
- 'use client';
22
-
23
- import React, { type ReactNode } from 'react';
24
-
25
- const CTX_KEY = Symbol.for('__timber_child_segment_ctx');
26
-
27
- function getOrCreateContext(): React.Context<ReactNode> {
28
- const existing = (globalThis as Record<symbol, unknown>)[CTX_KEY] as
29
- | React.Context<ReactNode>
30
- | undefined;
31
- if (existing !== undefined) return existing;
32
- if (typeof React.createContext === 'function') {
33
- const ctx = React.createContext<ReactNode>(null);
34
- (globalThis as Record<symbol, unknown>)[CTX_KEY] = ctx;
35
- return ctx;
36
- }
37
- return undefined as unknown as React.Context<ReactNode>;
38
- }
39
-
40
- export const ChildSegmentContext = getOrCreateContext();
@@ -1,25 +0,0 @@
1
- /**
2
- * ChildSegmentOutlet — renders child segment content from context.
3
- *
4
- * Passed as `children` to every layout component, replacing the previous
5
- * pattern of passing rendered server content directly. The layout receives
6
- * a stable client reference (this component), and the actual child content
7
- * is delivered via ChildSegmentContext from a provider above the layout.
8
- *
9
- * This makes layout cache.component hits possible: the cached layout
10
- * payload contains this deterministic client reference, not varying
11
- * server content. On cache hit, the revived payload contains the layout
12
- * shell + this outlet; the provider above supplies the current request's
13
- * child content.
14
- *
15
- * See design/45-cache-lifetimes.md §Layout Propagation.
16
- */
17
-
18
- 'use client';
19
-
20
- import { useContext } from 'react';
21
- import { ChildSegmentContext } from './child-segment-context.js';
22
-
23
- export function ChildSegmentOutlet() {
24
- return useContext(ChildSegmentContext);
25
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * ChildSegmentProvider — wraps a layout to provide child segment content.
3
- *
4
- * Placed above the layout in the element tree so that ChildSegmentOutlet
5
- * (inside the layout's `children`) can read the actual child content.
6
- *
7
- * Tree structure:
8
- * ChildSegmentProvider(childContent=innerElement)
9
- * └── Layout(children=<ChildSegmentOutlet />)
10
- * └── ChildSegmentOutlet → reads context → innerElement
11
- *
12
- * See design/45-cache-lifetimes.md §Layout Propagation.
13
- */
14
-
15
- 'use client';
16
-
17
- import { createElement, type ReactNode } from 'react';
18
- import { ChildSegmentContext } from './child-segment-context.js';
19
-
20
- interface ChildSegmentProviderProps {
21
- childContent: ReactNode;
22
- children: ReactNode;
23
- }
24
-
25
- export function ChildSegmentProvider({ childContent, children }: ChildSegmentProviderProps) {
26
- return createElement(ChildSegmentContext.Provider, { value: childContent }, children);
27
- }