@paroicms/server 1.104.5 → 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/dist/admin-backend/document/load-documents.queries.js +19 -19
- package/dist/admin-backend/document/save-documents.queries.js +11 -11
- 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 +4 -6
- package/dist/rendered-site/helpers/liquid-tag-helpers.js +14 -23
- package/dist/rendered-site/helpers/liquid-tag-helpers.js.map +1 -1
- 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.js +4 -2
- package/dist/rendered-site/liquidjs-tags/deprecated-get-doc-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/deprecated-get-docs-tag.js +40 -28
- package/dist/rendered-site/liquidjs-tags/deprecated-get-docs-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.d.ts +11 -5
- package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.js +44 -27
- package/dist/rendered-site/liquidjs-tags/deprecated-get-paginated-docs-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.d.ts +0 -4
- package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.js +4 -3
- package/dist/rendered-site/liquidjs-tags/deprecated-use-image-tag.js.map +1 -1
- 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 +16 -4
- 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 +18 -0
- 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/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paroicms/server",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.105.0",
|
|
4
4
|
"description": "The ParoiCMS server",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"cms",
|
|
@@ -38,16 +38,16 @@
|
|
|
38
38
|
"dependencies": {
|
|
39
39
|
"@apollo/server": "~4.12.2",
|
|
40
40
|
"@as-integrations/express5": "~1.1.0",
|
|
41
|
-
"@paroicms/admin-ui": "1.
|
|
42
|
-
"@paroicms/internal-anywhere-lib": "1.
|
|
43
|
-
"@paroicms/internal-server-lib": "1.
|
|
44
|
-
"@paroicms/playground_demo1": "0.
|
|
45
|
-
"@paroicms/public-anywhere-lib": "0.
|
|
46
|
-
"@paroicms/public-server-lib": "0.
|
|
47
|
-
"@paroicms/script-lib": "0.
|
|
48
|
-
"@paroicms/server-database-media-storage": "1.
|
|
49
|
-
"@paroicms/server-image-cache-engine": "1.
|
|
50
|
-
"@paroicms/server-text-cache-system": "1.
|
|
41
|
+
"@paroicms/admin-ui": "1.82.0",
|
|
42
|
+
"@paroicms/internal-anywhere-lib": "1.35.0",
|
|
43
|
+
"@paroicms/internal-server-lib": "1.21.0",
|
|
44
|
+
"@paroicms/playground_demo1": "0.62.0",
|
|
45
|
+
"@paroicms/public-anywhere-lib": "0.36.0",
|
|
46
|
+
"@paroicms/public-server-lib": "0.46.0",
|
|
47
|
+
"@paroicms/script-lib": "0.3.0",
|
|
48
|
+
"@paroicms/server-database-media-storage": "1.23.0",
|
|
49
|
+
"@paroicms/server-image-cache-engine": "1.28.0",
|
|
50
|
+
"@paroicms/server-text-cache-system": "1.20.0",
|
|
51
51
|
"archiver": "~7.0.1",
|
|
52
52
|
"arktype": "~2.1.20",
|
|
53
53
|
"bcrypt": "~6.0.0",
|
|
@@ -90,7 +90,7 @@
|
|
|
90
90
|
"pino-pretty": "~13.0.0",
|
|
91
91
|
"rimraf": "~6.0.1",
|
|
92
92
|
"source-map-support": "~0.5.21",
|
|
93
|
-
"typescript": "~5.
|
|
93
|
+
"typescript": "~5.9.2",
|
|
94
94
|
"vitest": "~3.2.3"
|
|
95
95
|
},
|
|
96
96
|
"peerDependencies": {
|
package/schema.graphql
CHANGED
|
@@ -14,9 +14,9 @@ type Query {
|
|
|
14
14
|
searchDocuments(
|
|
15
15
|
language: String!
|
|
16
16
|
limit: Int!
|
|
17
|
-
|
|
17
|
+
sorting: [SortRule!]
|
|
18
18
|
queryString: String!
|
|
19
|
-
|
|
19
|
+
offset: Int!
|
|
20
20
|
): PagedLNodeWraps!
|
|
21
21
|
|
|
22
22
|
# Parts
|
|
@@ -26,9 +26,9 @@ type Query {
|
|
|
26
26
|
# Nodes
|
|
27
27
|
pagedLNodeWraps(
|
|
28
28
|
limit: Int!
|
|
29
|
-
|
|
29
|
+
sorting: [SortRule!]
|
|
30
30
|
parentLNodeId: ID!
|
|
31
|
-
|
|
31
|
+
offset: Int!
|
|
32
32
|
): PagedLNodeWraps!
|
|
33
33
|
lNodeWrap(lNodeId: ID!): LNodeWrap!
|
|
34
34
|
lNodeWraps(parentLNodeId: ID!): [LNodeWrap!]!
|
|
@@ -168,7 +168,7 @@ type ImageVariant {
|
|
|
168
168
|
|
|
169
169
|
type PagedLNodeWraps {
|
|
170
170
|
items: [LNodeWrap!]!
|
|
171
|
-
|
|
171
|
+
offset: Int!
|
|
172
172
|
total: Int!
|
|
173
173
|
}
|
|
174
174
|
|
|
@@ -377,7 +377,7 @@ input CreateNodeWithDocumentValues {
|
|
|
377
377
|
typeName: String!
|
|
378
378
|
}
|
|
379
379
|
|
|
380
|
-
input
|
|
380
|
+
input SortRule {
|
|
381
381
|
direction: String!
|
|
382
382
|
fieldName: String!
|
|
383
383
|
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
export function parseSorting(val) {
|
|
2
|
-
if (val === "manual")
|
|
3
|
-
return "manual";
|
|
4
|
-
const regularChildrenSorting = [];
|
|
5
|
-
const arr = typeof val === "string" ? val.split(/\s*,\s*/) : val;
|
|
6
|
-
for (const item of arr) {
|
|
7
|
-
const [fieldName, direction] = item.split(/\s+/);
|
|
8
|
-
if ((direction !== "asc" && direction !== "desc") || !/^[a-zA-Z]+$/.test(fieldName)) {
|
|
9
|
-
throw new Error(`invalid child ordering '${item}'`);
|
|
10
|
-
}
|
|
11
|
-
regularChildrenSorting.push([fieldName, direction]);
|
|
12
|
-
}
|
|
13
|
-
return regularChildrenSorting;
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=site-schema-public-helpers.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"site-schema-public-helpers.js","sourceRoot":"","sources":["../../../src/connector/site-schema/site-schema-public-helpers.ts"],"names":[],"mappings":"AAGA,MAAM,UAAU,YAAY,CAAC,GAAc;IACzC,IAAI,GAAG,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAEtC,MAAM,sBAAsB,GAA+B,EAAE,CAAC;IAC9D,MAAM,GAAG,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;IACjE,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;QACvB,MAAM,CAAC,SAAS,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;YACpF,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,GAAG,CAAC,CAAC;QACtD,CAAC;QACD,sBAAsB,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IACtD,CAAC;IAED,OAAO,sBAAsB,CAAC;AAChC,CAAC"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { ParsedLNodeId } from "@paroicms/public-anywhere-lib";
|
|
2
|
-
import type { LabeledBy, PaHttpContext, PartialsParamsInput } from "@paroicms/public-server-lib";
|
|
3
|
-
import type { RenderingContext } from "../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
4
|
-
export declare function renderChildPartials(renderingContext: RenderingContext, httpContext: PaHttpContext, options: {
|
|
5
|
-
params: PartialsParamsInput;
|
|
6
|
-
parentDocumentId: ParsedLNodeId;
|
|
7
|
-
labeledBy?: LabeledBy;
|
|
8
|
-
}): Promise<void>;
|
|
9
|
-
export declare function renderSearchPartials(renderingContext: RenderingContext, httpContext: PaHttpContext, options: {
|
|
10
|
-
language: string;
|
|
11
|
-
words: string[];
|
|
12
|
-
limit: number;
|
|
13
|
-
start: number;
|
|
14
|
-
templateName: string;
|
|
15
|
-
}): Promise<void>;
|
|
@@ -1,114 +0,0 @@
|
|
|
1
|
-
import { type } from "arktype";
|
|
2
|
-
import { serveTextFromCacheOr } from "../common/serve-text-or.js";
|
|
3
|
-
import { makeCacheDependencyKey } from "../common/text-cache.js";
|
|
4
|
-
import { trackerReportToMessage } from "../common/tracker-report.js";
|
|
5
|
-
import { loadRoutingClusterFromNode } from "../connector/db-init/load-routing-cluster.queries.js";
|
|
6
|
-
import { renderLiquidTemplate } from "../liquidjs-tools/liquidjs-rendering/render-liquidjs.js";
|
|
7
|
-
import { toTpClusterPayload } from "../rendering-payload/cluster-payloads.js";
|
|
8
|
-
import { createDocPayloadDrop } from "../rendering-payload/create-doc-drop.js";
|
|
9
|
-
import { getListOfDocValues } from "../rendering-payload/doc-values.queries.js";
|
|
10
|
-
import { makeSitePayload } from "../rendering-payload/site-payload.js";
|
|
11
|
-
import { searchText } from "./search-text/search-text.queries.js";
|
|
12
|
-
const NumberAT = type("number");
|
|
13
|
-
export async function renderChildPartials(renderingContext, httpContext, options) {
|
|
14
|
-
const { params, parentDocumentId, labeledBy } = options;
|
|
15
|
-
const { siteContext, tracker, cacheKey } = renderingContext;
|
|
16
|
-
const serveOr = serveTextFromCacheOr(siteContext, httpContext, tracker, {
|
|
17
|
-
cacheKey,
|
|
18
|
-
contentType: "text/plain; charset=utf-8",
|
|
19
|
-
});
|
|
20
|
-
if (!(await serveOr.serveFromCache())) {
|
|
21
|
-
renderingContext.addDependencyKey(makeCacheDependencyKey({ documentId: parentDocumentId, relation: "children" }));
|
|
22
|
-
const { html, dependencyKeys } = await renderChildDocuments(renderingContext, {
|
|
23
|
-
parentId: parentDocumentId,
|
|
24
|
-
limit: params.limit,
|
|
25
|
-
offset: params.offset,
|
|
26
|
-
templateName: params.templateName,
|
|
27
|
-
labeledBy,
|
|
28
|
-
});
|
|
29
|
-
await serveOr.putInCacheAndServe(html, dependencyKeys);
|
|
30
|
-
}
|
|
31
|
-
siteContext.logger.stats(trackerReportToMessage(tracker.toReport(), `serve ${httpContext.req.relativeUrl}`));
|
|
32
|
-
}
|
|
33
|
-
export async function renderSearchPartials(renderingContext, httpContext, options) {
|
|
34
|
-
const { language, words, limit, start, templateName } = options;
|
|
35
|
-
const { siteContext, tracker, cacheKey } = renderingContext;
|
|
36
|
-
const serveOr = serveTextFromCacheOr(siteContext, httpContext, tracker, {
|
|
37
|
-
cacheKey,
|
|
38
|
-
contentType: "application/json",
|
|
39
|
-
});
|
|
40
|
-
if (!(await serveOr.serveFromCache())) {
|
|
41
|
-
renderingContext.addDependencyKey(makeCacheDependencyKey({ global: "all" }));
|
|
42
|
-
const { result, dependencyKeys } = await searchAndRender(renderingContext, {
|
|
43
|
-
language,
|
|
44
|
-
words,
|
|
45
|
-
limit: NumberAT.assert(limit),
|
|
46
|
-
start: NumberAT.assert(start),
|
|
47
|
-
templateName,
|
|
48
|
-
});
|
|
49
|
-
const content = JSON.stringify(result);
|
|
50
|
-
await serveOr.putInCacheAndServe(content, dependencyKeys);
|
|
51
|
-
await renderingContext.close();
|
|
52
|
-
}
|
|
53
|
-
siteContext.logger.stats(trackerReportToMessage(tracker.toReport(), `serve ${httpContext.req.relativeUrl}`));
|
|
54
|
-
}
|
|
55
|
-
async function renderChildDocuments(renderingContext, options) {
|
|
56
|
-
const { parentId: parentDocumentId, templateName } = options;
|
|
57
|
-
const docs = await getListOfDocValues(renderingContext, {
|
|
58
|
-
...options,
|
|
59
|
-
documentKind: "regular",
|
|
60
|
-
});
|
|
61
|
-
const result = [];
|
|
62
|
-
for (const row of docs) {
|
|
63
|
-
const cluster = await getClusterForDocument(renderingContext, row, parentDocumentId.language);
|
|
64
|
-
const payload = {
|
|
65
|
-
site: makeSitePayload(renderingContext, parentDocumentId.language),
|
|
66
|
-
cluster,
|
|
67
|
-
doc: createDocPayloadDrop(renderingContext, row),
|
|
68
|
-
};
|
|
69
|
-
const html = await renderLiquidTemplate(renderingContext, {
|
|
70
|
-
payload,
|
|
71
|
-
templateNames: [`partials/${templateName}.public.liquid`],
|
|
72
|
-
});
|
|
73
|
-
result.push(html);
|
|
74
|
-
}
|
|
75
|
-
return {
|
|
76
|
-
html: result.join(""),
|
|
77
|
-
dependencyKeys: renderingContext.getDependencyKeys(),
|
|
78
|
-
};
|
|
79
|
-
}
|
|
80
|
-
async function searchAndRender(renderingContext, options) {
|
|
81
|
-
const { siteContext } = renderingContext;
|
|
82
|
-
const { language, templateName } = options;
|
|
83
|
-
const { rows, total } = await searchText(siteContext, { ...options, onlyPublished: true });
|
|
84
|
-
const htmlList = [];
|
|
85
|
-
for (const row of rows) {
|
|
86
|
-
const cluster = await getClusterForDocument(renderingContext, row, language);
|
|
87
|
-
const payload = {
|
|
88
|
-
site: makeSitePayload(renderingContext, language),
|
|
89
|
-
cluster,
|
|
90
|
-
doc: createDocPayloadDrop(renderingContext, row),
|
|
91
|
-
};
|
|
92
|
-
const tName = templateName.endsWith(".public") ? templateName : `${templateName}.public`;
|
|
93
|
-
const html = await renderLiquidTemplate(renderingContext, {
|
|
94
|
-
payload,
|
|
95
|
-
templateNames: [`partials/${tName}.liquid`],
|
|
96
|
-
});
|
|
97
|
-
htmlList.push(html);
|
|
98
|
-
}
|
|
99
|
-
return {
|
|
100
|
-
result: {
|
|
101
|
-
html: htmlList.join(""),
|
|
102
|
-
total,
|
|
103
|
-
},
|
|
104
|
-
dependencyKeys: renderingContext.getDependencyKeys(),
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
async function getClusterForDocument(renderingContext, document, language) {
|
|
108
|
-
const cluster = await loadRoutingClusterFromNode(renderingContext.siteContext, {
|
|
109
|
-
nodeId: document.nodeId,
|
|
110
|
-
typeName: document.type,
|
|
111
|
-
});
|
|
112
|
-
return toTpClusterPayload(renderingContext, language, cluster);
|
|
113
|
-
}
|
|
114
|
-
//# sourceMappingURL=public-api-rendering.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"public-api-rendering.js","sourceRoot":"","sources":["../../src/public-api/public-api-rendering.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import type { OrderByItem } from "../../admin-backend/lnode/lnode.queries.js";
|
|
2
|
-
import type { TpDocValues } from "../../rendering-payload/rendering-payload.types.js";
|
|
3
|
-
import type { SiteContext } from "../../site-context/site-context.types.js";
|
|
4
|
-
export interface SearchTextOptions {
|
|
5
|
-
language: string;
|
|
6
|
-
words: string[];
|
|
7
|
-
limit: number;
|
|
8
|
-
start: number;
|
|
9
|
-
onlyPublished?: boolean;
|
|
10
|
-
orderBy?: OrderByItem[];
|
|
11
|
-
}
|
|
12
|
-
export declare function searchText(siteContext: SiteContext, options: SearchTextOptions): Promise<{
|
|
13
|
-
rows: TpDocValues[];
|
|
14
|
-
total: number;
|
|
15
|
-
}>;
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import { type } from "arktype";
|
|
2
|
-
import { dbAnyLanguage } from "../../context.js";
|
|
3
|
-
import { formatDocValues, querySelectDocValues, } from "../../rendering-payload/doc-values.queries.js";
|
|
4
|
-
const SearchTextCountAT = type({
|
|
5
|
-
cnt: "number",
|
|
6
|
-
"+": "reject",
|
|
7
|
-
});
|
|
8
|
-
export async function searchText(siteContext, options) {
|
|
9
|
-
const { words, language, start, limit, onlyPublished, orderBy = [{ fieldName: "publishDate", direction: "desc" }], } = options;
|
|
10
|
-
const query = createBaseSearchTextQueryBuilder(siteContext, { language, words, onlyPublished })
|
|
11
|
-
.distinct()
|
|
12
|
-
.limit(limit)
|
|
13
|
-
.offset(start);
|
|
14
|
-
querySelectDocValues(query);
|
|
15
|
-
if (orderBy && orderBy.length > 0) {
|
|
16
|
-
for (const i of orderBy) {
|
|
17
|
-
if (i.fieldName === "title") {
|
|
18
|
-
query.orderBy("d.title", i.direction);
|
|
19
|
-
}
|
|
20
|
-
else if (i.fieldName === "publishDate") {
|
|
21
|
-
query.orderBy("l.publishDate", i.direction);
|
|
22
|
-
}
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
const rows = await query;
|
|
26
|
-
let total;
|
|
27
|
-
if (rows.length < limit) {
|
|
28
|
-
total = start + rows.length;
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
const countQuery = createBaseSearchTextQueryBuilder(siteContext, {
|
|
32
|
-
language,
|
|
33
|
-
words,
|
|
34
|
-
onlyPublished,
|
|
35
|
-
}).countDistinct("l.id as cnt");
|
|
36
|
-
const countResult = await countQuery.first();
|
|
37
|
-
total = countResult ? SearchTextCountAT.assert(countResult).cnt : 0;
|
|
38
|
-
}
|
|
39
|
-
return {
|
|
40
|
-
rows: rows.map((row) => formatDocValues(row, { language })),
|
|
41
|
-
total,
|
|
42
|
-
};
|
|
43
|
-
}
|
|
44
|
-
function createBaseSearchTextQueryBuilder(siteContext, { language, words, onlyPublished, }) {
|
|
45
|
-
const { cn } = siteContext;
|
|
46
|
-
const query = cn("PaDocument as d")
|
|
47
|
-
.innerJoin("PaLNode as s", {
|
|
48
|
-
"s.nodeId": "d.nodeId",
|
|
49
|
-
"s.language": "d.language",
|
|
50
|
-
})
|
|
51
|
-
.innerJoin("PaNode as l", "s.nodeId", "l.id")
|
|
52
|
-
.leftJoin("PaFieldVarchar as fv", function () {
|
|
53
|
-
this.on("fv.nodeId", "=", "s.nodeId").andOn(function () {
|
|
54
|
-
this.on("fv.language", "=", "s.language").orOn("fv.language", "=", cn.raw("?", [dbAnyLanguage]));
|
|
55
|
-
});
|
|
56
|
-
})
|
|
57
|
-
.leftJoin("PaFieldText as ft", function () {
|
|
58
|
-
this.on("ft.nodeId", "=", "d.nodeId").andOn(function () {
|
|
59
|
-
this.on("ft.language", "=", "d.language").orOn("ft.language", "=", cn.raw("?", [dbAnyLanguage]));
|
|
60
|
-
});
|
|
61
|
-
})
|
|
62
|
-
.where("s.language", language);
|
|
63
|
-
if (onlyPublished) {
|
|
64
|
-
query.where("s.ready", 1).whereRaw("l.publishDate <= current_timestamp");
|
|
65
|
-
}
|
|
66
|
-
for (let index = 0; index < words.length; index++) {
|
|
67
|
-
const wordPattern = `%${words[index]}%`;
|
|
68
|
-
query.andWhere(function () {
|
|
69
|
-
this.where("d.title", "like", wordPattern)
|
|
70
|
-
.orWhere("ft.val", "like", wordPattern)
|
|
71
|
-
.orWhere("fv.val", "like", wordPattern)
|
|
72
|
-
.orWhereRaw(`exists (
|
|
73
|
-
select 1
|
|
74
|
-
from PaNode l2
|
|
75
|
-
inner join PaPartNode p2 on p2.nodeId = l2.id
|
|
76
|
-
inner join PaLNode s2 on s2.nodeId = l2.id and s2.language = ?
|
|
77
|
-
left join PaFieldVarchar fv2 on fv2.nodeId = s2.nodeId and (fv2.language = s2.language or fv2.language = ?)
|
|
78
|
-
left join PaFieldText ft2 on ft2.nodeId = s2.nodeId and (ft2.language = s2.language or ft2.language = ?)
|
|
79
|
-
where p2.documentNodeId = l.id ${onlyPublished ? "and s2.ready = 1 and l2.publishDate <= current_timestamp" : ""} and (fv2.val like ? or ft2.val like ?)
|
|
80
|
-
)`, [language, dbAnyLanguage, dbAnyLanguage, wordPattern, wordPattern]);
|
|
81
|
-
});
|
|
82
|
-
}
|
|
83
|
-
return query;
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=search-text.queries.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"search-text.queries.js","sourceRoot":"","sources":["../../../src/public-api/search-text/search-text.queries.ts"],"names":[],"mappings":"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"}
|