@paroicms/server 1.104.4 → 1.105.0
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/README.md +2 -2
- package/dist/admin-backend/document/load-documents.queries.js +19 -19
- package/dist/admin-backend/document/save-documents.queries.js +13 -11
- package/dist/admin-backend/document/save-documents.queries.js.map +1 -1
- package/dist/admin-backend/fields/load-fields-of.queries.js +6 -6
- package/dist/admin-backend/lnode/lnode-wrap.formatters.d.ts +3 -3
- package/dist/admin-backend/lnode/lnode-wrap.formatters.js.map +1 -1
- package/dist/admin-backend/lnode/lnode-wrap.resolver.js +11 -13
- package/dist/admin-backend/lnode/lnode-wrap.resolver.js.map +1 -1
- package/dist/admin-backend/lnode/lnode.queries.d.ts +8 -11
- package/dist/admin-backend/lnode/lnode.queries.js +34 -25
- package/dist/admin-backend/lnode/lnode.queries.js.map +1 -1
- package/dist/admin-backend/node/node.queries.js +14 -14
- package/dist/admin-backend/node/ordered-node.queries.js +6 -6
- package/dist/admin-backend/part/part-node.queries.js +9 -9
- package/dist/admin-backend/part/part.queries.js +34 -34
- package/dist/common/child-ordering-query.d.ts +2 -2
- package/dist/common/child-ordering-query.js +19 -18
- package/dist/common/child-ordering-query.js.map +1 -1
- package/dist/connector/plugin-loader/init-plugins.js +5 -2
- package/dist/connector/plugin-loader/init-plugins.js.map +1 -1
- package/dist/connector/plugin-loader/plugin-loader.js +2 -1
- package/dist/connector/plugin-loader/plugin-loader.js.map +1 -1
- package/dist/connector/plugin-loader/plugin-types.d.ts +10 -11
- package/dist/connector/site-schema/site-schema-factory.js +1 -2
- package/dist/connector/site-schema/site-schema-factory.js.map +1 -1
- package/dist/helpers/utils-helper.d.ts +0 -1
- package/dist/helpers/utils-helper.js +0 -4
- package/dist/helpers/utils-helper.js.map +1 -1
- package/dist/liquidjs-tools/liquidjs-drop.d.ts +4 -0
- package/dist/liquidjs-tools/liquidjs-drop.js +4 -1
- package/dist/liquidjs-tools/liquidjs-drop.js.map +1 -1
- package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.js +11 -2
- package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.js.map +1 -1
- package/dist/liquidjs-tools/render-clone/forloop-drop.js.map +1 -1
- package/dist/liquidjs-tools/render-clone/render.d.ts +7 -3
- package/dist/liquidjs-tools/render-clone/render.js +82 -12
- package/dist/liquidjs-tools/render-clone/render.js.map +1 -1
- package/dist/plugin-services/make-backend-plugin-service.js +41 -5
- package/dist/plugin-services/make-backend-plugin-service.js.map +1 -1
- package/dist/rendered-site/feed/feed-generator.js +14 -14
- package/dist/rendered-site/helpers/liquid-function-call-args.d.ts +17 -0
- package/dist/rendered-site/helpers/liquid-function-call-args.js +88 -0
- package/dist/rendered-site/helpers/liquid-function-call-args.js.map +1 -0
- package/dist/rendered-site/helpers/liquid-tag-helpers.d.ts +23 -0
- package/dist/rendered-site/helpers/liquid-tag-helpers.js +68 -0
- package/dist/rendered-site/helpers/liquid-tag-helpers.js.map +1 -0
- package/dist/rendered-site/helpers/out-liquid-tag.d.ts +11 -0
- package/dist/rendered-site/helpers/out-liquid-tag.js +51 -0
- package/dist/rendered-site/helpers/out-liquid-tag.js.map +1 -0
- package/dist/rendered-site/helpers/set-liquid-tag.d.ts +14 -0
- package/dist/rendered-site/helpers/set-liquid-tag.js +62 -0
- package/dist/rendered-site/helpers/set-liquid-tag.js.map +1 -0
- package/dist/rendered-site/liquidjs-filters/info-filter.js +35 -20
- package/dist/rendered-site/liquidjs-filters/info-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/deprecated-get-doc-tag.d.ts +1 -0
- package/dist/rendered-site/liquidjs-tags/{get-doc-tag.js → deprecated-get-doc-tag.js} +8 -9
- package/dist/rendered-site/liquidjs-tags/deprecated-get-doc-tag.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/deprecated-get-docs-tag.d.ts +1 -0
- package/dist/rendered-site/liquidjs-tags/{get-docs-tag.js → deprecated-get-docs-tag.js} +45 -36
- package/dist/rendered-site/liquidjs-tags/deprecated-get-docs-tag.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.d.ts +23 -0
- package/dist/rendered-site/liquidjs-tags/{get-paginated-docs-tag.js → deprecated-get-paginated-docs-tag.js} +48 -31
- package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.d.ts +10 -0
- package/dist/rendered-site/liquidjs-tags/{use-image-tag.js → deprecated-use-image-tag.js} +8 -7
- package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/doc-liquid-set-handler.d.ts +2 -0
- package/dist/rendered-site/liquidjs-tags/doc-liquid-set-handler.js +68 -0
- package/dist/rendered-site/liquidjs-tags/doc-liquid-set-handler.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/docs-liquid-set-handler.d.ts +2 -0
- package/dist/rendered-site/liquidjs-tags/docs-liquid-set-handler.js +98 -0
- package/dist/rendered-site/liquidjs-tags/docs-liquid-set-handler.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/image-liquid-set-handler.d.ts +2 -0
- package/dist/rendered-site/liquidjs-tags/image-liquid-set-handler.js +89 -0
- package/dist/rendered-site/liquidjs-tags/image-liquid-set-handler.js.map +1 -0
- package/dist/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.d.ts +2 -0
- package/dist/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.js +111 -0
- package/dist/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.js.map +1 -0
- package/dist/rendered-site/page-route/raw-document-payload.js +25 -25
- package/dist/rendering-payload/breadcrumb.queries.js +8 -2
- package/dist/rendering-payload/breadcrumb.queries.js.map +1 -1
- package/dist/rendering-payload/cluster-payloads.js +16 -8
- package/dist/rendering-payload/cluster-payloads.js.map +1 -1
- package/dist/rendering-payload/create-doc-drop.d.ts +3 -1
- package/dist/rendering-payload/create-doc-drop.js +17 -3
- package/dist/rendering-payload/create-doc-drop.js.map +1 -1
- package/dist/rendering-payload/doc-list.queries.d.ts +16 -0
- package/dist/rendering-payload/doc-list.queries.js +155 -0
- package/dist/rendering-payload/doc-list.queries.js.map +1 -0
- package/dist/rendering-payload/doc-values.queries.d.ts +1 -28
- package/dist/rendering-payload/doc-values.queries.js +8 -102
- package/dist/rendering-payload/doc-values.queries.js.map +1 -1
- package/dist/rendering-payload/field-values.js +7 -3
- package/dist/rendering-payload/field-values.js.map +1 -1
- package/dist/rendering-payload/get-siblings.queries.js +34 -24
- package/dist/rendering-payload/get-siblings.queries.js.map +1 -1
- package/dist/rendering-payload/make-public-payload.js +4 -4
- package/dist/rendering-payload/make-public-payload.js.map +1 -1
- package/dist/rendering-payload/parts.queries.js +18 -18
- package/dist/rendering-payload/rendering-payload.types.d.ts +9 -13
- package/dist/rendering-payload/site-payload.d.ts +1 -1
- package/dist/rendering-payload/site-payload.js +8 -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 +26 -16
- package/dist/rendering-payload/translations.queries.js.map +1 -1
- package/dist/site-context/core-plugin/create-core-plugin.js +2 -1
- package/dist/site-context/core-plugin/create-core-plugin.js.map +1 -1
- package/dist/site-context/liquid-init.d.ts +6 -1
- package/dist/site-context/liquid-init.js +28 -10
- package/dist/site-context/liquid-init.js.map +1 -1
- package/dist/site-context/load-site-context.js +14 -15
- package/dist/site-context/load-site-context.js.map +1 -1
- package/dist/site-context/site-context.types.d.ts +4 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +12 -12
- package/schema.graphql +6 -6
- package/dist/connector/site-schema/site-schema-public-helpers.d.ts +0 -3
- package/dist/connector/site-schema/site-schema-public-helpers.js +0 -15
- package/dist/connector/site-schema/site-schema-public-helpers.js.map +0 -1
- package/dist/public-api/public-api-rendering.d.ts +0 -15
- package/dist/public-api/public-api-rendering.js +0 -114
- package/dist/public-api/public-api-rendering.js.map +0 -1
- package/dist/public-api/search-text/search-text.queries.d.ts +0 -15
- package/dist/public-api/search-text/search-text.queries.js +0 -85
- package/dist/public-api/search-text/search-text.queries.js.map +0 -1
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.d.ts +0 -13
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.js.map +0 -1
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.d.ts +0 -13
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.js.map +0 -1
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.d.ts +0 -27
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js.map +0 -1
- package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.d.ts +0 -32
- package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js +0 -59
- package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js.map +0 -1
- package/dist/rendered-site/liquidjs-tags/use-image-tag.d.ts +0 -24
- package/dist/rendered-site/liquidjs-tags/use-image-tag.js.map +0 -1
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { isDef, omitProperty, parseLNodeId, } from "@paroicms/public-anywhere-lib";
|
|
1
|
+
import { extractNodeId, isDef, omitProperty, parseLNodeId, } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import { parseSorting } from "@paroicms/public-server-lib";
|
|
2
3
|
import { type } from "arktype";
|
|
4
|
+
import { getTypeNameOf } from "../../admin-backend/node/node.queries.js";
|
|
3
5
|
import { makeCacheDependencyKey } from "../../common/text-cache.js";
|
|
4
|
-
import { parseSorting } from "../../connector/site-schema/site-schema-public-helpers.js";
|
|
5
|
-
import { toNodeId } from "../../helpers/utils-helper.js";
|
|
6
6
|
import { makeTagCacheKeyForRendering, } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
7
7
|
import { createDocPayloadDrop } from "../../rendering-payload/create-doc-drop.js";
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
8
|
+
import { listDocValues } from "../../rendering-payload/doc-list.queries.js";
|
|
9
|
+
import { createDeprecatedAssignLiquidTag, wrapLiquidTagPromise, } from "../helpers/liquid-tag-helpers.js";
|
|
10
10
|
const availableParameterNames = new Set([
|
|
11
11
|
"parentId",
|
|
12
12
|
"orderBy",
|
|
@@ -16,10 +16,11 @@ const availableParameterNames = new Set([
|
|
|
16
16
|
"pageIndex",
|
|
17
17
|
"pageSize",
|
|
18
18
|
]);
|
|
19
|
-
export function
|
|
20
|
-
return
|
|
19
|
+
export function createDeprecatedGetPaginatedDocsLiquidTag() {
|
|
20
|
+
return createDeprecatedAssignLiquidTag(function* (renderingContext, { namedParameters, variableName }) {
|
|
21
21
|
const { siteContext } = renderingContext;
|
|
22
|
-
|
|
22
|
+
siteContext.logger.warn(`'getPaginatedDocs' is deprecated, use 'set ${variableName} = paginatedDocs(...)' instead.`);
|
|
23
|
+
const options = validateParameters(namedParameters, siteContext, { variableName });
|
|
23
24
|
if (options.parentId === undefined)
|
|
24
25
|
return;
|
|
25
26
|
const parentId = parseLNodeId(options.parentId);
|
|
@@ -31,7 +32,7 @@ export function createGetPaginatedDocsLiquidTag() {
|
|
|
31
32
|
const val = yield wrapLiquidTagPromise(renderingContext, loadPaginatedDocs(renderingContext, parentId, options), "getPaginatedDocs");
|
|
32
33
|
renderingContext.setValueIntoCache(cacheKey, val);
|
|
33
34
|
return val;
|
|
34
|
-
});
|
|
35
|
+
}, { legacySyntax: true });
|
|
35
36
|
}
|
|
36
37
|
const GetPaginatedDocsParametersAT = type({
|
|
37
38
|
"parentId?": "string|undefined",
|
|
@@ -50,44 +51,60 @@ function validateParameters(values, { logger }, { variableName }) {
|
|
|
50
51
|
}
|
|
51
52
|
}
|
|
52
53
|
const validated = GetPaginatedDocsParametersAT.assert(omitProperty(values, variableName));
|
|
53
|
-
let
|
|
54
|
-
let
|
|
55
|
-
if (
|
|
54
|
+
let labeledWithId = validated.labeledById;
|
|
55
|
+
let labeledWithField = validated.labeledByField;
|
|
56
|
+
if (labeledWithId && !labeledWithField) {
|
|
56
57
|
logger.warn(`[getDocs] the 'labeledById' parameter requires the 'labeledByField' parameter to be set`);
|
|
57
|
-
|
|
58
|
+
labeledWithId = undefined;
|
|
58
59
|
}
|
|
59
|
-
else if (!
|
|
60
|
+
else if (!labeledWithId && labeledWithField) {
|
|
60
61
|
logger.warn(`[getDocs] the 'labeledByField' parameter requires the 'labeledById' parameter to be set`);
|
|
61
|
-
|
|
62
|
+
labeledWithField = undefined;
|
|
62
63
|
}
|
|
63
64
|
return {
|
|
64
65
|
parentId: validated.parentId,
|
|
65
|
-
|
|
66
|
+
sorting: validated.orderBy,
|
|
66
67
|
fields: validated.fields,
|
|
67
|
-
|
|
68
|
-
|
|
68
|
+
labeledWithId,
|
|
69
|
+
labeledWithField,
|
|
69
70
|
pageIndex: validated.pageIndex,
|
|
70
71
|
pageSize: validated.pageSize,
|
|
71
72
|
};
|
|
72
73
|
}
|
|
73
|
-
export async function loadPaginatedDocs(renderingContext,
|
|
74
|
+
export async function loadPaginatedDocs(renderingContext, parentDocumentId, options) {
|
|
74
75
|
const fieldNames = options.fields?.trim().split(/\s*,\s*/);
|
|
75
|
-
const
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
76
|
+
const labeledWithTermId = isDef(options.labeledWithId)
|
|
77
|
+
? extractNodeId(options.labeledWithId)
|
|
78
|
+
: undefined;
|
|
79
|
+
const parentDocumentTypeName = await getTypeNameOf(renderingContext.siteContext, parentDocumentId.nodeId);
|
|
80
|
+
const loadDescriptor = {
|
|
81
|
+
load: "list",
|
|
82
|
+
nodeKind: "document",
|
|
83
|
+
descriptorName: "children",
|
|
84
|
+
parentDocumentId,
|
|
85
|
+
parentDocumentTypeName,
|
|
86
|
+
sorting: options.sorting ? parseSorting(options.sorting) : undefined,
|
|
87
|
+
labeledWith: labeledWithTermId !== undefined && options.labeledWithField
|
|
88
|
+
? { termNodeId: labeledWithTermId, fieldName: options.labeledWithField }
|
|
82
89
|
: undefined,
|
|
83
|
-
|
|
84
|
-
|
|
90
|
+
limit: options.pageSize,
|
|
91
|
+
offset: (options.pageIndex ?? 0) * options.pageSize,
|
|
92
|
+
};
|
|
93
|
+
const { items, total } = await listDocValues(renderingContext, loadDescriptor, {
|
|
94
|
+
onlyPublished: true,
|
|
95
|
+
withTotal: true,
|
|
85
96
|
});
|
|
97
|
+
const pageIndex = options.pageIndex ?? 0;
|
|
98
|
+
const pageCount = Math.ceil(total / options.pageSize);
|
|
86
99
|
return {
|
|
87
|
-
|
|
88
|
-
|
|
100
|
+
items: items.map((item) => createDocPayloadDrop(renderingContext, item, {
|
|
101
|
+
documentId: item,
|
|
89
102
|
fieldNames: fieldNames && fieldNames.length > 0 ? fieldNames : undefined,
|
|
90
103
|
})),
|
|
104
|
+
total,
|
|
105
|
+
pageIndex,
|
|
106
|
+
pageCount,
|
|
107
|
+
pageSize: options.pageSize,
|
|
91
108
|
};
|
|
92
109
|
}
|
|
93
|
-
//# sourceMappingURL=get-paginated-docs-tag.js.map
|
|
110
|
+
//# sourceMappingURL=deprecated-get-paginated-docs-tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-get-paginated-docs-tag.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { type ResizeRule } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import type { TpSourceImage } from "../../rendering-payload/rendering-payload.types.js";
|
|
3
|
+
export interface UseImageTagParameters {
|
|
4
|
+
image: TpSourceImage | string | undefined;
|
|
5
|
+
resize: ResizeRule;
|
|
6
|
+
autoCrop?: boolean;
|
|
7
|
+
pixelRatio?: number;
|
|
8
|
+
mediaType?: string;
|
|
9
|
+
}
|
|
10
|
+
export declare function createDeprecatedUseImageLiquidTag(): import("liquidjs/dist/template/tag.js").TagClass;
|
|
@@ -3,8 +3,8 @@ import { type } from "arktype";
|
|
|
3
3
|
import { dependencyKeyOfMedia } from "../../common/text-cache.js";
|
|
4
4
|
import { createLiquidDropFromPromise } from "../../liquidjs-tools/liquidjs-drop.js";
|
|
5
5
|
import { makeTagCacheKeyForRendering } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
6
|
+
import { createDeprecatedAssignLiquidTag, wrapLiquidTagPromise, } from "../helpers/liquid-tag-helpers.js";
|
|
6
7
|
import { loadTpImageVariant } from "./grouping-media-query.js";
|
|
7
|
-
import { createAssignToVarLiquidTagWrapper, wrapLiquidTagPromise } from "./liquid-tag-wrapper.js";
|
|
8
8
|
const availableParameterNames = new Set([
|
|
9
9
|
"uid",
|
|
10
10
|
"size",
|
|
@@ -14,10 +14,11 @@ const availableParameterNames = new Set([
|
|
|
14
14
|
"pixelRatio",
|
|
15
15
|
"mediaType",
|
|
16
16
|
]);
|
|
17
|
-
export function
|
|
18
|
-
return
|
|
17
|
+
export function createDeprecatedUseImageLiquidTag() {
|
|
18
|
+
return createDeprecatedAssignLiquidTag((renderingContext, { namedParameters, variableName }) => {
|
|
19
19
|
const { siteContext } = renderingContext;
|
|
20
|
-
|
|
20
|
+
siteContext.logger.warn(`'useImage' is deprecated, use 'set ${variableName} = image(...)' instead.`);
|
|
21
|
+
const options = validateParameters(siteContext, namedParameters, { variableName });
|
|
21
22
|
const { image: imageParam, resize: resizeRule } = options;
|
|
22
23
|
if (!imageParam)
|
|
23
24
|
return;
|
|
@@ -40,7 +41,7 @@ export function createUseImageLiquidTag() {
|
|
|
40
41
|
renderingContext.addDependencyKey(dependencyKeyOfMedia(mediaId));
|
|
41
42
|
renderingContext.setValueIntoCache(cacheKey, val);
|
|
42
43
|
return val;
|
|
43
|
-
});
|
|
44
|
+
}, { legacySyntax: true });
|
|
44
45
|
}
|
|
45
46
|
const UseImageParametersAT = type({
|
|
46
47
|
"resize?": "string|undefined",
|
|
@@ -100,7 +101,7 @@ function validateParameters(siteContext, values, { variableName }) {
|
|
|
100
101
|
mediaType,
|
|
101
102
|
};
|
|
102
103
|
}
|
|
103
|
-
|
|
104
|
+
function toTpSourceImageOrUndefParameter(siteContext, image, { warnPrefix }) {
|
|
104
105
|
if (!image)
|
|
105
106
|
return;
|
|
106
107
|
if (image.kind === "file") {
|
|
@@ -116,4 +117,4 @@ export function toTpSourceImageOrUndefParameter(siteContext, image, { warnPrefix
|
|
|
116
117
|
}
|
|
117
118
|
return image;
|
|
118
119
|
}
|
|
119
|
-
//# sourceMappingURL=use-image-tag.js.map
|
|
120
|
+
//# sourceMappingURL=deprecated-use-image-tag.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"deprecated-use-image-tag.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-tags/deprecated-use-image-tag.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { isNumeric, parseLNodeId, } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import { extractOneDocumentLoadDescriptor } from "@paroicms/public-server-lib";
|
|
3
|
+
import { type } from "arktype";
|
|
4
|
+
import { makeCacheDependencyKey } from "../../common/text-cache.js";
|
|
5
|
+
import { makeTagCacheKeyForRendering, } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
6
|
+
import { createDocPayloadDrop } from "../../rendering-payload/create-doc-drop.js";
|
|
7
|
+
import { getDocItem } from "../../rendering-payload/doc-values.queries.js";
|
|
8
|
+
import { wrapLiquidTagPromise } from "../helpers/liquid-tag-helpers.js";
|
|
9
|
+
export function createDocLiquidSetHandler() {
|
|
10
|
+
return (renderingContext, { positionedParameters, namedParameters }) => {
|
|
11
|
+
const { siteContext } = renderingContext;
|
|
12
|
+
const idInput = positionedParameters[0];
|
|
13
|
+
if (idInput === undefined)
|
|
14
|
+
return;
|
|
15
|
+
const loadDescriptor = extractOneDocumentLoadDescriptor(idInput);
|
|
16
|
+
const documentId = loadDescriptor
|
|
17
|
+
? loadDescriptor.documentId
|
|
18
|
+
: toParsedLNodeId(renderingContext, idInput);
|
|
19
|
+
const { fields } = validateParameters(namedParameters, siteContext);
|
|
20
|
+
const cacheKey = makeTagCacheKeyForRendering("doc", {
|
|
21
|
+
tagParameters: { id: documentId, fields },
|
|
22
|
+
});
|
|
23
|
+
const cacheVal = renderingContext.getValueFromCache(cacheKey);
|
|
24
|
+
if (cacheVal.found)
|
|
25
|
+
return cacheVal.val;
|
|
26
|
+
renderingContext.addDependencyKey(makeCacheDependencyKey({ documentId }));
|
|
27
|
+
const promise = wrapLiquidTagPromise(renderingContext, loadDoc(renderingContext, documentId, { fields }), "doc");
|
|
28
|
+
return promise.then((val) => {
|
|
29
|
+
renderingContext.setValueIntoCache(cacheKey, val);
|
|
30
|
+
return val;
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
const DocFieldsAT = type({
|
|
35
|
+
"fields?": "string|undefined|null",
|
|
36
|
+
"+": "reject",
|
|
37
|
+
}).pipe((data) => ({
|
|
38
|
+
fields: data.fields ?? undefined,
|
|
39
|
+
}));
|
|
40
|
+
function validateParameters(values, _siteContext) {
|
|
41
|
+
return DocFieldsAT.assert(values);
|
|
42
|
+
}
|
|
43
|
+
function toParsedLNodeId(renderingContext, id) {
|
|
44
|
+
const idStr = typeof id === "number" ? String(id) : typeof id === "string" ? id : undefined;
|
|
45
|
+
if (idStr === undefined)
|
|
46
|
+
throw new Error("Invalid doc id");
|
|
47
|
+
if (isNumeric(idStr)) {
|
|
48
|
+
return {
|
|
49
|
+
language: renderingContext.language,
|
|
50
|
+
nodeId: idStr,
|
|
51
|
+
};
|
|
52
|
+
}
|
|
53
|
+
return parseLNodeId(idStr);
|
|
54
|
+
}
|
|
55
|
+
async function loadDoc(renderingContext, documentId, options) {
|
|
56
|
+
const { siteContext } = renderingContext;
|
|
57
|
+
const fieldNames = options.fields?.trim().split(/\s*,\s*/);
|
|
58
|
+
const docValues = await getDocItem(siteContext, renderingContext.tracker, documentId, {
|
|
59
|
+
allowUndef: true,
|
|
60
|
+
});
|
|
61
|
+
if (!docValues)
|
|
62
|
+
return;
|
|
63
|
+
return createDocPayloadDrop(renderingContext, docValues, {
|
|
64
|
+
documentId: docValues,
|
|
65
|
+
fieldNames: fieldNames && fieldNames.length > 0 ? fieldNames : undefined,
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=doc-liquid-set-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doc-liquid-set-handler.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-tags/doc-liquid-set-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,YAAY,GACb,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAAE,gCAAgC,EAAE,MAAM,6BAA6B,CAAC;AAC/E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,sBAAsB,EAAE,MAAM,4BAA4B,CAAC;AAEpE,OAAO,EACL,2BAA2B,GAE5B,MAAM,8DAA8D,CAAC;AACtE,OAAO,EAAE,oBAAoB,EAAE,MAAM,4CAA4C,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,+CAA+C,CAAC;AAG3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAGxE,MAAM,UAAU,yBAAyB;IACvC,OAAO,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,EAAE,eAAe,EAAE,EAAE,EAAE;QACrE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC;QAEzC,MAAM,OAAO,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;QACxC,IAAI,OAAO,KAAK,SAAS;YAAE,OAAO;QAElC,MAAM,cAAc,GAAG,gCAAgC,CAAC,OAAO,CAAC,CAAC;QACjE,MAAM,UAAU,GAAG,cAAc;YAC/B,CAAC,CAAC,cAAc,CAAC,UAAU;YAC3B,CAAC,CAAC,eAAe,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QAC/C,MAAM,EAAE,MAAM,EAAE,GAAG,kBAAkB,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC;QAEpE,MAAM,QAAQ,GAAG,2BAA2B,CAAC,KAAK,EAAE;YAClD,aAAa,EAAE,EAAE,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE;SAC1C,CAAC,CAAC;QAEH,MAAM,QAAQ,GACZ,gBAAgB,CAAC,iBAAiB,CAAuC,QAAQ,CAAC,CAAC;QACrF,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;QAExC,gBAAgB,CAAC,gBAAgB,CAAC,sBAAsB,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC,CAAC;QAE1E,MAAM,OAAO,GAAG,oBAAoB,CAClC,gBAAgB,EAChB,OAAO,CAAC,gBAAgB,EAAE,UAAU,EAAE,EAAE,MAAM,EAAE,CAAC,EACjD,KAAK,CACN,CAAC;QAEF,OAAO,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE;YAC1B,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;YAClD,OAAO,GAAG,CAAC;QACb,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,WAAW,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,uBAAuB;IAClC,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;IACjB,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,SAAS;CACjC,CAAC,CAAC,CAAC;AAEJ,SAAS,kBAAkB,CACzB,MAAW,EACX,YAAyC;IAEzC,OAAO,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACpC,CAAC;AAED,SAAS,eAAe,CACtB,gBAAoD,EACpD,EAAW;IAEX,MAAM,KAAK,GAAG,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC;IAC5F,IAAI,KAAK,KAAK,SAAS;QAAE,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAC3D,IAAI,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;QACrB,OAAO;YACL,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,MAAM,EAAE,KAAK;SACd,CAAC;IACJ,CAAC;IACD,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,OAAO,CACpB,gBAAkC,EAClC,UAAyB,EACzB,OAA4B;IAE5B,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC;IACzC,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,MAAM,SAAS,GAAG,MAAM,UAAU,CAAC,WAAW,EAAE,gBAAgB,CAAC,OAAO,EAAE,UAAU,EAAE;QACpF,UAAU,EAAE,IAAI;KACjB,CAAC,CAAC;IACH,IAAI,CAAC,SAAS;QAAE,OAAO;IACvB,OAAO,oBAAoB,CAAC,gBAAgB,EAAE,SAAS,EAAE;QACvD,UAAU,EAAE,SAAS;QACrB,UAAU,EAAE,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS;KACzE,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { extractNodeId, isDef } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import { assignLoadDescriptor, extractDocumentsLoadDescriptor, extractOneDocumentLoadDescriptor, mergeListDescriptor, parseSorting, } from "@paroicms/public-server-lib";
|
|
3
|
+
import { type } from "arktype";
|
|
4
|
+
import { makeTagCacheKeyForRendering, } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
5
|
+
import { createDocPayloadDrop } from "../../rendering-payload/create-doc-drop.js";
|
|
6
|
+
import { listDocValues } from "../../rendering-payload/doc-list.queries.js";
|
|
7
|
+
import { wrapLiquidTagPromise } from "../helpers/liquid-tag-helpers.js";
|
|
8
|
+
export function createDocsLiquidSetHandler() {
|
|
9
|
+
return (renderingContext, { positionedParameters, namedParameters, variableName }) => {
|
|
10
|
+
const { siteContext } = renderingContext;
|
|
11
|
+
const mainInput = positionedParameters[0];
|
|
12
|
+
if (!isDef(mainInput))
|
|
13
|
+
return;
|
|
14
|
+
let loadDescriptor = extractDocumentsLoadDescriptor(mainInput);
|
|
15
|
+
if (!loadDescriptor)
|
|
16
|
+
throw new Error("[docs] Invalid first parameter");
|
|
17
|
+
const { descriptorParameters, fieldNames } = validateParameters(namedParameters, siteContext, {
|
|
18
|
+
variableName,
|
|
19
|
+
});
|
|
20
|
+
loadDescriptor = mergeListDescriptor(loadDescriptor, descriptorParameters);
|
|
21
|
+
const cacheKey = makeTagCacheKeyForRendering("docs", {
|
|
22
|
+
tagParameters: { loadDescriptor, fieldNames },
|
|
23
|
+
});
|
|
24
|
+
const cacheVal = renderingContext.getValueFromCache(cacheKey);
|
|
25
|
+
if (cacheVal.found)
|
|
26
|
+
return cacheVal.val;
|
|
27
|
+
const promise = wrapLiquidTagPromise(renderingContext, loadDocs(renderingContext, loadDescriptor, fieldNames), "docs");
|
|
28
|
+
return promise.then((list) => {
|
|
29
|
+
const val = list.length === 0 ? undefined : list;
|
|
30
|
+
renderingContext.setValueIntoCache(cacheKey, val);
|
|
31
|
+
return val;
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
async function loadDocs(renderingContext, loadDescriptor, fieldNames) {
|
|
36
|
+
const { items } = await listDocValues(renderingContext, loadDescriptor, {
|
|
37
|
+
onlyPublished: true,
|
|
38
|
+
withTotal: false,
|
|
39
|
+
});
|
|
40
|
+
return assignLoadDescriptor(items.map((item) => createDocPayloadDrop(renderingContext, item, {
|
|
41
|
+
documentId: item,
|
|
42
|
+
fieldNames,
|
|
43
|
+
})), loadDescriptor);
|
|
44
|
+
}
|
|
45
|
+
const DocsParametersAT = type({
|
|
46
|
+
"term?": "string|number|object|undefined",
|
|
47
|
+
"labeledWith?": "string|undefined",
|
|
48
|
+
"sorting?": "string|undefined",
|
|
49
|
+
"limit?": "number|undefined",
|
|
50
|
+
"fields?": "string|undefined",
|
|
51
|
+
"+": "reject",
|
|
52
|
+
});
|
|
53
|
+
function validateParameters(values, { logger }, { variableName }) {
|
|
54
|
+
const validated = DocsParametersAT.assert(values);
|
|
55
|
+
let { term, labeledWith } = validated;
|
|
56
|
+
if (term && !labeledWith) {
|
|
57
|
+
logger.warn(`[set ${variableName} = docs] the 'term' parameter requires the 'labeledWith' parameter to be set`);
|
|
58
|
+
term = undefined;
|
|
59
|
+
}
|
|
60
|
+
else if (!term && labeledWith) {
|
|
61
|
+
logger.warn(`[set ${variableName} = docs] the 'labeledWith' parameter requires the 'term' parameter to be set`);
|
|
62
|
+
labeledWith = undefined;
|
|
63
|
+
}
|
|
64
|
+
const fieldNames = validated.fields?.trim().split(/\s*,\s*/);
|
|
65
|
+
let termNodeId;
|
|
66
|
+
if (term) {
|
|
67
|
+
if (typeof term === "number") {
|
|
68
|
+
termNodeId = String(term);
|
|
69
|
+
}
|
|
70
|
+
else if (typeof term === "string") {
|
|
71
|
+
termNodeId = extractNodeId(term);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
const descriptor = extractOneDocumentLoadDescriptor(term);
|
|
75
|
+
if (descriptor) {
|
|
76
|
+
termNodeId = descriptor.documentId.nodeId;
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
logger.warn(`[set ${variableName} = docs] invalid 'term' parameter`);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
const descriptorParameters = {
|
|
84
|
+
sorting: validated.sorting ? parseSorting(validated.sorting) : undefined,
|
|
85
|
+
labeledWith: labeledWith && termNodeId !== undefined
|
|
86
|
+
? {
|
|
87
|
+
fieldName: labeledWith,
|
|
88
|
+
termNodeId,
|
|
89
|
+
}
|
|
90
|
+
: undefined,
|
|
91
|
+
limit: validated.limit,
|
|
92
|
+
};
|
|
93
|
+
return {
|
|
94
|
+
descriptorParameters,
|
|
95
|
+
fieldNames: fieldNames && fieldNames.length > 0 ? fieldNames : undefined,
|
|
96
|
+
};
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=docs-liquid-set-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"docs-liquid-set-handler.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-tags/docs-liquid-set-handler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { isDef, isResizeRule } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import { type } from "arktype";
|
|
3
|
+
import { dependencyKeyOfMedia } from "../../common/text-cache.js";
|
|
4
|
+
import { createLiquidDropFromPromise } from "../../liquidjs-tools/liquidjs-drop.js";
|
|
5
|
+
import { makeTagCacheKeyForRendering } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
6
|
+
import { wrapLiquidTagPromise } from "../helpers/liquid-tag-helpers.js";
|
|
7
|
+
import { loadTpImageVariant } from "./grouping-media-query.js";
|
|
8
|
+
export function createImageLiquidSetHandler() {
|
|
9
|
+
return (renderingContext, { positionedParameters, namedParameters }) => {
|
|
10
|
+
const { siteContext } = renderingContext;
|
|
11
|
+
const mainInput = positionedParameters[0];
|
|
12
|
+
if (!isDef(mainInput))
|
|
13
|
+
return;
|
|
14
|
+
const image = typeof mainInput === "string"
|
|
15
|
+
? mainInput
|
|
16
|
+
: toTpSourceImageOrUndefParameter(siteContext, mainInput, {
|
|
17
|
+
warnPrefix: `[set image] parameter "image"`,
|
|
18
|
+
});
|
|
19
|
+
if (!image)
|
|
20
|
+
return;
|
|
21
|
+
const mediaId = typeof image === "string" ? image : image.mediaId;
|
|
22
|
+
const { resize, autoCrop, mediaType, pixelRatio } = validateParameters(siteContext, namedParameters);
|
|
23
|
+
const cacheKey = makeTagCacheKeyForRendering("image", {
|
|
24
|
+
tagParameters: { mediaId, resize, autoCrop, mediaType, pixelRatio },
|
|
25
|
+
});
|
|
26
|
+
const cacheVal = renderingContext.getValueFromCache(cacheKey);
|
|
27
|
+
if (cacheVal.found)
|
|
28
|
+
return cacheVal.val;
|
|
29
|
+
const promise = wrapLiquidTagPromise(renderingContext, loadTpImageVariant(renderingContext, {
|
|
30
|
+
image,
|
|
31
|
+
language: renderingContext.language,
|
|
32
|
+
resizeRule: resize,
|
|
33
|
+
mediaType,
|
|
34
|
+
pixelRatio,
|
|
35
|
+
}), "image");
|
|
36
|
+
const val = createLiquidDropFromPromise({
|
|
37
|
+
renderingCacheKey: cacheKey,
|
|
38
|
+
renderingContext,
|
|
39
|
+
value: promise,
|
|
40
|
+
});
|
|
41
|
+
renderingContext.addDependencyKey(dependencyKeyOfMedia(mediaId));
|
|
42
|
+
renderingContext.setValueIntoCache(cacheKey, val);
|
|
43
|
+
return val;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
const UseImageParametersAT = type({
|
|
47
|
+
resize: "string",
|
|
48
|
+
"autoCrop?": "boolean|undefined",
|
|
49
|
+
"pixelRatio?": "number|undefined",
|
|
50
|
+
"mediaType?": "string|undefined",
|
|
51
|
+
"+": "reject",
|
|
52
|
+
});
|
|
53
|
+
function validateParameters(siteContext, values) {
|
|
54
|
+
const { logger } = siteContext;
|
|
55
|
+
const validated = UseImageParametersAT.assert(values);
|
|
56
|
+
const resize = validated.resize;
|
|
57
|
+
if (!isResizeRule(resize))
|
|
58
|
+
throw new Error(`[set image] invalid parameter resize: "${resize}"`);
|
|
59
|
+
const autoCrop = validated.autoCrop;
|
|
60
|
+
const pixelRatio = validated.pixelRatio;
|
|
61
|
+
let mediaType = validated.mediaType;
|
|
62
|
+
if (mediaType && !mediaType.startsWith("image/")) {
|
|
63
|
+
logger.warn(`[set image] parameter "mediaType" should starts with "image/", got "${mediaType}"`);
|
|
64
|
+
mediaType = undefined;
|
|
65
|
+
}
|
|
66
|
+
return {
|
|
67
|
+
resize,
|
|
68
|
+
autoCrop,
|
|
69
|
+
pixelRatio,
|
|
70
|
+
mediaType,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
function toTpSourceImageOrUndefParameter(siteContext, image, { warnPrefix }) {
|
|
74
|
+
if (!image)
|
|
75
|
+
return;
|
|
76
|
+
if (image.kind === "file") {
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (image.kind !== "image") {
|
|
80
|
+
siteContext.logger.warn(`${warnPrefix} should be an image`);
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (!image.isSource) {
|
|
84
|
+
siteContext.logger.warn(`${warnPrefix} should be a source image (${image.mediaId}, ${image.originalName})`);
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
return image;
|
|
88
|
+
}
|
|
89
|
+
//# sourceMappingURL=image-liquid-set-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"image-liquid-set-handler.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-tags/image-liquid-set-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,YAAY,EAA6B,MAAM,+BAA+B,CAAC;AAC/F,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,2BAA2B,EAAE,MAAM,uCAAuC,CAAC;AACpF,OAAO,EAAE,2BAA2B,EAAE,MAAM,8DAA8D,CAAC;AAG3G,OAAO,EAAE,oBAAoB,EAAE,MAAM,kCAAkC,CAAC;AAExE,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,MAAM,UAAU,2BAA2B;IACzC,OAAO,CAAC,gBAAgB,EAAE,EAAE,oBAAoB,EAAE,eAAe,EAAE,EAAE,EAAE;QACrE,MAAM,EAAE,WAAW,EAAE,GAAG,gBAAgB,CAAC;QAEzC,MAAM,SAAS,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC;QAC1C,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;YAAE,OAAO;QAE9B,MAAM,KAAK,GACT,OAAO,SAAS,KAAK,QAAQ;YAC3B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,+BAA+B,CAAC,WAAW,EAAE,SAAS,EAAE;gBACtD,UAAU,EAAE,+BAA+B;aAC5C,CAAC,CAAC;QACT,IAAI,CAAC,KAAK;YAAE,OAAO;QAEnB,MAAM,OAAO,GAAG,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC;QAClE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,kBAAkB,CACpE,WAAW,EACX,eAAe,CAChB,CAAC;QAEF,MAAM,QAAQ,GAAG,2BAA2B,CAAC,OAAO,EAAE;YACpD,aAAa,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,EAAE;SACpE,CAAC,CAAC;QACH,MAAM,QAAQ,GAAG,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,QAAQ,CAAC,KAAK;YAAE,OAAO,QAAQ,CAAC,GAAG,CAAC;QAExC,MAAM,OAAO,GAAG,oBAAoB,CAClC,gBAAgB,EAChB,kBAAkB,CAAC,gBAAgB,EAAE;YACnC,KAAK;YACL,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,UAAU,EAAE,MAAM;YAClB,SAAS;YACT,UAAU;SACX,CAAC,EACF,OAAO,CACR,CAAC;QAIF,MAAM,GAAG,GAAG,2BAA2B,CAAC;YACtC,iBAAiB,EAAE,QAAQ;YAC3B,gBAAgB;YAChB,KAAK,EAAE,OAAO;SACf,CAAC,CAAC;QAEH,gBAAgB,CAAC,gBAAgB,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC,CAAC;QACjE,gBAAgB,CAAC,iBAAiB,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;QAClD,OAAO,GAAG,CAAC;IACb,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,oBAAoB,GAAG,IAAI,CAAC;IAChC,MAAM,EAAE,QAAQ;IAChB,WAAW,EAAE,mBAAmB;IAChC,aAAa,EAAE,kBAAkB;IACjC,YAAY,EAAE,kBAAkB;IAChC,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC;AASH,SAAS,kBAAkB,CACzB,WAAwC,EACxC,MAAW;IAEX,MAAM,EAAE,MAAM,EAAE,GAAG,WAAW,CAAC;IAC/B,MAAM,SAAS,GAAG,oBAAoB,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAEtD,MAAM,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;IAChC,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,0CAA0C,MAAM,GAAG,CAAC,CAAC;IAEhG,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;IACpC,MAAM,UAAU,GAAG,SAAS,CAAC,UAAU,CAAC;IACxC,IAAI,SAAS,GAAG,SAAS,CAAC,SAAS,CAAC;IACpC,IAAI,SAAS,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACjD,MAAM,CAAC,IAAI,CACT,uEAAuE,SAAS,GAAG,CACpF,CAAC;QACF,SAAS,GAAG,SAAS,CAAC;IACxB,CAAC;IACD,OAAO;QACL,MAAM;QACN,QAAQ;QACR,UAAU;QACV,SAAS;KACV,CAAC;AACJ,CAAC;AAED,SAAS,+BAA+B,CACtC,WAAwC,EACxC,KAAU,EACV,EAAE,UAAU,EAA0B;IAEtC,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAC1B,OAAO;IACT,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC3B,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,UAAU,qBAAqB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;IACD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;QACpB,WAAW,CAAC,MAAM,CAAC,IAAI,CACrB,GAAG,UAAU,8BAA8B,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,YAAY,GAAG,CACnF,CAAC;QACF,OAAO;IACT,CAAC;IACD,OAAO,KAAsB,CAAC;AAChC,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import { extractNodeId, isDef } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import { assignLoadDescriptor, extractDocumentsLoadDescriptor, extractOneDocumentLoadDescriptor, mergeListDescriptor, parseSorting, } from "@paroicms/public-server-lib";
|
|
3
|
+
import { type } from "arktype";
|
|
4
|
+
import { makeTagCacheKeyForRendering, } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
5
|
+
import { createDocPayloadDrop } from "../../rendering-payload/create-doc-drop.js";
|
|
6
|
+
import { listDocValues } from "../../rendering-payload/doc-list.queries.js";
|
|
7
|
+
import { wrapLiquidTagPromise } from "../helpers/liquid-tag-helpers.js";
|
|
8
|
+
export function createPaginatedDocsLiquidSetHandler() {
|
|
9
|
+
return (renderingContext, { positionedParameters, namedParameters, variableName }) => {
|
|
10
|
+
const { siteContext } = renderingContext;
|
|
11
|
+
const mainInput = positionedParameters[0];
|
|
12
|
+
if (!isDef(mainInput))
|
|
13
|
+
return;
|
|
14
|
+
let loadDescriptor = extractDocumentsLoadDescriptor(mainInput);
|
|
15
|
+
if (!loadDescriptor)
|
|
16
|
+
throw new Error("[paginatedDocs] Invalid first parameter");
|
|
17
|
+
const { descriptorParameters, fieldNames } = validateParameters(namedParameters, siteContext, {
|
|
18
|
+
variableName,
|
|
19
|
+
});
|
|
20
|
+
loadDescriptor = mergeListDescriptor(loadDescriptor, descriptorParameters);
|
|
21
|
+
const cacheKey = makeTagCacheKeyForRendering("paginatedDocs", {
|
|
22
|
+
tagParameters: { loadDescriptor, fieldNames },
|
|
23
|
+
});
|
|
24
|
+
const cacheVal = renderingContext.getValueFromCache(cacheKey);
|
|
25
|
+
if (cacheVal.found)
|
|
26
|
+
return cacheVal.val;
|
|
27
|
+
const promise = wrapLiquidTagPromise(renderingContext, loadPaginatedDocs(renderingContext, loadDescriptor, fieldNames), "paginatedDocs");
|
|
28
|
+
return promise.then((val) => {
|
|
29
|
+
renderingContext.setValueIntoCache(cacheKey, val);
|
|
30
|
+
return val;
|
|
31
|
+
});
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
async function loadPaginatedDocs(renderingContext, loadDescriptor, fieldNames) {
|
|
35
|
+
const { items, total } = await listDocValues(renderingContext, loadDescriptor, {
|
|
36
|
+
onlyPublished: true,
|
|
37
|
+
withTotal: true,
|
|
38
|
+
});
|
|
39
|
+
const denom = loadDescriptor.limit ?? (items.length || 1);
|
|
40
|
+
const pageIndex = loadDescriptor.offset ? Math.floor(loadDescriptor.offset / denom) : 0;
|
|
41
|
+
const pageSize = loadDescriptor.limit ?? items.length;
|
|
42
|
+
const pageCount = pageSize > 0 ? Math.ceil(total / pageSize) : 0;
|
|
43
|
+
return assignLoadDescriptor({
|
|
44
|
+
items: items.map((item) => createDocPayloadDrop(renderingContext, item, {
|
|
45
|
+
documentId: item,
|
|
46
|
+
fieldNames,
|
|
47
|
+
})),
|
|
48
|
+
total,
|
|
49
|
+
pageIndex,
|
|
50
|
+
pageCount,
|
|
51
|
+
pageSize,
|
|
52
|
+
}, loadDescriptor);
|
|
53
|
+
}
|
|
54
|
+
const PaginatedDocsParametersAT = type({
|
|
55
|
+
"sorting?": "string|undefined",
|
|
56
|
+
"fields?": "string|undefined",
|
|
57
|
+
"term?": "string|number|object|undefined",
|
|
58
|
+
"labeledWith?": "string|undefined",
|
|
59
|
+
by: "number",
|
|
60
|
+
"pageIndex?": "number|undefined",
|
|
61
|
+
"+": "reject",
|
|
62
|
+
});
|
|
63
|
+
function validateParameters(values, { logger }, { variableName }) {
|
|
64
|
+
const validated = PaginatedDocsParametersAT.assert(values);
|
|
65
|
+
let { term, labeledWith: labeledWithFieldName } = validated;
|
|
66
|
+
if (term && !labeledWithFieldName) {
|
|
67
|
+
logger.warn(`[set ${variableName} = paginatedDocs] the 'term' parameter requires the 'labeledWith' parameter to be set`);
|
|
68
|
+
term = undefined;
|
|
69
|
+
}
|
|
70
|
+
else if (!term && labeledWithFieldName) {
|
|
71
|
+
logger.warn(`[set ${variableName} = paginatedDocs] the 'labeledWith' parameter requires the 'term' parameter to be set`);
|
|
72
|
+
labeledWithFieldName = undefined;
|
|
73
|
+
}
|
|
74
|
+
const fieldNames = validated.fields?.trim().split(/\s*,\s*/);
|
|
75
|
+
let labeledWith;
|
|
76
|
+
if (labeledWithFieldName && term) {
|
|
77
|
+
let termNodeId;
|
|
78
|
+
if (typeof term === "number") {
|
|
79
|
+
termNodeId = String(term);
|
|
80
|
+
}
|
|
81
|
+
else if (typeof term === "string") {
|
|
82
|
+
termNodeId = extractNodeId(term);
|
|
83
|
+
}
|
|
84
|
+
else {
|
|
85
|
+
const descriptor = extractOneDocumentLoadDescriptor(term);
|
|
86
|
+
if (descriptor) {
|
|
87
|
+
termNodeId = descriptor.documentId.nodeId;
|
|
88
|
+
}
|
|
89
|
+
else {
|
|
90
|
+
logger.warn(`[set ${variableName} = paginatedDocs] invalid 'term' parameter`);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
if (isDef(termNodeId)) {
|
|
94
|
+
labeledWith = {
|
|
95
|
+
termNodeId,
|
|
96
|
+
fieldName: labeledWithFieldName,
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
const descriptorParameters = {
|
|
101
|
+
limit: validated.by,
|
|
102
|
+
offset: (validated.pageIndex ?? 0) * validated.by,
|
|
103
|
+
sorting: validated.sorting ? parseSorting(validated.sorting) : undefined,
|
|
104
|
+
labeledWith,
|
|
105
|
+
};
|
|
106
|
+
return {
|
|
107
|
+
descriptorParameters,
|
|
108
|
+
fieldNames: fieldNames && fieldNames.length > 0 ? fieldNames : undefined,
|
|
109
|
+
};
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=paginated-docs-liquid-set-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-docs-liquid-set-handler.js","sourceRoot":"","sources":["../../../src/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.ts"],"names":[],"mappings":"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"}
|