veryfront 0.1.729 → 0.1.731
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/esm/deno.js +1 -1
- package/esm/src/html/hydration-script-builder/dev-error-logger.d.ts.map +1 -1
- package/esm/src/html/hydration-script-builder/dev-error-logger.js +3 -1
- package/esm/src/server/handlers/request/ssr/ssr-response-builder.d.ts.map +1 -1
- package/esm/src/server/handlers/request/ssr/ssr-response-builder.js +14 -2
- package/esm/src/utils/version-constant.d.ts +1 -1
- package/esm/src/utils/version-constant.js +1 -1
- package/package.json +1 -1
package/esm/deno.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dev-error-logger.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-error-logger.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"dev-error-logger.d.ts","sourceRoot":"","sources":["../../../../src/src/html/hydration-script-builder/dev-error-logger.ts"],"names":[],"mappings":"AAEA,wBAAgB,4BAA4B,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAyDnE"}
|
|
@@ -15,7 +15,9 @@ export function generateDevErrorLoggerScript(nonce) {
|
|
|
15
15
|
details,
|
|
16
16
|
timestamp: new Date().toISOString()
|
|
17
17
|
})
|
|
18
|
-
}).catch(() => {
|
|
18
|
+
}).catch((error) => {
|
|
19
|
+
console.debug?.('[Veryfront] dev log POST failed', error);
|
|
20
|
+
});
|
|
19
21
|
} catch (_) { /* expected: fire-and-forget log, network errors ignored */ }
|
|
20
22
|
};
|
|
21
23
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ssr-response-builder.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/ssr/ssr-response-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAElF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"ssr-response-builder.d.ts","sourceRoot":"","sources":["../../../../../../src/src/server/handlers/request/ssr/ssr-response-builder.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAGrD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4CAA4C,CAAC;AAElF,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,+CAA+C,CAAC;AAgBrF;;;;;GAKG;AACH,wBAAsB,gBAAgB,CACpC,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,cAAc,EACnB,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,eAAe,GACvB,OAAO,CAAC,QAAQ,CAAC,CA2DnB"}
|
|
@@ -10,6 +10,18 @@ import { hasMatchingEtag } from "../../utils/etag.js";
|
|
|
10
10
|
import { getContentType } from "../../utils/content-types.js";
|
|
11
11
|
import { ErrorPages } from "../../../utils/error-html.js";
|
|
12
12
|
import { addNonceToHtmlStream, addNonceToHtmlTags } from "../../../../html/nonce-injection.js";
|
|
13
|
+
import { serverLogger } from "../../../../utils/index.js";
|
|
14
|
+
const logger = serverLogger.component("ssr-response-builder");
|
|
15
|
+
async function cancelHeadResponseBody(body) {
|
|
16
|
+
if (!body)
|
|
17
|
+
return;
|
|
18
|
+
try {
|
|
19
|
+
await body.cancel();
|
|
20
|
+
}
|
|
21
|
+
catch (error) {
|
|
22
|
+
logger.debug("SSR response body cancellation failed during HEAD cleanup", { error });
|
|
23
|
+
}
|
|
24
|
+
}
|
|
13
25
|
/**
|
|
14
26
|
* Build an HTTP response from an SSR render result.
|
|
15
27
|
*
|
|
@@ -29,7 +41,7 @@ export async function buildSSRResponse(req, ctx, result, builder) {
|
|
|
29
41
|
.withContentType(getContentType(".html"), addNonceToHtmlStream(result.stream, builder.nonce), result.status);
|
|
30
42
|
if (!isHeadRequest)
|
|
31
43
|
return response;
|
|
32
|
-
await response.body
|
|
44
|
+
await cancelHeadResponseBody(response.body);
|
|
33
45
|
return new Response(null, { status: response.status, headers: response.headers });
|
|
34
46
|
}
|
|
35
47
|
// ETag match → 304 Not Modified (production only)
|
|
@@ -59,6 +71,6 @@ export async function buildSSRResponse(req, ctx, result, builder) {
|
|
|
59
71
|
const finalResponse = response.withContentType(getContentType(".html"), body, result.status);
|
|
60
72
|
if (!isHeadRequest || !finalResponse.body)
|
|
61
73
|
return finalResponse;
|
|
62
|
-
await finalResponse.body
|
|
74
|
+
await cancelHeadResponseBody(finalResponse.body);
|
|
63
75
|
return new Response(null, { status: finalResponse.status, headers: finalResponse.headers });
|
|
64
76
|
}
|