@paroicms/server 1.87.3 → 1.88.1
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/bo-backend/document/document.resolver.js +2 -3
- package/dist/bo-backend/document/document.resolver.js.map +1 -1
- package/dist/bo-backend/document/save-documents.queries.js +2 -2
- package/dist/bo-backend/document/save-documents.queries.js.map +1 -1
- package/dist/bo-backend/fields/fields.resolver.js +3 -1
- package/dist/bo-backend/fields/fields.resolver.js.map +1 -1
- package/dist/bo-backend/fields/load-fields-of.queries.js +4 -1
- package/dist/bo-backend/fields/load-fields-of.queries.js.map +1 -1
- package/dist/bo-backend/fields/preprocess-fields.d.ts +2 -3
- package/dist/bo-backend/fields/preprocess-fields.js +7 -5
- package/dist/bo-backend/fields/preprocess-fields.js.map +1 -1
- package/dist/bo-backend/fields/save-fields.queries.js +3 -2
- package/dist/bo-backend/fields/save-fields.queries.js.map +1 -1
- package/dist/bo-backend/media/add-media-to-node.d.ts +3 -3
- package/dist/bo-backend/media/add-media-to-node.js +7 -24
- package/dist/bo-backend/media/add-media-to-node.js.map +1 -1
- package/dist/bo-backend/media/media-upload.controller.d.ts +2 -1
- package/dist/bo-backend/media/media-upload.controller.js +24 -7
- package/dist/bo-backend/media/media-upload.controller.js.map +1 -1
- package/dist/bo-backend/media/media.resolver.extend.js +8 -1
- package/dist/bo-backend/media/media.resolver.extend.js.map +1 -1
- package/dist/bo-backend/media/media.resolver.js +78 -92
- package/dist/bo-backend/media/media.resolver.js.map +1 -1
- package/dist/bo-backend/part/part.queries.js +2 -2
- package/dist/bo-backend/part/part.queries.js.map +1 -1
- package/dist/bo-backend/site-constants/site-constants.resolver.js +3 -7
- package/dist/bo-backend/site-constants/site-constants.resolver.js.map +1 -1
- package/dist/bo-backend/unprotected/unprotected.resolver.d.ts +0 -6
- package/dist/bo-backend/unprotected/unprotected.resolver.js +9 -36
- package/dist/bo-backend/unprotected/unprotected.resolver.js.map +1 -1
- package/dist/common/medias/media-lib.d.ts +41 -0
- package/dist/common/medias/media-lib.js +160 -0
- package/dist/common/medias/media-lib.js.map +1 -0
- package/dist/common/medias/to-media-values.d.ts +40 -0
- package/dist/common/medias/to-media-values.js +109 -0
- package/dist/common/medias/to-media-values.js.map +1 -0
- package/dist/common/serve-text-or.js +8 -3
- package/dist/common/serve-text-or.js.map +1 -1
- package/dist/common/text-cache.d.ts +5 -0
- package/dist/common/text-cache.js +6 -0
- package/dist/common/text-cache.js.map +1 -1
- package/dist/context.d.ts +1 -2
- package/dist/context.js +3 -3
- package/dist/context.js.map +1 -1
- package/dist/express/http-helpers.d.ts +1 -1
- package/dist/express/public-api.req-handler.js +3 -3
- package/dist/express/public-api.req-handler.js.map +1 -1
- package/dist/express/route-handler-wrapper.d.ts +2 -3
- package/dist/express/route-handler-wrapper.js +19 -9
- package/dist/express/route-handler-wrapper.js.map +1 -1
- package/dist/express/serve-file.js +2 -2
- package/dist/express/serve-file.js.map +1 -1
- package/dist/express/site-middleware.d.ts +2 -2
- package/dist/express/site-middleware.js +9 -10
- package/dist/express/site-middleware.js.map +1 -1
- package/dist/helpers/make-backend-plugin-service.d.ts +7 -4
- package/dist/helpers/make-backend-plugin-service.js +130 -39
- package/dist/helpers/make-backend-plugin-service.js.map +1 -1
- package/dist/helpers/running-instance-connector.js +2 -2
- package/dist/helpers/url-helpers.d.ts +45 -0
- package/dist/helpers/url-helpers.js +37 -0
- package/dist/helpers/url-helpers.js.map +1 -0
- package/dist/helpers/utils-helper.d.ts +1 -1
- package/dist/helpers/utils-helper.js +3 -3
- package/dist/index.js +1 -2
- package/dist/index.js.map +1 -1
- package/dist/liquidjs-tools/liquidjs-drop.d.ts +7 -2
- package/dist/liquidjs-tools/liquidjs-drop.js +22 -2
- package/dist/liquidjs-tools/liquidjs-drop.js.map +1 -1
- package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.d.ts +1 -2
- package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.js +2 -1
- package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.js.map +1 -1
- package/dist/liquidjs-tools/liquidjs-rendering/rendering-context.d.ts +17 -6
- package/dist/liquidjs-tools/liquidjs-rendering/rendering-context.js +30 -4
- package/dist/liquidjs-tools/liquidjs-rendering/rendering-context.js.map +1 -1
- package/dist/oauth/oauth2-client.controller.js +2 -1
- package/dist/oauth/oauth2-client.controller.js.map +1 -1
- package/dist/public-api/public-api-rendering.d.ts +3 -3
- package/dist/public-api/public-api-rendering.js +21 -36
- package/dist/public-api/public-api-rendering.js.map +1 -1
- package/dist/rendered-site/common-routes.controller.d.ts +2 -2
- package/dist/rendered-site/common-routes.controller.js +7 -29
- package/dist/rendered-site/common-routes.controller.js.map +1 -1
- package/dist/rendered-site/feed/feed-generator.d.ts +1 -1
- package/dist/rendered-site/feed/feed-generator.js +19 -24
- package/dist/rendered-site/feed/feed-generator.js.map +1 -1
- package/dist/rendered-site/feed/feed.req-handler.d.ts +1 -1
- package/dist/rendered-site/feed/feed.req-handler.js +4 -2
- package/dist/rendered-site/feed/feed.req-handler.js.map +1 -1
- package/dist/rendered-site/helpers/medias.helpers.d.ts +4 -4
- package/dist/rendered-site/helpers/medias.helpers.js +4 -3
- package/dist/rendered-site/helpers/medias.helpers.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/head-tags-filter.d.ts +1 -3
- package/dist/rendered-site/liquidjs-filters/head-tags-filter.js +9 -10
- package/dist/rendered-site/liquidjs-filters/head-tags-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/info-filter.js +18 -6
- package/dist/rendered-site/liquidjs-filters/info-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.d.ts +1 -3
- package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js +2 -1
- package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/open-graph-filter.d.ts +2 -4
- package/dist/rendered-site/liquidjs-filters/open-graph-filter.js +8 -14
- package/dist/rendered-site/liquidjs-filters/open-graph-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.d.ts +2 -2
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.js +4 -3
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.d.ts +2 -2
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.js +6 -5
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.d.ts +3 -3
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js +5 -4
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/grouping-media-query.d.ts +10 -0
- package/dist/rendered-site/liquidjs-tags/grouping-media-query.js +125 -0
- package/dist/rendered-site/liquidjs-tags/grouping-media-query.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/use-image-tag.d.ts +14 -2
- package/dist/rendered-site/liquidjs-tags/use-image-tag.js +89 -39
- package/dist/rendered-site/liquidjs-tags/use-image-tag.js.map +1 -1
- package/dist/rendered-site/media-serve/_media-serve-helpers.d.ts +9 -3
- package/dist/rendered-site/media-serve/_media-serve-helpers.js +25 -5
- package/dist/rendered-site/media-serve/_media-serve-helpers.js.map +1 -1
- package/dist/rendered-site/media-serve/media-serve.controller.d.ts +10 -2
- package/dist/rendered-site/media-serve/media-serve.controller.js +122 -124
- package/dist/rendered-site/media-serve/media-serve.controller.js.map +1 -1
- package/dist/rendered-site/serve-document/serve-document.js +6 -3
- package/dist/rendered-site/serve-document/serve-document.js.map +1 -1
- package/dist/rendered-site/serve-index-page.js +8 -3
- package/dist/rendered-site/serve-index-page.js.map +1 -1
- package/dist/rendering-payload/breadcrumb.queries.d.ts +1 -2
- package/dist/rendering-payload/breadcrumb.queries.js +2 -1
- package/dist/rendering-payload/breadcrumb.queries.js.map +1 -1
- package/dist/rendering-payload/create-doc-drop.d.ts +2 -3
- package/dist/rendering-payload/create-doc-drop.js +54 -39
- package/dist/rendering-payload/create-doc-drop.js.map +1 -1
- package/dist/rendering-payload/create-part-drop.d.ts +1 -2
- package/dist/rendering-payload/create-part-drop.js +14 -12
- package/dist/rendering-payload/create-part-drop.js.map +1 -1
- package/dist/rendering-payload/doc-values.queries.d.ts +2 -2
- package/dist/rendering-payload/doc-values.queries.js +5 -3
- package/dist/rendering-payload/doc-values.queries.js.map +1 -1
- package/dist/rendering-payload/field-values.d.ts +3 -6
- package/dist/rendering-payload/field-values.js +41 -41
- package/dist/rendering-payload/field-values.js.map +1 -1
- package/dist/rendering-payload/get-siblings.queries.d.ts +1 -2
- package/dist/rendering-payload/get-siblings.queries.js +4 -3
- package/dist/rendering-payload/get-siblings.queries.js.map +1 -1
- package/dist/rendering-payload/load-default-image.d.ts +4 -5
- package/dist/rendering-payload/load-default-image.js +6 -5
- package/dist/rendering-payload/load-default-image.js.map +1 -1
- package/dist/rendering-payload/make-image-available.d.ts +14 -23
- package/dist/rendering-payload/make-image-available.js +83 -54
- package/dist/rendering-payload/make-image-available.js.map +1 -1
- package/dist/rendering-payload/make-public-payload.d.ts +2 -3
- package/dist/rendering-payload/make-public-payload.js +7 -5
- package/dist/rendering-payload/make-public-payload.js.map +1 -1
- package/dist/rendering-payload/rendering-payload.types.d.ts +48 -15
- package/dist/rendering-payload/site-payload.d.ts +1 -2
- package/dist/rendering-payload/site-payload.js +4 -3
- package/dist/rendering-payload/site-payload.js.map +1 -1
- package/dist/rendering-payload/translations.queries.d.ts +1 -1
- package/dist/rendering-payload/translations.queries.js +4 -3
- package/dist/rendering-payload/translations.queries.js.map +1 -1
- package/dist/site-context/create-site-context.js +9 -10
- package/dist/site-context/create-site-context.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +38 -38
- package/schema.graphql +41 -48
- package/dist/bo-backend/media/media.d.ts +0 -21
- package/dist/bo-backend/media/media.js +0 -61
- package/dist/bo-backend/media/media.js.map +0 -1
- package/dist/rendered-site/liquidjs-filters/image-zoom-url.d.ts +0 -6
- package/dist/rendered-site/liquidjs-filters/image-zoom-url.js +0 -22
- package/dist/rendered-site/liquidjs-filters/image-zoom-url.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rendering-context.js","sourceRoot":"","sources":["../../../src/liquidjs-tools/liquidjs-rendering/rendering-context.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,eAAe,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"rendering-context.js","sourceRoot":"","sources":["../../../src/liquidjs-tools/liquidjs-rendering/rendering-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { makeUrl } from "@paroicms/internal-server-lib";
|
|
2
|
+
import { ApiError, escapeHtml } from "@paroicms/public-server-lib";
|
|
2
3
|
import { generatePlatformToken, googleAuthGuard } from "../bo-backend/auth/auth.helper.js";
|
|
3
4
|
import { appConf, platformAuthUrl, registeredSites } from "../context.js";
|
|
4
5
|
import { getRouteParameter } from "../express/http-helpers.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"oauth2-client.controller.js","sourceRoot":"","sources":["../../src/oauth/oauth2-client.controller.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"oauth2-client.controller.js","sourceRoot":"","sources":["../../src/oauth/oauth2-client.controller.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import type { ParsedNodelId } from "@paroicms/public-anywhere-lib";
|
|
2
2
|
import type { LabeledBy, PaHttpContext, PartialsParamsInput } from "@paroicms/public-server-lib";
|
|
3
|
-
import type {
|
|
4
|
-
export declare function renderChildPartials(
|
|
3
|
+
import type { RenderingContext } from "../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
4
|
+
export declare function renderChildPartials(renderingContext: RenderingContext, httpContext: PaHttpContext, options: {
|
|
5
5
|
params: PartialsParamsInput;
|
|
6
6
|
parentDocumentId: ParsedNodelId;
|
|
7
7
|
labeledBy?: LabeledBy;
|
|
8
8
|
}): Promise<void>;
|
|
9
|
-
export declare function renderSearchPartials(
|
|
9
|
+
export declare function renderSearchPartials(renderingContext: RenderingContext, httpContext: PaHttpContext, options: {
|
|
10
10
|
language: string;
|
|
11
11
|
words: string[];
|
|
12
12
|
limit: number;
|
|
@@ -1,32 +1,22 @@
|
|
|
1
1
|
import { nbVal } from "@paroi/data-formatters-lib";
|
|
2
|
-
import { createTracker } from "@paroicms/internal-server-lib";
|
|
3
2
|
import { serveTextFromCacheOr } from "../common/serve-text-or.js";
|
|
4
|
-
import { makeCacheDependencyKey
|
|
3
|
+
import { makeCacheDependencyKey } from "../common/text-cache.js";
|
|
5
4
|
import { trackerReportToMessage } from "../common/tracker-report.js";
|
|
6
5
|
import { renderLiquidTemplate } from "../liquidjs-tools/liquidjs-rendering/render-liquidjs.js";
|
|
7
|
-
import { createRenderingContext, } from "../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
8
6
|
import { createDocPayloadDrop } from "../rendering-payload/create-doc-drop.js";
|
|
9
7
|
import { getListOfDocValues } from "../rendering-payload/doc-values.queries.js";
|
|
10
8
|
import { makeSitePayload } from "../rendering-payload/site-payload.js";
|
|
11
9
|
import { searchText } from "./search-text/search-text.queries.js";
|
|
12
|
-
export async function renderChildPartials(
|
|
10
|
+
export async function renderChildPartials(renderingContext, httpContext, options) {
|
|
13
11
|
const { params, parentDocumentId, labeledBy } = options;
|
|
14
|
-
const cacheKey =
|
|
15
|
-
kind: "api",
|
|
16
|
-
url: httpContext.req.relativeUrl,
|
|
17
|
-
});
|
|
18
|
-
const tracker = createTracker();
|
|
12
|
+
const { siteContext, tracker, cacheKey } = renderingContext;
|
|
19
13
|
const serveOr = serveTextFromCacheOr(siteContext, httpContext, tracker, {
|
|
20
14
|
cacheKey,
|
|
21
15
|
contentType: "text/plain; charset=utf-8",
|
|
22
16
|
});
|
|
23
17
|
if (!(await serveOr.serveFromCache())) {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
cacheKey,
|
|
27
|
-
dependencyKey: makeCacheDependencyKey({ documentId: parentDocumentId, relation: "children" }),
|
|
28
|
-
});
|
|
29
|
-
const { html, dependencyKeys } = await renderChildDocuments(siteContext, renderingContext, {
|
|
18
|
+
renderingContext.addDependencyKey(makeCacheDependencyKey({ documentId: parentDocumentId, relation: "children" }));
|
|
19
|
+
const { html, dependencyKeys } = await renderChildDocuments(renderingContext, {
|
|
30
20
|
parentId: parentDocumentId,
|
|
31
21
|
limit: nbVal(params.limit),
|
|
32
22
|
offset: nbVal(params.offset),
|
|
@@ -37,24 +27,16 @@ export async function renderChildPartials(siteContext, httpContext, options) {
|
|
|
37
27
|
}
|
|
38
28
|
siteContext.logger.stats(trackerReportToMessage(tracker.toReport(), `serve ${httpContext.req.relativeUrl}`));
|
|
39
29
|
}
|
|
40
|
-
export async function renderSearchPartials(
|
|
30
|
+
export async function renderSearchPartials(renderingContext, httpContext, options) {
|
|
41
31
|
const { language, words, limit, start, templateName } = options;
|
|
42
|
-
const cacheKey =
|
|
43
|
-
kind: "api",
|
|
44
|
-
url: httpContext.req.relativeUrl,
|
|
45
|
-
});
|
|
46
|
-
const tracker = createTracker();
|
|
32
|
+
const { siteContext, tracker, cacheKey } = renderingContext;
|
|
47
33
|
const serveOr = serveTextFromCacheOr(siteContext, httpContext, tracker, {
|
|
48
34
|
cacheKey,
|
|
49
35
|
contentType: "application/json",
|
|
50
36
|
});
|
|
51
37
|
if (!(await serveOr.serveFromCache())) {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
cacheKey,
|
|
55
|
-
dependencyKey: makeCacheDependencyKey({ global: "all" }),
|
|
56
|
-
});
|
|
57
|
-
const { result, dependencyKeys } = await searchAndRender(siteContext, renderingContext, {
|
|
38
|
+
renderingContext.addDependencyKey(makeCacheDependencyKey({ global: "all" }));
|
|
39
|
+
const { result, dependencyKeys } = await searchAndRender(renderingContext, {
|
|
58
40
|
language,
|
|
59
41
|
words,
|
|
60
42
|
limit: nbVal(limit),
|
|
@@ -63,22 +45,24 @@ export async function renderSearchPartials(siteContext, httpContext, options) {
|
|
|
63
45
|
});
|
|
64
46
|
const content = JSON.stringify(result);
|
|
65
47
|
await serveOr.putInCacheAndServe(content, dependencyKeys);
|
|
48
|
+
await renderingContext.close();
|
|
66
49
|
}
|
|
67
50
|
siteContext.logger.stats(trackerReportToMessage(tracker.toReport(), `serve ${httpContext.req.relativeUrl}`));
|
|
68
51
|
}
|
|
69
|
-
async function renderChildDocuments(
|
|
52
|
+
async function renderChildDocuments(renderingContext, options) {
|
|
53
|
+
const { siteContext } = renderingContext;
|
|
70
54
|
const { parentId: parentDocumentId, templateName } = options;
|
|
71
|
-
const docs = await getListOfDocValues(
|
|
55
|
+
const docs = await getListOfDocValues(renderingContext, {
|
|
72
56
|
...options,
|
|
73
57
|
documentKind: "regular",
|
|
74
58
|
});
|
|
75
59
|
const result = [];
|
|
76
60
|
for (const row of docs) {
|
|
77
61
|
const payload = {
|
|
78
|
-
site: makeSitePayload(
|
|
79
|
-
doc: createDocPayloadDrop(
|
|
62
|
+
site: makeSitePayload(renderingContext, parentDocumentId.language),
|
|
63
|
+
doc: createDocPayloadDrop(renderingContext, row),
|
|
80
64
|
};
|
|
81
|
-
const html = await renderLiquidTemplate(
|
|
65
|
+
const html = await renderLiquidTemplate(renderingContext, {
|
|
82
66
|
payload,
|
|
83
67
|
templateNames: [`partials/${templateName}.public.liquid`],
|
|
84
68
|
});
|
|
@@ -89,17 +73,18 @@ async function renderChildDocuments(siteContext, renderingContext, options) {
|
|
|
89
73
|
dependencyKeys: renderingContext.getDependencyKeys(),
|
|
90
74
|
};
|
|
91
75
|
}
|
|
92
|
-
async function searchAndRender(
|
|
76
|
+
async function searchAndRender(renderingContext, options) {
|
|
77
|
+
const { siteContext } = renderingContext;
|
|
93
78
|
const { language, templateName } = options;
|
|
94
79
|
const { rows, total } = await searchText(siteContext, { ...options, onlyPublished: true });
|
|
95
80
|
const htmlList = [];
|
|
96
81
|
for (const row of rows) {
|
|
97
82
|
const payload = {
|
|
98
|
-
site: makeSitePayload(
|
|
99
|
-
doc: createDocPayloadDrop(
|
|
83
|
+
site: makeSitePayload(renderingContext, language),
|
|
84
|
+
doc: createDocPayloadDrop(renderingContext, row),
|
|
100
85
|
};
|
|
101
86
|
const tName = templateName.endsWith(".public") ? templateName : `${templateName}.public`;
|
|
102
|
-
const html = await renderLiquidTemplate(
|
|
87
|
+
const html = await renderLiquidTemplate(renderingContext, {
|
|
103
88
|
payload,
|
|
104
89
|
templateNames: [`partials/${tName}.liquid`],
|
|
105
90
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"public-api-rendering.js","sourceRoot":"","sources":["../../src/public-api/public-api-rendering.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,4BAA4B,CAAC;
|
|
1
|
+
{"version":3,"file":"public-api-rendering.js","sourceRoot":"","sources":["../../src/public-api/public-api-rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PaHttpContext } from "@paroicms/public-server-lib";
|
|
2
2
|
import type { SiteContext } from "../site-context/site-context.types.js";
|
|
3
3
|
export declare function robotsTxtController(_siteContext: SiteContext, httpContext: PaHttpContext): Promise<void>;
|
|
4
|
-
export declare function
|
|
4
|
+
export declare function favicon16x16Controller(siteContext: SiteContext, httpContext: PaHttpContext): Promise<void>;
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { generateImageSlug } from "@paroicms/public-server-lib";
|
|
2
1
|
import { getHandleOfSiteFavicon } from "../common/media-handles.helpers.js";
|
|
3
2
|
import { render404Html } from "../common/serve-text-or.js";
|
|
4
3
|
import { appConf } from "../context.js";
|
|
5
|
-
import {
|
|
4
|
+
import { serveUnversionedImage } from "./media-serve/media-serve.controller.js";
|
|
6
5
|
export async function robotsTxtController(_siteContext, httpContext) {
|
|
7
6
|
const { res } = httpContext;
|
|
8
7
|
const text = appConf.allowRobots
|
|
@@ -16,38 +15,17 @@ Disallow: /`;
|
|
|
16
15
|
res.append("Content-Length", buf.byteLength.toString());
|
|
17
16
|
res.send(buf);
|
|
18
17
|
}
|
|
19
|
-
export async function
|
|
20
|
-
const { req, res } = httpContext;
|
|
18
|
+
export async function favicon16x16Controller(siteContext, httpContext) {
|
|
21
19
|
const handle = getHandleOfSiteFavicon();
|
|
22
20
|
const media = await siteContext.mediaStorage.getMedia({ handle });
|
|
23
21
|
if (media?.kind !== "image")
|
|
24
22
|
return await render404Html(siteContext, httpContext);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
return serve304NotModified(httpContext, {
|
|
28
|
-
cacheControl,
|
|
29
|
-
etag: media.resourceVersion,
|
|
30
|
-
});
|
|
31
|
-
}
|
|
32
|
-
const file = await siteContext.imageCache.getOrCreateImageWithBinary({
|
|
33
|
-
imageSize: "16x16",
|
|
34
|
-
imageRef: {
|
|
35
|
-
imageUid: media.uid,
|
|
36
|
-
width: media.width,
|
|
37
|
-
height: media.height,
|
|
38
|
-
mediaType: media.mediaType,
|
|
39
|
-
},
|
|
23
|
+
await serveUnversionedImage(siteContext, httpContext, {
|
|
24
|
+
mediaId: media.id,
|
|
40
25
|
mediaType: "image/x-icon",
|
|
41
|
-
|
|
42
|
-
|
|
26
|
+
ownerHandle: "favicon16",
|
|
27
|
+
isHandleReusable: false,
|
|
28
|
+
resizeRule: "16x16",
|
|
43
29
|
});
|
|
44
|
-
if (!file)
|
|
45
|
-
throw new Error(`favicon variant of '${media.uid}' should be available here`);
|
|
46
|
-
res.status(200);
|
|
47
|
-
res.append("Cache-Control", cacheControl);
|
|
48
|
-
res.append("Etag", file.resourceVersion);
|
|
49
|
-
res.append("Content-Type", file.mediaType);
|
|
50
|
-
res.append("Content-Length", file.binaryFile.byteLength.toString());
|
|
51
|
-
res.send(file.binaryFile);
|
|
52
30
|
}
|
|
53
31
|
//# sourceMappingURL=common-routes.controller.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"common-routes.controller.js","sourceRoot":"","sources":["../../src/rendered-site/common-routes.controller.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"common-routes.controller.js","sourceRoot":"","sources":["../../src/rendered-site/common-routes.controller.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,oCAAoC,CAAC;AAC5E,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAExC,OAAO,EAAE,qBAAqB,EAAE,MAAM,yCAAyC,CAAC;AAEhF,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,YAAyB,EAAE,WAA0B;IAC7F,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,WAAW;QAC9B,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC;YACM,CAAC;IACX,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IACvC,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAChB,GAAG,CAAC,MAAM,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;IACzC,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,2BAA2B,CAAC,CAAC;IACxD,GAAG,CAAC,MAAM,CAAC,gBAAgB,EAAE,GAAG,CAAC,UAAU,CAAC,QAAQ,EAAE,CAAC,CAAC;IACxD,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAChB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAAC,WAAwB,EAAE,WAA0B;IAC/F,MAAM,MAAM,GAAG,sBAAsB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;IAClE,IAAI,KAAK,EAAE,IAAI,KAAK,OAAO;QAAE,OAAO,MAAM,aAAa,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC;IAElF,MAAM,qBAAqB,CAAC,WAAW,EAAE,WAAW,EAAE;QACpD,OAAO,EAAE,KAAK,CAAC,EAAE;QACjB,SAAS,EAAE,cAAc;QACzB,WAAW,EAAE,WAAW;QACxB,gBAAgB,EAAE,KAAK;QACvB,UAAU,EAAE,OAAO;KACpB,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -5,7 +5,7 @@ export interface FeedGeneratorOptions {
|
|
|
5
5
|
language: string;
|
|
6
6
|
feedUrl: string;
|
|
7
7
|
}
|
|
8
|
-
export declare function generateRssFeed(
|
|
8
|
+
export declare function generateRssFeed(renderingContext: RenderingContext, { language, feedUrl }: FeedGeneratorOptions): Promise<string>;
|
|
9
9
|
export declare function getSiteTitle(siteContext: SiteContext, language: string): Promise<string>;
|
|
10
10
|
interface FeedItemValues {
|
|
11
11
|
relativeId: string;
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { dateVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
2
|
import { mainDbSchemaName } from "@paroicms/connector";
|
|
3
3
|
import { getNodeTypeByName } from "@paroicms/internal-anywhere-lib";
|
|
4
|
+
import { toAbsoluteUrl } from "@paroicms/internal-server-lib";
|
|
4
5
|
import { encodeNodelId, isMediaHandleValue, isReadLabelingFieldValue, parseNodelId, } from "@paroicms/public-anywhere-lib";
|
|
5
|
-
import { escapeHtml
|
|
6
|
+
import { escapeHtml } from "@paroicms/public-server-lib";
|
|
6
7
|
import { Feed } from "feed";
|
|
7
8
|
import { getFieldTypesByNames, getSiteFieldValue, loadFieldValues, } from "../../bo-backend/fields/load-fields.queries.js";
|
|
8
9
|
import { preprocessFields } from "../../bo-backend/fields/preprocess-fields.js";
|
|
@@ -11,11 +12,11 @@ import { cmsVersion, simpleI18n } from "../../context.js";
|
|
|
11
12
|
import { getFieldLabel } from "../../helpers/label-translator.helper.js";
|
|
12
13
|
import { loadExcerpt } from "../../rendering-payload/excerpt.queries.js";
|
|
13
14
|
import { loadDefaultImage } from "../../rendering-payload/load-default-image.js";
|
|
14
|
-
import {
|
|
15
|
+
import { makeImageAvailableByHandle, makeImageAvailableById, } from "../../rendering-payload/make-image-available.js";
|
|
15
16
|
import { getUrlOfDocument } from "../page-route/make-url.js";
|
|
16
|
-
export async function generateRssFeed(
|
|
17
|
-
const feedEntries = await buildFeedEntries(
|
|
18
|
-
const feedMetadata = await buildChannelMetadata(
|
|
17
|
+
export async function generateRssFeed(renderingContext, { language, feedUrl }) {
|
|
18
|
+
const feedEntries = await buildFeedEntries(renderingContext, { language });
|
|
19
|
+
const feedMetadata = await buildChannelMetadata(renderingContext, {
|
|
19
20
|
language,
|
|
20
21
|
});
|
|
21
22
|
const feed = new Feed({
|
|
@@ -34,19 +35,17 @@ export async function generateRssFeed(siteContext, renderingContext, { language,
|
|
|
34
35
|
}
|
|
35
36
|
return feed.rss2();
|
|
36
37
|
}
|
|
37
|
-
async function buildChannelMetadata(
|
|
38
|
+
async function buildChannelMetadata(renderingContext, options) {
|
|
39
|
+
const { siteContext } = renderingContext;
|
|
38
40
|
const { language } = options;
|
|
39
41
|
const siteTitle = await getSiteTitle(siteContext, language);
|
|
40
42
|
const currentYear = new Date().getFullYear();
|
|
41
|
-
const image = await
|
|
42
|
-
imageSel: { handle: getHandleOfSiteField(siteContext, { fieldName: "ogImage" }) },
|
|
43
|
-
size: "x88x",
|
|
44
|
-
});
|
|
43
|
+
const image = await makeImageAvailableByHandle(renderingContext, { handle: getHandleOfSiteField(siteContext, { fieldName: "ogImage" }) }, { resizeRule: "x88x", pixelRatio: 1, mediaType: "image/jpeg", absoluteUrl: true });
|
|
45
44
|
return {
|
|
46
45
|
id: siteContext.siteUrl,
|
|
47
46
|
link: siteContext.siteUrl,
|
|
48
47
|
language,
|
|
49
|
-
image: image
|
|
48
|
+
image: image?.url,
|
|
50
49
|
title: siteTitle,
|
|
51
50
|
copyright: simpleI18n.translate({
|
|
52
51
|
key: "feed.copyright",
|
|
@@ -59,7 +58,8 @@ export async function getSiteTitle(siteContext, language) {
|
|
|
59
58
|
const siteTitle = strValOrUndef(await getSiteFieldValue(siteContext, { fieldName: "title", language, publishedOnly: true })) ?? simpleI18n.translate({ key: "feed.missingTitle", language });
|
|
60
59
|
return siteTitle;
|
|
61
60
|
}
|
|
62
|
-
async function buildFeedEntries(
|
|
61
|
+
async function buildFeedEntries(renderingContext, options) {
|
|
62
|
+
const { siteContext } = renderingContext;
|
|
63
63
|
const { language } = options;
|
|
64
64
|
const query = createFeedItemsQueryBuilder(siteContext, language);
|
|
65
65
|
const rows = await query;
|
|
@@ -72,24 +72,21 @@ async function buildFeedEntries(siteContext, renderingContext, options) {
|
|
|
72
72
|
siteContext.logger.warn(`[feed] Document type not found for typeName '${item.typeName}' (skip)`);
|
|
73
73
|
continue;
|
|
74
74
|
}
|
|
75
|
-
const content = await loadFeedItemContent(
|
|
75
|
+
const content = await loadFeedItemContent(renderingContext, item, language);
|
|
76
76
|
const excerpt = await loadExcerpt(siteContext, renderingContext.tracker, {
|
|
77
77
|
nodelId: item,
|
|
78
78
|
fieldTypes: nodeType.fields ?? [],
|
|
79
79
|
maxLength: 300,
|
|
80
80
|
});
|
|
81
81
|
const link = toAbsoluteUrl(siteContext, await getUrlOfDocument(siteContext, renderingContext.tracker, parseNodelId(`${item.nodeId}:${item.language}`)));
|
|
82
|
-
const defaultImage = await loadDefaultImage(
|
|
82
|
+
const defaultImage = await loadDefaultImage(renderingContext, {
|
|
83
83
|
nodeId: item.nodeId,
|
|
84
84
|
language,
|
|
85
85
|
fieldTypes: nodeType.fields,
|
|
86
86
|
});
|
|
87
87
|
const image = defaultImage === undefined
|
|
88
88
|
? undefined
|
|
89
|
-
: await
|
|
90
|
-
imageSel: { uid: defaultImage.uid },
|
|
91
|
-
size: "x720x",
|
|
92
|
-
});
|
|
89
|
+
: await makeImageAvailableById(renderingContext, { mediaId: defaultImage.id }, { resizeRule: "x720x", pixelRatio: 1, mediaType: "image/jpeg" });
|
|
93
90
|
feedEntries.push({
|
|
94
91
|
guid: `${siteContext.fqdn}:${encodeNodelId(item)}`,
|
|
95
92
|
link,
|
|
@@ -102,7 +99,8 @@ async function buildFeedEntries(siteContext, renderingContext, options) {
|
|
|
102
99
|
}
|
|
103
100
|
return feedEntries;
|
|
104
101
|
}
|
|
105
|
-
async function loadFeedItemContent(
|
|
102
|
+
async function loadFeedItemContent(renderingContext, item, language) {
|
|
103
|
+
const { siteContext } = renderingContext;
|
|
106
104
|
const fieldTypes = getFieldTypesByNames(siteContext, {
|
|
107
105
|
typeName: item.typeName,
|
|
108
106
|
}).filter((fieldType) => fieldType.dataType === "json" && fieldType.renderAs !== "html");
|
|
@@ -112,7 +110,7 @@ async function loadFeedItemContent(siteContext, renderingContext, item, language
|
|
|
112
110
|
fieldTypes,
|
|
113
111
|
publishedOnly: true,
|
|
114
112
|
});
|
|
115
|
-
const preprocessed = await preprocessFields(
|
|
113
|
+
const preprocessed = await preprocessFields(renderingContext, contentFields, fieldTypes, {
|
|
116
114
|
absoluteUrls: true,
|
|
117
115
|
});
|
|
118
116
|
const chunks = [];
|
|
@@ -141,10 +139,7 @@ async function loadFeedItemContent(siteContext, renderingContext, item, language
|
|
|
141
139
|
else if (fieldType.dataType === "media") {
|
|
142
140
|
if (!isMediaHandleValue(rawVal))
|
|
143
141
|
continue;
|
|
144
|
-
const media = await
|
|
145
|
-
imageSel: { handle: rawVal.h },
|
|
146
|
-
size: "x350x",
|
|
147
|
-
});
|
|
142
|
+
const media = await makeImageAvailableByHandle(renderingContext, { handle: rawVal.h }, { resizeRule: "x350x", pixelRatio: 1, absoluteUrl: true });
|
|
148
143
|
if (!media)
|
|
149
144
|
continue;
|
|
150
145
|
chunks.push(`<img src="${escapeHtml(media.url)}" width="${media.width}" height="${media.height}" alt="" />`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed-generator.js","sourceRoot":"","sources":["../../../src/rendered-site/feed/feed-generator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AACtF,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,iBAAiB,EAAE,MAAM,iCAAiC,CAAC;AACpE,OAAO,EAEL,aAAa,EACb,kBAAkB,EAClB,wBAAwB,EACxB,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"feed-generator.js","sourceRoot":"","sources":["../../../src/rendered-site/feed/feed-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PaHttpContext } from "@paroicms/public-server-lib";
|
|
2
2
|
import type { SiteContext } from "../../site-context/site-context.types.js";
|
|
3
3
|
export declare function feedReqHandler(siteContext: SiteContext, httpContext: PaHttpContext): Promise<boolean>;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createTracker } from "@paroicms/internal-server-lib";
|
|
2
|
-
import { makeFeedUrl } from "@paroicms/public-server-lib";
|
|
3
2
|
import { serveTextFromCacheOr } from "../../common/serve-text-or.js";
|
|
4
3
|
import { makeCacheDependencyKey, makeCacheKey } from "../../common/text-cache.js";
|
|
4
|
+
import { makeFeedUrl } from "../../helpers/url-helpers.js";
|
|
5
5
|
import { createRenderingContext } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
6
6
|
import { generateRssFeed } from "./feed-generator.js";
|
|
7
7
|
import { parseFeedUrl } from "./feed-helpers.js";
|
|
@@ -34,6 +34,7 @@ async function serveFeed(siteContext, httpContext, { language, feedUrl }) {
|
|
|
34
34
|
const cacheKey = makeCacheKey(siteContext.logger, { kind: "feed", url: feedUrl });
|
|
35
35
|
const renderingContext = await createRenderingContext(siteContext, {
|
|
36
36
|
cacheKey,
|
|
37
|
+
language,
|
|
37
38
|
tracker,
|
|
38
39
|
dependencyKey: makeCacheDependencyKey({ global: "all" }),
|
|
39
40
|
});
|
|
@@ -43,10 +44,11 @@ async function serveFeed(siteContext, httpContext, { language, feedUrl }) {
|
|
|
43
44
|
});
|
|
44
45
|
if (await serveOr.serveFromCache())
|
|
45
46
|
return;
|
|
46
|
-
const feed = await generateRssFeed(
|
|
47
|
+
const feed = await generateRssFeed(renderingContext, {
|
|
47
48
|
language,
|
|
48
49
|
feedUrl,
|
|
49
50
|
});
|
|
50
51
|
await serveOr.putInCacheAndServe(feed, renderingContext.getDependencyKeys());
|
|
52
|
+
await renderingContext.close();
|
|
51
53
|
}
|
|
52
54
|
//# sourceMappingURL=feed.req-handler.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"feed.req-handler.js","sourceRoot":"","sources":["../../../src/rendered-site/feed/feed.req-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"feed.req-handler.js","sourceRoot":"","sources":["../../../src/rendered-site/feed/feed.req-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAE9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,YAAY,EAAE,MAAM,4BAA4B,CAAC;AAClF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,8DAA8D,CAAC;AAEtG,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,WAAwB,EACxB,WAA0B;IAE1B,MAAM,EAAE,GAAG,EAAE,GAAG,WAAW,CAAC;IAC5B,MAAM,MAAM,GAAG,YAAY,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC7C,IAAI,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IAE1B,IAAI,WAAW,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;QAC1C,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC;YACpF,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE;YACxC,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,QAAQ,CAAC;SACnD,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,IAAI,MAAM,CAAC,QAAQ;YAAE,OAAO,KAAK,CAAC;QAElC,MAAM,SAAS,CAAC,WAAW,EAAE,WAAW,EAAE;YACxC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,eAAe;YAChD,OAAO,EAAE,WAAW,CAAC,WAAW,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,KAAK,UAAU,SAAS,CACtB,WAAwB,EACxB,WAA0B,EAC1B,EAAE,QAAQ,EAAE,OAAO,EAAyC;IAE5D,MAAM,OAAO,GAAG,aAAa,EAAE,CAAC;IAChC,MAAM,QAAQ,GAAG,YAAY,CAAC,WAAW,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,OAAO,EAAE,CAAC,CAAC;IAClF,MAAM,gBAAgB,GAAG,MAAM,sBAAsB,CAAC,WAAW,EAAE;QACjE,QAAQ;QACR,QAAQ;QACR,OAAO;QACP,aAAa,EAAE,sBAAsB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;KACzD,CAAC,CAAC;IAEH,MAAM,OAAO,GAAG,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE;QACtE,QAAQ;QACR,WAAW,EAAE,oCAAoC;KAClD,CAAC,CAAC;IACH,IAAI,MAAM,OAAO,CAAC,cAAc,EAAE;QAAE,OAAO;IAE3C,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,gBAAgB,EAAE;QACnD,QAAQ;QACR,OAAO;KACR,CAAC,CAAC;IAEH,MAAM,OAAO,CAAC,kBAAkB,CAAC,IAAI,EAAE,gBAAgB,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC7E,MAAM,gBAAgB,CAAC,KAAK,EAAE,CAAC;AACjC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ScDocumentType } from "@paroicms/public-anywhere-lib";
|
|
2
|
-
import type {
|
|
3
|
-
import type {
|
|
4
|
-
export declare function getFeaturedImageOf(
|
|
2
|
+
import type { ImageMd } from "@paroicms/server-database-media-storage";
|
|
3
|
+
import type { RenderingContext } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
4
|
+
export declare function getFeaturedImageOf(renderingContext: RenderingContext, { nodeId, documentType, }: {
|
|
5
5
|
nodeId: string;
|
|
6
6
|
documentType?: ScDocumentType;
|
|
7
|
-
}): Promise<
|
|
7
|
+
}): Promise<ImageMd | undefined>;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { getHandleOfFeaturedImage } from "../../common/media-handles.helpers.js";
|
|
2
|
-
export async function getFeaturedImageOf(
|
|
2
|
+
export async function getFeaturedImageOf(renderingContext, { nodeId, documentType, }) {
|
|
3
3
|
if (documentType && !documentType.withFeaturedImage)
|
|
4
4
|
return;
|
|
5
|
+
const { siteContext, withAttachedData } = renderingContext;
|
|
5
6
|
const handle = getHandleOfFeaturedImage(nodeId);
|
|
6
|
-
const media = await siteContext.mediaStorage.getMedia({ handle });
|
|
7
|
+
const media = await siteContext.mediaStorage.getMedia({ handle, withAttachedData });
|
|
7
8
|
if (!media)
|
|
8
9
|
return;
|
|
9
10
|
if (media.kind !== "image") {
|
|
10
|
-
throw new Error(`media '${media.
|
|
11
|
+
throw new Error(`media '${media.id}' should be an image (${handle})`);
|
|
11
12
|
}
|
|
12
13
|
return media;
|
|
13
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"medias.helpers.js","sourceRoot":"","sources":["../../../src/rendered-site/helpers/medias.helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,
|
|
1
|
+
{"version":3,"file":"medias.helpers.js","sourceRoot":"","sources":["../../../src/rendered-site/helpers/medias.helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAGjF,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,gBAAkC,EAClC,EACE,MAAM,EACN,YAAY,GAIb;IAED,IAAI,YAAY,IAAI,CAAC,YAAY,CAAC,iBAAiB;QAAE,OAAO;IAC5D,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,GAAG,gBAAgB,CAAC;IAC3D,MAAM,MAAM,GAAG,wBAAwB,CAAC,MAAM,CAAC,CAAC;IAChD,MAAM,KAAK,GAAG,MAAM,WAAW,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,MAAM,EAAE,gBAAgB,EAAE,CAAC,CAAC;IACpF,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,MAAM,IAAI,KAAK,CAAC,UAAU,KAAK,CAAC,EAAE,yBAAyB,MAAM,GAAG,CAAC,CAAC;IACxE,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import type { Context } from "liquidjs";
|
|
2
|
-
|
|
3
|
-
export declare function injectHeadTagsLiquidJsFilter(rawDocValues: any, { ctx, siteContext }: {
|
|
2
|
+
export declare function injectHeadTagsLiquidJsFilter(rawDocValues: any, { ctx }: {
|
|
4
3
|
ctx: Context;
|
|
5
|
-
siteContext: SiteContext;
|
|
6
4
|
}): "" | Promise<string>;
|
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
import { isObj, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
|
-
import { escapeHtml
|
|
2
|
+
import { escapeHtml } from "@paroicms/public-server-lib";
|
|
3
3
|
import { getHandleOfSiteField } from "../../common/media-handles.helpers.js";
|
|
4
4
|
import { simpleI18n } from "../../context.js";
|
|
5
|
+
import { makeFeedUrl } from "../../helpers/url-helpers.js";
|
|
5
6
|
import { valuesSymbol } from "../../liquidjs-tools/liquidjs-drop.js";
|
|
6
7
|
import { extractRenderingContext } from "../../liquidjs-tools/liquidjs-utils.js";
|
|
7
|
-
import {
|
|
8
|
+
import { makeImageAvailableByHandle } from "../../rendering-payload/make-image-available.js";
|
|
8
9
|
import { getSiteTitle } from "../feed/feed-generator.js";
|
|
9
10
|
import { generateOpenGraphTags } from "./open-graph-filter.js";
|
|
10
|
-
export function injectHeadTagsLiquidJsFilter(rawDocValues, { ctx
|
|
11
|
+
export function injectHeadTagsLiquidJsFilter(rawDocValues, { ctx }) {
|
|
11
12
|
if (!rawDocValues)
|
|
12
13
|
return "";
|
|
13
14
|
const docValues = rawDocValues.kind === "detached" ? rawDocValues : rawDocValues[valuesSymbol];
|
|
14
15
|
if (!isObj(docValues))
|
|
15
16
|
return "";
|
|
16
17
|
const renderingContext = extractRenderingContext(ctx);
|
|
17
|
-
return generateHeadTags(
|
|
18
|
+
return generateHeadTags(renderingContext, docValues);
|
|
18
19
|
}
|
|
19
|
-
async function generateHeadTags(
|
|
20
|
+
async function generateHeadTags(renderingContext, docValues) {
|
|
21
|
+
const { siteContext } = renderingContext;
|
|
20
22
|
const metaDescription = strValOrUndef(docValues.metaDescription);
|
|
21
23
|
const metaKeywords = strValOrUndef(docValues.metaKeywords);
|
|
22
24
|
const og = typeof docValues.og === "function" ? docValues.og : undefined;
|
|
23
25
|
const typeName = strValOrUndef(docValues.typeName);
|
|
24
26
|
const language = strValOrUndef(docValues.language);
|
|
25
|
-
const favicon = await
|
|
26
|
-
imageSel: { handle: getHandleOfSiteField(siteContext, { fieldName: "favicon" }) },
|
|
27
|
-
size: "128x128",
|
|
28
|
-
});
|
|
27
|
+
const favicon = await makeImageAvailableByHandle(renderingContext, { handle: getHandleOfSiteField(siteContext, { fieldName: "favicon" }) }, { resizeRule: "128x128", pixelRatio: 1 });
|
|
29
28
|
const tags = [`<meta charset="UTF-8">`];
|
|
30
29
|
if (metaDescription)
|
|
31
30
|
tags.push(`<meta name="description" content="${escapeHtml(metaDescription)}">`);
|
|
@@ -35,7 +34,7 @@ async function generateHeadTags(siteContext, renderingContext, docValues) {
|
|
|
35
34
|
tags.push(`<link rel="icon" type="${favicon.mediaType}" href="${escapeHtml(favicon.url)}">`);
|
|
36
35
|
if (og) {
|
|
37
36
|
const ogValues = await og();
|
|
38
|
-
const openGraphTags = await generateOpenGraphTags(
|
|
37
|
+
const openGraphTags = await generateOpenGraphTags(renderingContext, ogValues);
|
|
39
38
|
if (openGraphTags)
|
|
40
39
|
tags.push(openGraphTags);
|
|
41
40
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"head-tags-filter.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-filters/head-tags-filter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"head-tags-filter.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-filters/head-tags-filter.ts"],"names":[],"mappings":"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"}
|