@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
|
@@ -48,10 +48,10 @@ const TermDocumentRowAT = type({
|
|
|
48
48
|
title: data.title ?? undefined,
|
|
49
49
|
}));
|
|
50
50
|
export async function findOneTermDocument({ cn }, { language, nodeId }) {
|
|
51
|
-
const rows = await cn("PaNode as
|
|
51
|
+
const rows = await cn("PaNode as n")
|
|
52
52
|
.select("d.title", "d.language")
|
|
53
|
-
.leftJoin("PaDocument as d", "d.nodeId", "
|
|
54
|
-
.where("
|
|
53
|
+
.leftJoin("PaDocument as d", "d.nodeId", "n.id")
|
|
54
|
+
.where("n.id", nodeId);
|
|
55
55
|
const candidates = rows.map((row) => TermDocumentRowAT.assert(row));
|
|
56
56
|
let found = candidates.find((row) => row.language === language);
|
|
57
57
|
if (!found) {
|
|
@@ -67,14 +67,14 @@ const ParentLNodeRowAT = type({
|
|
|
67
67
|
}));
|
|
68
68
|
export async function getParentLNodeIdOf(siteContext, { language, nodeId }) {
|
|
69
69
|
const row = await siteContext
|
|
70
|
-
.cn("PaNode as
|
|
71
|
-
.select("
|
|
72
|
-
.innerJoin("PaLNode as
|
|
73
|
-
.innerJoin("PaNode as
|
|
74
|
-
.innerJoin("PaLNode as
|
|
75
|
-
.where("
|
|
76
|
-
.andWhere("
|
|
77
|
-
.andWhere("
|
|
70
|
+
.cn("PaNode as n")
|
|
71
|
+
.select("n2.id as parentId")
|
|
72
|
+
.innerJoin("PaLNode as l", "l.nodeId", "n.id")
|
|
73
|
+
.innerJoin("PaNode as n2", "n2.id", "n.parentId")
|
|
74
|
+
.innerJoin("PaLNode as l2", "l2.nodeId", "n2.id")
|
|
75
|
+
.where("n.id", nodeId)
|
|
76
|
+
.andWhere("l.language", language)
|
|
77
|
+
.andWhere("l2.language", language)
|
|
78
78
|
.first();
|
|
79
79
|
if (!row)
|
|
80
80
|
return undefined;
|
|
@@ -91,9 +91,9 @@ const ParentNodeRowAT = type({
|
|
|
91
91
|
}));
|
|
92
92
|
export async function getParentNodeIdOf(siteContext, nodeId) {
|
|
93
93
|
const row = await siteContext
|
|
94
|
-
.cn("PaNode as
|
|
95
|
-
.select("
|
|
96
|
-
.where("
|
|
94
|
+
.cn("PaNode as n")
|
|
95
|
+
.select("n.parentId as id")
|
|
96
|
+
.where("n.id", nodeId)
|
|
97
97
|
.first();
|
|
98
98
|
if (!row)
|
|
99
99
|
throw new Error(`cannot find parent node of '${nodeId}'`);
|
|
@@ -110,12 +110,12 @@ const ParentDocumentRowAT = type({
|
|
|
110
110
|
export async function getParentDocumentIdsOf(siteContext, options) {
|
|
111
111
|
const languages = options.languages ?? siteContext.siteSchema.languages;
|
|
112
112
|
const rows = await siteContext
|
|
113
|
-
.cn("PaNode as
|
|
114
|
-
.select("
|
|
115
|
-
.innerJoin("PaDocument as d", "d.nodeId", "
|
|
116
|
-
.where("
|
|
113
|
+
.cn("PaNode as n")
|
|
114
|
+
.select("n.parentId", "d.language")
|
|
115
|
+
.innerJoin("PaDocument as d", "d.nodeId", "n.id")
|
|
116
|
+
.where("n.id", options.nodeId)
|
|
117
117
|
.whereIn("d.language", languages)
|
|
118
|
-
.whereNotNull("
|
|
118
|
+
.whereNotNull("n.parentId");
|
|
119
119
|
return rows.map((row) => {
|
|
120
120
|
const validated = ParentDocumentRowAT.assert(row);
|
|
121
121
|
return {
|
|
@@ -133,11 +133,11 @@ export async function deleteNodeAndDocuments(siteContext, nodeId) {
|
|
|
133
133
|
const { cn, mediaStorage } = siteContext;
|
|
134
134
|
const parentDocumentIds = await getParentDocumentIdsOf(siteContext, { nodeId });
|
|
135
135
|
const { partNodeIds } = await cn.transaction(async (tx) => {
|
|
136
|
-
const nodeRows = await tx("PaNode as
|
|
137
|
-
.select("
|
|
138
|
-
.whereRaw("
|
|
136
|
+
const nodeRows = await tx("PaNode as n")
|
|
137
|
+
.select("n.id as id")
|
|
138
|
+
.whereRaw("n.parentId = ?", [nodeId])
|
|
139
139
|
.whereNotExists(function () {
|
|
140
|
-
this.select(1).from("PaDocument as d").where("d.nodeId", "
|
|
140
|
+
this.select(1).from("PaDocument as d").where("d.nodeId", "n.id");
|
|
141
141
|
});
|
|
142
142
|
const partNodeIds = nodeRows.map((r) => DeleteDocumentNodeRowAT.assert(r).id);
|
|
143
143
|
await fullDeleteParts(partNodeIds, tx);
|
|
@@ -165,19 +165,19 @@ export async function deleteDocument(siteContext, documentId) {
|
|
|
165
165
|
const { cn, mediaStorage } = siteContext;
|
|
166
166
|
const { nodeId, language } = documentId;
|
|
167
167
|
const parentId = await getParentLNodeIdOf(siteContext, documentId);
|
|
168
|
-
const countRow = await cn("PaLNode as
|
|
169
|
-
.count("
|
|
170
|
-
.where("
|
|
168
|
+
const countRow = await cn("PaLNode as l")
|
|
169
|
+
.count("l.nodeId as cnt")
|
|
170
|
+
.where("l.nodeId", nodeId)
|
|
171
171
|
.andWhereNot("language", documentId.language)
|
|
172
172
|
.first();
|
|
173
173
|
const count = countRow ? DeleteDocumentCountRowAT.assert(countRow).cnt : 0;
|
|
174
174
|
const shouldDeleteNode = count === 0;
|
|
175
175
|
const { partNodeIds } = await cn.transaction(async (tx) => {
|
|
176
|
-
const nodeRows = await tx("PaNode as
|
|
177
|
-
.select("
|
|
178
|
-
.whereRaw("
|
|
176
|
+
const nodeRows = await tx("PaNode as n")
|
|
177
|
+
.select("n.id as id")
|
|
178
|
+
.whereRaw("n.parentId = ?", [nodeId])
|
|
179
179
|
.whereNotExists(function () {
|
|
180
|
-
this.select(1).from("PaDocument as d").where("d.nodeId", "
|
|
180
|
+
this.select(1).from("PaDocument as d").where("d.nodeId", "n.id");
|
|
181
181
|
});
|
|
182
182
|
const partNodeIds = nodeRows.map((r) => DeleteDocumentNodeRowAT.assert(r).id);
|
|
183
183
|
await deleteParts({
|
|
@@ -83,13 +83,13 @@ async function getFieldValuesOfList(siteContext, options) {
|
|
|
83
83
|
const { parentLNodeId, listType, fieldNames, preprocess, publishedOnly } = options;
|
|
84
84
|
const { nodeId: parentNodeId, language } = parseLNodeId(parentLNodeId);
|
|
85
85
|
const rows = await siteContext
|
|
86
|
-
.cn("PaNode as
|
|
87
|
-
.select("
|
|
88
|
-
.innerJoin("PaPartNode as p", "p.nodeId", "
|
|
89
|
-
.innerJoin("PaLNode as
|
|
90
|
-
.where("
|
|
86
|
+
.cn("PaNode as n")
|
|
87
|
+
.select("n.id as nodeId")
|
|
88
|
+
.innerJoin("PaPartNode as p", "p.nodeId", "n.id")
|
|
89
|
+
.innerJoin("PaLNode as l", "l.nodeId", "n.id")
|
|
90
|
+
.where("n.parentId", parentNodeId)
|
|
91
91
|
.where("p.listName", listType.listName)
|
|
92
|
-
.where("
|
|
92
|
+
.where("l.language", language);
|
|
93
93
|
const partNodeIds = rows.map((row) => FieldValuesOfListRowAT.assert(row).nodeId);
|
|
94
94
|
const result = new Map();
|
|
95
95
|
for (const nodeId of partNodeIds) {
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type {
|
|
3
|
-
export declare function formatGqlOrderBy(gqlOrderBy:
|
|
1
|
+
import type { ScSortRule } from "@paroicms/public-anywhere-lib";
|
|
2
|
+
import type { GqlSortRule } from "../../graphql/generated-graphql-types.d.ts";
|
|
3
|
+
export declare function formatGqlOrderBy(gqlOrderBy: GqlSortRule[]): ScSortRule[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lnode-wrap.formatters.js","sourceRoot":"","sources":["../../../src/admin-backend/lnode/lnode-wrap.formatters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,MAAM,UAAU,gBAAgB,CAAC,
|
|
1
|
+
{"version":3,"file":"lnode-wrap.formatters.js","sourceRoot":"","sources":["../../../src/admin-backend/lnode/lnode-wrap.formatters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,MAAM,UAAU,gBAAgB,CAAC,UAAyB;IACxD,OAAO,CACL,UAAU,CAAC,GAAG,CAAa,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACpC,SAAS,EAAE,IAAI,CAAC,SAAS;QACzB,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,SAAS,CAAC;KAC3C,CAAC,CAAC,IAAI,EAAE,CACV,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,SAAiB;IACxC,IAAI,SAAS,KAAK,KAAK,IAAI,SAAS,KAAK,MAAM,EAAE,CAAC;QAChD,MAAM,IAAI,QAAQ,CAAC,qBAAqB,SAAS,EAAE,EAAE,GAAG,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -17,7 +17,7 @@ export const lNodeWrapResolvers = {
|
|
|
17
17
|
const parsedLNodeId = parseLNodeId(lNodeId);
|
|
18
18
|
return await findOneLNode(siteContext, parsedLNodeId);
|
|
19
19
|
},
|
|
20
|
-
pagedLNodeWraps: async (_parent, { parentLNodeId,
|
|
20
|
+
pagedLNodeWraps: async (_parent, { parentLNodeId, offset, limit, sorting }, { siteContext, httpContext }) => {
|
|
21
21
|
authGuard(httpContext);
|
|
22
22
|
siteReadyGuard(siteContext);
|
|
23
23
|
const parentId = parseLNodeId(parentLNodeId);
|
|
@@ -25,9 +25,9 @@ export const lNodeWrapResolvers = {
|
|
|
25
25
|
parentId,
|
|
26
26
|
pagination: {
|
|
27
27
|
limit,
|
|
28
|
-
|
|
28
|
+
offset,
|
|
29
29
|
},
|
|
30
|
-
|
|
30
|
+
sorting: sorting ? formatGqlOrderBy(sorting) : undefined,
|
|
31
31
|
});
|
|
32
32
|
if (result.total === undefined) {
|
|
33
33
|
throw new Error("property total not found");
|
|
@@ -35,18 +35,18 @@ export const lNodeWrapResolvers = {
|
|
|
35
35
|
return {
|
|
36
36
|
items: result.lNodeWraps,
|
|
37
37
|
total: result.total,
|
|
38
|
-
|
|
38
|
+
offset,
|
|
39
39
|
};
|
|
40
40
|
},
|
|
41
|
-
searchDocuments: async (_parent, { language, queryString,
|
|
41
|
+
searchDocuments: async (_parent, { language, queryString, offset, limit, sorting }, { siteContext, httpContext }) => {
|
|
42
42
|
authGuard(httpContext);
|
|
43
43
|
siteReadyGuard(siteContext);
|
|
44
44
|
return await searchDocuments(siteContext, {
|
|
45
45
|
language,
|
|
46
46
|
queryString,
|
|
47
|
-
|
|
47
|
+
offset,
|
|
48
48
|
limit,
|
|
49
|
-
|
|
49
|
+
sorting: sorting ? formatGqlOrderBy(sorting) : undefined,
|
|
50
50
|
});
|
|
51
51
|
},
|
|
52
52
|
lNodeWraps: async (_parent, { parentLNodeId }, { siteContext, httpContext }) => {
|
|
@@ -74,17 +74,15 @@ export const lNodeWrapResolvers = {
|
|
|
74
74
|
translatedInto: async ({ nodeId }, _args, { siteContext }) => {
|
|
75
75
|
siteReadyGuard(siteContext);
|
|
76
76
|
const lNodes = await siteContext
|
|
77
|
-
.cn("PaLNode as
|
|
78
|
-
.select("
|
|
79
|
-
.where("
|
|
77
|
+
.cn("PaLNode as l")
|
|
78
|
+
.select("l.language")
|
|
79
|
+
.where("l.nodeId", nodeId);
|
|
80
80
|
return lNodes.map((item) => LNodeLanguageRowAT.assert(item).language);
|
|
81
81
|
},
|
|
82
82
|
translations: async ({ nodeId }, _args, { siteContext }) => {
|
|
83
83
|
siteReadyGuard(siteContext);
|
|
84
84
|
const { cn } = siteContext;
|
|
85
|
-
const rows = await cn("PaLNode as
|
|
86
|
-
.select("lNode.language")
|
|
87
|
-
.where("lNode.nodeId", nodeId);
|
|
85
|
+
const rows = await cn("PaLNode as l").select("l.language").where("l.nodeId", nodeId);
|
|
88
86
|
const translations = rows.map((row) => {
|
|
89
87
|
const language = LNodeLanguageRowAT.assert(row).language;
|
|
90
88
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lnode-wrap.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/lnode/lnode-wrap.resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAuB,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,KAAK,EAAE;QACL,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YACtE,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC;QAED,eAAe,EAAE,KAAK,EACpB,OAAO,EACP,EAAE,aAAa,EAAE,
|
|
1
|
+
{"version":3,"file":"lnode-wrap.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/lnode/lnode-wrap.resolver.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,+BAA+B,CAAC;AAEhE,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC5E,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAuB,MAAM,gCAAgC,CAAC;AACrF,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,aAAa,GAEd,MAAM,oBAAoB,CAAC;AAE5B,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,kBAAkB,GAAiC;IAC9D,KAAK,EAAE;QACL,SAAS,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YACtE,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,aAAa,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YAC5C,OAAO,MAAM,YAAY,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;QACxD,CAAC;QAED,eAAe,EAAE,KAAK,EACpB,OAAO,EACP,EAAE,aAAa,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EACzC,EAAE,WAAW,EAAE,WAAW,EAAE,EAC5B,EAAE;YACF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YAC7C,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC9C,QAAQ;gBACR,UAAU,EAAE;oBACV,KAAK;oBACL,MAAM;iBACP;gBACD,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;gBAC/B,MAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;YAC9C,CAAC;YACD,OAAO;gBACL,KAAK,EAAE,MAAM,CAAC,UAAU;gBACxB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,MAAM;aACP,CAAC;QACJ,CAAC;QAED,eAAe,EAAE,KAAK,EACpB,OAAO,EACP,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,EACjD,EAAE,WAAW,EAAE,WAAW,EAAE,EAC5B,EAAE;YACF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,OAAO,MAAM,eAAe,CAAC,WAAW,EAAE;gBACxC,QAAQ;gBACR,WAAW;gBACX,MAAM;gBACN,KAAK;gBACL,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS;aACzD,CAAC,CAAC;QACL,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,aAAa,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7E,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,aAAa,CAAC,CAAC;YAC7C,OAAO,CACL,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC/B,QAAQ;aACT,CAAC,CACH,CAAC,UAAU,CAAC;QACf,CAAC;KACF;IAED,QAAQ,EAAE;QACR,aAAa,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YACjF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;YACvC,MAAM,aAAa,CAAC,WAAW,EAAE;gBAC/B,OAAO,EAAE,QAAQ;gBACjB,KAAK;aACN,CAAC,CAAC;YACH,OAAO,IAAI,CAAC;QACd,CAAC;KACF;IAED,SAAS,EAAE;QACT,cAAc,EAAE,KAAK,EAAE,EAAE,MAAM,EAAiB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC1E,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,MAAM,GAAU,MAAM,WAAW;iBACpC,EAAE,CAAC,cAAc,CAAC;iBAClB,MAAM,CAAC,YAAY,CAAC;iBACpB,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAE7B,OAAO,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,kBAAkB,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;QACxE,CAAC;QAED,YAAY,EAAE,KAAK,EAAE,EAAE,MAAM,EAAiB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YACxE,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC;YAE3B,MAAM,IAAI,GAAU,MAAM,EAAE,CAAC,cAAc,CAAC,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,KAAK,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;YAE5F,MAAM,YAAY,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACpC,MAAM,QAAQ,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,QAAQ,CAAC;gBACzD,OAAO;oBACL,QAAQ;oBACR,OAAO,EAAE,aAAa,CAAC;wBACrB,QAAQ;wBACR,MAAM;qBACP,CAAC;iBACH,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,eAAe,EAAE,KAAK,EAAE,EAAE,MAAM,EAAiB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3E,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,OAAO,MAAM,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;QAED,UAAU,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAiB,EAAE,KAAK,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAChF,cAAc,CAAC,WAAW,CAAC,CAAC;YAC5B,MAAM,UAAU,GAAG,MAAM,aAAa,CAAC,WAAW,EAAE,eAAe,EAAE,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,CAAC;YAC7F,OAAO,UAAU,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;gBAC/B,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ;gBAClC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;gBAC9B,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,OAAO,EAAE,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC;gBACvC,KAAK,EAAE,IAAI,CAAC,KAAK;aAClB,CAAC,CAAC,CAAC;QACN,CAAC;KACF;CACF,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Tracker } from "@paroicms/internal-server-lib";
|
|
2
|
+
import type { ScSortRule } from "@paroicms/public-anywhere-lib";
|
|
2
3
|
import { type ParsedLNodeId } from "@paroicms/public-anywhere-lib";
|
|
3
4
|
import type { Knex } from "knex";
|
|
4
5
|
import type { SiteContext } from "../../site-context/site-context.types.js";
|
|
@@ -10,27 +11,23 @@ export interface LNodeWrapSeed {
|
|
|
10
11
|
}
|
|
11
12
|
export interface PagedLNodeWrapsSeed {
|
|
12
13
|
items: LNodeWrapSeed[];
|
|
13
|
-
|
|
14
|
+
offset: number;
|
|
14
15
|
total: number;
|
|
15
16
|
}
|
|
16
|
-
export interface OrderByItem {
|
|
17
|
-
fieldName: string;
|
|
18
|
-
direction: "asc" | "desc";
|
|
19
|
-
}
|
|
20
17
|
export declare function findOneLNode({ cn }: SiteContext, lNodeId: ParsedLNodeId): Promise<LNodeWrapSeed>;
|
|
21
|
-
export declare function getLNodeWraps(siteContext: Pick<SiteContext, "cn" | "siteSchema">, { parentId, pagination,
|
|
18
|
+
export declare function getLNodeWraps(siteContext: Pick<SiteContext, "cn" | "siteSchema">, { parentId, pagination, sorting, }: {
|
|
22
19
|
parentId: ParsedLNodeId;
|
|
23
20
|
pagination?: {
|
|
24
|
-
|
|
21
|
+
offset: number;
|
|
25
22
|
limit: number;
|
|
26
23
|
};
|
|
27
|
-
|
|
24
|
+
sorting?: ScSortRule[];
|
|
28
25
|
}): Promise<{
|
|
29
26
|
total?: number;
|
|
30
27
|
lNodeWraps: LNodeWrapSeed[];
|
|
31
28
|
}>;
|
|
32
29
|
export interface PaginationOptions {
|
|
33
|
-
|
|
30
|
+
offset: number;
|
|
34
31
|
limit: number;
|
|
35
32
|
}
|
|
36
33
|
export declare function setLNodeReady(siteContext: SiteContext, { lNodeId, ready }: {
|
|
@@ -51,8 +48,8 @@ export declare function isOrphanNode(cn: Knex, nodeId: string): Promise<boolean>
|
|
|
51
48
|
export declare function searchDocuments(siteContext: SiteContext, options: {
|
|
52
49
|
language: string;
|
|
53
50
|
queryString: string;
|
|
54
|
-
|
|
51
|
+
offset: number;
|
|
55
52
|
limit: number;
|
|
56
|
-
|
|
53
|
+
sorting?: ScSortRule[];
|
|
57
54
|
}): Promise<PagedLNodeWrapsSeed>;
|
|
58
55
|
export declare function getParentLanguages(siteContext: SiteContext, nodeId: string): Promise<string[]>;
|
|
@@ -4,7 +4,8 @@ import { ApiError, createSimpleTranslator } from "@paroicms/public-server-lib";
|
|
|
4
4
|
import { type } from "arktype";
|
|
5
5
|
import { applyRegularChildrenSortingOnQuery } from "../../common/child-ordering-query.js";
|
|
6
6
|
import { invalidateDocumentInCache, invalidateDocumentRelationCache, } from "../../common/text-cache.js";
|
|
7
|
-
import {
|
|
7
|
+
import { createNoRenderingContext } from "../../liquidjs-tools/liquidjs-rendering/rendering-context.js";
|
|
8
|
+
import { listDocValues } from "../../rendering-payload/doc-list.queries.js";
|
|
8
9
|
import { getParentLNodeIdOf } from "../document/load-documents.queries.js";
|
|
9
10
|
import { getNodeAncestorsForBreadcrumb } from "../node/node-cte.queries.js";
|
|
10
11
|
import { getTypeNameOf } from "../node/node.queries.js";
|
|
@@ -20,10 +21,10 @@ const FindOneLNodeRowAT = type({
|
|
|
20
21
|
ready: Boolean(data.ready),
|
|
21
22
|
}));
|
|
22
23
|
export async function findOneLNode({ cn }, lNodeId) {
|
|
23
|
-
const found = await cn("PaLNode as
|
|
24
|
-
.select(["
|
|
25
|
-
.where("
|
|
26
|
-
.andWhere("
|
|
24
|
+
const found = await cn("PaLNode as l")
|
|
25
|
+
.select(["l.language", "l.nodeId", "l.ready"])
|
|
26
|
+
.where("l.nodeId", lNodeId.nodeId)
|
|
27
|
+
.andWhere("l.language", lNodeId.language)
|
|
27
28
|
.first();
|
|
28
29
|
if (!found) {
|
|
29
30
|
throw new ApiError(`can't find lNode ${lNodeId.language}:${lNodeId.nodeId}`, 404);
|
|
@@ -31,14 +32,14 @@ export async function findOneLNode({ cn }, lNodeId) {
|
|
|
31
32
|
const lNode = FindOneLNodeRowAT.assert(found);
|
|
32
33
|
return lNodeWrapToObjectType(lNode);
|
|
33
34
|
}
|
|
34
|
-
export async function getLNodeWraps(siteContext, { parentId, pagination,
|
|
35
|
+
export async function getLNodeWraps(siteContext, { parentId, pagination, sorting, }) {
|
|
35
36
|
let total;
|
|
36
37
|
let lNodeEntities;
|
|
37
38
|
if (pagination) {
|
|
38
39
|
const childLNodesResult = await getChildLNodesForAllLanguages(siteContext, {
|
|
39
40
|
parentNodeId: parentId.nodeId,
|
|
40
41
|
pagination,
|
|
41
|
-
|
|
42
|
+
sorting,
|
|
42
43
|
});
|
|
43
44
|
lNodeEntities = childLNodesResult.list;
|
|
44
45
|
total = childLNodesResult.total;
|
|
@@ -47,7 +48,7 @@ export async function getLNodeWraps(siteContext, { parentId, pagination, orderBy
|
|
|
47
48
|
lNodeEntities = await getChildLNodesForAllLanguages(siteContext, {
|
|
48
49
|
parentNodeId: parentId.nodeId,
|
|
49
50
|
pagination,
|
|
50
|
-
|
|
51
|
+
sorting,
|
|
51
52
|
});
|
|
52
53
|
}
|
|
53
54
|
const byNodeIdMap = new Map();
|
|
@@ -99,22 +100,22 @@ async function getChildLNodesForAllLanguages(siteContext, options) {
|
|
|
99
100
|
const query = createBaseChildLNodesForAllLanguagesQueryBuilder(siteContext, {
|
|
100
101
|
parentNodeId: options.parentNodeId,
|
|
101
102
|
typeNames: parentDocumentType.regularChildren ?? [],
|
|
102
|
-
}).select(["
|
|
103
|
+
}).select(["l.nodeId", "l.language", "l.ready"]);
|
|
103
104
|
applyRegularChildrenSortingOnQuery(siteContext, {
|
|
104
105
|
query,
|
|
105
106
|
parentDocumentType,
|
|
106
107
|
leftJoinDocument: true,
|
|
107
|
-
|
|
108
|
+
sorting: options.sorting,
|
|
108
109
|
});
|
|
109
110
|
if (options.pagination) {
|
|
110
|
-
query.limit(options.pagination.limit).offset(options.pagination.
|
|
111
|
+
query.limit(options.pagination.limit).offset(options.pagination.offset);
|
|
111
112
|
}
|
|
112
113
|
const rows = await query;
|
|
113
114
|
const formattedRows = rows.map((row) => ChildLNodesRowAT.assert(row));
|
|
114
115
|
if (options.pagination) {
|
|
115
116
|
let total;
|
|
116
117
|
if (rows.length < options.pagination.limit) {
|
|
117
|
-
total = options.pagination.
|
|
118
|
+
total = options.pagination.offset + rows.length;
|
|
118
119
|
}
|
|
119
120
|
else {
|
|
120
121
|
const countQuery = createBaseChildLNodesForAllLanguagesQueryBuilder(siteContext, {
|
|
@@ -133,10 +134,10 @@ async function getChildLNodesForAllLanguages(siteContext, options) {
|
|
|
133
134
|
}
|
|
134
135
|
function createBaseChildLNodesForAllLanguagesQueryBuilder(siteContext, { parentNodeId, typeNames, }) {
|
|
135
136
|
return siteContext
|
|
136
|
-
.cn("PaLNode as
|
|
137
|
-
.innerJoin("PaNode as
|
|
138
|
-
.where("
|
|
139
|
-
.whereIn("
|
|
137
|
+
.cn("PaLNode as l")
|
|
138
|
+
.innerJoin("PaNode as n", "n.id", "l.nodeId")
|
|
139
|
+
.where("n.parentId", parentNodeId)
|
|
140
|
+
.whereIn("n.typeName", typeNames);
|
|
140
141
|
}
|
|
141
142
|
export async function setLNodeReady(siteContext, { lNodeId, ready }) {
|
|
142
143
|
const typeName = await getTypeNameOf(siteContext, lNodeId.nodeId);
|
|
@@ -212,23 +213,31 @@ const OrphanNodeRowAT = type({
|
|
|
212
213
|
"+": "reject",
|
|
213
214
|
});
|
|
214
215
|
export async function isOrphanNode(cn, nodeId) {
|
|
215
|
-
const row = (await cn("PaLNode as
|
|
216
|
-
.count("
|
|
217
|
-
.where("
|
|
216
|
+
const row = (await cn("PaLNode as l")
|
|
217
|
+
.count("l.nodeId as cnt")
|
|
218
|
+
.where("l.nodeId", nodeId)
|
|
218
219
|
.first());
|
|
219
220
|
return row ? OrphanNodeRowAT.assert(row).cnt === 0 : true;
|
|
220
221
|
}
|
|
221
222
|
export async function searchDocuments(siteContext, options) {
|
|
222
|
-
const { queryString, language,
|
|
223
|
+
const { queryString, language, offset, limit, sorting } = options;
|
|
223
224
|
const words = queryString.split(/\s+/).filter((word) => word.length >= 2);
|
|
224
225
|
if (words.length === 0)
|
|
225
|
-
return { total: 0,
|
|
226
|
-
const
|
|
226
|
+
return { total: 0, offset, items: [] };
|
|
227
|
+
const descriptor = {
|
|
228
|
+
load: "list",
|
|
229
|
+
nodeKind: "document",
|
|
230
|
+
descriptorName: "search",
|
|
227
231
|
language,
|
|
228
232
|
words,
|
|
229
|
-
|
|
233
|
+
offset,
|
|
230
234
|
limit,
|
|
231
|
-
|
|
235
|
+
sorting,
|
|
236
|
+
};
|
|
237
|
+
const renderingContext = createNoRenderingContext(siteContext);
|
|
238
|
+
const { items: rows, total } = await listDocValues(renderingContext, descriptor, {
|
|
239
|
+
onlyPublished: false,
|
|
240
|
+
withTotal: true,
|
|
232
241
|
});
|
|
233
242
|
const lNodeWraps = [];
|
|
234
243
|
for (const row of rows) {
|
|
@@ -240,7 +249,7 @@ export async function searchDocuments(siteContext, options) {
|
|
|
240
249
|
return {
|
|
241
250
|
total,
|
|
242
251
|
items: lNodeWraps,
|
|
243
|
-
|
|
252
|
+
offset,
|
|
244
253
|
};
|
|
245
254
|
}
|
|
246
255
|
const LNodeLanguageRowAT = type({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lnode.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/lnode/lnode.queries.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,mBAAmB,EACnB,qBAAqB,EACrB,iBAAiB,GAClB,MAAM,iCAAiC,CAAC;AAGzC,OAAO,EAAE,aAAa,EAAsB,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"lnode.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/lnode/lnode.queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,9 +10,9 @@ const TypeNameRowAT = type({
|
|
|
10
10
|
});
|
|
11
11
|
export async function getTypeNameOf(siteContext, nodeId) {
|
|
12
12
|
const row = await siteContext
|
|
13
|
-
.cn("PaNode as
|
|
14
|
-
.select("
|
|
15
|
-
.where("
|
|
13
|
+
.cn("PaNode as n")
|
|
14
|
+
.select("n.typeName")
|
|
15
|
+
.where("n.id", nodeId)
|
|
16
16
|
.first();
|
|
17
17
|
if (!row)
|
|
18
18
|
throw new ApiError(`cannot find node '${nodeId}'`, 404);
|
|
@@ -41,9 +41,9 @@ const NodeSeedAT = type({
|
|
|
41
41
|
publishDate: parseSqliteDateTime(r.publishDate),
|
|
42
42
|
}));
|
|
43
43
|
export async function findOneNode({ cn }, id) {
|
|
44
|
-
const node = await cn("PaNode as
|
|
45
|
-
.select("
|
|
46
|
-
.where("
|
|
44
|
+
const node = await cn("PaNode as n")
|
|
45
|
+
.select("n.id", "n.parentId", "n.typeName", "n.relativeId", "n.publishDate")
|
|
46
|
+
.where("n.id", id)
|
|
47
47
|
.first();
|
|
48
48
|
if (!node)
|
|
49
49
|
throw new ApiError(`can't find node ${id}`, 404);
|
|
@@ -71,9 +71,9 @@ const SetNodePublishDateRowAT = type({
|
|
|
71
71
|
export async function setNodePublishDate(siteContext, { nodeId, publishDate }) {
|
|
72
72
|
const { cn, siteSchema } = siteContext;
|
|
73
73
|
const row = await siteContext
|
|
74
|
-
.cn("PaNode as
|
|
75
|
-
.select("
|
|
76
|
-
.where("
|
|
74
|
+
.cn("PaNode as n")
|
|
75
|
+
.select("n.typeName", "n.publishDate")
|
|
76
|
+
.where("n.id", nodeId)
|
|
77
77
|
.first();
|
|
78
78
|
if (!row)
|
|
79
79
|
throw new ApiError(`cannot find node '${nodeId}'`, 404);
|
|
@@ -150,9 +150,9 @@ const NodeChildrenCountRowAT = type({
|
|
|
150
150
|
});
|
|
151
151
|
export async function countNodeChildrenOf(siteContext, parendId) {
|
|
152
152
|
const result = await siteContext
|
|
153
|
-
.cn("PaNode as
|
|
153
|
+
.cn("PaNode as n")
|
|
154
154
|
.count("* as cnt")
|
|
155
|
-
.where("
|
|
155
|
+
.where("n.parentId", parendId)
|
|
156
156
|
.first();
|
|
157
157
|
return NodeChildrenCountRowAT.assert(result).cnt;
|
|
158
158
|
}
|
|
@@ -166,9 +166,9 @@ const ScheduledNodeRowAT = type({
|
|
|
166
166
|
}));
|
|
167
167
|
export async function getScheduledNodes(siteContext) {
|
|
168
168
|
const rows = await siteContext
|
|
169
|
-
.cn("PaNode as
|
|
170
|
-
.select("
|
|
171
|
-
.whereRaw("
|
|
169
|
+
.cn("PaNode as n")
|
|
170
|
+
.select("n.id", "n.publishDate")
|
|
171
|
+
.whereRaw("n.publishDate > current_timestamp");
|
|
172
172
|
return rows.map((row) => {
|
|
173
173
|
const validated = ScheduledNodeRowAT.assert(row);
|
|
174
174
|
return {
|
|
@@ -10,14 +10,14 @@ const ReorderNodesRowAT = type({
|
|
|
10
10
|
}));
|
|
11
11
|
export async function reorderNodes(siteContext, { nodeIds, parentNodeId, listName, }) {
|
|
12
12
|
const { cn } = siteContext;
|
|
13
|
-
let query = cn("PaNode as
|
|
14
|
-
.select(["
|
|
15
|
-
.innerJoin("PaOrderedNode as o", "
|
|
16
|
-
.where("
|
|
13
|
+
let query = cn("PaNode as n")
|
|
14
|
+
.select(["n.id as nodeId", "o.orderNum as orderNum"])
|
|
15
|
+
.innerJoin("PaOrderedNode as o", "n.id", "o.nodeId")
|
|
16
|
+
.where("n.parentId", parentNodeId)
|
|
17
17
|
.orderBy("o.orderNum", "ASC")
|
|
18
|
-
.orderBy("
|
|
18
|
+
.orderBy("n.id", "ASC");
|
|
19
19
|
if (listName) {
|
|
20
|
-
query = query.innerJoin("PaPartNode as p", "p.nodeId", "
|
|
20
|
+
query = query.innerJoin("PaPartNode as p", "p.nodeId", "n.id").where("p.listName", listName);
|
|
21
21
|
}
|
|
22
22
|
const rows = await query;
|
|
23
23
|
const oldItems = rows.map((row) => ReorderNodesRowAT.assert(row));
|
|
@@ -20,11 +20,11 @@ const PartNodeShiftRowAT = type({
|
|
|
20
20
|
orderNum: r.orderNum,
|
|
21
21
|
}));
|
|
22
22
|
export async function shiftPartNodeOrdersAfterDeletion(cn, nodeId) {
|
|
23
|
-
const row = await cn("PaNode as
|
|
24
|
-
.select("
|
|
25
|
-
.innerJoin("PaPartNode as p", "p.nodeId", "
|
|
26
|
-
.innerJoin("PaOrderedNode as o", "o.nodeId", "
|
|
27
|
-
.where("
|
|
23
|
+
const row = await cn("PaNode as n")
|
|
24
|
+
.select("n.parentId", "p.listName", "o.orderNum")
|
|
25
|
+
.innerJoin("PaPartNode as p", "p.nodeId", "n.id")
|
|
26
|
+
.innerJoin("PaOrderedNode as o", "o.nodeId", "n.id")
|
|
27
|
+
.where("n.id", nodeId)
|
|
28
28
|
.first();
|
|
29
29
|
if (!row)
|
|
30
30
|
throw new ApiError(`part-node '${nodeId}' not found`, 404);
|
|
@@ -33,10 +33,10 @@ export async function shiftPartNodeOrdersAfterDeletion(cn, nodeId) {
|
|
|
33
33
|
.whereRaw("orderNum > ?", [orderNum])
|
|
34
34
|
.whereExists(function () {
|
|
35
35
|
this.select(1)
|
|
36
|
-
.from("PaNode as
|
|
37
|
-
.innerJoin("PaPartNode as p", "p.nodeId", "
|
|
38
|
-
.whereRaw("PaOrderedNode.nodeId =
|
|
39
|
-
.andWhere("
|
|
36
|
+
.from("PaNode as n")
|
|
37
|
+
.innerJoin("PaPartNode as p", "p.nodeId", "n.id")
|
|
38
|
+
.whereRaw("PaOrderedNode.nodeId = n.id")
|
|
39
|
+
.andWhere("n.parentId", parentId)
|
|
40
40
|
.andWhere("p.listName", listName);
|
|
41
41
|
})
|
|
42
42
|
.update({
|