@rakun-kit/core 1.5.12 → 1.6.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/README.md +124 -22
- package/dist/cjs/api/operations/manager-contract.js +8 -0
- package/dist/cjs/api/operations/manager-contract.js.map +1 -1
- package/dist/cjs/api/operations/manager-manifest.js +5 -0
- package/dist/cjs/api/operations/manager-manifest.js.map +1 -1
- package/dist/cjs/api/operations/manager.js +4 -0
- package/dist/cjs/api/operations/manager.js.map +1 -1
- package/dist/cjs/api/operations/web-contract.js +8 -0
- package/dist/cjs/api/operations/web-contract.js.map +1 -1
- package/dist/cjs/api/operations/web.js +4 -0
- package/dist/cjs/api/operations/web.js.map +1 -1
- package/dist/cjs/api/routes/manager/auth/markTourSeen.js +4 -1
- package/dist/cjs/api/routes/manager/auth/markTourSeen.js.map +1 -1
- package/dist/cjs/api/routes/manager/localeVariants.js +39 -1
- package/dist/cjs/api/routes/manager/localeVariants.js.map +1 -1
- package/dist/cjs/api/routes/manager/media/deleteMediaStorage.js +14 -9
- package/dist/cjs/api/routes/manager/media/deleteMediaStorage.js.map +1 -1
- package/dist/cjs/api/routes/manager/media/finalizeUpload.js +4 -0
- package/dist/cjs/api/routes/manager/media/finalizeUpload.js.map +1 -1
- package/dist/cjs/api/routes/manager/media/reimportMedia.js +20 -10
- package/dist/cjs/api/routes/manager/media/reimportMedia.js.map +1 -1
- package/dist/cjs/api/routes/manager/media/replaceMedia.js +224 -0
- package/dist/cjs/api/routes/manager/media/replaceMedia.js.map +1 -0
- package/dist/cjs/api/routes/manager/media/resolveMediaRecordUrls.js +14 -12
- package/dist/cjs/api/routes/manager/media/resolveMediaRecordUrls.js.map +1 -1
- package/dist/cjs/api/routes/manager/media/uploadBinary.js +112 -39
- package/dist/cjs/api/routes/manager/media/uploadBinary.js.map +1 -1
- package/dist/cjs/api/routes/manager/uiLocales.js +25 -1
- package/dist/cjs/api/routes/manager/uiLocales.js.map +1 -1
- package/dist/cjs/api/routes/web/llms.js +168 -0
- package/dist/cjs/api/routes/web/llms.js.map +1 -0
- package/dist/cjs/api/routes/web/page.js +47 -14
- package/dist/cjs/api/routes/web/page.js.map +1 -1
- package/dist/cjs/api/routes/web/sitemap.js +12 -2
- package/dist/cjs/api/routes/web/sitemap.js.map +1 -1
- package/dist/cjs/api/routes/web/staticPaths.js +4 -2
- package/dist/cjs/api/routes/web/staticPaths.js.map +1 -1
- package/dist/cjs/api/utils/dynamicData.js +193 -130
- package/dist/cjs/api/utils/dynamicData.js.map +1 -1
- package/dist/cjs/api/utils/index.js +2 -1
- package/dist/cjs/api/utils/index.js.map +1 -1
- package/dist/cjs/api/utils/mediaUploadKey.js +11 -1
- package/dist/cjs/api/utils/mediaUploadKey.js.map +1 -1
- package/dist/cjs/api/utils/populates/populateLinks.js +27 -55
- package/dist/cjs/api/utils/populates/populateLinks.js.map +1 -1
- package/dist/cjs/api/utils/populates/populateRelations.js +78 -43
- package/dist/cjs/api/utils/populates/populateRelations.js.map +1 -1
- package/dist/cjs/api/utils/routes/routeMapHelpers.js +44 -10
- package/dist/cjs/api/utils/routes/routeMapHelpers.js.map +1 -1
- package/dist/cjs/api/utils/routes/updateRoutesMap.js +12 -7
- package/dist/cjs/api/utils/routes/updateRoutesMap.js.map +1 -1
- package/dist/cjs/client.js +1 -0
- package/dist/cjs/client.js.map +1 -1
- package/dist/cjs/contracts.js +2 -0
- package/dist/cjs/contracts.js.map +1 -1
- package/dist/cjs/index.js +7 -4
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal-content-types/Backup.js +3 -3
- package/dist/cjs/internal-content-types/Backup.js.map +1 -1
- package/dist/cjs/internal-content-types/ContentComment.js +2 -2
- package/dist/cjs/internal-content-types/ContentComment.js.map +1 -1
- package/dist/cjs/internal-content-types/ContentReview.js +31 -18
- package/dist/cjs/internal-content-types/ContentReview.js.map +1 -1
- package/dist/cjs/internal-content-types/ContentReviewDecision.js +1 -1
- package/dist/cjs/internal-content-types/ContentReviewDecision.js.map +1 -1
- package/dist/cjs/internal-content-types/ContentReviewPolicy.js +2 -2
- package/dist/cjs/internal-content-types/ContentReviewPolicy.js.map +1 -1
- package/dist/cjs/internal-content-types/ContentVersion.js +4 -4
- package/dist/cjs/internal-content-types/ContentVersion.js.map +1 -1
- package/dist/cjs/internal-content-types/Language.js +1 -1
- package/dist/cjs/internal-content-types/Language.js.map +1 -1
- package/dist/cjs/internal-content-types/LlmsSettings.js +59 -0
- package/dist/cjs/internal-content-types/LlmsSettings.js.map +1 -0
- package/dist/cjs/internal-content-types/LoginIpBlock.js +1 -1
- package/dist/cjs/internal-content-types/LoginIpBlock.js.map +1 -1
- package/dist/cjs/internal-content-types/ManagerNotification.js +2 -2
- package/dist/cjs/internal-content-types/ManagerNotification.js.map +1 -1
- package/dist/cjs/internal-content-types/ManagerUser.js +9 -9
- package/dist/cjs/internal-content-types/ManagerUser.js.map +1 -1
- package/dist/cjs/internal-content-types/Media.js +18 -17
- package/dist/cjs/internal-content-types/Media.js.map +1 -1
- package/dist/cjs/internal-content-types/MediaFolder.js +2 -2
- package/dist/cjs/internal-content-types/MediaFolder.js.map +1 -1
- package/dist/cjs/internal-content-types/MfaChallenge.js +2 -2
- package/dist/cjs/internal-content-types/MfaChallenge.js.map +1 -1
- package/dist/cjs/internal-content-types/Migration.js +5 -5
- package/dist/cjs/internal-content-types/Migration.js.map +1 -1
- package/dist/cjs/internal-content-types/PasswordResetToken.js +1 -1
- package/dist/cjs/internal-content-types/PasswordResetToken.js.map +1 -1
- package/dist/cjs/internal-content-types/PreviewSnapshot.js +2 -2
- package/dist/cjs/internal-content-types/PreviewSnapshot.js.map +1 -1
- package/dist/cjs/internal-content-types/Redirect.js +4 -4
- package/dist/cjs/internal-content-types/Redirect.js.map +1 -1
- package/dist/cjs/internal-content-types/RobotsRule.js +3 -3
- package/dist/cjs/internal-content-types/RobotsRule.js.map +1 -1
- package/dist/cjs/internal-content-types/Route.js +2 -2
- package/dist/cjs/internal-content-types/Route.js.map +1 -1
- package/dist/cjs/internal-content-types/RouteLayoutModule.js +1 -1
- package/dist/cjs/internal-content-types/RouteLayoutModule.js.map +1 -1
- package/dist/cjs/internal-content-types/RouteLayoutModuleOverride.js +1 -1
- package/dist/cjs/internal-content-types/RouteLayoutModuleOverride.js.map +1 -1
- package/dist/cjs/internal-content-types/RouteMap.js +2 -2
- package/dist/cjs/internal-content-types/RouteMap.js.map +1 -1
- package/dist/cjs/internal-content-types/RouteSettings.js +1 -1
- package/dist/cjs/internal-content-types/RouteSettings.js.map +1 -1
- package/dist/cjs/internal-content-types/Seo.js +34 -20
- package/dist/cjs/internal-content-types/Seo.js.map +1 -1
- package/dist/cjs/internal-content-types/SeoAudit.js +29 -0
- package/dist/cjs/internal-content-types/SeoAudit.js.map +1 -0
- package/dist/cjs/internal-content-types/SeoSettings.js +5 -5
- package/dist/cjs/internal-content-types/SeoSettings.js.map +1 -1
- package/dist/cjs/internal-content-types/StructuredData.js +102 -0
- package/dist/cjs/internal-content-types/StructuredData.js.map +1 -0
- package/dist/cjs/internal-content-types/UserMfa.js +6 -6
- package/dist/cjs/internal-content-types/UserMfa.js.map +1 -1
- package/dist/cjs/internal-content-types/WebAuthnRegChallenge.js +1 -1
- package/dist/cjs/internal-content-types/WebAuthnRegChallenge.js.map +1 -1
- package/dist/cjs/internal-content-types/index.js +3 -0
- package/dist/cjs/internal-content-types/index.js.map +1 -1
- package/dist/cjs/lib/ContentType.js +11 -3
- package/dist/cjs/lib/ContentType.js.map +1 -1
- package/dist/cjs/lib/Registry.js +1 -0
- package/dist/cjs/lib/Registry.js.map +1 -1
- package/dist/cjs/lib/fields/Boolean.js +5 -1
- package/dist/cjs/lib/fields/Boolean.js.map +1 -1
- package/dist/cjs/lib/fields/Breadcrums.js +5 -1
- package/dist/cjs/lib/fields/Breadcrums.js.map +1 -1
- package/dist/cjs/lib/fields/ContentReference.js +22 -6
- package/dist/cjs/lib/fields/ContentReference.js.map +1 -1
- package/dist/cjs/lib/fields/Date.js +11 -5
- package/dist/cjs/lib/fields/Date.js.map +1 -1
- package/dist/cjs/lib/fields/Field.js +71 -45
- package/dist/cjs/lib/fields/Field.js.map +1 -1
- package/dist/cjs/lib/fields/Fields.js +2 -0
- package/dist/cjs/lib/fields/Fields.js.map +1 -1
- package/dist/cjs/lib/fields/File.js +74 -25
- package/dist/cjs/lib/fields/File.js.map +1 -1
- package/dist/cjs/lib/fields/Iterator.js +1 -1
- package/dist/cjs/lib/fields/Iterator.js.map +1 -1
- package/dist/cjs/lib/fields/Link.js +26 -15
- package/dist/cjs/lib/fields/Link.js.map +1 -1
- package/dist/cjs/lib/fields/List.js +34 -12
- package/dist/cjs/lib/fields/List.js.map +1 -1
- package/dist/cjs/lib/fields/Menu.js +56 -0
- package/dist/cjs/lib/fields/Menu.js.map +1 -0
- package/dist/cjs/lib/fields/Number.js +3 -2
- package/dist/cjs/lib/fields/Number.js.map +1 -1
- package/dist/cjs/lib/fields/Relation.js +17 -15
- package/dist/cjs/lib/fields/Relation.js.map +1 -1
- package/dist/cjs/lib/fields/Select.js +20 -4
- package/dist/cjs/lib/fields/Select.js.map +1 -1
- package/dist/cjs/lib/fields/SelfRelation.js +4 -3
- package/dist/cjs/lib/fields/SelfRelation.js.map +1 -1
- package/dist/cjs/lib/fields/SimpleList.js +38 -14
- package/dist/cjs/lib/fields/SimpleList.js.map +1 -1
- package/dist/cjs/lib/fields/String.js +34 -36
- package/dist/cjs/lib/fields/String.js.map +1 -1
- package/dist/cjs/lib/fields/index.js +1 -0
- package/dist/cjs/lib/fields/index.js.map +1 -1
- package/dist/cjs/media/imageOptimization.js.map +1 -1
- package/dist/cjs/media/mediaOptimization.js +18 -0
- package/dist/cjs/media/mediaOptimization.js.map +1 -0
- package/dist/cjs/media/videoOptimization.js +142 -0
- package/dist/cjs/media/videoOptimization.js.map +1 -0
- package/dist/cjs/orm/createIndexes.js +4 -0
- package/dist/cjs/orm/createIndexes.js.map +1 -1
- package/dist/cjs/schemas/manager/localeVariants.js +1 -0
- package/dist/cjs/schemas/manager/localeVariants.js.map +1 -1
- package/dist/cjs/schemas/manager/media/finalizeUpload.js +10 -1
- package/dist/cjs/schemas/manager/media/finalizeUpload.js.map +1 -1
- package/dist/cjs/schemas/manager/media/reimportMedia.js.map +1 -1
- package/dist/cjs/schemas/manager/media/replaceMedia.js +21 -0
- package/dist/cjs/schemas/manager/media/replaceMedia.js.map +1 -0
- package/dist/cjs/schemas/manager/uiLocales.js +1 -0
- package/dist/cjs/schemas/manager/uiLocales.js.map +1 -1
- package/dist/cjs/schemas/web/llms.js +17 -0
- package/dist/cjs/schemas/web/llms.js.map +1 -0
- package/dist/cjs/schemas/web/page.js +2 -3
- package/dist/cjs/schemas/web/page.js.map +1 -1
- package/dist/cjs/web/page.js +1 -1
- package/dist/cjs/web/page.js.map +1 -1
- package/dist/docs/index.md +128 -16
- package/dist/esm/api/operations/index.d.ts +165 -26
- package/dist/esm/api/operations/index.d.ts.map +1 -1
- package/dist/esm/api/operations/manager-contract.d.ts +113 -8
- package/dist/esm/api/operations/manager-contract.d.ts.map +1 -1
- package/dist/esm/api/operations/manager-contract.js +9 -1
- package/dist/esm/api/operations/manager-contract.js.map +1 -1
- package/dist/esm/api/operations/manager-manifest.d.ts +5 -0
- package/dist/esm/api/operations/manager-manifest.d.ts.map +1 -1
- package/dist/esm/api/operations/manager-manifest.js +5 -0
- package/dist/esm/api/operations/manager-manifest.js.map +1 -1
- package/dist/esm/api/operations/manager.d.ts +113 -8
- package/dist/esm/api/operations/manager.d.ts.map +1 -1
- package/dist/esm/api/operations/manager.js +4 -0
- package/dist/esm/api/operations/manager.js.map +1 -1
- package/dist/esm/api/operations/web-contract.d.ts +52 -18
- package/dist/esm/api/operations/web-contract.d.ts.map +1 -1
- package/dist/esm/api/operations/web-contract.js +9 -1
- package/dist/esm/api/operations/web-contract.js.map +1 -1
- package/dist/esm/api/operations/web.d.ts +52 -18
- package/dist/esm/api/operations/web.d.ts.map +1 -1
- package/dist/esm/api/operations/web.js +4 -0
- package/dist/esm/api/operations/web.js.map +1 -1
- package/dist/esm/api/routes/manager/auth/getSession.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts +3 -3
- package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/markTourSeen.js +4 -1
- package/dist/esm/api/routes/manager/auth/markTourSeen.js.map +1 -1
- package/dist/esm/api/routes/manager/auth/updateAccount.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/updateTutorialPreferences.d.ts +2 -2
- package/dist/esm/api/routes/manager/localeVariants.d.ts +16 -0
- package/dist/esm/api/routes/manager/localeVariants.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/localeVariants.js +38 -1
- package/dist/esm/api/routes/manager/localeVariants.js.map +1 -1
- package/dist/esm/api/routes/manager/media/deleteMediaStorage.d.ts +1 -0
- package/dist/esm/api/routes/manager/media/deleteMediaStorage.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/deleteMediaStorage.js +14 -9
- package/dist/esm/api/routes/manager/media/deleteMediaStorage.js.map +1 -1
- package/dist/esm/api/routes/manager/media/finalizeUpload.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/finalizeUpload.js +5 -1
- package/dist/esm/api/routes/manager/media/finalizeUpload.js.map +1 -1
- package/dist/esm/api/routes/manager/media/reimportMedia.d.ts +12 -3
- package/dist/esm/api/routes/manager/media/reimportMedia.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/reimportMedia.js +18 -8
- package/dist/esm/api/routes/manager/media/reimportMedia.js.map +1 -1
- package/dist/esm/api/routes/manager/media/replaceMedia.d.ts +32 -0
- package/dist/esm/api/routes/manager/media/replaceMedia.d.ts.map +1 -0
- package/dist/esm/api/routes/manager/media/replaceMedia.js +218 -0
- package/dist/esm/api/routes/manager/media/replaceMedia.js.map +1 -0
- package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.js +14 -12
- package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.js.map +1 -1
- package/dist/esm/api/routes/manager/media/uploadBinary.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/uploadBinary.js +112 -39
- package/dist/esm/api/routes/manager/media/uploadBinary.js.map +1 -1
- package/dist/esm/api/routes/manager/uiLocales.d.ts +1 -0
- package/dist/esm/api/routes/manager/uiLocales.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/uiLocales.js +23 -0
- package/dist/esm/api/routes/manager/uiLocales.js.map +1 -1
- package/dist/esm/api/routes/web/llms.d.ts +20 -0
- package/dist/esm/api/routes/web/llms.d.ts.map +1 -0
- package/dist/esm/api/routes/web/llms.js +163 -0
- package/dist/esm/api/routes/web/llms.js.map +1 -0
- package/dist/esm/api/routes/web/page.d.ts +2 -0
- package/dist/esm/api/routes/web/page.d.ts.map +1 -1
- package/dist/esm/api/routes/web/page.js +45 -14
- package/dist/esm/api/routes/web/page.js.map +1 -1
- package/dist/esm/api/routes/web/previewPage.d.ts +23 -9
- package/dist/esm/api/routes/web/previewPage.d.ts.map +1 -1
- package/dist/esm/api/routes/web/sitemap.d.ts.map +1 -1
- package/dist/esm/api/routes/web/sitemap.js +12 -2
- package/dist/esm/api/routes/web/sitemap.js.map +1 -1
- package/dist/esm/api/routes/web/staticPaths.d.ts.map +1 -1
- package/dist/esm/api/routes/web/staticPaths.js +4 -2
- package/dist/esm/api/routes/web/staticPaths.js.map +1 -1
- package/dist/esm/api/utils/dynamicData.d.ts +6 -5
- package/dist/esm/api/utils/dynamicData.d.ts.map +1 -1
- package/dist/esm/api/utils/dynamicData.js +200 -138
- package/dist/esm/api/utils/dynamicData.js.map +1 -1
- package/dist/esm/api/utils/getUser.d.ts +2 -2
- package/dist/esm/api/utils/index.d.ts +25 -25
- package/dist/esm/api/utils/index.d.ts.map +1 -1
- package/dist/esm/api/utils/index.js +25 -25
- package/dist/esm/api/utils/index.js.map +1 -1
- package/dist/esm/api/utils/mediaUploadKey.d.ts +2 -0
- package/dist/esm/api/utils/mediaUploadKey.d.ts.map +1 -1
- package/dist/esm/api/utils/mediaUploadKey.js +9 -0
- package/dist/esm/api/utils/mediaUploadKey.js.map +1 -1
- package/dist/esm/api/utils/populates/populateLinks.d.ts +4 -2
- package/dist/esm/api/utils/populates/populateLinks.d.ts.map +1 -1
- package/dist/esm/api/utils/populates/populateLinks.js +30 -58
- package/dist/esm/api/utils/populates/populateLinks.js.map +1 -1
- package/dist/esm/api/utils/populates/populateRelations.d.ts +2 -2
- package/dist/esm/api/utils/populates/populateRelations.d.ts.map +1 -1
- package/dist/esm/api/utils/populates/populateRelations.js +85 -50
- package/dist/esm/api/utils/populates/populateRelations.js.map +1 -1
- package/dist/esm/api/utils/reviews.d.ts +2 -2
- package/dist/esm/api/utils/routes/routeMapHelpers.d.ts +4 -1
- package/dist/esm/api/utils/routes/routeMapHelpers.d.ts.map +1 -1
- package/dist/esm/api/utils/routes/routeMapHelpers.js +42 -9
- package/dist/esm/api/utils/routes/routeMapHelpers.js.map +1 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.d.ts.map +1 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.js +12 -7
- package/dist/esm/api/utils/routes/updateRoutesMap.js.map +1 -1
- package/dist/esm/client.d.ts +2 -0
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +1 -0
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/contracts.d.ts +2 -0
- package/dist/esm/contracts.d.ts.map +1 -1
- package/dist/esm/contracts.js +2 -0
- package/dist/esm/contracts.js.map +1 -1
- package/dist/esm/index.d.ts +3 -1
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +4 -3
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal-content-types/ApiOperation.d.ts +56 -16
- package/dist/esm/internal-content-types/ApiOperation.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Backup.d.ts +1044 -99
- package/dist/esm/internal-content-types/Backup.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Backup.js +3 -3
- package/dist/esm/internal-content-types/Backup.js.map +1 -1
- package/dist/esm/internal-content-types/BackupDocument.d.ts +56 -16
- package/dist/esm/internal-content-types/BackupDocument.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentComment.d.ts +5833 -614
- package/dist/esm/internal-content-types/ContentComment.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentComment.js +2 -2
- package/dist/esm/internal-content-types/ContentComment.js.map +1 -1
- package/dist/esm/internal-content-types/ContentCommentReadState.d.ts +4384 -896
- package/dist/esm/internal-content-types/ContentCommentReadState.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReview.d.ts +33582 -9735
- package/dist/esm/internal-content-types/ContentReview.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReview.js +31 -18
- package/dist/esm/internal-content-types/ContentReview.js.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewDecision.d.ts +4777 -914
- package/dist/esm/internal-content-types/ContentReviewDecision.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewDecision.js +1 -1
- package/dist/esm/internal-content-types/ContentReviewDecision.js.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts +1547 -40
- package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewPolicy.js +2 -2
- package/dist/esm/internal-content-types/ContentReviewPolicy.js.map +1 -1
- package/dist/esm/internal-content-types/ContentTemplate.d.ts +38 -12
- package/dist/esm/internal-content-types/ContentTemplate.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentVersion.d.ts +1168 -48
- package/dist/esm/internal-content-types/ContentVersion.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentVersion.js +4 -4
- package/dist/esm/internal-content-types/ContentVersion.js.map +1 -1
- package/dist/esm/internal-content-types/HelloWorld.d.ts +15 -5
- package/dist/esm/internal-content-types/HelloWorld.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Language.d.ts +109 -9
- package/dist/esm/internal-content-types/Language.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Language.js +1 -1
- package/dist/esm/internal-content-types/Language.js.map +1 -1
- package/dist/esm/internal-content-types/LiteralTranslation.d.ts +28 -8
- package/dist/esm/internal-content-types/LiteralTranslation.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LlmsSettings.d.ts +4918 -0
- package/dist/esm/internal-content-types/LlmsSettings.d.ts.map +1 -0
- package/dist/esm/internal-content-types/LlmsSettings.js +53 -0
- package/dist/esm/internal-content-types/LlmsSettings.js.map +1 -0
- package/dist/esm/internal-content-types/LoginIpBlock.d.ts +119 -13
- package/dist/esm/internal-content-types/LoginIpBlock.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LoginIpBlock.js +1 -1
- package/dist/esm/internal-content-types/LoginIpBlock.js.map +1 -1
- package/dist/esm/internal-content-types/ManagerFavorite.d.ts +4370 -892
- package/dist/esm/internal-content-types/ManagerFavorite.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerNotification.d.ts +8876 -1441
- package/dist/esm/internal-content-types/ManagerNotification.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerNotification.js +2 -2
- package/dist/esm/internal-content-types/ManagerNotification.js.map +1 -1
- package/dist/esm/internal-content-types/ManagerRole.d.ts +17 -5
- package/dist/esm/internal-content-types/ManagerRole.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerUser.d.ts +1775 -48
- package/dist/esm/internal-content-types/ManagerUser.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerUser.js +9 -9
- package/dist/esm/internal-content-types/ManagerUser.js.map +1 -1
- package/dist/esm/internal-content-types/Media.d.ts +6101 -774
- package/dist/esm/internal-content-types/Media.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Media.js +18 -17
- package/dist/esm/internal-content-types/Media.js.map +1 -1
- package/dist/esm/internal-content-types/MediaFolder.d.ts +401 -14
- package/dist/esm/internal-content-types/MediaFolder.d.ts.map +1 -1
- package/dist/esm/internal-content-types/MediaFolder.js +2 -2
- package/dist/esm/internal-content-types/MediaFolder.js.map +1 -1
- package/dist/esm/internal-content-types/MfaChallenge.d.ts +4915 -956
- package/dist/esm/internal-content-types/MfaChallenge.d.ts.map +1 -1
- package/dist/esm/internal-content-types/MfaChallenge.js +2 -2
- package/dist/esm/internal-content-types/MfaChallenge.js.map +1 -1
- package/dist/esm/internal-content-types/Migration.d.ts +1180 -39
- package/dist/esm/internal-content-types/Migration.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Migration.js +5 -5
- package/dist/esm/internal-content-types/Migration.js.map +1 -1
- package/dist/esm/internal-content-types/MigrationLock.d.ts +8 -4
- package/dist/esm/internal-content-types/MigrationLock.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Page.d.ts +45 -15
- package/dist/esm/internal-content-types/Page.d.ts.map +1 -1
- package/dist/esm/internal-content-types/PasswordResetToken.d.ts +4452 -894
- package/dist/esm/internal-content-types/PasswordResetToken.d.ts.map +1 -1
- package/dist/esm/internal-content-types/PasswordResetToken.js +1 -1
- package/dist/esm/internal-content-types/PasswordResetToken.js.map +1 -1
- package/dist/esm/internal-content-types/PreviewSnapshot.d.ts +646 -34
- package/dist/esm/internal-content-types/PreviewSnapshot.d.ts.map +1 -1
- package/dist/esm/internal-content-types/PreviewSnapshot.js +2 -2
- package/dist/esm/internal-content-types/PreviewSnapshot.js.map +1 -1
- package/dist/esm/internal-content-types/Redirect.d.ts +1462 -96
- package/dist/esm/internal-content-types/Redirect.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Redirect.js +4 -4
- package/dist/esm/internal-content-types/Redirect.js.map +1 -1
- package/dist/esm/internal-content-types/RobotsRule.d.ts +862 -23
- package/dist/esm/internal-content-types/RobotsRule.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RobotsRule.js +3 -3
- package/dist/esm/internal-content-types/RobotsRule.js.map +1 -1
- package/dist/esm/internal-content-types/Route.d.ts +424 -27
- package/dist/esm/internal-content-types/Route.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Route.js +2 -2
- package/dist/esm/internal-content-types/Route.js.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModule.d.ts +350 -25
- package/dist/esm/internal-content-types/RouteLayoutModule.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModule.js +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModule.js.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts +340 -21
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js.map +1 -1
- package/dist/esm/internal-content-types/RouteLocaleVariant.d.ts +84 -24
- package/dist/esm/internal-content-types/RouteLocaleVariant.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteMap.d.ts +427 -22
- package/dist/esm/internal-content-types/RouteMap.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteMap.js +2 -2
- package/dist/esm/internal-content-types/RouteMap.js.map +1 -1
- package/dist/esm/internal-content-types/RouteSettings.d.ts +1610 -534
- package/dist/esm/internal-content-types/RouteSettings.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteSettings.js +1 -1
- package/dist/esm/internal-content-types/RouteSettings.js.map +1 -1
- package/dist/esm/internal-content-types/SchemaState.d.ts +32 -12
- package/dist/esm/internal-content-types/SchemaState.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Seo.d.ts +3188 -605
- package/dist/esm/internal-content-types/Seo.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Seo.js +34 -20
- package/dist/esm/internal-content-types/Seo.js.map +1 -1
- package/dist/esm/internal-content-types/SeoAudit.d.ts +2724 -0
- package/dist/esm/internal-content-types/SeoAudit.d.ts.map +1 -0
- package/dist/esm/internal-content-types/SeoAudit.js +23 -0
- package/dist/esm/internal-content-types/SeoAudit.js.map +1 -0
- package/dist/esm/internal-content-types/SeoSettings.d.ts +16072 -4113
- package/dist/esm/internal-content-types/SeoSettings.d.ts.map +1 -1
- package/dist/esm/internal-content-types/SeoSettings.js +5 -5
- package/dist/esm/internal-content-types/SeoSettings.js.map +1 -1
- package/dist/esm/internal-content-types/Session.d.ts +4365 -893
- package/dist/esm/internal-content-types/Session.d.ts.map +1 -1
- package/dist/esm/internal-content-types/StructuredData.d.ts +6095 -0
- package/dist/esm/internal-content-types/StructuredData.d.ts.map +1 -0
- package/dist/esm/internal-content-types/StructuredData.js +96 -0
- package/dist/esm/internal-content-types/StructuredData.js.map +1 -0
- package/dist/esm/internal-content-types/UserMfa.d.ts +5285 -903
- package/dist/esm/internal-content-types/UserMfa.d.ts.map +1 -1
- package/dist/esm/internal-content-types/UserMfa.js +6 -6
- package/dist/esm/internal-content-types/UserMfa.js.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnCredential.d.ts +4409 -905
- package/dist/esm/internal-content-types/WebAuthnCredential.d.ts.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts +4466 -898
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.js +1 -1
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.js.map +1 -1
- package/dist/esm/internal-content-types/index.d.ts +3 -0
- package/dist/esm/internal-content-types/index.d.ts.map +1 -1
- package/dist/esm/internal-content-types/index.js +3 -0
- package/dist/esm/internal-content-types/index.js.map +1 -1
- package/dist/esm/internal-content-types/syncAdminRole.d.ts +1 -1
- package/dist/esm/lib/ContentType.d.ts.map +1 -1
- package/dist/esm/lib/ContentType.js +11 -3
- package/dist/esm/lib/ContentType.js.map +1 -1
- package/dist/esm/lib/Registry.d.ts.map +1 -1
- package/dist/esm/lib/Registry.js +1 -0
- package/dist/esm/lib/Registry.js.map +1 -1
- package/dist/esm/lib/fields/Boolean.d.ts +4 -3
- package/dist/esm/lib/fields/Boolean.d.ts.map +1 -1
- package/dist/esm/lib/fields/Boolean.js +7 -3
- package/dist/esm/lib/fields/Boolean.js.map +1 -1
- package/dist/esm/lib/fields/Breadcrums.d.ts +2 -1
- package/dist/esm/lib/fields/Breadcrums.d.ts.map +1 -1
- package/dist/esm/lib/fields/Breadcrums.js +5 -1
- package/dist/esm/lib/fields/Breadcrums.js.map +1 -1
- package/dist/esm/lib/fields/ContentReference.d.ts +12 -5
- package/dist/esm/lib/fields/ContentReference.d.ts.map +1 -1
- package/dist/esm/lib/fields/ContentReference.js +25 -9
- package/dist/esm/lib/fields/ContentReference.js.map +1 -1
- package/dist/esm/lib/fields/Date.d.ts +5 -4
- package/dist/esm/lib/fields/Date.d.ts.map +1 -1
- package/dist/esm/lib/fields/Date.js +13 -7
- package/dist/esm/lib/fields/Date.js.map +1 -1
- package/dist/esm/lib/fields/Field.d.ts +105 -46
- package/dist/esm/lib/fields/Field.d.ts.map +1 -1
- package/dist/esm/lib/fields/Field.js +71 -45
- package/dist/esm/lib/fields/Field.js.map +1 -1
- package/dist/esm/lib/fields/Fields.d.ts +3 -0
- package/dist/esm/lib/fields/Fields.d.ts.map +1 -1
- package/dist/esm/lib/fields/Fields.js +2 -0
- package/dist/esm/lib/fields/Fields.js.map +1 -1
- package/dist/esm/lib/fields/File.d.ts +32 -6
- package/dist/esm/lib/fields/File.d.ts.map +1 -1
- package/dist/esm/lib/fields/File.js +76 -27
- package/dist/esm/lib/fields/File.js.map +1 -1
- package/dist/esm/lib/fields/Iterator.d.ts +2 -1
- package/dist/esm/lib/fields/Iterator.d.ts.map +1 -1
- package/dist/esm/lib/fields/Iterator.js +2 -2
- package/dist/esm/lib/fields/Iterator.js.map +1 -1
- package/dist/esm/lib/fields/Link.d.ts +32 -9
- package/dist/esm/lib/fields/Link.d.ts.map +1 -1
- package/dist/esm/lib/fields/Link.js +28 -18
- package/dist/esm/lib/fields/Link.js.map +1 -1
- package/dist/esm/lib/fields/List.d.ts +11 -10
- package/dist/esm/lib/fields/List.d.ts.map +1 -1
- package/dist/esm/lib/fields/List.js +37 -15
- package/dist/esm/lib/fields/List.js.map +1 -1
- package/dist/esm/lib/fields/Menu.d.ts +26 -0
- package/dist/esm/lib/fields/Menu.d.ts.map +1 -0
- package/dist/esm/lib/fields/Menu.js +49 -0
- package/dist/esm/lib/fields/Menu.js.map +1 -0
- package/dist/esm/lib/fields/Number.d.ts +4 -3
- package/dist/esm/lib/fields/Number.d.ts.map +1 -1
- package/dist/esm/lib/fields/Number.js +5 -4
- package/dist/esm/lib/fields/Number.js.map +1 -1
- package/dist/esm/lib/fields/Relation.d.ts +14 -13
- package/dist/esm/lib/fields/Relation.d.ts.map +1 -1
- package/dist/esm/lib/fields/Relation.js +21 -19
- package/dist/esm/lib/fields/Relation.js.map +1 -1
- package/dist/esm/lib/fields/Select.d.ts +10 -3
- package/dist/esm/lib/fields/Select.d.ts.map +1 -1
- package/dist/esm/lib/fields/Select.js +22 -6
- package/dist/esm/lib/fields/Select.js.map +1 -1
- package/dist/esm/lib/fields/SelfRelation.d.ts +5 -4
- package/dist/esm/lib/fields/SelfRelation.d.ts.map +1 -1
- package/dist/esm/lib/fields/SelfRelation.js +7 -6
- package/dist/esm/lib/fields/SelfRelation.js.map +1 -1
- package/dist/esm/lib/fields/SimpleList.d.ts +11 -4
- package/dist/esm/lib/fields/SimpleList.d.ts.map +1 -1
- package/dist/esm/lib/fields/SimpleList.js +40 -16
- package/dist/esm/lib/fields/SimpleList.js.map +1 -1
- package/dist/esm/lib/fields/String.d.ts +6 -5
- package/dist/esm/lib/fields/String.d.ts.map +1 -1
- package/dist/esm/lib/fields/String.js +38 -40
- package/dist/esm/lib/fields/String.js.map +1 -1
- package/dist/esm/lib/fields/index.d.ts +1 -0
- package/dist/esm/lib/fields/index.d.ts.map +1 -1
- package/dist/esm/lib/fields/index.js +1 -0
- package/dist/esm/lib/fields/index.js.map +1 -1
- package/dist/esm/manager.d.ts +5 -0
- package/dist/esm/manager.d.ts.map +1 -1
- package/dist/esm/media/imageOptimization.d.ts +7 -1
- package/dist/esm/media/imageOptimization.d.ts.map +1 -1
- package/dist/esm/media/imageOptimization.js.map +1 -1
- package/dist/esm/media/mediaOptimization.d.ts +12 -0
- package/dist/esm/media/mediaOptimization.d.ts.map +1 -0
- package/dist/esm/media/mediaOptimization.js +15 -0
- package/dist/esm/media/mediaOptimization.js.map +1 -0
- package/dist/esm/media/videoOptimization.d.ts +19 -0
- package/dist/esm/media/videoOptimization.d.ts.map +1 -0
- package/dist/esm/media/videoOptimization.js +136 -0
- package/dist/esm/media/videoOptimization.js.map +1 -0
- package/dist/esm/orm/createIndexes.d.ts.map +1 -1
- package/dist/esm/orm/createIndexes.js +5 -1
- package/dist/esm/orm/createIndexes.js.map +1 -1
- package/dist/esm/schemas/manager/localeVariants.d.ts +3 -0
- package/dist/esm/schemas/manager/localeVariants.d.ts.map +1 -1
- package/dist/esm/schemas/manager/localeVariants.js +1 -0
- package/dist/esm/schemas/manager/localeVariants.js.map +1 -1
- package/dist/esm/schemas/manager/media/finalizeUpload.d.ts +43 -0
- package/dist/esm/schemas/manager/media/finalizeUpload.d.ts.map +1 -1
- package/dist/esm/schemas/manager/media/finalizeUpload.js +9 -0
- package/dist/esm/schemas/manager/media/finalizeUpload.js.map +1 -1
- package/dist/esm/schemas/manager/media/reimportMedia.d.ts +17 -1
- package/dist/esm/schemas/manager/media/reimportMedia.d.ts.map +1 -1
- package/dist/esm/schemas/manager/media/reimportMedia.js.map +1 -1
- package/dist/esm/schemas/manager/media/replaceMedia.d.ts +107 -0
- package/dist/esm/schemas/manager/media/replaceMedia.d.ts.map +1 -0
- package/dist/esm/schemas/manager/media/replaceMedia.js +15 -0
- package/dist/esm/schemas/manager/media/replaceMedia.js.map +1 -0
- package/dist/esm/schemas/manager/uiLocales.d.ts +1 -0
- package/dist/esm/schemas/manager/uiLocales.d.ts.map +1 -1
- package/dist/esm/schemas/manager/uiLocales.js +1 -0
- package/dist/esm/schemas/manager/uiLocales.js.map +1 -1
- package/dist/esm/schemas/web/llms.d.ts +11 -0
- package/dist/esm/schemas/web/llms.d.ts.map +1 -0
- package/dist/esm/schemas/web/llms.js +11 -0
- package/dist/esm/schemas/web/llms.js.map +1 -0
- package/dist/esm/schemas/web/page.d.ts +147 -6
- package/dist/esm/schemas/web/page.d.ts.map +1 -1
- package/dist/esm/schemas/web/page.js +2 -3
- package/dist/esm/schemas/web/page.js.map +1 -1
- package/dist/esm/schemas/web/previewPage.d.ts +75 -6
- package/dist/esm/schemas/web/previewPage.d.ts.map +1 -1
- package/dist/esm/web/page.d.ts +7 -7
- package/dist/esm/web/page.d.ts.map +1 -1
- package/dist/esm/web/page.js +1 -1
- package/dist/esm/web/page.js.map +1 -1
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +140 -138
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.resolveContentOutput = exports.stripDynamicBindings = exports.resolveDynamicData = exports.mergeDynamicListItems = exports.getDynamicListItemContentTypeName = exports.resolveRelatedCollectionValue = void 0;
|
|
3
|
+
exports.resolveContentOutput = exports.stripDynamicBindings = exports.resolveDynamicData = exports.mergeDynamicArrayItems = exports.mergeDynamicListItems = exports.getDynamicListItemContentTypeName = exports.resolveRelatedCollectionValue = void 0;
|
|
4
4
|
const bootstrapState_1 = require("../../bootstrapState");
|
|
5
5
|
const dynamicData_1 = require("../../lib/dynamicData");
|
|
6
6
|
const Logger_1 = require("../../lib/Logger");
|
|
@@ -12,97 +12,105 @@ const populateRelations_1 = require("./populates/populateRelations");
|
|
|
12
12
|
const safeManagerQuery_1 = require("./safeManagerQuery");
|
|
13
13
|
const context_1 = require("../hooks/context");
|
|
14
14
|
const breadcrums_1 = require("./breadcrums");
|
|
15
|
-
const isRecord = (value) => !!value &&
|
|
16
|
-
typeof value === "object" &&
|
|
17
|
-
!Array.isArray(value) &&
|
|
18
|
-
!(value instanceof Date);
|
|
15
|
+
const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date);
|
|
19
16
|
const getAtPath = (value, path) => {
|
|
20
17
|
if (!path)
|
|
21
18
|
return undefined;
|
|
22
|
-
return path.split(
|
|
19
|
+
return path.split('.').reduce((current, segment) => {
|
|
23
20
|
if (!isRecord(current))
|
|
24
21
|
return undefined;
|
|
25
22
|
return current[segment];
|
|
26
23
|
}, value);
|
|
27
24
|
};
|
|
28
|
-
const
|
|
29
|
-
|
|
30
|
-
|
|
25
|
+
const setAtPath = (target, path, value) => {
|
|
26
|
+
const segments = path.split('.');
|
|
27
|
+
let current = target;
|
|
28
|
+
for (const [index, segment] of segments.entries()) {
|
|
29
|
+
if (index === segments.length - 1) {
|
|
30
|
+
Object.defineProperty(current, segment, {
|
|
31
|
+
configurable: true,
|
|
32
|
+
enumerable: true,
|
|
33
|
+
value,
|
|
34
|
+
writable: true,
|
|
35
|
+
});
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
const existing = current[segment];
|
|
39
|
+
const next = isRecord(existing) ? existing : {};
|
|
40
|
+
if (next !== existing) {
|
|
41
|
+
Object.defineProperty(current, segment, {
|
|
42
|
+
configurable: true,
|
|
43
|
+
enumerable: true,
|
|
44
|
+
value: next,
|
|
45
|
+
writable: true,
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
current = next;
|
|
49
|
+
}
|
|
50
|
+
};
|
|
51
|
+
const isPublicDocument = (value) => value._trashed !== true && value._visibility !== 'draft' && value._visibility !== 'trash';
|
|
31
52
|
const getAllowedSourceContentType = (sourceContentTypeName) => {
|
|
32
53
|
const contentType = (0, Registry_1.getContentTypeByName)(sourceContentTypeName);
|
|
33
|
-
return (0, dynamicData_1.isDynamicDataSourceContentTypeAllowed)(contentType)
|
|
34
|
-
|
|
54
|
+
return (0, dynamicData_1.isDynamicDataSourceContentTypeAllowed)(contentType) ? contentType : undefined;
|
|
55
|
+
};
|
|
56
|
+
const getDynamicTargetField = (contentType, path) => {
|
|
57
|
+
const [fieldName, ...rest] = path.split('.');
|
|
58
|
+
const field = contentType.fields[fieldName];
|
|
59
|
+
if (!field || !contentType.allowsDynamicBindingForField(fieldName)) {
|
|
60
|
+
return undefined;
|
|
61
|
+
}
|
|
62
|
+
if (rest.length === 0)
|
|
63
|
+
return field;
|
|
64
|
+
return rest.length === 1 &&
|
|
65
|
+
field.meta.capabilities.dynamic?.mapProperties === true &&
|
|
66
|
+
field.meta.capabilities.dynamic?.properties?.[rest[0]]
|
|
67
|
+
? field
|
|
35
68
|
: undefined;
|
|
36
69
|
};
|
|
37
|
-
const fileSourcePaths = new Set([
|
|
38
|
-
"url",
|
|
39
|
-
"previewUrl",
|
|
40
|
-
"name",
|
|
41
|
-
"title",
|
|
42
|
-
"alt",
|
|
43
|
-
"mime",
|
|
44
|
-
"srcSet",
|
|
45
|
-
"width",
|
|
46
|
-
"height",
|
|
47
|
-
"size",
|
|
48
|
-
]);
|
|
49
|
-
const linkSourcePaths = new Set(["href", "title"]);
|
|
50
70
|
const isDynamicSourcePathAllowed = (contentType, path, depth = 0) => {
|
|
51
71
|
if (!path)
|
|
52
72
|
return false;
|
|
53
|
-
const [fieldName, ...rest] = path.split(
|
|
73
|
+
const [fieldName, ...rest] = path.split('.');
|
|
54
74
|
const field = contentType.fields[fieldName];
|
|
55
75
|
if (!field || !contentType.allowsDynamicBindingForField(fieldName)) {
|
|
56
76
|
return false;
|
|
57
77
|
}
|
|
58
78
|
if (rest.length === 0)
|
|
59
79
|
return true;
|
|
60
|
-
if (field.meta.
|
|
61
|
-
|
|
62
|
-
depth < 3) {
|
|
63
|
-
return isDynamicSourcePathAllowed(field.contentType, rest.join("."), depth + 1);
|
|
64
|
-
}
|
|
65
|
-
if (field.meta.type === "File") {
|
|
66
|
-
return rest.length === 1 && fileSourcePaths.has(rest[0]);
|
|
67
|
-
}
|
|
68
|
-
if (field.meta.type === "Link") {
|
|
69
|
-
return rest.length === 1 && linkSourcePaths.has(rest[0]);
|
|
80
|
+
if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field && depth < 3) {
|
|
81
|
+
return isDynamicSourcePathAllowed(field.contentType, rest.join('.'), depth + 1);
|
|
70
82
|
}
|
|
71
|
-
return
|
|
83
|
+
return rest.length === 1 && !!field.meta.capabilities.dynamic?.properties?.[rest[0]];
|
|
72
84
|
};
|
|
73
85
|
const getDynamicSourceField = (contentType, path, depth = 0) => {
|
|
74
86
|
if (!path)
|
|
75
87
|
return undefined;
|
|
76
|
-
const [fieldName, ...rest] = path.split(
|
|
88
|
+
const [fieldName, ...rest] = path.split('.');
|
|
77
89
|
const field = contentType.fields[fieldName];
|
|
78
90
|
if (!field || !contentType.allowsDynamicBindingForField(fieldName)) {
|
|
79
91
|
return undefined;
|
|
80
92
|
}
|
|
81
93
|
if (rest.length === 0)
|
|
82
94
|
return field;
|
|
83
|
-
if (field.meta.
|
|
84
|
-
|
|
85
|
-
depth < 3) {
|
|
86
|
-
return getDynamicSourceField(field.contentType, rest.join("."), depth + 1);
|
|
95
|
+
if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field && depth < 3) {
|
|
96
|
+
return getDynamicSourceField(field.contentType, rest.join('.'), depth + 1);
|
|
87
97
|
}
|
|
88
98
|
return undefined;
|
|
89
99
|
};
|
|
90
100
|
const isArraySourceField = (field) => {
|
|
91
101
|
if (!field)
|
|
92
102
|
return false;
|
|
93
|
-
|
|
94
|
-
return true;
|
|
95
|
-
return "isMultiple" in field.meta && field.meta.isMultiple === true;
|
|
103
|
+
return field.meta.capabilities.valueKind === 'array';
|
|
96
104
|
};
|
|
97
105
|
const getRelationTarget = (field) => {
|
|
98
106
|
if (!field || field.getIsTranslatable())
|
|
99
107
|
return undefined;
|
|
100
|
-
if (field.meta.
|
|
108
|
+
if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field) {
|
|
101
109
|
return field.contentType;
|
|
102
110
|
}
|
|
103
|
-
if (field.meta.
|
|
111
|
+
if (field.meta.capabilities.dynamic?.collection === 'homogeneous' && 'field' in field) {
|
|
104
112
|
const itemField = field.field;
|
|
105
|
-
if (itemField.meta.
|
|
113
|
+
if (itemField.meta.capabilities.dynamic?.relation === true && 'contentType' in itemField) {
|
|
106
114
|
return itemField.contentType;
|
|
107
115
|
}
|
|
108
116
|
}
|
|
@@ -112,8 +120,8 @@ const getDocumentListItemContentType = (field, itemName) => {
|
|
|
112
120
|
if (!field || !isArraySourceField(field) || field.getIsTranslatable()) {
|
|
113
121
|
return undefined;
|
|
114
122
|
}
|
|
115
|
-
if (
|
|
116
|
-
|
|
123
|
+
if (field.meta.capabilities.dynamic?.collection === 'heterogeneous' &&
|
|
124
|
+
'fields' in field &&
|
|
117
125
|
Array.isArray(field.fields)) {
|
|
118
126
|
if (!itemName)
|
|
119
127
|
return undefined;
|
|
@@ -143,7 +151,7 @@ const loadSourceDocument = async (db, source) => {
|
|
|
143
151
|
if (!item || !isPublicDocument(item)) {
|
|
144
152
|
return undefined;
|
|
145
153
|
}
|
|
146
|
-
return (await (0, populateRelations_1.populateRelations)(await (0, populateLinks_1.
|
|
154
|
+
return (await (0, populateRelations_1.populateRelations)(await (0, populateLinks_1.populateFields)(item)));
|
|
147
155
|
};
|
|
148
156
|
const resolveSourceValue = async ({ db, source, currentSource, currentContentType, allowCurrentSource, contextSource, }) => {
|
|
149
157
|
const usesCurrentRecord = allowCurrentSource === true &&
|
|
@@ -166,8 +174,8 @@ const resolveSourceValue = async ({ db, source, currentSource, currentContentTyp
|
|
|
166
174
|
: await loadSourceDocument(db, source);
|
|
167
175
|
if (!sourceDocument)
|
|
168
176
|
return undefined;
|
|
169
|
-
if (source.virtual ===
|
|
170
|
-
const sourceId = typeof sourceDocument._id ===
|
|
177
|
+
if (source.virtual === 'href') {
|
|
178
|
+
const sourceId = typeof sourceDocument._id === 'string' ? sourceDocument._id : source.id;
|
|
171
179
|
return sourceId ? await resolveHref(source, sourceId) : undefined;
|
|
172
180
|
}
|
|
173
181
|
if (!isDynamicSourcePathAllowed(sourceContentType, source.path)) {
|
|
@@ -175,17 +183,17 @@ const resolveSourceValue = async ({ db, source, currentSource, currentContentTyp
|
|
|
175
183
|
}
|
|
176
184
|
return getAtPath(sourceDocument, source.path);
|
|
177
185
|
};
|
|
178
|
-
const isRelatedCollectionSource = (source) =>
|
|
179
|
-
const isNestedListSource = (source) =>
|
|
186
|
+
const isRelatedCollectionSource = (source) => 'kind' in source && source.kind === 'relatedCollection';
|
|
187
|
+
const isNestedListSource = (source) => 'kind' in source && source.kind === 'list';
|
|
180
188
|
const addPublicContentFilter = (query) => ({
|
|
181
189
|
...query,
|
|
182
190
|
filter: {
|
|
183
191
|
...query.filter,
|
|
184
192
|
_trashed: { $ne: true },
|
|
185
|
-
_visibility: { $nin: [
|
|
193
|
+
_visibility: { $nin: ['draft', 'trash'] },
|
|
186
194
|
},
|
|
187
195
|
});
|
|
188
|
-
const isDynamicQueryCurrentPathAllowed = (contentType, path) => path ===
|
|
196
|
+
const isDynamicQueryCurrentPathAllowed = (contentType, path) => path === '_id' || isDynamicSourcePathAllowed(contentType, path);
|
|
189
197
|
const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, currentDocument, currentDocumentContentType) => {
|
|
190
198
|
const currentValue = dynamicData_1.DynamicQueryCurrentValueSchema.safeParse(value);
|
|
191
199
|
if (currentValue.success) {
|
|
@@ -194,9 +202,7 @@ const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, cu
|
|
|
194
202
|
return { success: false };
|
|
195
203
|
}
|
|
196
204
|
const resolved = getAtPath(currentItem, path);
|
|
197
|
-
return resolved === undefined
|
|
198
|
-
? { success: false }
|
|
199
|
-
: { success: true, value: resolved };
|
|
205
|
+
return resolved === undefined ? { success: false } : { success: true, value: resolved };
|
|
200
206
|
}
|
|
201
207
|
const documentValue = dynamicData_1.DynamicQueryDocumentValueSchema.safeParse(value);
|
|
202
208
|
if (documentValue.success) {
|
|
@@ -205,9 +211,7 @@ const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, cu
|
|
|
205
211
|
return { success: false };
|
|
206
212
|
}
|
|
207
213
|
const resolved = getAtPath(currentDocument, path);
|
|
208
|
-
return resolved === undefined
|
|
209
|
-
? { success: false }
|
|
210
|
-
: { success: true, value: resolved };
|
|
214
|
+
return resolved === undefined ? { success: false } : { success: true, value: resolved };
|
|
211
215
|
}
|
|
212
216
|
if (Array.isArray(value)) {
|
|
213
217
|
const items = [];
|
|
@@ -231,12 +235,12 @@ const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, cu
|
|
|
231
235
|
}
|
|
232
236
|
return { success: true, value };
|
|
233
237
|
};
|
|
234
|
-
const resolveRelatedCollectionValue = async ({ db, source, currentSource, currentContentType, populateDocument = async (sourceItem) => (await (0, populateRelations_1.populateRelations)(await (0, populateLinks_1.
|
|
238
|
+
const resolveRelatedCollectionValue = async ({ db, source, currentSource, currentContentType, populateDocument = async (sourceItem) => (await (0, populateRelations_1.populateRelations)(await (0, populateLinks_1.populateFields)(sourceItem))), }) => {
|
|
235
239
|
if (!(0, dynamicData_1.isDynamicDataSourceContentTypeAllowed)(currentContentType)) {
|
|
236
240
|
return undefined;
|
|
237
241
|
}
|
|
238
242
|
const sourceId = currentSource._id;
|
|
239
|
-
if (typeof sourceId !==
|
|
243
|
+
if (typeof sourceId !== 'string')
|
|
240
244
|
return undefined;
|
|
241
245
|
const relatedContentType = getAllowedSourceContentType(source.contentType);
|
|
242
246
|
if (!relatedContentType)
|
|
@@ -268,16 +272,16 @@ const resolveRelatedCollectionValue = async ({ db, source, currentSource, curren
|
|
|
268
272
|
exports.resolveRelatedCollectionValue = resolveRelatedCollectionValue;
|
|
269
273
|
const resolveListMapSourceValue = async ({ db, source, targetField, currentSource, currentContentType, contextSource, }) => {
|
|
270
274
|
if (isNestedListSource(source)) {
|
|
271
|
-
|
|
272
|
-
if (!targetContentType)
|
|
275
|
+
if (!targetField || !getDynamicListTarget(targetField, source.itemName)) {
|
|
273
276
|
return undefined;
|
|
277
|
+
}
|
|
274
278
|
return await resolveListBinding({
|
|
275
279
|
db,
|
|
276
280
|
binding: source,
|
|
277
281
|
contextSource,
|
|
278
282
|
currentDocument: currentSource,
|
|
279
283
|
currentDocumentContentType: currentContentType,
|
|
280
|
-
|
|
284
|
+
targetField,
|
|
281
285
|
});
|
|
282
286
|
}
|
|
283
287
|
if (isRelatedCollectionSource(source)) {
|
|
@@ -297,7 +301,7 @@ const resolveListMapSourceValue = async ({ db, source, targetField, currentSourc
|
|
|
297
301
|
contextSource,
|
|
298
302
|
});
|
|
299
303
|
};
|
|
300
|
-
const resolveListBinding = async ({ db, binding, contextSource, currentDocument, currentDocumentContentType,
|
|
304
|
+
const resolveListBinding = async ({ db, binding, contextSource, currentDocument, currentDocumentContentType, targetField, }) => {
|
|
301
305
|
const documentSource = binding.source;
|
|
302
306
|
const rootDocumentSource = contextSource ?? {
|
|
303
307
|
contentType: currentDocumentContentType,
|
|
@@ -309,6 +313,9 @@ const resolveListBinding = async ({ db, binding, contextSource, currentDocument,
|
|
|
309
313
|
if (!sourceContentType) {
|
|
310
314
|
return undefined;
|
|
311
315
|
}
|
|
316
|
+
const target = getDynamicListTarget(targetField, binding.itemName);
|
|
317
|
+
if (!target)
|
|
318
|
+
return undefined;
|
|
312
319
|
let sourceItems;
|
|
313
320
|
if (documentSource) {
|
|
314
321
|
if (documentSource.contentType !== currentDocumentContentType.name) {
|
|
@@ -323,9 +330,7 @@ const resolveListBinding = async ({ db, binding, contextSource, currentDocument,
|
|
|
323
330
|
if (!Array.isArray(value))
|
|
324
331
|
return undefined;
|
|
325
332
|
sourceItems = documentSource.itemName
|
|
326
|
-
? value.flatMap((item) => isRecord(item) &&
|
|
327
|
-
item.name === documentSource.itemName &&
|
|
328
|
-
"value" in item
|
|
333
|
+
? value.flatMap((item) => isRecord(item) && item.name === documentSource.itemName && 'value' in item
|
|
329
334
|
? [item.value]
|
|
330
335
|
: [])
|
|
331
336
|
: value;
|
|
@@ -346,106 +351,148 @@ const resolveListBinding = async ({ db, binding, contextSource, currentDocument,
|
|
|
346
351
|
return undefined;
|
|
347
352
|
const populated = documentSource
|
|
348
353
|
? sourceItem
|
|
349
|
-
: (await (0, populateRelations_1.populateRelations)(await (0, populateLinks_1.
|
|
350
|
-
const
|
|
351
|
-
|
|
352
|
-
targetField,
|
|
354
|
+
: (await (0, populateRelations_1.populateRelations)(await (0, populateLinks_1.populateFields)(sourceItem)));
|
|
355
|
+
const mappedEntries = await Promise.all(Object.entries(binding.map).map(async ([targetPath, source]) => [
|
|
356
|
+
targetPath,
|
|
353
357
|
await resolveListMapSourceValue({
|
|
354
358
|
db,
|
|
355
359
|
source,
|
|
356
|
-
targetField:
|
|
360
|
+
targetField: target.kind === 'linkArray'
|
|
361
|
+
? undefined
|
|
362
|
+
: getDynamicTargetField(target.contentType, targetPath),
|
|
357
363
|
currentSource: populated,
|
|
358
364
|
currentContentType: sourceContentType,
|
|
359
365
|
contextSource: rootDocumentSource,
|
|
360
366
|
}),
|
|
361
|
-
]))
|
|
367
|
+
]));
|
|
368
|
+
const mapped = {};
|
|
369
|
+
mappedEntries
|
|
370
|
+
.sort(([left], [right]) => left.split('.').length - right.split('.').length)
|
|
371
|
+
.forEach(([targetPath, value]) => setAtPath(mapped, targetPath, value));
|
|
372
|
+
if (target.kind === 'linkArray')
|
|
373
|
+
return mapped;
|
|
374
|
+
const targetValue = {
|
|
375
|
+
_id: typeof sourceItem._id === 'string'
|
|
376
|
+
? `${binding.itemName}:${sourceItem._id}`
|
|
377
|
+
: `${binding.itemName}:${index}`,
|
|
378
|
+
_type: target.contentType.name,
|
|
379
|
+
...mapped,
|
|
380
|
+
};
|
|
381
|
+
if (target.kind === 'relationArray')
|
|
382
|
+
return targetValue;
|
|
362
383
|
return {
|
|
363
384
|
name: binding.itemName,
|
|
364
|
-
value:
|
|
365
|
-
_id: typeof sourceItem._id === "string"
|
|
366
|
-
? `${binding.itemName}:${sourceItem._id}`
|
|
367
|
-
: `${binding.itemName}:${index}`,
|
|
368
|
-
_type: itemContentTypeName,
|
|
369
|
-
...mapped,
|
|
370
|
-
},
|
|
385
|
+
value: targetValue,
|
|
371
386
|
};
|
|
372
387
|
}));
|
|
373
388
|
return resolvedItems.filter((item) => item !== undefined);
|
|
374
389
|
};
|
|
375
|
-
const
|
|
376
|
-
if (!field ||
|
|
390
|
+
const getBlocksTargetContentType = (field, itemName) => {
|
|
391
|
+
if (!field || field.meta.capabilities.dynamic?.collection !== 'heterogeneous') {
|
|
377
392
|
return undefined;
|
|
378
393
|
}
|
|
379
|
-
if (!(
|
|
394
|
+
if (!('fields' in field) || !Array.isArray(field.fields)) {
|
|
380
395
|
return undefined;
|
|
381
396
|
}
|
|
382
397
|
const entry = field.fields.find((item) => item.name === itemName);
|
|
383
398
|
if (!entry ||
|
|
384
|
-
entry.field.meta.
|
|
385
|
-
!(
|
|
399
|
+
entry.field.meta.capabilities.dynamic?.relation !== true ||
|
|
400
|
+
!('contentType' in entry.field)) {
|
|
386
401
|
return undefined;
|
|
387
402
|
}
|
|
388
403
|
return entry.field.contentType;
|
|
389
404
|
};
|
|
390
|
-
const
|
|
405
|
+
const getSimpleListItemField = (field) => {
|
|
406
|
+
if (!field ||
|
|
407
|
+
field.meta.capabilities.dynamic?.collection !== 'homogeneous' ||
|
|
408
|
+
!('field' in field)) {
|
|
409
|
+
return undefined;
|
|
410
|
+
}
|
|
411
|
+
return field.field;
|
|
412
|
+
};
|
|
413
|
+
const getDynamicListTarget = (field, itemName) => {
|
|
414
|
+
const blocksContentType = getBlocksTargetContentType(field, itemName);
|
|
415
|
+
if (blocksContentType) {
|
|
416
|
+
return { kind: 'blocks', contentType: blocksContentType };
|
|
417
|
+
}
|
|
418
|
+
const itemField = getSimpleListItemField(field);
|
|
419
|
+
if (!itemField)
|
|
420
|
+
return undefined;
|
|
421
|
+
if (itemField.meta.capabilities.dynamic?.relation === true && 'contentType' in itemField) {
|
|
422
|
+
const contentType = itemField.contentType;
|
|
423
|
+
if (itemName !== contentType.name)
|
|
424
|
+
return undefined;
|
|
425
|
+
return {
|
|
426
|
+
kind: 'relationArray',
|
|
427
|
+
contentType,
|
|
428
|
+
};
|
|
429
|
+
}
|
|
430
|
+
const itemTypeName = itemField.meta.editor ?? itemField.meta.type;
|
|
431
|
+
return itemField.meta.capabilities.dynamic?.mapProperties === true &&
|
|
432
|
+
itemField.meta.capabilities.dynamic?.properties &&
|
|
433
|
+
itemName === itemTypeName
|
|
434
|
+
? { kind: 'linkArray' }
|
|
435
|
+
: undefined;
|
|
436
|
+
};
|
|
437
|
+
const getDynamicListItemContentTypeName = (field, itemName) => {
|
|
438
|
+
const target = getDynamicListTarget(field, itemName);
|
|
439
|
+
return target && target.kind !== 'linkArray' ? target.contentType.name : itemName;
|
|
440
|
+
};
|
|
391
441
|
exports.getDynamicListItemContentTypeName = getDynamicListItemContentTypeName;
|
|
392
442
|
const filterListBindingMap = (contentType, fieldName, binding) => {
|
|
393
|
-
|
|
394
|
-
if (!targetContentType)
|
|
395
|
-
return binding;
|
|
396
|
-
return filterListBindingForTarget(targetContentType, binding);
|
|
443
|
+
return filterListBindingForTarget(contentType.fields[fieldName], binding);
|
|
397
444
|
};
|
|
398
|
-
const filterListBindingForTarget = (
|
|
445
|
+
const filterListBindingForTarget = (targetField, binding) => {
|
|
446
|
+
const target = getDynamicListTarget(targetField, binding.itemName);
|
|
447
|
+
if (!target)
|
|
448
|
+
return { ...binding, map: {} };
|
|
399
449
|
return {
|
|
400
450
|
...binding,
|
|
401
|
-
map: Object.fromEntries(Object.entries(binding.map).flatMap(([
|
|
402
|
-
if (
|
|
451
|
+
map: Object.fromEntries(Object.entries(binding.map).flatMap(([targetPath, source]) => {
|
|
452
|
+
if (target.kind === 'linkArray') {
|
|
453
|
+
return targetField &&
|
|
454
|
+
'field' in targetField &&
|
|
455
|
+
!!targetField.field.meta.capabilities.dynamic
|
|
456
|
+
?.properties?.[targetPath] &&
|
|
457
|
+
!isNestedListSource(source)
|
|
458
|
+
? [[targetPath, source]]
|
|
459
|
+
: [];
|
|
460
|
+
}
|
|
461
|
+
const field = getDynamicTargetField(target.contentType, targetPath);
|
|
462
|
+
if (!field) {
|
|
403
463
|
return [];
|
|
404
464
|
}
|
|
405
465
|
if (!isNestedListSource(source)) {
|
|
406
|
-
return [[
|
|
466
|
+
return [[targetPath, source]];
|
|
407
467
|
}
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
targetField,
|
|
413
|
-
filterListBindingForTarget(nestedTargetContentType, source),
|
|
414
|
-
],
|
|
415
|
-
]
|
|
416
|
-
: [];
|
|
468
|
+
if (targetPath.includes('.'))
|
|
469
|
+
return [];
|
|
470
|
+
const nestedTarget = getDynamicListTarget(field, source.itemName);
|
|
471
|
+
return nestedTarget ? [[targetPath, filterListBindingForTarget(field, source)]] : [];
|
|
417
472
|
})),
|
|
418
473
|
};
|
|
419
474
|
};
|
|
420
475
|
const getListItemStableKey = (item) => {
|
|
421
476
|
if (!isRecord(item))
|
|
422
477
|
return undefined;
|
|
423
|
-
const name = typeof item.name ===
|
|
478
|
+
const name = typeof item.name === 'string' ? item.name : '';
|
|
424
479
|
const value = item.value;
|
|
425
|
-
if (isRecord(value) && typeof value._id ===
|
|
426
|
-
const id = value._id.startsWith(`${name}:`)
|
|
427
|
-
? value._id.slice(name.length + 1)
|
|
428
|
-
: value._id;
|
|
480
|
+
if (isRecord(value) && typeof value._id === 'string') {
|
|
481
|
+
const id = value._id.startsWith(`${name}:`) ? value._id.slice(name.length + 1) : value._id;
|
|
429
482
|
return `${name}:${id}`;
|
|
430
483
|
}
|
|
431
|
-
if (isRecord(value) &&
|
|
432
|
-
isRecord(value.data) &&
|
|
433
|
-
typeof value.data._id === "string") {
|
|
484
|
+
if (isRecord(value) && isRecord(value.data) && typeof value.data._id === 'string') {
|
|
434
485
|
return `${name}:${value.data._id}`;
|
|
435
486
|
}
|
|
436
487
|
return undefined;
|
|
437
488
|
};
|
|
438
489
|
const isListValueItem = (item) => isRecord(item) &&
|
|
439
|
-
typeof item.name ===
|
|
440
|
-
Object.prototype.hasOwnProperty.call(item,
|
|
490
|
+
typeof item.name === 'string' &&
|
|
491
|
+
Object.prototype.hasOwnProperty.call(item, 'value') &&
|
|
441
492
|
item.value !== undefined;
|
|
442
493
|
const mergeDynamicListItems = (currentValue, resolvedValue) => {
|
|
443
|
-
const currentItems = Array.isArray(currentValue)
|
|
444
|
-
|
|
445
|
-
: [];
|
|
446
|
-
const resolvedItems = Array.isArray(resolvedValue)
|
|
447
|
-
? resolvedValue.filter(isListValueItem)
|
|
448
|
-
: [];
|
|
494
|
+
const currentItems = Array.isArray(currentValue) ? currentValue.filter(isListValueItem) : [];
|
|
495
|
+
const resolvedItems = Array.isArray(resolvedValue) ? resolvedValue.filter(isListValueItem) : [];
|
|
449
496
|
const seen = new Set();
|
|
450
497
|
const merged = [];
|
|
451
498
|
for (const item of [...resolvedItems, ...currentItems]) {
|
|
@@ -460,6 +507,20 @@ const mergeDynamicListItems = (currentValue, resolvedValue) => {
|
|
|
460
507
|
return merged;
|
|
461
508
|
};
|
|
462
509
|
exports.mergeDynamicListItems = mergeDynamicListItems;
|
|
510
|
+
const mergeDynamicArrayItems = (currentValue, resolvedValue) => {
|
|
511
|
+
const currentItems = Array.isArray(currentValue) ? currentValue : [];
|
|
512
|
+
const resolvedItems = Array.isArray(resolvedValue) ? resolvedValue : [];
|
|
513
|
+
const seenIds = new Set();
|
|
514
|
+
return [...resolvedItems, ...currentItems].filter((item) => {
|
|
515
|
+
if (!isRecord(item) || typeof item._id !== 'string')
|
|
516
|
+
return true;
|
|
517
|
+
if (seenIds.has(item._id))
|
|
518
|
+
return false;
|
|
519
|
+
seenIds.add(item._id);
|
|
520
|
+
return true;
|
|
521
|
+
});
|
|
522
|
+
};
|
|
523
|
+
exports.mergeDynamicArrayItems = mergeDynamicArrayItems;
|
|
463
524
|
const resolveRecordBindings = async ({ db, contentType, value, contextSource, }) => {
|
|
464
525
|
const bindings = (0, dynamicData_1.getDynamicDocumentBindings)(value[dynamicData_1.DYNAMIC_BINDINGS_FIELD_NAME]);
|
|
465
526
|
if (!bindings)
|
|
@@ -481,13 +542,14 @@ const resolveRecordBindings = async ({ db, contentType, value, contextSource, })
|
|
|
481
542
|
}
|
|
482
543
|
}
|
|
483
544
|
catch (error) {
|
|
484
|
-
Logger_1.Logger.error(
|
|
545
|
+
Logger_1.Logger.error('dynamicData: field binding failed', error);
|
|
485
546
|
}
|
|
486
547
|
}
|
|
487
548
|
for (const [field, binding] of Object.entries(bindings.lists ?? {})) {
|
|
488
549
|
if (!contentType.allowsDynamicBindingForField(field))
|
|
489
550
|
continue;
|
|
490
551
|
try {
|
|
552
|
+
const targetField = contentType.fields[field];
|
|
491
553
|
const filteredBinding = filterListBindingMap(contentType, field, binding);
|
|
492
554
|
const resolved = await resolveListBinding({
|
|
493
555
|
db,
|
|
@@ -495,14 +557,17 @@ const resolveRecordBindings = async ({ db, contentType, value, contextSource, })
|
|
|
495
557
|
contextSource,
|
|
496
558
|
currentDocument: contextSource?.value ?? next,
|
|
497
559
|
currentDocumentContentType: contextSource?.contentType ?? contentType,
|
|
498
|
-
|
|
560
|
+
targetField,
|
|
499
561
|
});
|
|
500
562
|
if (resolved !== undefined) {
|
|
501
|
-
next[field] =
|
|
563
|
+
next[field] =
|
|
564
|
+
targetField.meta.capabilities.dynamic?.collection === 'homogeneous'
|
|
565
|
+
? (0, exports.mergeDynamicArrayItems)(next[field], resolved)
|
|
566
|
+
: (0, exports.mergeDynamicListItems)(next[field], resolved);
|
|
502
567
|
}
|
|
503
568
|
}
|
|
504
569
|
catch (error) {
|
|
505
|
-
Logger_1.Logger.error(
|
|
570
|
+
Logger_1.Logger.error('dynamicData: list binding failed', error);
|
|
506
571
|
}
|
|
507
572
|
}
|
|
508
573
|
return next;
|
|
@@ -514,9 +579,7 @@ const resolveDynamicData = async (value, options) => {
|
|
|
514
579
|
if (!isRecord(value))
|
|
515
580
|
return value;
|
|
516
581
|
const contentType = options.contentType ??
|
|
517
|
-
(typeof value._type ===
|
|
518
|
-
? (0, Registry_1.getContentTypeByName)(value._type)
|
|
519
|
-
: undefined);
|
|
582
|
+
(typeof value._type === 'string' ? (0, Registry_1.getContentTypeByName)(value._type) : undefined);
|
|
520
583
|
const boundValue = contentType
|
|
521
584
|
? await resolveRecordBindings({
|
|
522
585
|
db: options.db,
|