@absolutejs/absolute 0.19.0-beta.1073 → 0.19.0-beta.1074
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 +50 -7
- package/dist/angular/index.js.map +6 -5
- package/dist/angular/server.js +50 -7
- package/dist/angular/server.js.map +6 -5
- package/dist/build.js +43 -6
- package/dist/build.js.map +5 -4
- package/dist/cli/config/server.js +49 -7
- package/dist/index.js +52 -11
- package/dist/index.js.map +7 -6
- package/dist/react/index.js +51 -10
- package/dist/react/index.js.map +6 -5
- package/dist/react/server.js +49 -8
- package/dist/react/server.js.map +6 -5
- package/dist/src/core/pageResponseCache.d.ts +9 -0
- package/dist/svelte/index.js +49 -8
- package/dist/svelte/index.js.map +6 -5
- package/dist/svelte/server.js +49 -8
- package/dist/svelte/server.js.map +6 -5
- package/dist/vue/index.js +51 -10
- package/dist/vue/index.js.map +6 -5
- package/dist/vue/server.js +49 -8
- package/dist/vue/server.js.map +6 -5
- package/package.json +5 -1
package/dist/svelte/index.js
CHANGED
|
@@ -1169,6 +1169,41 @@ 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) => {
|
|
1180
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
1181
|
+
if (!contentType.includes(HTML_CONTENT_TYPE))
|
|
1182
|
+
return response;
|
|
1183
|
+
if (response.headers.get(STREAMING_PAGE_HEADER) === "1" || !response.body) {
|
|
1184
|
+
response.headers.delete(STREAMING_PAGE_HEADER);
|
|
1185
|
+
response.headers.set("cache-control", "no-cache");
|
|
1186
|
+
return response;
|
|
1187
|
+
}
|
|
1188
|
+
const html = await response.text();
|
|
1189
|
+
const etag = computeEtag(html);
|
|
1190
|
+
if (request?.headers.get("if-none-match") === etag) {
|
|
1191
|
+
return new Response(null, {
|
|
1192
|
+
headers: { "cache-control": "no-cache", etag },
|
|
1193
|
+
status: 304
|
|
1194
|
+
});
|
|
1195
|
+
}
|
|
1196
|
+
const headers = new Headers(response.headers);
|
|
1197
|
+
headers.set("cache-control", "no-cache");
|
|
1198
|
+
headers.set("etag", etag);
|
|
1199
|
+
return new Response(html, {
|
|
1200
|
+
headers,
|
|
1201
|
+
status: response.status,
|
|
1202
|
+
statusText: response.statusText
|
|
1203
|
+
});
|
|
1204
|
+
};
|
|
1205
|
+
var init_pageResponseCache = () => {};
|
|
1206
|
+
|
|
1172
1207
|
// src/client/streamSwap.ts
|
|
1173
1208
|
var streamSwapRuntime = () => {
|
|
1174
1209
|
const absoluteWindow = window;
|
|
@@ -3683,9 +3718,11 @@ var setCurrentIslandManifest = (manifest) => {
|
|
|
3683
3718
|
|
|
3684
3719
|
// src/svelte/pageHandler.ts
|
|
3685
3720
|
init_devRouteRegistrationCallsite();
|
|
3721
|
+
init_pageResponseCache();
|
|
3686
3722
|
|
|
3687
3723
|
// src/core/responseEnhancers.ts
|
|
3688
3724
|
init_streamingSlots();
|
|
3725
|
+
init_pageResponseCache();
|
|
3689
3726
|
var toResponse = async (responseLike) => responseLike;
|
|
3690
3727
|
var cloneHeaders = (response) => {
|
|
3691
3728
|
const headers = new Headers(response.headers);
|
|
@@ -3709,8 +3746,10 @@ var enhanceHtmlResponseWithStreamingSlots = (response, {
|
|
|
3709
3746
|
runtimePlacement,
|
|
3710
3747
|
runtimePreludeScript
|
|
3711
3748
|
});
|
|
3749
|
+
const headers = cloneHeaders(response);
|
|
3750
|
+
headers.set(STREAMING_PAGE_HEADER, "1");
|
|
3712
3751
|
return new Response(body, {
|
|
3713
|
-
headers
|
|
3752
|
+
headers,
|
|
3714
3753
|
status: response.status,
|
|
3715
3754
|
statusText: response.statusText
|
|
3716
3755
|
});
|
|
@@ -4208,23 +4247,25 @@ var handleSveltePageRequest = async (input) => {
|
|
|
4208
4247
|
});
|
|
4209
4248
|
const { firstChunk, reader } = await primeSvelteStream(htmlStream);
|
|
4210
4249
|
return new Response(restorePrimedStream(firstChunk, reader), {
|
|
4211
|
-
headers:
|
|
4250
|
+
headers: streamingPageHeaders()
|
|
4212
4251
|
});
|
|
4213
4252
|
};
|
|
4214
|
-
|
|
4253
|
+
const pageResponse = await runWithStreamingSlotWarningScope(() => resolvedOptions?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, {
|
|
4215
4254
|
...resolvedOptions,
|
|
4216
4255
|
runtimePlacement: resolvedOptions.runtimePlacement ?? "body"
|
|
4217
4256
|
}) : renderPageResponse(), { handlerCallsite });
|
|
4257
|
+
return withPageCacheHeaders(pageResponse, input.request);
|
|
4218
4258
|
} catch (error) {
|
|
4219
4259
|
console.error("[SSR] Svelte render error:", error);
|
|
4220
4260
|
const pageName = derivePageName(resolvedPagePath);
|
|
4221
4261
|
const conventionResponse = await renderConventionError("svelte", pageName, error);
|
|
4222
|
-
if (conventionResponse)
|
|
4223
|
-
return conventionResponse;
|
|
4224
|
-
|
|
4262
|
+
if (conventionResponse) {
|
|
4263
|
+
return withPageCacheHeaders(conventionResponse, input.request);
|
|
4264
|
+
}
|
|
4265
|
+
return withPageCacheHeaders(new Response(ssrErrorPage("svelte", error), {
|
|
4225
4266
|
headers: { "Content-Type": "text/html" },
|
|
4226
4267
|
status: 500
|
|
4227
|
-
});
|
|
4268
|
+
}), input.request);
|
|
4228
4269
|
}
|
|
4229
4270
|
};
|
|
4230
4271
|
// src/svelte/createIsland.ts
|
|
@@ -4368,5 +4409,5 @@ export {
|
|
|
4368
4409
|
createTypedIsland
|
|
4369
4410
|
};
|
|
4370
4411
|
|
|
4371
|
-
//# debugId=
|
|
4412
|
+
//# debugId=B8B5C4E9053927DC64756E2164756E21
|
|
4372
4413
|
//# sourceMappingURL=index.js.map
|