@absolutejs/absolute 0.19.0-beta.1073 → 0.19.0-beta.1075
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/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/angular/index.js +52 -7
- package/dist/angular/index.js.map +6 -5
- package/dist/angular/server.js +52 -7
- package/dist/angular/server.js.map +6 -5
- package/dist/build.js +45 -6
- package/dist/build.js.map +5 -4
- package/dist/cli/config/server.js +53 -7
- package/dist/index.js +54 -11
- package/dist/index.js.map +7 -6
- package/dist/react/index.js +55 -10
- package/dist/react/index.js.map +6 -5
- package/dist/react/server.js +53 -8
- package/dist/react/server.js.map +6 -5
- package/dist/src/core/pageResponseCache.d.ts +23 -0
- package/dist/src/react/pageHandler.d.ts +5 -0
- package/dist/src/svelte/pageHandler.d.ts +5 -0
- package/dist/src/vue/pageHandler.d.ts +5 -0
- package/dist/svelte/index.js +53 -8
- package/dist/svelte/index.js.map +6 -5
- package/dist/svelte/server.js +53 -8
- package/dist/svelte/server.js.map +6 -5
- package/dist/vue/index.js +55 -10
- package/dist/vue/index.js.map +6 -5
- package/dist/vue/server.js +53 -8
- package/dist/vue/server.js.map +6 -5
- package/package.json +5 -1
package/dist/svelte/server.js
CHANGED
|
@@ -1169,6 +1169,43 @@ var init_devRouteRegistrationCallsite = __esm(() => {
|
|
|
1169
1169
|
pageHandlerWrappers = new WeakMap;
|
|
1170
1170
|
});
|
|
1171
1171
|
|
|
1172
|
+
// src/core/pageResponseCache.ts
|
|
1173
|
+
import { createHash as createHash2 } from "crypto";
|
|
1174
|
+
var STREAMING_PAGE_HEADER = "x-absolute-stream", HTML_CONTENT_TYPE = "text/html", streamingPageHeaders = (extra) => {
|
|
1175
|
+
const headers = new Headers(extra);
|
|
1176
|
+
headers.set("content-type", HTML_CONTENT_TYPE);
|
|
1177
|
+
headers.set(STREAMING_PAGE_HEADER, "1");
|
|
1178
|
+
return headers;
|
|
1179
|
+
}, computeEtag = (html) => `W/"${createHash2("sha1").update(html).digest("base64url")}"`, withPageCacheHeaders = async (response, request, options) => {
|
|
1180
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
1181
|
+
if (!contentType.includes(HTML_CONTENT_TYPE))
|
|
1182
|
+
return response;
|
|
1183
|
+
const isStreaming = response.headers.get(STREAMING_PAGE_HEADER) === "1";
|
|
1184
|
+
if (isStreaming && !options?.bufferStreamForEtag || !response.body) {
|
|
1185
|
+
response.headers.delete(STREAMING_PAGE_HEADER);
|
|
1186
|
+
response.headers.set("cache-control", "no-cache");
|
|
1187
|
+
return response;
|
|
1188
|
+
}
|
|
1189
|
+
const html = await response.text();
|
|
1190
|
+
const etag = computeEtag(html);
|
|
1191
|
+
if (request?.headers.get("if-none-match") === etag) {
|
|
1192
|
+
return new Response(null, {
|
|
1193
|
+
headers: { "cache-control": "no-cache", etag },
|
|
1194
|
+
status: 304
|
|
1195
|
+
});
|
|
1196
|
+
}
|
|
1197
|
+
const headers = new Headers(response.headers);
|
|
1198
|
+
headers.delete(STREAMING_PAGE_HEADER);
|
|
1199
|
+
headers.set("cache-control", "no-cache");
|
|
1200
|
+
headers.set("etag", etag);
|
|
1201
|
+
return new Response(html, {
|
|
1202
|
+
headers,
|
|
1203
|
+
status: response.status,
|
|
1204
|
+
statusText: response.statusText
|
|
1205
|
+
});
|
|
1206
|
+
};
|
|
1207
|
+
var init_pageResponseCache = () => {};
|
|
1208
|
+
|
|
1172
1209
|
// src/client/streamSwap.ts
|
|
1173
1210
|
var streamSwapRuntime = () => {
|
|
1174
1211
|
const absoluteWindow = window;
|
|
@@ -2445,9 +2482,11 @@ var setCurrentIslandManifest = (manifest) => {
|
|
|
2445
2482
|
|
|
2446
2483
|
// src/svelte/pageHandler.ts
|
|
2447
2484
|
init_devRouteRegistrationCallsite();
|
|
2485
|
+
init_pageResponseCache();
|
|
2448
2486
|
|
|
2449
2487
|
// src/core/responseEnhancers.ts
|
|
2450
2488
|
init_streamingSlots();
|
|
2489
|
+
init_pageResponseCache();
|
|
2451
2490
|
var toResponse = async (responseLike) => responseLike;
|
|
2452
2491
|
var cloneHeaders = (response) => {
|
|
2453
2492
|
const headers = new Headers(response.headers);
|
|
@@ -2471,8 +2510,10 @@ var enhanceHtmlResponseWithStreamingSlots = (response, {
|
|
|
2471
2510
|
runtimePlacement,
|
|
2472
2511
|
runtimePreludeScript
|
|
2473
2512
|
});
|
|
2513
|
+
const headers = cloneHeaders(response);
|
|
2514
|
+
headers.set(STREAMING_PAGE_HEADER, "1");
|
|
2474
2515
|
return new Response(body, {
|
|
2475
|
-
headers
|
|
2516
|
+
headers,
|
|
2476
2517
|
status: response.status,
|
|
2477
2518
|
statusText: response.statusText
|
|
2478
2519
|
});
|
|
@@ -2970,28 +3011,32 @@ var handleSveltePageRequest = async (input) => {
|
|
|
2970
3011
|
});
|
|
2971
3012
|
const { firstChunk, reader } = await primeSvelteStream(htmlStream);
|
|
2972
3013
|
return new Response(restorePrimedStream(firstChunk, reader), {
|
|
2973
|
-
headers:
|
|
3014
|
+
headers: streamingPageHeaders()
|
|
2974
3015
|
});
|
|
2975
3016
|
};
|
|
2976
|
-
|
|
3017
|
+
const pageResponse = await runWithStreamingSlotWarningScope(() => resolvedOptions?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, {
|
|
2977
3018
|
...resolvedOptions,
|
|
2978
3019
|
runtimePlacement: resolvedOptions.runtimePlacement ?? "body"
|
|
2979
3020
|
}) : renderPageResponse(), { handlerCallsite });
|
|
3021
|
+
return withPageCacheHeaders(pageResponse, input.request, {
|
|
3022
|
+
bufferStreamForEtag: input.bufferStreamForEtag
|
|
3023
|
+
});
|
|
2980
3024
|
} catch (error) {
|
|
2981
3025
|
console.error("[SSR] Svelte render error:", error);
|
|
2982
3026
|
const pageName = derivePageName(resolvedPagePath);
|
|
2983
3027
|
const conventionResponse = await renderConventionError("svelte", pageName, error);
|
|
2984
|
-
if (conventionResponse)
|
|
2985
|
-
return conventionResponse;
|
|
2986
|
-
|
|
3028
|
+
if (conventionResponse) {
|
|
3029
|
+
return withPageCacheHeaders(conventionResponse, input.request);
|
|
3030
|
+
}
|
|
3031
|
+
return withPageCacheHeaders(new Response(ssrErrorPage("svelte", error), {
|
|
2987
3032
|
headers: { "Content-Type": "text/html" },
|
|
2988
3033
|
status: 500
|
|
2989
|
-
});
|
|
3034
|
+
}), input.request);
|
|
2990
3035
|
}
|
|
2991
3036
|
};
|
|
2992
3037
|
export {
|
|
2993
3038
|
handleSveltePageRequest
|
|
2994
3039
|
};
|
|
2995
3040
|
|
|
2996
|
-
//# debugId=
|
|
3041
|
+
//# debugId=B672727CA49AF52C64756E2164756E21
|
|
2997
3042
|
//# sourceMappingURL=server.js.map
|