@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/vue/index.js
CHANGED
|
@@ -204,6 +204,41 @@ var init_devRouteRegistrationCallsite = __esm(() => {
|
|
|
204
204
|
pageHandlerWrappers = new WeakMap;
|
|
205
205
|
});
|
|
206
206
|
|
|
207
|
+
// src/core/pageResponseCache.ts
|
|
208
|
+
import { createHash } from "crypto";
|
|
209
|
+
var STREAMING_PAGE_HEADER = "x-absolute-stream", HTML_CONTENT_TYPE = "text/html", streamingPageHeaders = (extra) => {
|
|
210
|
+
const headers = new Headers(extra);
|
|
211
|
+
headers.set("content-type", HTML_CONTENT_TYPE);
|
|
212
|
+
headers.set(STREAMING_PAGE_HEADER, "1");
|
|
213
|
+
return headers;
|
|
214
|
+
}, computeEtag = (html) => `W/"${createHash("sha1").update(html).digest("base64url")}"`, withPageCacheHeaders = async (response, request) => {
|
|
215
|
+
const contentType = response.headers.get("content-type") ?? "";
|
|
216
|
+
if (!contentType.includes(HTML_CONTENT_TYPE))
|
|
217
|
+
return response;
|
|
218
|
+
if (response.headers.get(STREAMING_PAGE_HEADER) === "1" || !response.body) {
|
|
219
|
+
response.headers.delete(STREAMING_PAGE_HEADER);
|
|
220
|
+
response.headers.set("cache-control", "no-cache");
|
|
221
|
+
return response;
|
|
222
|
+
}
|
|
223
|
+
const html = await response.text();
|
|
224
|
+
const etag = computeEtag(html);
|
|
225
|
+
if (request?.headers.get("if-none-match") === etag) {
|
|
226
|
+
return new Response(null, {
|
|
227
|
+
headers: { "cache-control": "no-cache", etag },
|
|
228
|
+
status: 304
|
|
229
|
+
});
|
|
230
|
+
}
|
|
231
|
+
const headers = new Headers(response.headers);
|
|
232
|
+
headers.set("cache-control", "no-cache");
|
|
233
|
+
headers.set("etag", etag);
|
|
234
|
+
return new Response(html, {
|
|
235
|
+
headers,
|
|
236
|
+
status: response.status,
|
|
237
|
+
statusText: response.statusText
|
|
238
|
+
});
|
|
239
|
+
};
|
|
240
|
+
var init_pageResponseCache = () => {};
|
|
241
|
+
|
|
207
242
|
// src/client/streamSwap.ts
|
|
208
243
|
var streamSwapRuntime = () => {
|
|
209
244
|
const absoluteWindow = window;
|
|
@@ -2401,7 +2436,7 @@ __export(exports_stylePreprocessor, {
|
|
|
2401
2436
|
compileStyleFileIfNeeded: () => compileStyleFileIfNeeded,
|
|
2402
2437
|
addStyleImporter: () => addStyleImporter
|
|
2403
2438
|
});
|
|
2404
|
-
import { createHash } from "crypto";
|
|
2439
|
+
import { createHash as createHash2 } from "crypto";
|
|
2405
2440
|
import { existsSync as existsSync6, readFileSync as readFileSync5 } from "fs";
|
|
2406
2441
|
import { readFile as readFile2 } from "fs/promises";
|
|
2407
2442
|
import { createRequire } from "module";
|
|
@@ -2734,7 +2769,7 @@ ${contents}` : contents, normalizePostcssModule = (mod) => {
|
|
|
2734
2769
|
return importers;
|
|
2735
2770
|
}, recordStyleOutput = (entry, css) => {
|
|
2736
2771
|
const key = resolve6(entry);
|
|
2737
|
-
const hash =
|
|
2772
|
+
const hash = createHash2("sha1").update(css).digest("hex");
|
|
2738
2773
|
const previous = styleOutputHashes.get(key);
|
|
2739
2774
|
styleOutputHashes.set(key, hash);
|
|
2740
2775
|
return previous !== hash;
|
|
@@ -4283,9 +4318,11 @@ var setCurrentIslandManifest = (manifest) => {
|
|
|
4283
4318
|
|
|
4284
4319
|
// src/vue/pageHandler.ts
|
|
4285
4320
|
init_devRouteRegistrationCallsite();
|
|
4321
|
+
init_pageResponseCache();
|
|
4286
4322
|
|
|
4287
4323
|
// src/core/responseEnhancers.ts
|
|
4288
4324
|
init_streamingSlots();
|
|
4325
|
+
init_pageResponseCache();
|
|
4289
4326
|
var toResponse = async (responseLike) => responseLike;
|
|
4290
4327
|
var cloneHeaders = (response) => {
|
|
4291
4328
|
const headers = new Headers(response.headers);
|
|
@@ -4309,8 +4346,10 @@ var enhanceHtmlResponseWithStreamingSlots = (response, {
|
|
|
4309
4346
|
runtimePlacement,
|
|
4310
4347
|
runtimePreludeScript
|
|
4311
4348
|
});
|
|
4349
|
+
const headers = cloneHeaders(response);
|
|
4350
|
+
headers.set(STREAMING_PAGE_HEADER, "1");
|
|
4312
4351
|
return new Response(body, {
|
|
4313
|
-
headers
|
|
4352
|
+
headers,
|
|
4314
4353
|
status: response.status,
|
|
4315
4354
|
statusText: response.statusText
|
|
4316
4355
|
});
|
|
@@ -4845,20 +4884,22 @@ var handleVuePageRequest = async (input) => {
|
|
|
4845
4884
|
hasIslands: resolvedPage.hasIslands
|
|
4846
4885
|
});
|
|
4847
4886
|
return new Response(htmlStream, {
|
|
4848
|
-
headers:
|
|
4887
|
+
headers: streamingPageHeaders()
|
|
4849
4888
|
});
|
|
4850
4889
|
};
|
|
4851
|
-
|
|
4890
|
+
const pageResponse = await runWithStreamingSlotWarningScope(() => resolvedOptions?.collectStreamingSlots === true ? withRegisteredStreamingSlots(renderPageResponse, resolvedOptions) : renderPageResponse(), { handlerCallsite });
|
|
4891
|
+
return withPageCacheHeaders(pageResponse, input.request);
|
|
4852
4892
|
} catch (error) {
|
|
4853
4893
|
console.error("[SSR] Vue render error:", error);
|
|
4854
4894
|
const pageName = derivePageName(resolvedPagePath);
|
|
4855
4895
|
const conventionResponse = await renderConventionError("vue", pageName, error);
|
|
4856
|
-
if (conventionResponse)
|
|
4857
|
-
return conventionResponse;
|
|
4858
|
-
|
|
4896
|
+
if (conventionResponse) {
|
|
4897
|
+
return withPageCacheHeaders(conventionResponse, input.request);
|
|
4898
|
+
}
|
|
4899
|
+
return withPageCacheHeaders(new Response(ssrErrorPage("vue", error), {
|
|
4859
4900
|
headers: { "Content-Type": "text/html" },
|
|
4860
4901
|
status: 500
|
|
4861
|
-
});
|
|
4902
|
+
}), input.request);
|
|
4862
4903
|
}
|
|
4863
4904
|
};
|
|
4864
4905
|
// src/vue/routerRedirectProviders.ts
|
|
@@ -5317,5 +5358,5 @@ export {
|
|
|
5317
5358
|
Image
|
|
5318
5359
|
};
|
|
5319
5360
|
|
|
5320
|
-
//# debugId=
|
|
5361
|
+
//# debugId=9D8B3F3A3A19296464756E2164756E21
|
|
5321
5362
|
//# sourceMappingURL=index.js.map
|