@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.
- package/dist/_chunks/{actions-O_LsyCE4.js → actions-pN8r5Vnh.js} +3 -3
- package/dist/_chunks/{actions-O_LsyCE4.js.map → actions-pN8r5Vnh.js.map} +1 -1
- package/dist/_chunks/{cache-api-B-lhk9p4.js → cache-api-2hT5kfsr.js} +2 -2
- package/dist/_chunks/{cache-api-B-lhk9p4.js.map → cache-api-2hT5kfsr.js.map} +1 -1
- package/dist/_chunks/{canonicalize-Du3o_ptW.js → canonicalize-DQHyFClh.js} +2 -1
- package/dist/_chunks/canonicalize-DQHyFClh.js.map +1 -0
- package/dist/_chunks/{cli-schema-sync-B5FDplGI.js → cli-schema-sync-DvdvFwwE.js} +3 -3
- package/dist/_chunks/{cli-schema-sync-B5FDplGI.js.map → cli-schema-sync-DvdvFwwE.js.map} +1 -1
- package/dist/_chunks/{logger-AWfuX-KJ.js → logger-kUT0QH0K.js} +23 -1
- package/dist/_chunks/logger-kUT0QH0K.js.map +1 -0
- package/dist/_chunks/{walkers-DCoE-LJf.js → walkers-Bv63zfAC.js} +2 -2
- package/dist/_chunks/{walkers-DCoE-LJf.js.map → walkers-Bv63zfAC.js.map} +1 -1
- package/dist/cache/index.js +1 -1
- package/dist/cli.d.ts +3 -2
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +9 -5
- package/dist/cli.js.map +1 -1
- package/dist/client/internal.js +40 -6
- package/dist/client/internal.js.map +1 -1
- package/dist/client/rsc-fetch.d.ts +1 -1
- package/dist/client/segment-cache.d.ts +20 -3
- package/dist/client/segment-cache.d.ts.map +1 -1
- package/dist/client/segment-outlet.d.ts +10 -2
- package/dist/client/segment-outlet.d.ts.map +1 -1
- package/dist/client/slot-context.d.ts +10 -8
- package/dist/client/slot-context.d.ts.map +1 -1
- package/dist/client/slot-provider.d.ts +5 -0
- package/dist/client/slot-provider.d.ts.map +1 -1
- package/dist/fonts/google.d.ts.map +1 -1
- package/dist/index.js +43 -23
- package/dist/index.js.map +1 -1
- package/dist/routing/index.js +2 -2
- package/dist/server/access-gate.d.ts.map +1 -1
- package/dist/server/als-registry.d.ts +26 -0
- package/dist/server/als-registry.d.ts.map +1 -1
- package/dist/server/cookie-context.d.ts.map +1 -1
- package/dist/server/index.js +2 -2
- package/dist/server/internal.js +1614 -1667
- package/dist/server/internal.js.map +1 -1
- package/dist/server/metadata-routes.d.ts +13 -0
- package/dist/server/metadata-routes.d.ts.map +1 -1
- package/dist/server/metadata.d.ts +8 -0
- package/dist/server/metadata.d.ts.map +1 -1
- package/dist/server/prebuilt/slots.d.ts +33 -8
- package/dist/server/prebuilt/slots.d.ts.map +1 -1
- package/dist/server/prebuilt-builder.d.ts.map +1 -1
- package/dist/server/request-context.d.ts +15 -0
- package/dist/server/request-context.d.ts.map +1 -1
- package/dist/server/route-element-builder.d.ts +9 -11
- package/dist/server/route-element-builder.d.ts.map +1 -1
- package/dist/server/rsc-entry/helpers.d.ts +18 -10
- package/dist/server/rsc-entry/helpers.d.ts.map +1 -1
- package/dist/server/rsc-entry/render-route.d.ts.map +1 -1
- package/dist/server/rsc-entry/rsc-payload.d.ts +2 -1
- package/dist/server/rsc-entry/rsc-payload.d.ts.map +1 -1
- package/dist/server/rsc-entry/ssr-renderer.d.ts +2 -0
- package/dist/server/rsc-entry/ssr-renderer.d.ts.map +1 -1
- package/dist/server/slot-resolver.d.ts +46 -1
- package/dist/server/slot-resolver.d.ts.map +1 -1
- package/dist/server/state-tree-diff.d.ts +36 -3
- package/dist/server/state-tree-diff.d.ts.map +1 -1
- package/dist/server/tree-builder.d.ts +7 -0
- package/dist/server/tree-builder.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/cli.ts +15 -5
- package/src/client/rsc-fetch.ts +1 -1
- package/src/client/segment-cache.ts +83 -10
- package/src/client/segment-outlet.tsx +24 -2
- package/src/client/slot-context.ts +10 -8
- package/src/client/slot-provider.tsx +9 -2
- package/src/fonts/google.ts +63 -36
- package/src/server/access-gate.tsx +28 -1
- package/src/server/als-registry.ts +44 -0
- package/src/server/cookie-context.ts +7 -1
- package/src/server/deny-renderer.ts +1 -1
- package/src/server/metadata-routes.ts +95 -0
- package/src/server/metadata.ts +21 -0
- package/src/server/prebuilt/slots.ts +39 -16
- package/src/server/prebuilt-builder.ts +6 -5
- package/src/server/prebuilt-runtime.ts +11 -11
- package/src/server/request-context.ts +47 -1
- package/src/server/route-element-builder.ts +72 -144
- package/src/server/rsc-entry/helpers.ts +68 -14
- package/src/server/rsc-entry/render-route.ts +11 -3
- package/src/server/rsc-entry/rsc-payload.ts +16 -3
- package/src/server/rsc-entry/ssr-renderer.ts +3 -1
- package/src/server/slot-resolver.ts +299 -8
- package/src/server/state-tree-diff.ts +104 -8
- package/src/server/tree-builder.ts +10 -0
- package/dist/_chunks/canonicalize-Du3o_ptW.js.map +0 -1
- package/dist/_chunks/logger-AWfuX-KJ.js.map +0 -1
- package/dist/client/child-segment-context.d.ts +0 -22
- package/dist/client/child-segment-context.d.ts.map +0 -1
- package/dist/client/child-segment-outlet.d.ts +0 -18
- package/dist/client/child-segment-outlet.d.ts.map +0 -1
- package/dist/client/child-segment-provider.d.ts +0 -21
- package/dist/client/child-segment-provider.d.ts.map +0 -1
- package/src/client/child-segment-context.ts +0 -40
- package/src/client/child-segment-outlet.tsx +0 -25
- 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
|
-
}
|