@paroicms/server 1.90.0 → 1.91.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/account/account.formatters.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/account/account.queries.d.ts +1 -13
- package/dist/{admin-ui-backend → admin-backend}/account/account.queries.js +93 -54
- package/dist/admin-backend/account/account.queries.js.map +1 -0
- package/dist/admin-backend/account/account.resolver.js.map +1 -0
- package/dist/admin-backend/auth/auth.helper.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/auth/auth.service.js +12 -9
- package/dist/admin-backend/auth/auth.service.js.map +1 -0
- package/dist/admin-backend/auth/auth.types.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/backup/backup.controller.js +7 -2
- package/dist/admin-backend/backup/backup.controller.js.map +1 -0
- package/dist/admin-backend/backup/backup.helper.js.map +1 -0
- package/dist/admin-backend/backup/backup.resolver.js.map +1 -0
- package/dist/admin-backend/document/document.helper.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.extend.js +2 -2
- package/dist/admin-backend/document/document.resolver.extend.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.js +7 -8
- package/dist/admin-backend/document/document.resolver.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/document/load-documents.queries.js +57 -20
- package/dist/admin-backend/document/load-documents.queries.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/document/save-documents.queries.js +19 -5
- package/dist/admin-backend/document/save-documents.queries.js.map +1 -0
- package/dist/admin-backend/fields/_fields.helpers.js.map +1 -0
- package/dist/admin-backend/fields/fields.resolver.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/fields/labeling.queries.js +25 -9
- package/dist/admin-backend/fields/labeling.queries.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/fields/load-fields-of.queries.js +8 -2
- package/dist/admin-backend/fields/load-fields-of.queries.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/fields/load-fields.queries.js +25 -9
- package/dist/admin-backend/fields/load-fields.queries.js.map +1 -0
- package/dist/admin-backend/fields/preprocess-fields.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/fields/save-fields.queries.js +19 -12
- package/dist/admin-backend/fields/save-fields.queries.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/login/login.controller.js +18 -8
- package/dist/admin-backend/login/login.controller.js.map +1 -0
- package/dist/admin-backend/media/add-media-to-node.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/media/media-upload.controller.js +16 -5
- package/dist/admin-backend/media/media-upload.controller.js.map +1 -0
- package/dist/admin-backend/media/media.resolver.extend.js.map +1 -0
- package/dist/admin-backend/media/media.resolver.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/node/node.queries.js +65 -14
- package/dist/admin-backend/node/node.queries.js.map +1 -0
- package/dist/admin-backend/node/node.resolver.extend.js.map +1 -0
- package/dist/admin-backend/node/node.resolver.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/node/ordered-node.queries.js +10 -5
- package/dist/admin-backend/node/ordered-node.queries.js.map +1 -0
- package/dist/admin-backend/nodel/nodel-wrap.formatters.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.resolver.js +9 -5
- package/dist/admin-backend/nodel/nodel-wrap.resolver.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/nodel/nodel.queries.js +60 -28
- package/dist/admin-backend/nodel/nodel.queries.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/part/part-node.queries.js +12 -4
- package/dist/admin-backend/part/part-node.queries.js.map +1 -0
- package/dist/{admin-ui-backend → admin-backend}/part/part.queries.js +106 -43
- package/dist/admin-backend/part/part.queries.js.map +1 -0
- package/dist/admin-backend/part/part.resolver.extend.js.map +1 -0
- package/dist/admin-backend/part/part.resolver.js.map +1 -0
- package/dist/admin-backend/site-constants/site-constants.resolver.js.map +1 -0
- package/dist/admin-backend/unprotected/unprotected.resolver.js.map +1 -0
- package/dist/common/data-format.d.ts +20 -11
- package/dist/common/data-format.js +15 -33
- package/dist/common/data-format.js.map +1 -1
- package/dist/common/text-cache.js +1 -1
- package/dist/common/text-cache.js.map +1 -1
- package/dist/context.js +2 -2
- package/dist/context.js.map +1 -1
- package/dist/express/route-handler-wrapper.js +1 -1
- package/dist/express/route-handler-wrapper.js.map +1 -1
- package/dist/express/serve-file.js +1 -1
- package/dist/express/serve-file.js.map +1 -1
- package/dist/express/site-middleware.js +3 -3
- package/dist/express/site-middleware.js.map +1 -1
- package/dist/express/static-files.req-handler.js +1 -1
- package/dist/express/static-files.req-handler.js.map +1 -1
- package/dist/graphql/apollo-server-init.js +14 -14
- package/dist/graphql/apollo-server-init.js.map +1 -1
- package/dist/helpers/make-backend-plugin-service.js +2 -3
- package/dist/helpers/make-backend-plugin-service.js.map +1 -1
- package/dist/helpers/running-instance-connector.js +7 -7
- package/dist/helpers/running-instance-connector.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.js.map +1 -1
- package/dist/liquidjs-tools/liquidjs-utils.d.ts +1 -1
- package/dist/liquidjs-tools/liquidjs-utils.js +1 -1
- package/dist/liquidjs-tools/liquidjs-utils.js.map +1 -1
- package/dist/oauth/account-auth.service.d.ts +1 -1
- package/dist/oauth/oauth2-client.controller.js +1 -1
- package/dist/oauth/oauth2-client.controller.js.map +1 -1
- package/dist/protected-site/protected-access-token.js +1 -1
- package/dist/protected-site/protected-access-token.js.map +1 -1
- package/dist/public-api/password-reset/password-reset.controller.js +22 -31
- package/dist/public-api/password-reset/password-reset.controller.js.map +1 -1
- package/dist/public-api/password-reset/password-reset.service.js +18 -10
- package/dist/public-api/password-reset/password-reset.service.js.map +1 -1
- package/dist/public-api/public-api-rendering.js +6 -5
- package/dist/public-api/public-api-rendering.js.map +1 -1
- package/dist/public-api/search-text/search-text.queries.d.ts +1 -1
- package/dist/public-api/search-text/search-text.queries.js +6 -2
- package/dist/public-api/search-text/search-text.queries.js.map +1 -1
- package/dist/rendered-site/feed/feed-generator.d.ts +0 -12
- package/dist/rendered-site/feed/feed-generator.js +27 -20
- package/dist/rendered-site/feed/feed-generator.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/format-date.js +2 -3
- package/dist/rendered-site/liquidjs-filters/format-date.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/format-number.d.ts +1 -1
- package/dist/rendered-site/liquidjs-filters/format-number.js +9 -5
- package/dist/rendered-site/liquidjs-filters/format-number.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/head-tags-filter.js +10 -5
- package/dist/rendered-site/liquidjs-filters/head-tags-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js +2 -3
- package/dist/rendered-site/liquidjs-filters/inject-menu-items-data.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/make-excerpt.js +6 -2
- package/dist/rendered-site/liquidjs-filters/make-excerpt.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/obfuscate.js +3 -4
- package/dist/rendered-site/liquidjs-filters/obfuscate.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/plugin-asset-url-filter.js +4 -3
- package/dist/rendered-site/liquidjs-filters/plugin-asset-url-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-filters/translate-filter.js +3 -2
- package/dist/rendered-site/liquidjs-filters/translate-filter.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.js +13 -8
- package/dist/rendered-site/liquidjs-tags/get-doc-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.js +23 -13
- package/dist/rendered-site/liquidjs-tags/get-docs-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js +22 -11
- package/dist/rendered-site/liquidjs-tags/get-paginated-docs-tag.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/grouping-media-query.js +1 -1
- package/dist/rendered-site/liquidjs-tags/grouping-media-query.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.d.ts +1 -0
- package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js +11 -2
- package/dist/rendered-site/liquidjs-tags/liquid-tag-wrapper.js.map +1 -1
- package/dist/rendered-site/liquidjs-tags/use-image-tag.js +24 -13
- package/dist/rendered-site/liquidjs-tags/use-image-tag.js.map +1 -1
- package/dist/rendered-site/page-route/make-url.d.ts +1 -1
- package/dist/rendered-site/page-route/make-url.js +12 -7
- package/dist/rendered-site/page-route/make-url.js.map +1 -1
- package/dist/rendering-payload/breadcrumb.queries.js +1 -1
- package/dist/rendering-payload/breadcrumb.queries.js.map +1 -1
- package/dist/rendering-payload/create-doc-drop.d.ts +1 -1
- package/dist/rendering-payload/create-doc-drop.js +11 -7
- package/dist/rendering-payload/create-doc-drop.js.map +1 -1
- package/dist/rendering-payload/doc-values.queries.d.ts +2 -3
- package/dist/rendering-payload/doc-values.queries.js +41 -15
- package/dist/rendering-payload/doc-values.queries.js.map +1 -1
- package/dist/rendering-payload/excerpt.queries.js +9 -3
- package/dist/rendering-payload/excerpt.queries.js.map +1 -1
- package/dist/rendering-payload/field-values.js +3 -3
- package/dist/rendering-payload/field-values.js.map +1 -1
- package/dist/rendering-payload/get-siblings.queries.js +19 -7
- package/dist/rendering-payload/get-siblings.queries.js.map +1 -1
- package/dist/rendering-payload/parts.queries.d.ts +1 -1
- package/dist/rendering-payload/parts.queries.js +59 -25
- package/dist/rendering-payload/parts.queries.js.map +1 -1
- package/dist/rendering-payload/translations.queries.js +7 -3
- package/dist/rendering-payload/translations.queries.js.map +1 -1
- package/dist/site-context/load-site-context.js +1 -1
- package/dist/site-context/load-site-context.js.map +1 -1
- package/dist/site-context/site-values-for-site-context.js +1 -1
- package/dist/site-context/site-values-for-site-context.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +13 -13
- package/dist/admin-ui-backend/account/account.formatters.js.map +0 -1
- package/dist/admin-ui-backend/account/account.queries.js.map +0 -1
- package/dist/admin-ui-backend/account/account.resolver.js.map +0 -1
- package/dist/admin-ui-backend/auth/auth.helper.js.map +0 -1
- package/dist/admin-ui-backend/auth/auth.service.js.map +0 -1
- package/dist/admin-ui-backend/auth/auth.types.js.map +0 -1
- package/dist/admin-ui-backend/backup/backup.controller.js.map +0 -1
- package/dist/admin-ui-backend/backup/backup.helper.js.map +0 -1
- package/dist/admin-ui-backend/backup/backup.resolver.js.map +0 -1
- package/dist/admin-ui-backend/document/document.helper.js.map +0 -1
- package/dist/admin-ui-backend/document/document.resolver.extend.js.map +0 -1
- package/dist/admin-ui-backend/document/document.resolver.js.map +0 -1
- package/dist/admin-ui-backend/document/load-documents.queries.js.map +0 -1
- package/dist/admin-ui-backend/document/save-documents.queries.js.map +0 -1
- package/dist/admin-ui-backend/fields/_fields.helpers.js.map +0 -1
- package/dist/admin-ui-backend/fields/fields.resolver.js.map +0 -1
- package/dist/admin-ui-backend/fields/labeling.queries.js.map +0 -1
- package/dist/admin-ui-backend/fields/load-fields-of.queries.js.map +0 -1
- package/dist/admin-ui-backend/fields/load-fields.queries.js.map +0 -1
- package/dist/admin-ui-backend/fields/preprocess-fields.js.map +0 -1
- package/dist/admin-ui-backend/fields/save-fields.queries.js.map +0 -1
- package/dist/admin-ui-backend/login/login.controller.js.map +0 -1
- package/dist/admin-ui-backend/media/add-media-to-node.js.map +0 -1
- package/dist/admin-ui-backend/media/media-upload.controller.js.map +0 -1
- package/dist/admin-ui-backend/media/media.resolver.extend.js.map +0 -1
- package/dist/admin-ui-backend/media/media.resolver.js.map +0 -1
- package/dist/admin-ui-backend/node/node.queries.js.map +0 -1
- package/dist/admin-ui-backend/node/node.resolver.extend.js.map +0 -1
- package/dist/admin-ui-backend/node/node.resolver.js.map +0 -1
- package/dist/admin-ui-backend/node/ordered-node.queries.js.map +0 -1
- package/dist/admin-ui-backend/nodel/nodel-wrap.formatters.js.map +0 -1
- package/dist/admin-ui-backend/nodel/nodel-wrap.resolver.js.map +0 -1
- package/dist/admin-ui-backend/nodel/nodel.queries.js.map +0 -1
- package/dist/admin-ui-backend/part/part-node.queries.js.map +0 -1
- package/dist/admin-ui-backend/part/part.queries.js.map +0 -1
- package/dist/admin-ui-backend/part/part.resolver.extend.js.map +0 -1
- package/dist/admin-ui-backend/part/part.resolver.js.map +0 -1
- package/dist/admin-ui-backend/site-constants/site-constants.resolver.js.map +0 -1
- package/dist/admin-ui-backend/unprotected/unprotected.resolver.js.map +0 -1
- /package/dist/{admin-ui-backend → admin-backend}/account/account.formatters.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/account/account.formatters.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/account/account.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/account/account.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/auth/auth.helper.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/auth/auth.helper.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/auth/auth.service.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/auth/auth.types.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/auth/auth.types.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/backup/backup.controller.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/backup/backup.helper.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/backup/backup.helper.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/backup/backup.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/backup/backup.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/document/document.helper.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/document/document.helper.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/document/document.resolver.extend.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/document/load-documents.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/document/save-documents.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/_fields.helpers.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/_fields.helpers.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/fields.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/fields.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/labeling.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/load-fields-of.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/load-fields.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/preprocess-fields.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/preprocess-fields.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/fields/save-fields.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/login/login.controller.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/add-media-to-node.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/add-media-to-node.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/media-upload.controller.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.extend.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.extend.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/media/media.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/node/node.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.extend.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.extend.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/node/node.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/node/ordered-node.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.formatters.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.formatters.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel-wrap.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/nodel/nodel.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/part/part-node.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/part/part.queries.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.extend.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.extend.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/part/part.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/site-constants/site-constants.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/site-constants/site-constants.resolver.js +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/unprotected/unprotected.resolver.d.ts +0 -0
- /package/dist/{admin-ui-backend → admin-backend}/unprotected/unprotected.resolver.js +0 -0
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { dateValOrUndef, nbVal, strVal } from "@paroi/data-formatters-lib";
|
|
2
1
|
import { mainDbSchemaName } from "@paroicms/connector";
|
|
3
2
|
import { getNodeTypeByName } from "@paroicms/internal-anywhere-lib";
|
|
4
|
-
import { sqliteDateTime } from "@paroicms/internal-server-lib";
|
|
3
|
+
import { parseSqliteDateTime, sqliteDateTime } from "@paroicms/internal-server-lib";
|
|
5
4
|
import { ApiError } from "@paroicms/public-server-lib";
|
|
6
|
-
import {
|
|
5
|
+
import { type } from "arktype";
|
|
7
6
|
import { depKeysOfNodeRelationCache, invalidateMultipleDocumentsInCache, invalidateNodeInCache, makeCacheDependencyKey, makeDependencyKeysForDocuments, } from "../../common/text-cache.js";
|
|
8
7
|
import { getDocumentNodeIdOfPart } from "../part/part.queries.js";
|
|
8
|
+
const TypeNameRowAT = type({
|
|
9
|
+
typeName: "string",
|
|
10
|
+
"+": "reject",
|
|
11
|
+
});
|
|
9
12
|
export async function getTypeNameOf(siteContext, nodeId) {
|
|
10
13
|
const row = await siteContext
|
|
11
14
|
.cn("PaNode as l")
|
|
@@ -14,7 +17,8 @@ export async function getTypeNameOf(siteContext, nodeId) {
|
|
|
14
17
|
.first();
|
|
15
18
|
if (!row)
|
|
16
19
|
throw new ApiError(`cannot find node '${nodeId}'`, 404);
|
|
17
|
-
|
|
20
|
+
const validated = TypeNameRowAT.assert(row);
|
|
21
|
+
return validated.typeName;
|
|
18
22
|
}
|
|
19
23
|
export async function getDocumentSchemaOf(siteContext, nodeId) {
|
|
20
24
|
const typeName = await getTypeNameOf(siteContext, nodeId);
|
|
@@ -23,6 +27,20 @@ export async function getDocumentSchemaOf(siteContext, nodeId) {
|
|
|
23
27
|
throw new Error(`unknown document type '${typeName}'`);
|
|
24
28
|
return nodeType;
|
|
25
29
|
}
|
|
30
|
+
const NodeSeedAT = type({
|
|
31
|
+
id: "number",
|
|
32
|
+
parentId: "number|null",
|
|
33
|
+
typeName: "string",
|
|
34
|
+
relativeId: "string",
|
|
35
|
+
publishDate: "Date|string|number|null",
|
|
36
|
+
"+": "reject",
|
|
37
|
+
}).pipe((r) => ({
|
|
38
|
+
id: String(r.id),
|
|
39
|
+
parentId: r.parentId === null ? undefined : String(r.parentId),
|
|
40
|
+
typeName: r.typeName,
|
|
41
|
+
relativeId: r.relativeId,
|
|
42
|
+
publishDate: parseSqliteDateTime(r.publishDate),
|
|
43
|
+
}));
|
|
26
44
|
export async function findOneNode({ cn }, id) {
|
|
27
45
|
const node = await cn("PaNode as l")
|
|
28
46
|
.select("l.id", "l.parentId", "l.typeName", "l.relativeId", "l.publishDate")
|
|
@@ -30,12 +48,24 @@ export async function findOneNode({ cn }, id) {
|
|
|
30
48
|
.first();
|
|
31
49
|
if (!node)
|
|
32
50
|
throw new ApiError(`can't find node ${id}`, 404);
|
|
33
|
-
return
|
|
51
|
+
return NodeSeedAT.assert(node);
|
|
34
52
|
}
|
|
53
|
+
const LanguageRowAT = type({
|
|
54
|
+
language: "string",
|
|
55
|
+
"+": "reject",
|
|
56
|
+
});
|
|
35
57
|
export async function readTranslationsOf({ cn }, nodeId) {
|
|
36
58
|
const rows = await cn("PaNodel as s").select("s.language").where("s.nodeId", nodeId);
|
|
37
|
-
return rows.map((row) =>
|
|
59
|
+
return rows.map((row) => LanguageRowAT.assert(row).language);
|
|
38
60
|
}
|
|
61
|
+
const SetNodePublishDateRowAT = type({
|
|
62
|
+
typeName: "string",
|
|
63
|
+
publishDate: "string|null",
|
|
64
|
+
"+": "reject",
|
|
65
|
+
}).pipe((data) => ({
|
|
66
|
+
typeName: data.typeName,
|
|
67
|
+
publishDate: parseSqliteDateTime(data.publishDate),
|
|
68
|
+
}));
|
|
39
69
|
export async function setNodePublishDate(siteContext, { nodeId, publishDate }) {
|
|
40
70
|
const { cn, siteSchema } = siteContext;
|
|
41
71
|
const row = await siteContext
|
|
@@ -45,8 +75,9 @@ export async function setNodePublishDate(siteContext, { nodeId, publishDate }) {
|
|
|
45
75
|
.first();
|
|
46
76
|
if (!row)
|
|
47
77
|
throw new ApiError(`cannot find node '${nodeId}'`, 404);
|
|
48
|
-
const
|
|
49
|
-
const
|
|
78
|
+
const validated = SetNodePublishDateRowAT.assert(row);
|
|
79
|
+
const typeName = validated.typeName;
|
|
80
|
+
const prevPublishDate = validated.publishDate;
|
|
50
81
|
const nodeType = getNodeTypeByName(siteSchema, typeName);
|
|
51
82
|
await cn("PaNode")
|
|
52
83
|
.where("id", nodeId)
|
|
@@ -111,6 +142,10 @@ async function invalidateOrSchedulePart(siteContext, options) {
|
|
|
111
142
|
await siteContext.textCache.scheduleInvalidation(eventKey, depKeys, publishDate);
|
|
112
143
|
}
|
|
113
144
|
}
|
|
145
|
+
const NodeDepthRowAT = type({
|
|
146
|
+
depth: "number",
|
|
147
|
+
"+": "reject",
|
|
148
|
+
});
|
|
114
149
|
export async function getNodeDepth(siteContext, tracker, nodeId) {
|
|
115
150
|
const row = await siteContext
|
|
116
151
|
.cn("PaNode as l")
|
|
@@ -120,24 +155,40 @@ export async function getNodeDepth(siteContext, tracker, nodeId) {
|
|
|
120
155
|
tracker.trackAccess(mainDbSchemaName, "PaNode", "read");
|
|
121
156
|
if (!row)
|
|
122
157
|
throw new ApiError(`cannot find node '${nodeId}'`, 404);
|
|
123
|
-
|
|
158
|
+
const validated = NodeDepthRowAT.assert(row);
|
|
159
|
+
return validated.depth;
|
|
124
160
|
}
|
|
161
|
+
const NodeChildrenCountRowAT = type({
|
|
162
|
+
cnt: "number",
|
|
163
|
+
"+": "reject",
|
|
164
|
+
});
|
|
125
165
|
export async function countNodeChildrenOf(siteContext, parendId) {
|
|
126
166
|
const result = await siteContext
|
|
127
167
|
.cn("PaNode as l")
|
|
128
168
|
.count("* as cnt")
|
|
129
169
|
.where("l.parentId", parendId)
|
|
130
170
|
.first();
|
|
131
|
-
return
|
|
171
|
+
return NodeChildrenCountRowAT.assert(result).cnt;
|
|
132
172
|
}
|
|
173
|
+
const ScheduledNodeRowAT = type({
|
|
174
|
+
id: "number",
|
|
175
|
+
publishDate: "Date|string|number",
|
|
176
|
+
"+": "reject",
|
|
177
|
+
}).pipe((r) => ({
|
|
178
|
+
id: String(r.id),
|
|
179
|
+
publishDate: parseSqliteDateTime(r.publishDate),
|
|
180
|
+
}));
|
|
133
181
|
export async function getScheduledNodes(siteContext) {
|
|
134
182
|
const rows = await siteContext
|
|
135
183
|
.cn("PaNode as l")
|
|
136
184
|
.select("l.id", "l.publishDate")
|
|
137
185
|
.whereRaw("l.publishDate > current_timestamp");
|
|
138
|
-
return rows.map((row) =>
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
186
|
+
return rows.map((row) => {
|
|
187
|
+
const validated = ScheduledNodeRowAT.assert(row);
|
|
188
|
+
return {
|
|
189
|
+
nodeId: validated.id,
|
|
190
|
+
publishDate: validated.publishDate.toISOString(),
|
|
191
|
+
};
|
|
192
|
+
});
|
|
142
193
|
}
|
|
143
194
|
//# sourceMappingURL=node.queries.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/node/node.queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.resolver.extend.js","sourceRoot":"","sources":["../../../src/admin-backend/node/node.resolver.extend.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAEnD,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAE/D,MAAM,CAAC,MAAM,+BAA+B,GAAiC;IAC3E,SAAS,EAAE;QACT,IAAI,EAAE,KAAK,EACT,EAAE,MAAM,EAAiB,EACzB,KAAK,EACL,EAAE,WAAW,EAAE,WAAW,EAAkB,EACzB,EAAE;YACrB,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;KACF;CACF,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"node.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/node/node.resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AACnD,OAAO,EAEL,WAAW,EACX,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAEzD,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,KAAK,EAAE;QACL,cAAc,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,WAAW,EAAE,EAAE,EAAE;YAC7D,OAAO,MAAM,kBAAkB,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QACvD,CAAC;KACF;IACD,QAAQ,EAAE;QACR,kBAAkB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3F,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,MAAM,kBAAkB,CAAC,WAAW,EAAE;gBACpC,MAAM;gBACN,WAAW;aACZ,CAAC,CAAC;YACH,OAAO,MAAM,WAAW,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;QAChD,CAAC;QAED,gBAAgB,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,EAAE,EAAE,WAAW,EAAE,WAAW,EAAE,EAAE,EAAE;YAC3F,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,CAAC,CAAC;QAC9D,CAAC;QAED,YAAY,EAAE,KAAK,EACjB,OAAO,EACP,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,EACnC,EAAE,WAAW,EAAE,WAAW,EAAE,EAC5B,EAAE;YACF,SAAS,CAAC,WAAW,CAAC,CAAC;YACvB,OAAO,YAAY,CAAC,WAAW,EAAE,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,CAAC,CAAC;QACxE,CAAC;KACF;IACD,IAAI,EAAE;QACJ,SAAS,EAAE,KAAK,EAAE,EAAE,WAAW,EAAY,EAAE,KAAK,EAAE,EAAE;YACpD,IAAI,CAAC,WAAW;gBAAE,OAAO,KAAK,CAAC;YAC/B,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QACtD,CAAC;KACF;CACF,CAAC"}
|
|
@@ -1,5 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { type } from "arktype";
|
|
2
2
|
import { invalidateMultipleDocumentsInCache } from "../../common/text-cache.js";
|
|
3
|
+
const ReorderNodesRowAT = type({
|
|
4
|
+
nodeId: "number",
|
|
5
|
+
orderNum: "number",
|
|
6
|
+
"+": "reject",
|
|
7
|
+
}).pipe((r) => ({
|
|
8
|
+
nodeId: String(r.nodeId),
|
|
9
|
+
orderNum: r.orderNum,
|
|
10
|
+
}));
|
|
3
11
|
export async function reorderNodes(siteContext, { nodeIds, parentNodeId, listName, }) {
|
|
4
12
|
const { cn } = siteContext;
|
|
5
13
|
let query = cn("PaNode as l")
|
|
@@ -12,10 +20,7 @@ export async function reorderNodes(siteContext, { nodeIds, parentNodeId, listNam
|
|
|
12
20
|
query = query.innerJoin("PaPartNode as p", "p.nodeId", "l.id").where("p.listName", listName);
|
|
13
21
|
}
|
|
14
22
|
const rows = await query;
|
|
15
|
-
const oldItems = rows.map((row) => (
|
|
16
|
-
nodeId: strVal(row.nodeId),
|
|
17
|
-
orderNum: nbVal(row.orderNum),
|
|
18
|
-
}));
|
|
23
|
+
const oldItems = rows.map((row) => ReorderNodesRowAT.assert(row));
|
|
19
24
|
let orderNum = 1;
|
|
20
25
|
const newItems = [];
|
|
21
26
|
for (const nodeId of nodeIds) {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ordered-node.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/node/ordered-node.queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodel-wrap.formatters.js","sourceRoot":"","sources":["../../../src/admin-backend/nodel/nodel-wrap.formatters.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AAGvD,MAAM,UAAU,gBAAgB,CAAC,UAA4B;IAC3D,OAAO,CACL,UAAU,CAAC,GAAG,CAAc,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QACrC,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"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
-
import { strVal } from "@paroi/data-formatters-lib";
|
|
2
1
|
import { createNoTracker } from "@paroicms/internal-server-lib";
|
|
3
2
|
import { encodeNodelId, parseNodelId } from "@paroicms/public-anywhere-lib";
|
|
3
|
+
import { type } from "arktype";
|
|
4
4
|
import { authGuard } from "../auth/auth.helper.js";
|
|
5
5
|
import { formatGqlOrderBy } from "./nodel-wrap.formatters.js";
|
|
6
6
|
import { findOneNodel, getBreadcrumb, getNodelWraps, searchDocuments, setNodelReady, } from "./nodel.queries.js";
|
|
7
|
+
const NodelLanguageRowAT = type({
|
|
8
|
+
language: "string",
|
|
9
|
+
"+": "reject",
|
|
10
|
+
});
|
|
7
11
|
export const nodelWrapResolvers = {
|
|
8
12
|
Query: {
|
|
9
13
|
nodelWrap: async (_parent, { nodelId }, { siteContext, httpContext }) => {
|
|
@@ -64,17 +68,17 @@ export const nodelWrapResolvers = {
|
|
|
64
68
|
translatedInto: async ({ nodeId }, _args, { siteContext, httpContext }) => {
|
|
65
69
|
const nodels = await siteContext
|
|
66
70
|
.cn("PaNodel as s")
|
|
67
|
-
.select("s.language
|
|
71
|
+
.select("s.language")
|
|
68
72
|
.where("s.nodeId", nodeId);
|
|
69
|
-
return nodels.map((item) =>
|
|
73
|
+
return nodels.map((item) => NodelLanguageRowAT.assert(item).language);
|
|
70
74
|
},
|
|
71
75
|
translations: async ({ nodeId }, _args, { siteContext, httpContext }) => {
|
|
72
76
|
const { cn } = siteContext;
|
|
73
77
|
const rows = await cn("PaNodel as nodel")
|
|
74
|
-
.select("nodel.language
|
|
78
|
+
.select("nodel.language")
|
|
75
79
|
.where("nodel.nodeId", nodeId);
|
|
76
80
|
const translations = rows.map((row) => {
|
|
77
|
-
const language =
|
|
81
|
+
const language = NodelLanguageRowAT.assert(row).language;
|
|
78
82
|
return {
|
|
79
83
|
language,
|
|
80
84
|
nodelId: encodeNodelId({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodel-wrap.resolver.js","sourceRoot":"","sources":["../../../src/admin-backend/nodel/nodel-wrap.resolver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,40 +1,57 @@
|
|
|
1
|
-
import { boolVal, nbVal, strVal, strValOrUndef } from "@paroi/data-formatters-lib";
|
|
2
1
|
import { mainDbSchemaName } from "@paroicms/connector";
|
|
3
2
|
import { documentTypeHasData, getDocumentTypeByName, getNodeTypeByName, } from "@paroicms/internal-anywhere-lib";
|
|
4
3
|
import { encodeNodelId } from "@paroicms/public-anywhere-lib";
|
|
5
4
|
import { ApiError } from "@paroicms/public-server-lib";
|
|
5
|
+
import { type } from "arktype";
|
|
6
6
|
import { applyRegularChildrenSortingOnQuery } from "../../common/child-ordering-query.js";
|
|
7
7
|
import { invalidateDocumentInCache, invalidateDocumentRelationCache, } from "../../common/text-cache.js";
|
|
8
8
|
import { searchText } from "../../public-api/search-text/search-text.queries.js";
|
|
9
9
|
import { getParentNodelIdOf } from "../document/load-documents.queries.js";
|
|
10
10
|
import { getNodeDepth, getTypeNameOf } from "../node/node.queries.js";
|
|
11
11
|
import { getDocumentNodeIdOfPart } from "../part/part.queries.js";
|
|
12
|
+
const NumberAT = type("number");
|
|
13
|
+
const StringAT = type("string");
|
|
14
|
+
const NodeNodelsRowAT = type({
|
|
15
|
+
language: "string",
|
|
16
|
+
ready: "number",
|
|
17
|
+
"+": "reject",
|
|
18
|
+
}).pipe((data) => ({
|
|
19
|
+
language: data.language,
|
|
20
|
+
ready: Boolean(data.ready),
|
|
21
|
+
}));
|
|
12
22
|
export async function nodeNodels({ cn }, nodeId) {
|
|
13
23
|
const nodels = await cn("PaNodel as s")
|
|
14
|
-
.select(["s.language
|
|
24
|
+
.select(["s.language", "s.ready"])
|
|
15
25
|
.where("s.nodeId", nodeId);
|
|
16
26
|
return nodels.map((nodel) => {
|
|
27
|
+
const validated = NodeNodelsRowAT.assert(nodel);
|
|
17
28
|
return {
|
|
18
29
|
nodeId,
|
|
19
|
-
language:
|
|
20
|
-
ready:
|
|
30
|
+
language: validated.language,
|
|
31
|
+
ready: validated.ready,
|
|
21
32
|
};
|
|
22
33
|
});
|
|
23
34
|
}
|
|
35
|
+
const FindOneNodelRowAT = type({
|
|
36
|
+
language: "string",
|
|
37
|
+
nodeId: "number",
|
|
38
|
+
ready: "number",
|
|
39
|
+
"+": "reject",
|
|
40
|
+
}).pipe((data) => ({
|
|
41
|
+
language: data.language,
|
|
42
|
+
nodeId: String(data.nodeId),
|
|
43
|
+
ready: Boolean(data.ready),
|
|
44
|
+
}));
|
|
24
45
|
export async function findOneNodel({ cn }, nodelId) {
|
|
25
46
|
const found = await cn("PaNodel as s")
|
|
26
|
-
.select(["s.language
|
|
47
|
+
.select(["s.language", "s.nodeId", "s.ready"])
|
|
27
48
|
.where("s.nodeId", nodelId.nodeId)
|
|
28
49
|
.andWhere("s.language", nodelId.language)
|
|
29
50
|
.first();
|
|
30
51
|
if (!found) {
|
|
31
52
|
throw new ApiError(`can't find nodel ${nodelId.language}:${nodelId.nodeId}`, 404);
|
|
32
53
|
}
|
|
33
|
-
const nodel =
|
|
34
|
-
language: strVal(found.language),
|
|
35
|
-
nodeId: strVal(found.nodeId),
|
|
36
|
-
ready: boolVal(found.ready),
|
|
37
|
-
};
|
|
54
|
+
const nodel = FindOneNodelRowAT.assert(found);
|
|
38
55
|
return nodelWrapToObjectType(nodel);
|
|
39
56
|
}
|
|
40
57
|
export async function getNodelWraps(siteContext, { parentId, pagination, orderBy, }) {
|
|
@@ -85,13 +102,27 @@ function nodelWrapToObjectType(nodel) {
|
|
|
85
102
|
ready: nodel.ready,
|
|
86
103
|
};
|
|
87
104
|
}
|
|
105
|
+
const ChildNodelsRowAT = type({
|
|
106
|
+
nodeId: "number",
|
|
107
|
+
language: "string",
|
|
108
|
+
ready: "number",
|
|
109
|
+
"+": "reject",
|
|
110
|
+
}).pipe((data) => ({
|
|
111
|
+
nodeId: String(data.nodeId),
|
|
112
|
+
language: data.language,
|
|
113
|
+
ready: Boolean(data.ready),
|
|
114
|
+
}));
|
|
115
|
+
const ChildNodelsCountRowAT = type({
|
|
116
|
+
cnt: "number",
|
|
117
|
+
"+": "reject",
|
|
118
|
+
});
|
|
88
119
|
async function getChildNodelsForAllLanguages(siteContext, options) {
|
|
89
120
|
const parentTypeName = await getTypeNameOf(siteContext, options.parentNodeId);
|
|
90
121
|
const parentDocumentType = getDocumentTypeByName(siteContext.siteSchema, parentTypeName);
|
|
91
122
|
const query = createBaseChildNodelsForAllLanguagesQueryBuilder(siteContext, {
|
|
92
123
|
parentNodeId: options.parentNodeId,
|
|
93
124
|
typeNames: parentDocumentType.regularChildren ?? [],
|
|
94
|
-
}).select(["s.nodeId
|
|
125
|
+
}).select(["s.nodeId", "s.language", "s.ready"]);
|
|
95
126
|
applyRegularChildrenSortingOnQuery(siteContext, {
|
|
96
127
|
query,
|
|
97
128
|
parentDocumentType,
|
|
@@ -102,11 +133,7 @@ async function getChildNodelsForAllLanguages(siteContext, options) {
|
|
|
102
133
|
query.limit(options.pagination.limit).offset(options.pagination.start);
|
|
103
134
|
}
|
|
104
135
|
const rows = await query;
|
|
105
|
-
const formattedRows = rows.map((row) => (
|
|
106
|
-
nodeId: strVal(row.nodeId),
|
|
107
|
-
language: strVal(row.language),
|
|
108
|
-
ready: boolVal(row.ready),
|
|
109
|
-
}));
|
|
136
|
+
const formattedRows = rows.map((row) => ChildNodelsRowAT.assert(row));
|
|
110
137
|
if (options.pagination) {
|
|
111
138
|
let total;
|
|
112
139
|
if (rows.length < options.pagination.limit) {
|
|
@@ -117,8 +144,8 @@ async function getChildNodelsForAllLanguages(siteContext, options) {
|
|
|
117
144
|
parentNodeId: options.parentNodeId,
|
|
118
145
|
typeNames: parentDocumentType.regularChildren ?? [],
|
|
119
146
|
});
|
|
120
|
-
const countResult = await countQuery.count("* as
|
|
121
|
-
total =
|
|
147
|
+
const countResult = await countQuery.count("* as cnt").first();
|
|
148
|
+
total = countResult ? ChildNodelsCountRowAT.assert(countResult).cnt : 0;
|
|
122
149
|
}
|
|
123
150
|
return {
|
|
124
151
|
list: formattedRows,
|
|
@@ -205,9 +232,12 @@ export async function getBreadcrumb(siteContext, tracker, documentId, options =
|
|
|
205
232
|
throw new Error(`cannot get breadcrumb of '${documentId.language}:${documentId.nodeId}'`);
|
|
206
233
|
const result = [];
|
|
207
234
|
for (let d = minDepth; d < depth; ++d) {
|
|
208
|
-
const
|
|
209
|
-
const
|
|
210
|
-
const
|
|
235
|
+
const nodeIdKey = `nodeId${d}`;
|
|
236
|
+
const typeNameKey = `typeName${d}`;
|
|
237
|
+
const titleKey = `title${d}`;
|
|
238
|
+
const nodeId = String(NumberAT.assert(row[nodeIdKey]));
|
|
239
|
+
const typeName = StringAT.assert(row[typeNameKey]);
|
|
240
|
+
const title = row[titleKey] ? StringAT.assert(row[titleKey]) : undefined;
|
|
211
241
|
if (options.ensurePublished) {
|
|
212
242
|
const documentType = getDocumentTypeByName(siteContext.siteSchema, typeName);
|
|
213
243
|
if (!documentTypeHasData(documentType))
|
|
@@ -230,25 +260,27 @@ function queryEnsurePublished(cn, query, d, language) {
|
|
|
230
260
|
.where(`s${d}.ready`, 1)
|
|
231
261
|
.whereRaw(`l${d}.publishDate <= current_timestamp`);
|
|
232
262
|
}
|
|
263
|
+
const OrphanNodeRowAT = type({
|
|
264
|
+
cnt: "number",
|
|
265
|
+
"+": "reject",
|
|
266
|
+
});
|
|
233
267
|
export async function isOrphanNode(cn, nodeId) {
|
|
234
268
|
const row = (await cn("PaNodel as s")
|
|
235
269
|
.count("s.nodeId as cnt")
|
|
236
270
|
.where("s.nodeId", nodeId)
|
|
237
271
|
.first());
|
|
238
|
-
return
|
|
272
|
+
return row ? OrphanNodeRowAT.assert(row).cnt === 0 : true;
|
|
239
273
|
}
|
|
240
274
|
export async function searchDocuments(siteContext, options) {
|
|
241
275
|
const { queryString, language, start, limit } = options;
|
|
242
|
-
const words =
|
|
243
|
-
.split(/\s+/)
|
|
244
|
-
.filter((word) => word.length >= 2);
|
|
276
|
+
const words = queryString.split(/\s+/).filter((word) => word.length >= 2);
|
|
245
277
|
if (words.length === 0)
|
|
246
278
|
return { total: 0, start, items: [] };
|
|
247
279
|
const { rows, total } = await searchText(siteContext, {
|
|
248
|
-
language
|
|
280
|
+
language,
|
|
249
281
|
words,
|
|
250
|
-
start
|
|
251
|
-
limit
|
|
282
|
+
start,
|
|
283
|
+
limit,
|
|
252
284
|
orderBy: options.orderBy,
|
|
253
285
|
});
|
|
254
286
|
const nodelWraps = [];
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nodel.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/nodel/nodel.queries.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { nbVal, strVal } from "@paroi/data-formatters-lib";
|
|
2
1
|
import { ApiError } from "@paroicms/public-server-lib";
|
|
2
|
+
import { type } from "arktype";
|
|
3
3
|
export async function createPartNode(cn, { nodeId, listName, documentNodeId, isOrdered, lastOrderNum, }) {
|
|
4
4
|
await cn("PaPartNode").insert({ nodeId, listName, documentNodeId });
|
|
5
5
|
if (isOrdered) {
|
|
@@ -9,6 +9,16 @@ export async function createPartNode(cn, { nodeId, listName, documentNodeId, isO
|
|
|
9
9
|
});
|
|
10
10
|
}
|
|
11
11
|
}
|
|
12
|
+
const PartNodeShiftRowAT = type({
|
|
13
|
+
parentId: "number",
|
|
14
|
+
listName: "string",
|
|
15
|
+
orderNum: "number",
|
|
16
|
+
"+": "reject",
|
|
17
|
+
}).pipe((r) => ({
|
|
18
|
+
parentId: String(r.parentId),
|
|
19
|
+
listName: r.listName,
|
|
20
|
+
orderNum: r.orderNum,
|
|
21
|
+
}));
|
|
12
22
|
export async function shiftPartNodeOrdersAfterDeletion(cn, nodeId) {
|
|
13
23
|
const row = await cn("PaNode as l")
|
|
14
24
|
.select("l.parentId", "p.listName", "o.orderNum")
|
|
@@ -18,9 +28,7 @@ export async function shiftPartNodeOrdersAfterDeletion(cn, nodeId) {
|
|
|
18
28
|
.first();
|
|
19
29
|
if (!row)
|
|
20
30
|
throw new ApiError(`part-node '${nodeId}' not found`, 404);
|
|
21
|
-
const parentId =
|
|
22
|
-
const listName = strVal(row.listName);
|
|
23
|
-
const orderNum = nbVal(row.orderNum);
|
|
31
|
+
const { parentId, listName, orderNum } = PartNodeShiftRowAT.assert(row);
|
|
24
32
|
await cn("PaOrderedNode")
|
|
25
33
|
.whereRaw("orderNum > ?", [orderNum])
|
|
26
34
|
.whereExists(function () {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"part-node.queries.js","sourceRoot":"","sources":["../../../src/admin-backend/part/part-node.queries.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,6BAA6B,CAAC;AACvD,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAG/B,MAAM,CAAC,KAAK,UAAU,cAAc,CAClC,EAA2B,EAC3B,EACE,MAAM,EACN,QAAQ,EACR,cAAc,EACd,SAAS,EACT,YAAY,GAOb;IAED,MAAM,EAAE,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,CAAC,CAAC;IAEpE,IAAI,SAAS,EAAE,CAAC;QACd,MAAM,EAAE,CAAC,eAAe,CAAC,CAAC,MAAM,CAAC;YAC/B,MAAM;YACN,QAAQ,EAAE,CAAC,YAAY,IAAI,CAAC,CAAC,GAAG,CAAC;SAClC,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,kBAAkB,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,QAAQ,EAAE,QAAQ;IAClB,GAAG,EAAE,QAAQ;CACd,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;IACpB,QAAQ,EAAE,CAAC,CAAC,QAAQ;CACrB,CAAC,CAAC,CAAC;AAEJ,MAAM,CAAC,KAAK,UAAU,gCAAgC,CACpD,EAA2B,EAC3B,MAAc;IAEd,MAAM,GAAG,GAAoB,MAAM,EAAE,CAAC,aAAa,CAAC;SACjD,MAAM,CAAC,YAAY,EAAE,YAAY,EAAE,YAAY,CAAC;SAChD,SAAS,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC;SAChD,SAAS,CAAC,oBAAoB,EAAE,UAAU,EAAE,MAAM,CAAC;SACnD,KAAK,CAAC,MAAM,EAAE,MAAM,CAAC;SACrB,KAAK,EAAE,CAAC;IAEX,IAAI,CAAC,GAAG;QAAE,MAAM,IAAI,QAAQ,CAAC,cAAc,MAAM,aAAa,EAAE,GAAG,CAAC,CAAC;IAErE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;IAExE,MAAM,EAAE,CAAC,eAAe,CAAC;SACtB,QAAQ,CAAC,cAAc,EAAE,CAAC,QAAQ,CAAC,CAAC;SACpC,WAAW,CAAC;QACX,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;aACX,IAAI,CAAC,aAAa,CAAC;aACnB,SAAS,CAAC,iBAAiB,EAAE,UAAU,EAAE,MAAM,CAAC;aAChD,QAAQ,CAAC,6BAA6B,CAAC;aACvC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC;aAChC,QAAQ,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;IACtC,CAAC,CAAC;SACD,MAAM,CAAC;QACN,QAAQ,EAAE,EAAE,CAAC,GAAG,CAAC,cAAc,CAAC;KACjC,CAAC,CAAC;AACP,CAAC"}
|