@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.
Files changed (138) hide show
  1. package/README.md +2 -2
  2. package/dist/admin-backend/document/load-documents.queries.js +19 -19
  3. package/dist/admin-backend/document/save-documents.queries.js +13 -11
  4. package/dist/admin-backend/document/save-documents.queries.js.map +1 -1
  5. package/dist/admin-backend/fields/load-fields-of.queries.js +6 -6
  6. package/dist/admin-backend/lnode/lnode-wrap.formatters.d.ts +3 -3
  7. package/dist/admin-backend/lnode/lnode-wrap.formatters.js.map +1 -1
  8. package/dist/admin-backend/lnode/lnode-wrap.resolver.js +11 -13
  9. package/dist/admin-backend/lnode/lnode-wrap.resolver.js.map +1 -1
  10. package/dist/admin-backend/lnode/lnode.queries.d.ts +8 -11
  11. package/dist/admin-backend/lnode/lnode.queries.js +34 -25
  12. package/dist/admin-backend/lnode/lnode.queries.js.map +1 -1
  13. package/dist/admin-backend/node/node.queries.js +14 -14
  14. package/dist/admin-backend/node/ordered-node.queries.js +6 -6
  15. package/dist/admin-backend/part/part-node.queries.js +9 -9
  16. package/dist/admin-backend/part/part.queries.js +34 -34
  17. package/dist/common/child-ordering-query.d.ts +2 -2
  18. package/dist/common/child-ordering-query.js +19 -18
  19. package/dist/common/child-ordering-query.js.map +1 -1
  20. package/dist/connector/plugin-loader/init-plugins.js +5 -2
  21. package/dist/connector/plugin-loader/init-plugins.js.map +1 -1
  22. package/dist/connector/plugin-loader/plugin-loader.js +2 -1
  23. package/dist/connector/plugin-loader/plugin-loader.js.map +1 -1
  24. package/dist/connector/plugin-loader/plugin-types.d.ts +10 -11
  25. package/dist/connector/site-schema/site-schema-factory.js +1 -2
  26. package/dist/connector/site-schema/site-schema-factory.js.map +1 -1
  27. package/dist/helpers/utils-helper.d.ts +0 -1
  28. package/dist/helpers/utils-helper.js +0 -4
  29. package/dist/helpers/utils-helper.js.map +1 -1
  30. package/dist/liquidjs-tools/liquidjs-drop.d.ts +4 -0
  31. package/dist/liquidjs-tools/liquidjs-drop.js +4 -1
  32. package/dist/liquidjs-tools/liquidjs-drop.js.map +1 -1
  33. package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.js +11 -2
  34. package/dist/liquidjs-tools/liquidjs-rendering/render-liquidjs.js.map +1 -1
  35. package/dist/liquidjs-tools/render-clone/forloop-drop.js.map +1 -1
  36. package/dist/liquidjs-tools/render-clone/render.d.ts +7 -3
  37. package/dist/liquidjs-tools/render-clone/render.js +82 -12
  38. package/dist/liquidjs-tools/render-clone/render.js.map +1 -1
  39. package/dist/plugin-services/make-backend-plugin-service.js +41 -5
  40. package/dist/plugin-services/make-backend-plugin-service.js.map +1 -1
  41. package/dist/rendered-site/feed/feed-generator.js +14 -14
  42. package/dist/rendered-site/helpers/liquid-function-call-args.d.ts +17 -0
  43. package/dist/rendered-site/helpers/liquid-function-call-args.js +88 -0
  44. package/dist/rendered-site/helpers/liquid-function-call-args.js.map +1 -0
  45. package/dist/rendered-site/helpers/liquid-tag-helpers.d.ts +23 -0
  46. package/dist/rendered-site/helpers/liquid-tag-helpers.js +68 -0
  47. package/dist/rendered-site/helpers/liquid-tag-helpers.js.map +1 -0
  48. package/dist/rendered-site/helpers/out-liquid-tag.d.ts +11 -0
  49. package/dist/rendered-site/helpers/out-liquid-tag.js +51 -0
  50. package/dist/rendered-site/helpers/out-liquid-tag.js.map +1 -0
  51. package/dist/rendered-site/helpers/set-liquid-tag.d.ts +14 -0
  52. package/dist/rendered-site/helpers/set-liquid-tag.js +62 -0
  53. package/dist/rendered-site/helpers/set-liquid-tag.js.map +1 -0
  54. package/dist/rendered-site/liquidjs-filters/info-filter.js +35 -20
  55. package/dist/rendered-site/liquidjs-filters/info-filter.js.map +1 -1
  56. package/dist/rendered-site/liquidjs-tags/deprecated-get-doc-tag.d.ts +1 -0
  57. package/dist/rendered-site/liquidjs-tags/{get-doc-tag.js → deprecated-get-doc-tag.js} +8 -9
  58. package/dist/rendered-site/liquidjs-tags/deprecated-get-doc-tag.js.map +1 -0
  59. package/dist/rendered-site/liquidjs-tags/deprecated-get-docs-tag.d.ts +1 -0
  60. package/dist/rendered-site/liquidjs-tags/{get-docs-tag.js → deprecated-get-docs-tag.js} +45 -36
  61. package/dist/rendered-site/liquidjs-tags/deprecated-get-docs-tag.js.map +1 -0
  62. package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.d.ts +23 -0
  63. package/dist/rendered-site/liquidjs-tags/{get-paginated-docs-tag.js → deprecated-get-paginated-docs-tag.js} +48 -31
  64. package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.js.map +1 -0
  65. package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.d.ts +10 -0
  66. package/dist/rendered-site/liquidjs-tags/{use-image-tag.js → deprecated-use-image-tag.js} +8 -7
  67. package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.js.map +1 -0
  68. package/dist/rendered-site/liquidjs-tags/doc-liquid-set-handler.d.ts +2 -0
  69. package/dist/rendered-site/liquidjs-tags/doc-liquid-set-handler.js +68 -0
  70. package/dist/rendered-site/liquidjs-tags/doc-liquid-set-handler.js.map +1 -0
  71. package/dist/rendered-site/liquidjs-tags/docs-liquid-set-handler.d.ts +2 -0
  72. package/dist/rendered-site/liquidjs-tags/docs-liquid-set-handler.js +98 -0
  73. package/dist/rendered-site/liquidjs-tags/docs-liquid-set-handler.js.map +1 -0
  74. package/dist/rendered-site/liquidjs-tags/image-liquid-set-handler.d.ts +2 -0
  75. package/dist/rendered-site/liquidjs-tags/image-liquid-set-handler.js +89 -0
  76. package/dist/rendered-site/liquidjs-tags/image-liquid-set-handler.js.map +1 -0
  77. package/dist/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.d.ts +2 -0
  78. package/dist/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.js +111 -0
  79. package/dist/rendered-site/liquidjs-tags/paginated-docs-liquid-set-handler.js.map +1 -0
  80. package/dist/rendered-site/page-route/raw-document-payload.js +25 -25
  81. package/dist/rendering-payload/breadcrumb.queries.js +8 -2
  82. package/dist/rendering-payload/breadcrumb.queries.js.map +1 -1
  83. package/dist/rendering-payload/cluster-payloads.js +16 -8
  84. package/dist/rendering-payload/cluster-payloads.js.map +1 -1
  85. package/dist/rendering-payload/create-doc-drop.d.ts +3 -1
  86. package/dist/rendering-payload/create-doc-drop.js +17 -3
  87. package/dist/rendering-payload/create-doc-drop.js.map +1 -1
  88. package/dist/rendering-payload/doc-list.queries.d.ts +16 -0
  89. package/dist/rendering-payload/doc-list.queries.js +155 -0
  90. package/dist/rendering-payload/doc-list.queries.js.map +1 -0
  91. package/dist/rendering-payload/doc-values.queries.d.ts +1 -28
  92. package/dist/rendering-payload/doc-values.queries.js +8 -102
  93. package/dist/rendering-payload/doc-values.queries.js.map +1 -1
  94. package/dist/rendering-payload/field-values.js +7 -3
  95. package/dist/rendering-payload/field-values.js.map +1 -1
  96. package/dist/rendering-payload/get-siblings.queries.js +34 -24
  97. package/dist/rendering-payload/get-siblings.queries.js.map +1 -1
  98. package/dist/rendering-payload/make-public-payload.js +4 -4
  99. package/dist/rendering-payload/make-public-payload.js.map +1 -1
  100. package/dist/rendering-payload/parts.queries.js +18 -18
  101. package/dist/rendering-payload/rendering-payload.types.d.ts +9 -13
  102. package/dist/rendering-payload/site-payload.d.ts +1 -1
  103. package/dist/rendering-payload/site-payload.js +8 -3
  104. package/dist/rendering-payload/site-payload.js.map +1 -1
  105. package/dist/rendering-payload/translations.queries.d.ts +1 -1
  106. package/dist/rendering-payload/translations.queries.js +26 -16
  107. package/dist/rendering-payload/translations.queries.js.map +1 -1
  108. package/dist/site-context/core-plugin/create-core-plugin.js +2 -1
  109. package/dist/site-context/core-plugin/create-core-plugin.js.map +1 -1
  110. package/dist/site-context/liquid-init.d.ts +6 -1
  111. package/dist/site-context/liquid-init.js +28 -10
  112. package/dist/site-context/liquid-init.js.map +1 -1
  113. package/dist/site-context/load-site-context.js +14 -15
  114. package/dist/site-context/load-site-context.js.map +1 -1
  115. package/dist/site-context/site-context.types.d.ts +4 -0
  116. package/dist/tsconfig.tsbuildinfo +1 -1
  117. package/package.json +12 -12
  118. package/schema.graphql +6 -6
  119. package/dist/connector/site-schema/site-schema-public-helpers.d.ts +0 -3
  120. package/dist/connector/site-schema/site-schema-public-helpers.js +0 -15
  121. package/dist/connector/site-schema/site-schema-public-helpers.js.map +0 -1
  122. package/dist/public-api/public-api-rendering.d.ts +0 -15
  123. package/dist/public-api/public-api-rendering.js +0 -114
  124. package/dist/public-api/public-api-rendering.js.map +0 -1
  125. package/dist/public-api/search-text/search-text.queries.d.ts +0 -15
  126. package/dist/public-api/search-text/search-text.queries.js +0 -85
  127. package/dist/public-api/search-text/search-text.queries.js.map +0 -1
  128. package/dist/rendered-site/liquidjs-tags/get-doc-tag.d.ts +0 -13
  129. package/dist/rendered-site/liquidjs-tags/get-doc-tag.js.map +0 -1
  130. package/dist/rendered-site/liquidjs-tags/get-docs-tag.d.ts +0 -13
  131. package/dist/rendered-site/liquidjs-tags/get-docs-tag.js.map +0 -1
  132. package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.d.ts +0 -27
  133. package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js.map +0 -1
  134. package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.d.ts +0 -32
  135. package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js +0 -59
  136. package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js.map +0 -1
  137. package/dist/rendered-site/liquidjs-tags/use-image-tag.d.ts +0 -24
  138. 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 { getPaginatedListOfDocValues, } from "../../rendering-payload/doc-values.queries.js";
9
- import { createAssignToVarLiquidTagWrapper, wrapLiquidTagPromise } from "./liquid-tag-wrapper.js";
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 createGetPaginatedDocsLiquidTag() {
20
- return createAssignToVarLiquidTagWrapper(function* (renderingContext, parameters, { variableName }) {
19
+ export function createDeprecatedGetPaginatedDocsLiquidTag() {
20
+ return createDeprecatedAssignLiquidTag(function* (renderingContext, { namedParameters, variableName }) {
21
21
  const { siteContext } = renderingContext;
22
- const options = validateParameters(parameters, siteContext, { variableName });
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 labeledById = validated.labeledById;
54
- let labeledByField = validated.labeledByField;
55
- if (labeledById && !labeledByField) {
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
- labeledById = undefined;
58
+ labeledWithId = undefined;
58
59
  }
59
- else if (!labeledById && labeledByField) {
60
+ else if (!labeledWithId && labeledWithField) {
60
61
  logger.warn(`[getDocs] the 'labeledByField' parameter requires the 'labeledById' parameter to be set`);
61
- labeledByField = undefined;
62
+ labeledWithField = undefined;
62
63
  }
63
64
  return {
64
65
  parentId: validated.parentId,
65
- orderBy: validated.orderBy,
66
+ sorting: validated.orderBy,
66
67
  fields: validated.fields,
67
- labeledById,
68
- labeledByField,
68
+ labeledWithId,
69
+ labeledWithField,
69
70
  pageIndex: validated.pageIndex,
70
71
  pageSize: validated.pageSize,
71
72
  };
72
73
  }
73
- export async function loadPaginatedDocs(renderingContext, parentId, options) {
74
+ export async function loadPaginatedDocs(renderingContext, parentDocumentId, options) {
74
75
  const fieldNames = options.fields?.trim().split(/\s*,\s*/);
75
- const labeledByTermId = isDef(options.labeledById) ? toNodeId(options.labeledById) : undefined;
76
- const result = await getPaginatedListOfDocValues(renderingContext, {
77
- parentId,
78
- documentKind: "regular",
79
- orderBy: options.orderBy ? parseSorting(options.orderBy) : undefined,
80
- labeledBy: labeledByTermId !== undefined && options.labeledByField
81
- ? { termNodeId: labeledByTermId, fieldName: options.labeledByField }
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
- pageIndex: options.pageIndex ?? 0,
84
- pageSize: options.pageSize,
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
- ...result,
88
- items: result.items.map((item) => createDocPayloadDrop(renderingContext, item, {
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 createUseImageLiquidTag() {
18
- return createAssignToVarLiquidTagWrapper((renderingContext, parameters, { variableName }) => {
17
+ export function createDeprecatedUseImageLiquidTag() {
18
+ return createDeprecatedAssignLiquidTag((renderingContext, { namedParameters, variableName }) => {
19
19
  const { siteContext } = renderingContext;
20
- const options = validateParameters(siteContext, parameters, { variableName });
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
- export function toTpSourceImageOrUndefParameter(siteContext, image, { warnPrefix }) {
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,2 @@
1
+ import type { LiquidSetHandler } from "../helpers/set-liquid-tag.js";
2
+ export declare function createDocLiquidSetHandler(): LiquidSetHandler;
@@ -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":"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"}
@@ -0,0 +1,2 @@
1
+ import type { LiquidSetHandler } from "../helpers/set-liquid-tag.js";
2
+ export declare function createDocsLiquidSetHandler(): LiquidSetHandler;
@@ -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,2 @@
1
+ import type { LiquidSetHandler } from "../helpers/set-liquid-tag.js";
2
+ export declare function createImageLiquidSetHandler(): LiquidSetHandler;
@@ -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":"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"}
@@ -0,0 +1,2 @@
1
+ import type { LiquidSetHandler } from "../helpers/set-liquid-tag.js";
2
+ export declare function createPaginatedDocsLiquidSetHandler(): LiquidSetHandler;
@@ -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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"}