@byline/core 0.9.3
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/LICENSE +373 -0
- package/README.md +17 -0
- package/dist/@types/admin-types.d.ts +275 -0
- package/dist/@types/admin-types.d.ts.map +1 -0
- package/dist/@types/admin-types.js +18 -0
- package/dist/@types/admin-types.js.map +1 -0
- package/dist/@types/collection-types.d.ts +816 -0
- package/dist/@types/collection-types.d.ts.map +1 -0
- package/dist/@types/collection-types.js +217 -0
- package/dist/@types/collection-types.js.map +1 -0
- package/dist/@types/db-types.d.ts +463 -0
- package/dist/@types/db-types.d.ts.map +1 -0
- package/dist/@types/db-types.js +2 -0
- package/dist/@types/db-types.js.map +1 -0
- package/dist/@types/field-data-types.d.ts +147 -0
- package/dist/@types/field-data-types.d.ts.map +1 -0
- package/dist/@types/field-data-types.js +38 -0
- package/dist/@types/field-data-types.js.map +1 -0
- package/dist/@types/field-types.d.ts +579 -0
- package/dist/@types/field-types.d.ts.map +1 -0
- package/dist/@types/field-types.js +32 -0
- package/dist/@types/field-types.js.map +1 -0
- package/dist/@types/index.d.ts +18 -0
- package/dist/@types/index.d.ts.map +1 -0
- package/dist/@types/index.js +18 -0
- package/dist/@types/index.js.map +1 -0
- package/dist/@types/populate-types.d.ts +54 -0
- package/dist/@types/populate-types.d.ts.map +1 -0
- package/dist/@types/populate-types.js +9 -0
- package/dist/@types/populate-types.js.map +1 -0
- package/dist/@types/query-predicate.d.ts +74 -0
- package/dist/@types/query-predicate.d.ts.map +1 -0
- package/dist/@types/query-predicate.js +9 -0
- package/dist/@types/query-predicate.js.map +1 -0
- package/dist/@types/site-config.d.ts +212 -0
- package/dist/@types/site-config.d.ts.map +1 -0
- package/dist/@types/site-config.js +9 -0
- package/dist/@types/site-config.js.map +1 -0
- package/dist/@types/storage-types.d.ts +86 -0
- package/dist/@types/storage-types.d.ts.map +1 -0
- package/dist/@types/storage-types.js +9 -0
- package/dist/@types/storage-types.js.map +1 -0
- package/dist/@types/store-types.d.ts +134 -0
- package/dist/@types/store-types.d.ts.map +1 -0
- package/dist/@types/store-types.js +24 -0
- package/dist/@types/store-types.js.map +1 -0
- package/dist/@types/type-utils.d.ts +17 -0
- package/dist/@types/type-utils.d.ts.map +1 -0
- package/dist/@types/type-utils.js +9 -0
- package/dist/@types/type-utils.js.map +1 -0
- package/dist/auth/apply-before-read.d.ts +36 -0
- package/dist/auth/apply-before-read.d.ts.map +1 -0
- package/dist/auth/apply-before-read.js +68 -0
- package/dist/auth/apply-before-read.js.map +1 -0
- package/dist/auth/apply-before-read.test.node.d.ts +9 -0
- package/dist/auth/apply-before-read.test.node.d.ts.map +1 -0
- package/dist/auth/apply-before-read.test.node.js +144 -0
- package/dist/auth/apply-before-read.test.node.js.map +1 -0
- package/dist/auth/assert-actor-can-perform.d.ts +39 -0
- package/dist/auth/assert-actor-can-perform.d.ts.map +1 -0
- package/dist/auth/assert-actor-can-perform.js +64 -0
- package/dist/auth/assert-actor-can-perform.js.map +1 -0
- package/dist/auth/assert-actor-can-perform.test.node.d.ts +9 -0
- package/dist/auth/assert-actor-can-perform.test.node.d.ts.map +1 -0
- package/dist/auth/assert-actor-can-perform.test.node.js +119 -0
- package/dist/auth/assert-actor-can-perform.test.node.js.map +1 -0
- package/dist/auth/index.d.ts +11 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +11 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/register-collection-abilities.d.ts +40 -0
- package/dist/auth/register-collection-abilities.d.ts.map +1 -0
- package/dist/auth/register-collection-abilities.js +87 -0
- package/dist/auth/register-collection-abilities.js.map +1 -0
- package/dist/auth/register-collection-abilities.test.node.d.ts +9 -0
- package/dist/auth/register-collection-abilities.test.node.d.ts.map +1 -0
- package/dist/auth/register-collection-abilities.test.node.js +124 -0
- package/dist/auth/register-collection-abilities.test.node.js.map +1 -0
- package/dist/config/config.d.ts +10 -0
- package/dist/config/config.d.ts.map +1 -0
- package/dist/config/config.js +108 -0
- package/dist/config/config.js.map +1 -0
- package/dist/config/routes.d.ts +16 -0
- package/dist/config/routes.d.ts.map +1 -0
- package/dist/config/routes.js +26 -0
- package/dist/config/routes.js.map +1 -0
- package/dist/config/validate-admin-configs.d.ts +33 -0
- package/dist/config/validate-admin-configs.d.ts.map +1 -0
- package/dist/config/validate-admin-configs.js +250 -0
- package/dist/config/validate-admin-configs.js.map +1 -0
- package/dist/config/validate-admin-configs.test.node.d.ts +9 -0
- package/dist/config/validate-admin-configs.test.node.d.ts.map +1 -0
- package/dist/config/validate-admin-configs.test.node.js +224 -0
- package/dist/config/validate-admin-configs.test.node.js.map +1 -0
- package/dist/config/validate-collections.d.ts +33 -0
- package/dist/config/validate-collections.d.ts.map +1 -0
- package/dist/config/validate-collections.js +70 -0
- package/dist/config/validate-collections.js.map +1 -0
- package/dist/config/validate-collections.test.node.d.ts +9 -0
- package/dist/config/validate-collections.test.node.d.ts.map +1 -0
- package/dist/config/validate-collections.test.node.js +149 -0
- package/dist/config/validate-collections.test.node.js.map +1 -0
- package/dist/core.d.ts +89 -0
- package/dist/core.d.ts.map +1 -0
- package/dist/core.js +99 -0
- package/dist/core.js.map +1 -0
- package/dist/defaults/default-values.d.ts +13 -0
- package/dist/defaults/default-values.d.ts.map +1 -0
- package/dist/defaults/default-values.js +60 -0
- package/dist/defaults/default-values.js.map +1 -0
- package/dist/index.d.ts +20 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/errors.d.ts +98 -0
- package/dist/lib/errors.d.ts.map +1 -0
- package/dist/lib/errors.js +134 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/logger.d.ts +62 -0
- package/dist/lib/logger.d.ts.map +1 -0
- package/dist/lib/logger.js +120 -0
- package/dist/lib/logger.js.map +1 -0
- package/dist/lib/registry.d.ts +65 -0
- package/dist/lib/registry.d.ts.map +1 -0
- package/dist/lib/registry.js +133 -0
- package/dist/lib/registry.js.map +1 -0
- package/dist/logger/index.d.ts +3 -0
- package/dist/logger/index.d.ts.map +1 -0
- package/dist/logger/index.js +3 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/patches/apply-patches.d.ts +21 -0
- package/dist/patches/apply-patches.d.ts.map +1 -0
- package/dist/patches/apply-patches.js +357 -0
- package/dist/patches/apply-patches.js.map +1 -0
- package/dist/patches/index.d.ts +3 -0
- package/dist/patches/index.d.ts.map +1 -0
- package/dist/patches/index.js +4 -0
- package/dist/patches/index.js.map +1 -0
- package/dist/patches/patch-types.d.ts +82 -0
- package/dist/patches/patch-types.d.ts.map +1 -0
- package/dist/patches/patch-types.js +3 -0
- package/dist/patches/patch-types.js.map +1 -0
- package/dist/patches/patch.test.node.d.ts +2 -0
- package/dist/patches/patch.test.node.d.ts.map +1 -0
- package/dist/patches/patch.test.node.js +193 -0
- package/dist/patches/patch.test.node.js.map +1 -0
- package/dist/query/parse-where.d.ts +100 -0
- package/dist/query/parse-where.d.ts.map +1 -0
- package/dist/query/parse-where.js +352 -0
- package/dist/query/parse-where.js.map +1 -0
- package/dist/query/parse-where.test.node.d.ts +9 -0
- package/dist/query/parse-where.test.node.d.ts.map +1 -0
- package/dist/query/parse-where.test.node.js +581 -0
- package/dist/query/parse-where.test.node.js.map +1 -0
- package/dist/schemas/zod/builder.d.ts +466 -0
- package/dist/schemas/zod/builder.d.ts.map +1 -0
- package/dist/schemas/zod/builder.js +276 -0
- package/dist/schemas/zod/builder.js.map +1 -0
- package/dist/schemas/zod/cache.d.ts +14 -0
- package/dist/schemas/zod/cache.d.ts.map +1 -0
- package/dist/schemas/zod/cache.js +40 -0
- package/dist/schemas/zod/cache.js.map +1 -0
- package/dist/schemas/zod/index.d.ts +4 -0
- package/dist/schemas/zod/index.d.ts.map +1 -0
- package/dist/schemas/zod/index.js +4 -0
- package/dist/schemas/zod/index.js.map +1 -0
- package/dist/schemas/zod/types.d.ts +13 -0
- package/dist/schemas/zod/types.d.ts.map +1 -0
- package/dist/schemas/zod/types.js +2 -0
- package/dist/schemas/zod/types.js.map +1 -0
- package/dist/services/collection-bootstrap.d.ts +46 -0
- package/dist/services/collection-bootstrap.d.ts.map +1 -0
- package/dist/services/collection-bootstrap.js +108 -0
- package/dist/services/collection-bootstrap.js.map +1 -0
- package/dist/services/collection-bootstrap.test.node.d.ts +9 -0
- package/dist/services/collection-bootstrap.test.node.d.ts.map +1 -0
- package/dist/services/collection-bootstrap.test.node.js +208 -0
- package/dist/services/collection-bootstrap.test.node.js.map +1 -0
- package/dist/services/document-lifecycle.d.ts +245 -0
- package/dist/services/document-lifecycle.d.ts.map +1 -0
- package/dist/services/document-lifecycle.js +481 -0
- package/dist/services/document-lifecycle.js.map +1 -0
- package/dist/services/document-lifecycle.test.node.d.ts +9 -0
- package/dist/services/document-lifecycle.test.node.d.ts.map +1 -0
- package/dist/services/document-lifecycle.test.node.js +781 -0
- package/dist/services/document-lifecycle.test.node.js.map +1 -0
- package/dist/services/document-read.d.ts +26 -0
- package/dist/services/document-read.d.ts.map +1 -0
- package/dist/services/document-read.js +60 -0
- package/dist/services/document-read.js.map +1 -0
- package/dist/services/field-upload.d.ts +100 -0
- package/dist/services/field-upload.d.ts.map +1 -0
- package/dist/services/field-upload.js +328 -0
- package/dist/services/field-upload.js.map +1 -0
- package/dist/services/field-upload.test.node.d.ts +9 -0
- package/dist/services/field-upload.test.node.d.ts.map +1 -0
- package/dist/services/field-upload.test.node.js +337 -0
- package/dist/services/field-upload.test.node.js.map +1 -0
- package/dist/services/index.d.ts +10 -0
- package/dist/services/index.d.ts.map +1 -0
- package/dist/services/index.js +11 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/populate.d.ts +299 -0
- package/dist/services/populate.d.ts.map +1 -0
- package/dist/services/populate.js +484 -0
- package/dist/services/populate.js.map +1 -0
- package/dist/services/populate.test.node.d.ts +9 -0
- package/dist/services/populate.test.node.d.ts.map +1 -0
- package/dist/services/populate.test.node.js +910 -0
- package/dist/services/populate.test.node.js.map +1 -0
- package/dist/services/relation-projection.d.ts +52 -0
- package/dist/services/relation-projection.d.ts.map +1 -0
- package/dist/services/relation-projection.js +81 -0
- package/dist/services/relation-projection.js.map +1 -0
- package/dist/services/richtext-populate.d.ts +87 -0
- package/dist/services/richtext-populate.d.ts.map +1 -0
- package/dist/services/richtext-populate.js +189 -0
- package/dist/services/richtext-populate.js.map +1 -0
- package/dist/services/richtext-populate.test.node.d.ts +9 -0
- package/dist/services/richtext-populate.test.node.d.ts.map +1 -0
- package/dist/services/richtext-populate.test.node.js +197 -0
- package/dist/services/richtext-populate.test.node.js.map +1 -0
- package/dist/storage/collection-fingerprint.d.ts +21 -0
- package/dist/storage/collection-fingerprint.d.ts.map +1 -0
- package/dist/storage/collection-fingerprint.js +172 -0
- package/dist/storage/collection-fingerprint.js.map +1 -0
- package/dist/storage/collection-fingerprint.test.node.d.ts +9 -0
- package/dist/storage/collection-fingerprint.test.node.d.ts.map +1 -0
- package/dist/storage/collection-fingerprint.test.node.js +256 -0
- package/dist/storage/collection-fingerprint.test.node.js.map +1 -0
- package/dist/storage/field-store-map.d.ts +59 -0
- package/dist/storage/field-store-map.d.ts.map +1 -0
- package/dist/storage/field-store-map.js +75 -0
- package/dist/storage/field-store-map.js.map +1 -0
- package/dist/storage/field-store-map.test.node.d.ts +9 -0
- package/dist/storage/field-store-map.test.node.d.ts.map +1 -0
- package/dist/storage/field-store-map.test.node.js +117 -0
- package/dist/storage/field-store-map.test.node.js.map +1 -0
- package/dist/storage/index.d.ts +10 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +10 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/utils/normalise-dates.d.ts +15 -0
- package/dist/utils/normalise-dates.d.ts.map +1 -0
- package/dist/utils/normalise-dates.js +22 -0
- package/dist/utils/normalise-dates.js.map +1 -0
- package/dist/utils/slugify.d.ts +56 -0
- package/dist/utils/slugify.d.ts.map +1 -0
- package/dist/utils/slugify.js +91 -0
- package/dist/utils/slugify.js.map +1 -0
- package/dist/utils/slugify.test.node.d.ts +9 -0
- package/dist/utils/slugify.test.node.d.ts.map +1 -0
- package/dist/utils/slugify.test.node.js +86 -0
- package/dist/utils/slugify.test.node.js.map +1 -0
- package/dist/utils/storage-utils.d.ts +36 -0
- package/dist/utils/storage-utils.d.ts.map +1 -0
- package/dist/utils/storage-utils.js +38 -0
- package/dist/utils/storage-utils.js.map +1 -0
- package/dist/utils/utils.general.d.ts +64 -0
- package/dist/utils/utils.general.d.ts.map +1 -0
- package/dist/utils/utils.general.js +219 -0
- package/dist/utils/utils.general.js.map +1 -0
- package/dist/validation/index.d.ts +9 -0
- package/dist/validation/index.d.ts.map +1 -0
- package/dist/validation/index.js +9 -0
- package/dist/validation/index.js.map +1 -0
- package/dist/validation/shared.d.ts +36 -0
- package/dist/validation/shared.d.ts.map +1 -0
- package/dist/validation/shared.js +42 -0
- package/dist/validation/shared.js.map +1 -0
- package/dist/workflow/index.d.ts +2 -0
- package/dist/workflow/index.d.ts.map +1 -0
- package/dist/workflow/index.js +3 -0
- package/dist/workflow/index.js.map +1 -0
- package/dist/workflow/workflow.d.ts +40 -0
- package/dist/workflow/workflow.d.ts.map +1 -0
- package/dist/workflow/workflow.js +96 -0
- package/dist/workflow/workflow.js.map +1 -0
- package/dist/workflow/workflow.test.node.d.ts +2 -0
- package/dist/workflow/workflow.test.node.d.ts.map +1 -0
- package/dist/workflow/workflow.test.node.js +198 -0
- package/dist/workflow/workflow.test.node.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"populate.test.node.js","sourceRoot":"","sources":["../../src/services/populate.test.node.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Relation projection helpers.
|
|
10
|
+
*
|
|
11
|
+
* Translate a source collection's relation fields into a `PopulateMap`
|
|
12
|
+
* projection that fetches just enough data from each target to render
|
|
13
|
+
* a relation-summary tile on the admin edit view (picker columns,
|
|
14
|
+
* `useAsTitle`, plus an optional source-side `displayField` override).
|
|
15
|
+
*
|
|
16
|
+
* Consumed by the admin webapp's edit-route server fn so relation tiles
|
|
17
|
+
* arrive pre-hydrated on first paint — no client-side fetch per relation.
|
|
18
|
+
*/
|
|
19
|
+
import type { CollectionAdminConfig, CollectionDefinition, FieldSet, RelationField } from '../@types/index.js';
|
|
20
|
+
import type { PopulateMap } from './populate.js';
|
|
21
|
+
/**
|
|
22
|
+
* Union of the target-collection field names needed to render a
|
|
23
|
+
* relation-summary tile for the given source relation field.
|
|
24
|
+
*
|
|
25
|
+
* - `sourceField.displayField` (explicit per-relation override)
|
|
26
|
+
* - target's `useAsTitle`
|
|
27
|
+
* - target's first declared text field (safety fallback)
|
|
28
|
+
* - every `picker[].fieldName` on the target admin config that maps
|
|
29
|
+
* to a real schema field (picker columns may reference metadata
|
|
30
|
+
* like `status` or `updated_at` which ride on the document row
|
|
31
|
+
* and don't need a projection entry)
|
|
32
|
+
*/
|
|
33
|
+
export declare function resolveRelationProjection(sourceField: RelationField, targetDef: CollectionDefinition | null, targetAdmin: CollectionAdminConfig | null): string[];
|
|
34
|
+
export type RelationTargetResolver = (targetPath: string) => {
|
|
35
|
+
def: CollectionDefinition | null;
|
|
36
|
+
admin: CollectionAdminConfig | null;
|
|
37
|
+
};
|
|
38
|
+
/**
|
|
39
|
+
* Walk a source collection's `FieldSet` (recursing into `group`, `array`,
|
|
40
|
+
* and `blocks`), locate every `RelationField`, and produce a `PopulateMap`
|
|
41
|
+
* keyed by relation field name with a `{ select }` projection suitable
|
|
42
|
+
* for rendering the summary tile on the admin edit view.
|
|
43
|
+
*
|
|
44
|
+
* Relation field names must be unique within the source schema; if the
|
|
45
|
+
* same name appears twice with different targets the first wins.
|
|
46
|
+
*
|
|
47
|
+
* Relations whose target is unknown fall back to `true` (default
|
|
48
|
+
* projection — identity field + row metadata) so populate still attaches
|
|
49
|
+
* *something* to the leaf.
|
|
50
|
+
*/
|
|
51
|
+
export declare function buildRelationSummaryPopulateMap(fields: FieldSet, resolve: RelationTargetResolver): PopulateMap;
|
|
52
|
+
//# sourceMappingURL=relation-projection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-projection.d.ts","sourceRoot":"","sources":["../../src/services/relation-projection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EAEpB,QAAQ,EACR,aAAa,EACd,MAAM,oBAAoB,CAAA;AAC3B,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,WAAW,EAAE,aAAa,EAC1B,SAAS,EAAE,oBAAoB,GAAG,IAAI,EACtC,WAAW,EAAE,qBAAqB,GAAG,IAAI,GACxC,MAAM,EAAE,CAaV;AAED,MAAM,MAAM,sBAAsB,GAAG,CAAC,UAAU,EAAE,MAAM,KAAK;IAC3D,GAAG,EAAE,oBAAoB,GAAG,IAAI,CAAA;IAChC,KAAK,EAAE,qBAAqB,GAAG,IAAI,CAAA;CACpC,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,+BAA+B,CAC7C,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,sBAAsB,GAC9B,WAAW,CAIb"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Union of the target-collection field names needed to render a
|
|
10
|
+
* relation-summary tile for the given source relation field.
|
|
11
|
+
*
|
|
12
|
+
* - `sourceField.displayField` (explicit per-relation override)
|
|
13
|
+
* - target's `useAsTitle`
|
|
14
|
+
* - target's first declared text field (safety fallback)
|
|
15
|
+
* - every `picker[].fieldName` on the target admin config that maps
|
|
16
|
+
* to a real schema field (picker columns may reference metadata
|
|
17
|
+
* like `status` or `updated_at` which ride on the document row
|
|
18
|
+
* and don't need a projection entry)
|
|
19
|
+
*/
|
|
20
|
+
export function resolveRelationProjection(sourceField, targetDef, targetAdmin) {
|
|
21
|
+
const out = new Set();
|
|
22
|
+
if (sourceField.displayField)
|
|
23
|
+
out.add(sourceField.displayField);
|
|
24
|
+
if (targetDef?.useAsTitle)
|
|
25
|
+
out.add(targetDef.useAsTitle);
|
|
26
|
+
const firstText = targetDef?.fields.find((f) => f.type === 'text')?.name;
|
|
27
|
+
if (firstText)
|
|
28
|
+
out.add(firstText);
|
|
29
|
+
if (targetAdmin?.picker) {
|
|
30
|
+
for (const col of targetAdmin.picker) {
|
|
31
|
+
const name = String(col.fieldName);
|
|
32
|
+
if (targetDef?.fields.some((f) => f.name === name))
|
|
33
|
+
out.add(name);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
return Array.from(out);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Walk a source collection's `FieldSet` (recursing into `group`, `array`,
|
|
40
|
+
* and `blocks`), locate every `RelationField`, and produce a `PopulateMap`
|
|
41
|
+
* keyed by relation field name with a `{ select }` projection suitable
|
|
42
|
+
* for rendering the summary tile on the admin edit view.
|
|
43
|
+
*
|
|
44
|
+
* Relation field names must be unique within the source schema; if the
|
|
45
|
+
* same name appears twice with different targets the first wins.
|
|
46
|
+
*
|
|
47
|
+
* Relations whose target is unknown fall back to `true` (default
|
|
48
|
+
* projection — identity field + row metadata) so populate still attaches
|
|
49
|
+
* *something* to the leaf.
|
|
50
|
+
*/
|
|
51
|
+
export function buildRelationSummaryPopulateMap(fields, resolve) {
|
|
52
|
+
const map = {};
|
|
53
|
+
walkFields(fields, map, resolve);
|
|
54
|
+
return map;
|
|
55
|
+
}
|
|
56
|
+
function walkFields(fields, map, resolve) {
|
|
57
|
+
for (const field of fields) {
|
|
58
|
+
switch (field.type) {
|
|
59
|
+
case 'relation': {
|
|
60
|
+
if (map[field.name] !== undefined)
|
|
61
|
+
break;
|
|
62
|
+
const { def, admin } = resolve(field.targetCollection);
|
|
63
|
+
const select = resolveRelationProjection(field, def, admin);
|
|
64
|
+
map[field.name] = select.length > 0 ? { select } : true;
|
|
65
|
+
break;
|
|
66
|
+
}
|
|
67
|
+
case 'group':
|
|
68
|
+
case 'array':
|
|
69
|
+
walkFields(field.fields, map, resolve);
|
|
70
|
+
break;
|
|
71
|
+
case 'blocks':
|
|
72
|
+
for (const block of field.blocks) {
|
|
73
|
+
walkFields(block.fields, map, resolve);
|
|
74
|
+
}
|
|
75
|
+
break;
|
|
76
|
+
default:
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=relation-projection.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"relation-projection.js","sourceRoot":"","sources":["../../src/services/relation-projection.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAuBH;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,yBAAyB,CACvC,WAA0B,EAC1B,SAAsC,EACtC,WAAyC;IAEzC,MAAM,GAAG,GAAG,IAAI,GAAG,EAAU,CAAA;IAC7B,IAAI,WAAW,CAAC,YAAY;QAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC,YAAY,CAAC,CAAA;IAC/D,IAAI,SAAS,EAAE,UAAU;QAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,UAAU,CAAC,CAAA;IACxD,MAAM,SAAS,GAAG,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,EAAE,IAAI,CAAA;IACxE,IAAI,SAAS;QAAE,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;IACjC,IAAI,WAAW,EAAE,MAAM,EAAE,CAAC;QACxB,KAAK,MAAM,GAAG,IAAI,WAAW,CAAC,MAAM,EAAE,CAAC;YACrC,MAAM,IAAI,GAAG,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC,CAAA;YAClC,IAAI,SAAS,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;gBAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,CAAA;QACnE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;AACxB,CAAC;AAOD;;;;;;;;;;;;GAYG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAgB,EAChB,OAA+B;IAE/B,MAAM,GAAG,GAAgB,EAAE,CAAA;IAC3B,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;IAChC,OAAO,GAAG,CAAA;AACZ,CAAC;AAED,SAAS,UAAU,CAAC,MAAgB,EAAE,GAAgB,EAAE,OAA+B;IACrF,KAAK,MAAM,KAAK,IAAI,MAA0B,EAAE,CAAC;QAC/C,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;YACnB,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,IAAI,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,SAAS;oBAAE,MAAK;gBACxC,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;gBACtD,MAAM,MAAM,GAAG,yBAAyB,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,CAAC,CAAA;gBAC3D,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAA;gBACvD,MAAK;YACP,CAAC;YACD,KAAK,OAAO,CAAC;YACb,KAAK,OAAO;gBACV,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;gBACtC,MAAK;YACP,KAAK,QAAQ;gBACX,KAAK,MAAM,KAAK,IAAI,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,UAAU,CAAC,KAAK,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,CAAA;gBACxC,CAAC;gBACD,MAAK;YACP;gBACE,MAAK;QACT,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Richtext populate service — walks a reconstructed document, finds every
|
|
10
|
+
* rich-text leaf (including those nested inside `group` / `array` /
|
|
11
|
+
* `blocks` structures), gates each leaf by its `populateRelationsOnRead`
|
|
12
|
+
* flag, and dispatches to the registered richtext populate adapter.
|
|
13
|
+
*
|
|
14
|
+
* Slots into the read pipeline alongside `populateDocuments`:
|
|
15
|
+
*
|
|
16
|
+
* findDocuments → reconstruct → populateDocuments → populateRichTextFields → afterRead
|
|
17
|
+
*
|
|
18
|
+
* The same `ReadContext` flows through both populate phases, so dedup /
|
|
19
|
+
* cycle protection / read-budget enforcement covers rich-text fan-out
|
|
20
|
+
* automatically and any nested reads the adapter performs.
|
|
21
|
+
*
|
|
22
|
+
* The adapter is invoked once per leaf rather than once per document so
|
|
23
|
+
* each call has a precise `fieldPath` for error messages and so future
|
|
24
|
+
* adapters can implement per-leaf caching if needed.
|
|
25
|
+
*/
|
|
26
|
+
import { type FieldSet, type RichTextField, type RichTextPopulateFn } from '../@types/field-types.js';
|
|
27
|
+
import type { CollectionDefinition } from '../@types/collection-types.js';
|
|
28
|
+
import type { ReadContext } from '../@types/index.js';
|
|
29
|
+
/**
|
|
30
|
+
* One rich-text leaf yielded by `collectRichTextLeaves`. The walker hands
|
|
31
|
+
* back a reference to the *parent container* (`parent[key]`) rather than
|
|
32
|
+
* the value alone so adapters that want to *replace* the value (rather
|
|
33
|
+
* than mutate it in place) have a clean way to do so.
|
|
34
|
+
*/
|
|
35
|
+
export interface RichTextLeaf {
|
|
36
|
+
field: RichTextField;
|
|
37
|
+
value: unknown;
|
|
38
|
+
fieldPath: string;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Walk a field set and a matching reconstructed data tree in lockstep,
|
|
42
|
+
* yielding every rich-text leaf the schema declares regardless of nesting
|
|
43
|
+
* depth. Recurses through `group` (nested object), `array` (array of
|
|
44
|
+
* sub-objects), and `blocks` (array of `_type`-discriminated sub-objects).
|
|
45
|
+
*
|
|
46
|
+
* Tolerates missing data — a `group` whose data is absent simply yields
|
|
47
|
+
* nothing under that subtree, rather than throwing. The schema is the
|
|
48
|
+
* source of truth for *where* a richText might be; the data is the source
|
|
49
|
+
* of truth for *whether one is currently set*.
|
|
50
|
+
*/
|
|
51
|
+
export declare function collectRichTextLeaves(fields: FieldSet, data: Record<string, any> | null | undefined, pathPrefix?: string): Generator<RichTextLeaf, void, void>;
|
|
52
|
+
export interface PopulateRichTextFieldsOptions {
|
|
53
|
+
/** Source collection's schema fields (used to drive the leaf walk). */
|
|
54
|
+
fields: FieldSet;
|
|
55
|
+
collectionPath: string;
|
|
56
|
+
documents: Array<Record<string, any>>;
|
|
57
|
+
/** Registered server-side populate function from `ServerConfig`. */
|
|
58
|
+
populate: RichTextPopulateFn;
|
|
59
|
+
readContext: ReadContext;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Resolve the effective `populateRelationsOnRead` for a richText field.
|
|
63
|
+
* - explicit `true` / `false` wins
|
|
64
|
+
* - otherwise default-derived as `!embedRelationsOnSave`
|
|
65
|
+
* - `embedRelationsOnSave` itself defaults to `true`, so the overall
|
|
66
|
+
* default for `populateRelationsOnRead` is `false` (snapshot mode).
|
|
67
|
+
*/
|
|
68
|
+
export declare function resolvePopulateOnRead(field: RichTextField): boolean;
|
|
69
|
+
/**
|
|
70
|
+
* For every document, walk its rich-text leaves and call the registered
|
|
71
|
+
* populate function for each leaf whose effective `populateRelationsOnRead`
|
|
72
|
+
* is `true`. Mutates document `fields` in place.
|
|
73
|
+
*/
|
|
74
|
+
export declare function populateRichTextFields(options: PopulateRichTextFieldsOptions): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Validate every richText field across every collection. Throws on:
|
|
77
|
+
* 1. `embedRelationsOnSave === false && populateRelationsOnRead === false`
|
|
78
|
+
* — would be unrenderable.
|
|
79
|
+
* 2. Effective `populateRelationsOnRead === true` and no server-side
|
|
80
|
+
* `RichTextPopulateFn` registered — populate would be a no-op and
|
|
81
|
+
* the field would render with stale (or empty) embedded data.
|
|
82
|
+
*
|
|
83
|
+
* Called once at `initBylineCore()` time. Fail-fast at boot is the right
|
|
84
|
+
* posture; the alternative is a silent broken renderer at request time.
|
|
85
|
+
*/
|
|
86
|
+
export declare function validateRichTextFieldFlags(collections: CollectionDefinition[], hasServerAdapter: boolean): void;
|
|
87
|
+
//# sourceMappingURL=richtext-populate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-populate.d.ts","sourceRoot":"","sources":["../../src/services/richtext-populate.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAEL,KAAK,QAAQ,EAIb,KAAK,aAAa,EAClB,KAAK,kBAAkB,EACxB,MAAM,0BAA0B,CAAA;AACjC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,+BAA+B,CAAA;AACzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAA;AAErD;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,aAAa,CAAA;IACpB,KAAK,EAAE,OAAO,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAED;;;;;;;;;;GAUG;AACH,wBAAiB,qBAAqB,CACpC,MAAM,EAAE,QAAQ,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,GAAG,SAAS,EAC5C,UAAU,SAAK,GACd,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,IAAI,CAAC,CAMrC;AAkDD,MAAM,WAAW,6BAA6B;IAC5C,uEAAuE;IACvE,MAAM,EAAE,QAAQ,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAAA;IACrC,oEAAoE;IACpE,QAAQ,EAAE,kBAAkB,CAAA;IAC5B,WAAW,EAAE,WAAW,CAAA;CACzB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAInE;AAED;;;;GAIG;AACH,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,IAAI,CAAC,CAcf;AAyCD;;;;;;;;;;GAUG;AACH,wBAAgB,0BAA0B,CACxC,WAAW,EAAE,oBAAoB,EAAE,EACnC,gBAAgB,EAAE,OAAO,GACxB,IAAI,CA8BN"}
|
|
@@ -0,0 +1,189 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Richtext populate service — walks a reconstructed document, finds every
|
|
10
|
+
* rich-text leaf (including those nested inside `group` / `array` /
|
|
11
|
+
* `blocks` structures), gates each leaf by its `populateRelationsOnRead`
|
|
12
|
+
* flag, and dispatches to the registered richtext populate adapter.
|
|
13
|
+
*
|
|
14
|
+
* Slots into the read pipeline alongside `populateDocuments`:
|
|
15
|
+
*
|
|
16
|
+
* findDocuments → reconstruct → populateDocuments → populateRichTextFields → afterRead
|
|
17
|
+
*
|
|
18
|
+
* The same `ReadContext` flows through both populate phases, so dedup /
|
|
19
|
+
* cycle protection / read-budget enforcement covers rich-text fan-out
|
|
20
|
+
* automatically and any nested reads the adapter performs.
|
|
21
|
+
*
|
|
22
|
+
* The adapter is invoked once per leaf rather than once per document so
|
|
23
|
+
* each call has a precise `fieldPath` for error messages and so future
|
|
24
|
+
* adapters can implement per-leaf caching if needed.
|
|
25
|
+
*/
|
|
26
|
+
import { isArrayField, isBlocksField, isGroupField, } from '../@types/field-types.js';
|
|
27
|
+
/**
|
|
28
|
+
* Walk a field set and a matching reconstructed data tree in lockstep,
|
|
29
|
+
* yielding every rich-text leaf the schema declares regardless of nesting
|
|
30
|
+
* depth. Recurses through `group` (nested object), `array` (array of
|
|
31
|
+
* sub-objects), and `blocks` (array of `_type`-discriminated sub-objects).
|
|
32
|
+
*
|
|
33
|
+
* Tolerates missing data — a `group` whose data is absent simply yields
|
|
34
|
+
* nothing under that subtree, rather than throwing. The schema is the
|
|
35
|
+
* source of truth for *where* a richText might be; the data is the source
|
|
36
|
+
* of truth for *whether one is currently set*.
|
|
37
|
+
*/
|
|
38
|
+
export function* collectRichTextLeaves(fields, data, pathPrefix = '') {
|
|
39
|
+
if (data == null)
|
|
40
|
+
return;
|
|
41
|
+
for (const field of fields) {
|
|
42
|
+
const here = pathPrefix === '' ? field.name : `${pathPrefix}.${field.name}`;
|
|
43
|
+
yield* walkField(field, data[field.name], here);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function* walkField(field, value, fieldPath) {
|
|
47
|
+
if (field.type === 'richText') {
|
|
48
|
+
if (value === undefined || value === null)
|
|
49
|
+
return;
|
|
50
|
+
yield { field, value, fieldPath };
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (isGroupField(field)) {
|
|
54
|
+
if (value == null || typeof value !== 'object')
|
|
55
|
+
return;
|
|
56
|
+
yield* collectRichTextLeaves(field.fields, value, fieldPath);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
if (isArrayField(field)) {
|
|
60
|
+
if (!Array.isArray(value))
|
|
61
|
+
return;
|
|
62
|
+
for (let i = 0; i < value.length; i++) {
|
|
63
|
+
const item = value[i];
|
|
64
|
+
if (item == null || typeof item !== 'object')
|
|
65
|
+
continue;
|
|
66
|
+
yield* collectRichTextLeaves(field.fields, item, `${fieldPath}.${i}`);
|
|
67
|
+
}
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
if (isBlocksField(field)) {
|
|
71
|
+
if (!Array.isArray(value))
|
|
72
|
+
return;
|
|
73
|
+
for (let i = 0; i < value.length; i++) {
|
|
74
|
+
const item = value[i];
|
|
75
|
+
if (item == null || typeof item !== 'object')
|
|
76
|
+
continue;
|
|
77
|
+
const blockType = item._type;
|
|
78
|
+
if (!blockType)
|
|
79
|
+
continue;
|
|
80
|
+
const block = field.blocks.find((b) => b.blockType === blockType);
|
|
81
|
+
if (!block)
|
|
82
|
+
continue;
|
|
83
|
+
yield* collectRichTextLeaves(block.fields, item, `${fieldPath}.${i}`);
|
|
84
|
+
}
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
// Any other field type — value-only leaves with no nested richText.
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Resolve the effective `populateRelationsOnRead` for a richText field.
|
|
91
|
+
* - explicit `true` / `false` wins
|
|
92
|
+
* - otherwise default-derived as `!embedRelationsOnSave`
|
|
93
|
+
* - `embedRelationsOnSave` itself defaults to `true`, so the overall
|
|
94
|
+
* default for `populateRelationsOnRead` is `false` (snapshot mode).
|
|
95
|
+
*/
|
|
96
|
+
export function resolvePopulateOnRead(field) {
|
|
97
|
+
if (field.populateRelationsOnRead !== undefined)
|
|
98
|
+
return field.populateRelationsOnRead;
|
|
99
|
+
const embed = field.embedRelationsOnSave ?? true;
|
|
100
|
+
return !embed;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* For every document, walk its rich-text leaves and call the registered
|
|
104
|
+
* populate function for each leaf whose effective `populateRelationsOnRead`
|
|
105
|
+
* is `true`. Mutates document `fields` in place.
|
|
106
|
+
*/
|
|
107
|
+
export async function populateRichTextFields(options) {
|
|
108
|
+
const { fields, collectionPath, documents, populate, readContext } = options;
|
|
109
|
+
for (const doc of documents) {
|
|
110
|
+
const docFields = (doc.fields ?? {});
|
|
111
|
+
for (const leaf of collectRichTextLeaves(fields, docFields)) {
|
|
112
|
+
if (!resolvePopulateOnRead(leaf.field))
|
|
113
|
+
continue;
|
|
114
|
+
await populate({
|
|
115
|
+
value: leaf.value,
|
|
116
|
+
fieldPath: leaf.fieldPath,
|
|
117
|
+
collectionPath,
|
|
118
|
+
readContext,
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// ---------------------------------------------------------------------------
|
|
124
|
+
// Boot-time validation
|
|
125
|
+
// ---------------------------------------------------------------------------
|
|
126
|
+
/**
|
|
127
|
+
* Walk the schema (without data) yielding every richText field declared
|
|
128
|
+
* across the schema tree, with a stable dotted path to use in error
|
|
129
|
+
* messages. Distinct from `collectRichTextLeaves`, which walks data.
|
|
130
|
+
*/
|
|
131
|
+
function* iterRichTextFieldDeclarations(fields, pathPrefix = '') {
|
|
132
|
+
for (const field of fields) {
|
|
133
|
+
const here = pathPrefix === '' ? field.name : `${pathPrefix}.${field.name}`;
|
|
134
|
+
yield* walkDeclaration(field, here);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
function* walkDeclaration(field, declaredPath) {
|
|
138
|
+
if (field.type === 'richText') {
|
|
139
|
+
yield { field, declaredPath };
|
|
140
|
+
return;
|
|
141
|
+
}
|
|
142
|
+
if (isGroupField(field) || isArrayField(field)) {
|
|
143
|
+
yield* iterRichTextFieldDeclarations(field.fields, declaredPath);
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
if (isBlocksField(field)) {
|
|
147
|
+
for (const block of field.blocks) {
|
|
148
|
+
yield* iterRichTextFieldDeclarations(block.fields, `${declaredPath}.<${block.blockType}>`);
|
|
149
|
+
}
|
|
150
|
+
return;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
/**
|
|
154
|
+
* Validate every richText field across every collection. Throws on:
|
|
155
|
+
* 1. `embedRelationsOnSave === false && populateRelationsOnRead === false`
|
|
156
|
+
* — would be unrenderable.
|
|
157
|
+
* 2. Effective `populateRelationsOnRead === true` and no server-side
|
|
158
|
+
* `RichTextPopulateFn` registered — populate would be a no-op and
|
|
159
|
+
* the field would render with stale (or empty) embedded data.
|
|
160
|
+
*
|
|
161
|
+
* Called once at `initBylineCore()` time. Fail-fast at boot is the right
|
|
162
|
+
* posture; the alternative is a silent broken renderer at request time.
|
|
163
|
+
*/
|
|
164
|
+
export function validateRichTextFieldFlags(collections, hasServerAdapter) {
|
|
165
|
+
const errors = [];
|
|
166
|
+
for (const def of collections) {
|
|
167
|
+
for (const { field, declaredPath } of iterRichTextFieldDeclarations(def.fields)) {
|
|
168
|
+
const embed = field.embedRelationsOnSave ?? true;
|
|
169
|
+
const populate = field.populateRelationsOnRead ?? !embed;
|
|
170
|
+
if (!embed && !populate) {
|
|
171
|
+
errors.push(`[${def.path}] richText field '${declaredPath}' has both ` +
|
|
172
|
+
`embedRelationsOnSave and populateRelationsOnRead set to false. ` +
|
|
173
|
+
`Set at least one to true — otherwise nothing renders.`);
|
|
174
|
+
continue;
|
|
175
|
+
}
|
|
176
|
+
if (populate && !hasServerAdapter) {
|
|
177
|
+
errors.push(`[${def.path}] richText field '${declaredPath}' requires read-time populate ` +
|
|
178
|
+
`(embedRelationsOnSave=${embed}, populateRelationsOnRead=${populate}) but no ` +
|
|
179
|
+
`richtext server adapter is registered. Wire one via ` +
|
|
180
|
+
`ServerConfig.fields.richText.populate — see ` +
|
|
181
|
+
`\`@byline/richtext-lexical/server\` → \`lexicalEditorServer()\`.`);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
if (errors.length > 0) {
|
|
186
|
+
throw new Error(`initBylineCore: richText field configuration errors:\n - ${errors.join('\n - ')}`);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
//# sourceMappingURL=richtext-populate.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-populate.js","sourceRoot":"","sources":["../../src/services/richtext-populate.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This Source Code is subject to the terms of the Mozilla Public
|
|
3
|
+
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
4
|
+
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) Infonomic Company Limited
|
|
7
|
+
*/
|
|
8
|
+
export {};
|
|
9
|
+
//# sourceMappingURL=richtext-populate.test.node.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"richtext-populate.test.node.d.ts","sourceRoot":"","sources":["../../src/services/richtext-populate.test.node.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG"}
|