@timber-js/app 0.2.0-alpha.40 → 0.2.0-alpha.41
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":"ssr-entry.d.ts","sourceRoot":"","sources":["../../src/server/ssr-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0EH;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACvC;;;0DAGsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;iFAE6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;4DACwD;IACxD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE;QACZ,gFAAgF;QAChF,QAAQ,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,OAAO,EAAE,MAAM,CAAC;QAChB,gEAAgE;QAChE,MAAM,EAAE,MAAM,CAAC;QACf,wEAAwE;QACxE,UAAU,EAAE,MAAM,CAAC;QACnB,+CAA+C;QAC/C,OAAO,EAAE,MAAM,CAAC;QAChB,sDAAsD;QACtD,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"ssr-entry.d.ts","sourceRoot":"","sources":["../../src/server/ssr-entry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AA0EH;;;;;GAKG;AACH,MAAM,WAAW,UAAU;IACzB,6BAA6B;IAC7B,QAAQ,EAAE,MAAM,CAAC;IACjB,mEAAmE;IACnE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC,CAAC;IAC1C,iCAAiC;IACjC,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,qCAAqC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,6CAA6C;IAC7C,eAAe,EAAE,OAAO,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,sBAAsB,EAAE,MAAM,CAAC;IAC/B,qEAAqE;IACrE,SAAS,CAAC,EAAE,cAAc,CAAC,UAAU,CAAC,CAAC;IACvC;;;0DAGsD;IACtD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B;;iFAE6E;IAC7E,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB;4DACwD;IACxD,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9B;;;;;OAKG;IACH,sBAAsB,CAAC,EAAE,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,WAAW,CAAC,EAAE;QACZ,gFAAgF;QAChF,QAAQ,EAAE,MAAM,CAAC;QACjB,uDAAuD;QACvD,OAAO,EAAE,MAAM,CAAC;QAChB,gEAAgE;QAChE,MAAM,EAAE,MAAM,CAAC;QACf,wEAAwE;QACxE,UAAU,EAAE,MAAM,CAAC;QACnB,+CAA+C;QAC/C,OAAO,EAAE,MAAM,CAAC;QAChB,sDAAsD;QACtD,WAAW,EAAE,OAAO,CAAC;KACtB,CAAC;CACH;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAsB,SAAS,CAC7B,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC,EACrC,UAAU,EAAE,UAAU,GACrB,OAAO,CAAC,QAAQ,CAAC,CA0JnB;AAED,eAAe,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-render.d.ts","sourceRoot":"","sources":["../../src/server/ssr-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"ssr-render.d.ts","sourceRoot":"","sources":["../../src/server/ssr-render.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAuFvC;;;;;;;;;;;;;GAaG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;IACR,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,OAAO,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC,CAErC;AAED,wEAAwE;AACxE,eAAO,MAAM,cAAc,SAAkB,CAAC;AAU9C;;;;;;GAMG;AACH,wBAAsB,mBAAmB,CACvC,OAAO,EAAE,SAAS,EAClB,OAAO,CAAC,EAAE;IACR,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B,GACA,OAAO,CAAC,OAAO,aAAa,EAAE,QAAQ,CAAC,CAyFzC;AAED,6EAA6E;AAC7E,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,aAAa,EAAE,QAAQ,GACvC,cAAc,CAAC,UAAU,CAAC,CAE5B;AAuFD;;;;;;;;;;;;GAYG;AACH,2CAA2C;AAC3C,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,cAAc,CAAC,UAAU,CAAC,EAClC,MAAM,CAAC,EAAE,WAAW,GACnB,cAAc,CAAC,UAAU,CAAC,CA2B5B;AAWD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,UAAU,EAAE,cAAc,CAAC,UAAU,CAAC,EACtC,UAAU,EAAE,MAAM,EAClB,eAAe,EAAE,OAAO,GACvB,QAAQ,CASV"}
|
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.41",
|
|
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",
|
package/src/server/ssr-entry.ts
CHANGED
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
useNodeStreams,
|
|
29
29
|
buildSsrResponse,
|
|
30
30
|
} from './ssr-render.js';
|
|
31
|
-
import {
|
|
31
|
+
import { logRenderError } from './logger.js';
|
|
32
32
|
import { SsrStreamError } from './primitives.js';
|
|
33
33
|
import { injectHead, injectRscPayload } from './html-injectors.js';
|
|
34
34
|
import { withNuqsSsrAdapter } from './nuqs-ssr-provider.js';
|
|
@@ -254,10 +254,7 @@ export async function handleSsr(
|
|
|
254
254
|
renderTimeoutMs,
|
|
255
255
|
});
|
|
256
256
|
} catch (renderError) {
|
|
257
|
-
|
|
258
|
-
'[timber] SSR shell failed from RSC stream error:',
|
|
259
|
-
formatSsrError(renderError)
|
|
260
|
-
);
|
|
257
|
+
logRenderError({ method: '', path: '', error: renderError });
|
|
261
258
|
throw new SsrStreamError(
|
|
262
259
|
'SSR renderToReadableStream failed due to RSC stream error',
|
|
263
260
|
renderError
|
|
@@ -304,10 +301,7 @@ export async function handleSsr(
|
|
|
304
301
|
renderTimeoutMs,
|
|
305
302
|
});
|
|
306
303
|
} catch (renderError) {
|
|
307
|
-
|
|
308
|
-
'[timber] SSR shell failed from RSC stream error:',
|
|
309
|
-
formatSsrError(renderError)
|
|
310
|
-
);
|
|
304
|
+
logRenderError({ method: '', path: '', error: renderError });
|
|
311
305
|
throw new SsrStreamError(
|
|
312
306
|
'SSR renderToReadableStream failed due to RSC stream error',
|
|
313
307
|
renderError
|
package/src/server/ssr-render.ts
CHANGED
|
@@ -26,6 +26,23 @@ import { renderToReadableStream } from 'react-dom/server';
|
|
|
26
26
|
import { createRenderTimeout, RenderTimeoutError } from './render-timeout.js';
|
|
27
27
|
import { logRenderError, logStreamingError } from './logger.js';
|
|
28
28
|
|
|
29
|
+
/**
|
|
30
|
+
* React's production error sanitization message. When NODE_ENV=production,
|
|
31
|
+
* React replaces all error messages with this string in renderToReadableStream
|
|
32
|
+
* and renderToPipeableStream. The original error was already logged by the
|
|
33
|
+
* RSC onError handler — logging the sanitized version in SSR is duplicate noise.
|
|
34
|
+
*/
|
|
35
|
+
const REACT_PROD_ERROR_PREFIX = 'An error occurred in the Server Components render';
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Returns true if the error is React's sanitized production error.
|
|
39
|
+
* These are duplicates of errors already logged by the RSC onError handler
|
|
40
|
+
* with the full original message — logging them again in SSR adds noise.
|
|
41
|
+
*/
|
|
42
|
+
function isReactSanitizedError(error: unknown): boolean {
|
|
43
|
+
return error instanceof Error && error.message.startsWith(REACT_PROD_ERROR_PREFIX);
|
|
44
|
+
}
|
|
45
|
+
|
|
29
46
|
/**
|
|
30
47
|
* Inline script that injects <meta name="robots" content="noindex"> into <head>.
|
|
31
48
|
*
|
|
@@ -187,6 +204,9 @@ export async function renderSsrNodeStream(
|
|
|
187
204
|
|
|
188
205
|
onError(error: unknown) {
|
|
189
206
|
if (isAbortError(error) || signal?.aborted) return;
|
|
207
|
+
// Skip React's sanitized production errors — the original was
|
|
208
|
+
// already logged by the RSC onError with full details.
|
|
209
|
+
if (isReactSanitizedError(error)) return;
|
|
190
210
|
logRenderError({ method: '', path: '', error });
|
|
191
211
|
},
|
|
192
212
|
});
|
|
@@ -283,6 +303,9 @@ async function renderViaReadableStream(
|
|
|
283
303
|
});
|
|
284
304
|
return;
|
|
285
305
|
}
|
|
306
|
+
// Skip React's sanitized production errors — the original was
|
|
307
|
+
// already logged by the RSC onError with full details.
|
|
308
|
+
if (isReactSanitizedError(error)) return;
|
|
286
309
|
logRenderError({ method: '', path: '', error });
|
|
287
310
|
},
|
|
288
311
|
});
|