@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/index.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;
|
|
@@ -3683,9 +3720,11 @@ var setCurrentIslandManifest = (manifest) => {
|
|
|
3683
3720
|
|
|
3684
3721
|
// src/svelte/pageHandler.ts
|
|
3685
3722
|
init_devRouteRegistrationCallsite();
|
|
3723
|
+
init_pageResponseCache();
|
|
3686
3724
|
|
|
3687
3725
|
// src/core/responseEnhancers.ts
|
|
3688
3726
|
init_streamingSlots();
|
|
3727
|
+
init_pageResponseCache();
|
|
3689
3728
|
var toResponse = async (responseLike) => responseLike;
|
|
3690
3729
|
var cloneHeaders = (response) => {
|
|
3691
3730
|
const headers = new Headers(response.headers);
|
|
@@ -3709,8 +3748,10 @@ var enhanceHtmlResponseWithStreamingSlots = (response, {
|
|
|
3709
3748
|
runtimePlacement,
|
|
3710
3749
|
runtimePreludeScript
|
|
3711
3750
|
});
|
|
3751
|
+
const headers = cloneHeaders(response);
|
|
3752
|
+
headers.set(STREAMING_PAGE_HEADER, "1");
|
|
3712
3753
|
return new Response(body, {
|
|
3713
|
-
headers
|
|
3754
|
+
headers,
|
|
3714
3755
|
status: response.status,
|
|
3715
3756
|
statusText: response.statusText
|
|
3716
3757
|
});
|
|
@@ -4208,23 +4249,27 @@ var handleSveltePageRequest = async (input) => {
|
|
|
4208
4249
|
});
|
|
4209
4250
|
const { firstChunk, reader } = await primeSvelteStream(htmlStream);
|
|
4210
4251
|
return new Response(restorePrimedStream(firstChunk, reader), {
|
|
4211
|
-
headers:
|
|
4252
|
+
headers: streamingPageHeaders()
|
|
4212
4253
|
});
|
|
4213
4254
|
};
|
|
4214
|
-
|
|
4255
|
+
const pageResponse = await runWithStreamingSlotWarningScope(() => resolvedOptions?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, {
|
|
4215
4256
|
...resolvedOptions,
|
|
4216
4257
|
runtimePlacement: resolvedOptions.runtimePlacement ?? "body"
|
|
4217
4258
|
}) : renderPageResponse(), { handlerCallsite });
|
|
4259
|
+
return withPageCacheHeaders(pageResponse, input.request, {
|
|
4260
|
+
bufferStreamForEtag: input.bufferStreamForEtag
|
|
4261
|
+
});
|
|
4218
4262
|
} catch (error) {
|
|
4219
4263
|
console.error("[SSR] Svelte render error:", error);
|
|
4220
4264
|
const pageName = derivePageName(resolvedPagePath);
|
|
4221
4265
|
const conventionResponse = await renderConventionError("svelte", pageName, error);
|
|
4222
|
-
if (conventionResponse)
|
|
4223
|
-
return conventionResponse;
|
|
4224
|
-
|
|
4266
|
+
if (conventionResponse) {
|
|
4267
|
+
return withPageCacheHeaders(conventionResponse, input.request);
|
|
4268
|
+
}
|
|
4269
|
+
return withPageCacheHeaders(new Response(ssrErrorPage("svelte", error), {
|
|
4225
4270
|
headers: { "Content-Type": "text/html" },
|
|
4226
4271
|
status: 500
|
|
4227
|
-
});
|
|
4272
|
+
}), input.request);
|
|
4228
4273
|
}
|
|
4229
4274
|
};
|
|
4230
4275
|
// src/svelte/createIsland.ts
|
|
@@ -4368,5 +4413,5 @@ export {
|
|
|
4368
4413
|
createTypedIsland
|
|
4369
4414
|
};
|
|
4370
4415
|
|
|
4371
|
-
//# debugId=
|
|
4416
|
+
//# debugId=30411E4A4C5EB56264756E2164756E21
|
|
4372
4417
|
//# sourceMappingURL=index.js.map
|