@timber-js/app 0.2.0-alpha.153 → 0.2.0-alpha.154
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/client/browser-entry/action-dispatch.d.ts.map +1 -1
- package/dist/server/internal.js +6 -2
- package/dist/server/internal.js.map +1 -1
- package/dist/server/pipeline-metadata.d.ts.map +1 -1
- package/dist/server/pipeline-phases.d.ts.map +1 -1
- package/dist/server/sitemap-handler.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/client/browser-entry/action-dispatch.ts +14 -0
- package/src/server/pipeline-metadata.ts +1 -0
- package/src/server/pipeline-phases.ts +4 -1
- package/src/server/sitemap-handler.ts +12 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-metadata.d.ts","sourceRoot":"","sources":["../../src/server/pipeline-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,OAAO,oBAAoB,EAAE,kBAAkB,GACzD,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"pipeline-metadata.d.ts","sourceRoot":"","sources":["../../src/server/pipeline-metadata.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAgBH;;;;;;;;GAQG;AACH,wBAAsB,uBAAuB,CAC3C,SAAS,EAAE,OAAO,oBAAoB,EAAE,kBAAkB,GACzD,OAAO,CAAC,QAAQ,CAAC,CAanB;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,KAAK,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC,GACD,MAAM,CAoBR;AAED;;;;GAIG;AACH,wBAAgB,qBAAqB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAMnE;AAED,qCAAqC;AACrC,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAO7C"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pipeline-phases.d.ts","sourceRoot":"","sources":["../../src/server/pipeline-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKrF,UAAU,aAAa;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAwBD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAID;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,oBAAoB,EAAE,OAAO,EAC7B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,YAAY,CAAC,CA6DvB;AAID;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,oBAAoB,EAAE,OAAO,EAC7B,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE,aAAa,GACjD,OAAO,CAAC,YAAY,CAAC,CAkBvB;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"pipeline-phases.d.ts","sourceRoot":"","sources":["../../src/server/pipeline-phases.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAoBH,OAAO,EAA2C,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEpG,OAAO,EAAqB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAC7E,OAAO,KAAK,EAAE,mBAAmB,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAKrF,UAAU,aAAa;IACrB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAwBD;;;;;GAKG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,QAAQ,EAAE,aAAa,EACvB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,YAAY,CAAC,CAmBvB;AAID;;;;GAIG;AACH,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,oBAAoB,EAAE,OAAO,EAC7B,aAAa,EAAE,aAAa,GAC3B,OAAO,CAAC,YAAY,CAAC,CA6DvB;AAID;;;GAGG;AACH,wBAAsB,cAAc,CAClC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,EACZ,KAAK,EAAE,UAAU,EACjB,eAAe,EAAE,OAAO,EACxB,oBAAoB,EAAE,OAAO,EAC7B,EAAE,iBAAiB,EAAE,YAAY,EAAE,EAAE,aAAa,GACjD,OAAO,CAAC,YAAY,CAAC,CAkBvB;AAID;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,aAAa,CACjC,MAAM,EAAE,cAAc,EACtB,GAAG,EAAE,OAAO,EACZ,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,eAAe,CAAC,EAAE,OAAO,GACxB,OAAO,CAAC,QAAQ,CAAC,CAwSnB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sitemap-handler.d.ts","sourceRoot":"","sources":["../../src/server/sitemap-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,
|
|
1
|
+
{"version":3,"file":"sitemap-handler.d.ts","sourceRoot":"","sources":["../../src/server/sitemap-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AASH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAKvD;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,IAAI,EAAE,WAAW,EACjB,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACrC,CAAC,CAAC,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC,GAAG,SAAS,CAyH9D"}
|
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.154",
|
|
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",
|
|
@@ -66,6 +66,20 @@ export function setupServerActions(): void {
|
|
|
66
66
|
// instead of returning HTTP 302. Perform a client-side SPA navigation.
|
|
67
67
|
if (hasRedirect) {
|
|
68
68
|
const wrapper = decoded as { _redirect: string; _status: number };
|
|
69
|
+
|
|
70
|
+
// External redirects (e.g., OAuth flows via redirectExternal()) must
|
|
71
|
+
// use a full page navigation — the RSC router can only fetch same-origin
|
|
72
|
+
// payloads. On browsers with the Navigation API, navigation.navigate()
|
|
73
|
+
// happens to perform a real cross-origin navigation, but browsers
|
|
74
|
+
// without it (iPad Safari) would attempt an RSC fetch that fails on CORS.
|
|
75
|
+
const isExternal =
|
|
76
|
+
wrapper._redirect.startsWith('https://') || wrapper._redirect.startsWith('http://');
|
|
77
|
+
if (isExternal) {
|
|
78
|
+
setHardNavigating(true);
|
|
79
|
+
window.location.href = wrapper._redirect;
|
|
80
|
+
return undefined;
|
|
81
|
+
}
|
|
82
|
+
|
|
69
83
|
try {
|
|
70
84
|
const router = getRouter();
|
|
71
85
|
void router.navigate(wrapper._redirect);
|
|
@@ -41,6 +41,7 @@ export async function serveStaticMetadataFile(
|
|
|
41
41
|
const headers: Record<string, string> = {
|
|
42
42
|
'Content-Type': isText ? `${contentType}; charset=utf-8` : contentType,
|
|
43
43
|
'Content-Length': String(body.byteLength),
|
|
44
|
+
'Cache-Control': 'public, max-age=14400, must-revalidate',
|
|
44
45
|
};
|
|
45
46
|
|
|
46
47
|
return new Response(body, { status: 200, headers });
|
|
@@ -316,7 +316,10 @@ export async function handleRequest(
|
|
|
316
316
|
}
|
|
317
317
|
return new Response(body, {
|
|
318
318
|
status: 200,
|
|
319
|
-
headers: {
|
|
319
|
+
headers: {
|
|
320
|
+
'Content-Type': `${contentType}; charset=utf-8`,
|
|
321
|
+
'Cache-Control': 'public, max-age=14400, must-revalidate',
|
|
322
|
+
},
|
|
320
323
|
});
|
|
321
324
|
} catch (error) {
|
|
322
325
|
// Control-flow signals from the metadata handler (e.g. a sitemap that
|
|
@@ -111,7 +111,10 @@ export function createAutoSitemapHandler(
|
|
|
111
111
|
const xml = result.type === 'single' ? result.xml : result.indexXml;
|
|
112
112
|
return new Response(xml, {
|
|
113
113
|
status: 200,
|
|
114
|
-
headers: {
|
|
114
|
+
headers: {
|
|
115
|
+
'Content-Type': 'application/xml; charset=utf-8',
|
|
116
|
+
'Cache-Control': 'public, max-age=14400, must-revalidate',
|
|
117
|
+
},
|
|
115
118
|
});
|
|
116
119
|
}
|
|
117
120
|
|
|
@@ -125,7 +128,10 @@ export function createAutoSitemapHandler(
|
|
|
125
128
|
if (pageIndex === 0) {
|
|
126
129
|
return new Response(result.xml, {
|
|
127
130
|
status: 200,
|
|
128
|
-
headers: {
|
|
131
|
+
headers: {
|
|
132
|
+
'Content-Type': 'application/xml; charset=utf-8',
|
|
133
|
+
'Cache-Control': 'public, max-age=14400, must-revalidate',
|
|
134
|
+
},
|
|
129
135
|
});
|
|
130
136
|
}
|
|
131
137
|
return new Response(null, { status: 404 });
|
|
@@ -138,7 +144,10 @@ export function createAutoSitemapHandler(
|
|
|
138
144
|
}
|
|
139
145
|
return new Response(pageXml, {
|
|
140
146
|
status: 200,
|
|
141
|
-
headers: {
|
|
147
|
+
headers: {
|
|
148
|
+
'Content-Type': 'application/xml; charset=utf-8',
|
|
149
|
+
'Cache-Control': 'public, max-age=14400, must-revalidate',
|
|
150
|
+
},
|
|
142
151
|
});
|
|
143
152
|
}
|
|
144
153
|
|