@timber-js/app 0.2.0-alpha.176 → 0.2.0-alpha.178
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"state-tree-diff.d.ts","sourceRoot":"","sources":["../../src/server/state-tree-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D;;;;GAIG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAiBxE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIhF;AAID,2EAA2E;AAC3E,MAAM,WAAW,eAAgB,SAAQ,GAAG,CAAC,MAAM,CAAC;IAClD,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"state-tree-diff.d.ts","sourceRoot":"","sources":["../../src/server/state-tree-diff.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAI9D;;;;GAIG;AACH,UAAU,eAAe;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,eAAe,EAAE,GAAG,MAAM,EAAE,CAiBxE;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,eAAe,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAIhF;AAID,2EAA2E;AAC3E,MAAM,WAAW,eAAgB,SAAQ,GAAG,CAAC,MAAM,CAAC;IAClD,KAAK,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAkBzE;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC,GAAG,SAAS,EAC9D,MAAM,EAAE,OAAO,EACf,cAAc,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GACjC,OAAO,CAaT;AAID,UAAU,kBAAkB;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC;IAChC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,mBAAmB,EAAE,MAAM,EAAE,CAAC;CAC/B;AAED;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,EAC7B,OAAO,EACP,WAAW,EACX,QAAQ,EACR,iBAAiB,EACjB,mBAAmB,GACpB,EAAE,kBAAkB,GAAG,OAAO,CAuB9B"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@timber-js/app",
|
|
3
|
-
"version": "0.2.0-alpha.
|
|
3
|
+
"version": "0.2.0-alpha.178",
|
|
4
4
|
"description": "Vite-native React framework built for Servers and Serverless Platforms — correct HTTP semantics, real status codes, pages that work without JavaScript",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cloudflare-workers",
|
|
@@ -650,7 +650,6 @@ export async function resolveSlotProps({
|
|
|
650
650
|
(c) => c.segmentType === 'intercepting'
|
|
651
651
|
);
|
|
652
652
|
const isSkipCandidate =
|
|
653
|
-
destMatch !== null &&
|
|
654
653
|
!interception &&
|
|
655
654
|
!hasInterceptingChildren &&
|
|
656
655
|
!parentParamsChanged &&
|
|
@@ -671,9 +670,10 @@ export async function resolveSlotProps({
|
|
|
671
670
|
// Non-skip-candidate slots skip eager evaluation — their access.ts
|
|
672
671
|
// runs during render via SlotAccessGate (normal path). Per design doc:
|
|
673
672
|
// "No access check for default.tsx" (destMatch null = unmatched slot).
|
|
674
|
-
const chainVerdicts =
|
|
675
|
-
|
|
676
|
-
|
|
673
|
+
const chainVerdicts =
|
|
674
|
+
isSkipCandidate && destMatch
|
|
675
|
+
? await evaluateSlotAccessChain(slotManifest, destMatch.chain)
|
|
676
|
+
: [];
|
|
677
677
|
const accessBlocked = chainVerdicts.some((v) => v.verdict !== 'pass');
|
|
678
678
|
const canSkip = isSkipCandidate && !accessBlocked;
|
|
679
679
|
|
|
@@ -94,14 +94,13 @@ export function parseClientStateTree(req: Request): ClientStateTree | null {
|
|
|
94
94
|
|
|
95
95
|
try {
|
|
96
96
|
const parsed = JSON.parse(header) as { segments?: unknown; slots?: unknown };
|
|
97
|
-
|
|
97
|
+
const hasSegments = Array.isArray(parsed.segments) && parsed.segments.length > 0;
|
|
98
|
+
const hasSlots = Array.isArray(parsed.slots) && parsed.slots.length > 0;
|
|
99
|
+
if (!hasSegments && !hasSlots) {
|
|
98
100
|
return null;
|
|
99
101
|
}
|
|
100
|
-
const result = new Set(parsed.segments as string[]) as ClientStateTree;
|
|
101
|
-
result.slots =
|
|
102
|
-
Array.isArray(parsed.slots) && parsed.slots.length > 0
|
|
103
|
-
? new Set(parsed.slots as string[])
|
|
104
|
-
: null;
|
|
102
|
+
const result = new Set(hasSegments ? (parsed.segments as string[]) : []) as ClientStateTree;
|
|
103
|
+
result.slots = hasSlots ? new Set(parsed.slots as string[]) : null;
|
|
105
104
|
return result;
|
|
106
105
|
} catch (err) {
|
|
107
106
|
swallow(err, 'malformed X-Timber-State-Tree header');
|