@rakun-kit/core 1.5.13 → 1.6.1
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 +107 -21
- 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/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 +20 -14
- 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 +35 -5
- package/dist/cjs/api/routes/manager/uiLocales.js.map +1 -1
- package/dist/cjs/api/routes/web/llms.js +53 -52
- package/dist/cjs/api/routes/web/llms.js.map +1 -1
- 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 +1 -0
- package/dist/cjs/contracts.js.map +1 -1
- package/dist/cjs/index.js +2 -2
- 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 +8 -9
- package/dist/cjs/internal-content-types/LlmsSettings.js.map +1 -1
- 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 +2 -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/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/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 +119 -19
- package/dist/esm/api/context.d.ts +1 -1
- package/dist/esm/api/context.js +3 -3
- package/dist/esm/api/hooks/context.d.ts +1 -1
- package/dist/esm/api/hooks/runContentHooks.d.ts +4 -4
- package/dist/esm/api/hooks/runContentHooks.js +1 -1
- package/dist/esm/api/operations/apiEventLog.d.ts +3 -3
- package/dist/esm/api/operations/apiEventLog.js +3 -3
- package/dist/esm/api/operations/catalog.d.ts +2 -2
- package/dist/esm/api/operations/catalog.js +1 -1
- package/dist/esm/api/operations/custom.d.ts +1 -1
- package/dist/esm/api/operations/custom.js +1 -1
- package/dist/esm/api/operations/index.d.ts +354 -225
- package/dist/esm/api/operations/index.d.ts.map +1 -1
- package/dist/esm/api/operations/index.js +9 -9
- package/dist/esm/api/operations/manager-contract.d.ts +273 -172
- package/dist/esm/api/operations/manager-contract.d.ts.map +1 -1
- package/dist/esm/api/operations/manager-contract.js +15 -7
- 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 +274 -173
- package/dist/esm/api/operations/manager.d.ts.map +1 -1
- package/dist/esm/api/operations/manager.js +76 -72
- package/dist/esm/api/operations/manager.js.map +1 -1
- package/dist/esm/api/operations/tracing.d.ts +1 -1
- package/dist/esm/api/operations/tracing.js +2 -2
- package/dist/esm/api/operations/types.d.ts +1 -1
- package/dist/esm/api/operations/web-contract.d.ts +72 -44
- package/dist/esm/api/operations/web-contract.d.ts.map +1 -1
- package/dist/esm/api/operations/web-contract.js +3 -3
- package/dist/esm/api/operations/web.d.ts +73 -45
- package/dist/esm/api/operations/web.d.ts.map +1 -1
- package/dist/esm/api/operations/web.js +11 -11
- package/dist/esm/api/routes/manager/apiOperations.d.ts +3 -3
- package/dist/esm/api/routes/manager/apiOperations.js +5 -5
- package/dist/esm/api/routes/manager/auth/accountInfo.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/accountInfo.js +3 -3
- package/dist/esm/api/routes/manager/auth/deleteSession.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/deleteSession.js +3 -3
- package/dist/esm/api/routes/manager/auth/externalLogin.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/externalLogin.js +7 -7
- package/dist/esm/api/routes/manager/auth/getSession.d.ts +9 -9
- package/dist/esm/api/routes/manager/auth/login.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/login.js +9 -9
- package/dist/esm/api/routes/manager/auth/logout.d.ts +1 -1
- package/dist/esm/api/routes/manager/auth/logout.js +3 -3
- package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts +11 -11
- package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/auth/markTourSeen.js +7 -4
- package/dist/esm/api/routes/manager/auth/markTourSeen.js.map +1 -1
- package/dist/esm/api/routes/manager/auth/mfa/regenerateRecoveryCodes.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/mfa/regenerateRecoveryCodes.js +6 -6
- package/dist/esm/api/routes/manager/auth/mfa/verifyRecoveryCode.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/mfa/verifyRecoveryCode.js +7 -7
- package/dist/esm/api/routes/manager/auth/passwordIpBlocks.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/passwordIpBlocks.js +8 -8
- package/dist/esm/api/routes/manager/auth/passwordRecovery.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/passwordRecovery.js +10 -10
- package/dist/esm/api/routes/manager/auth/totp/confirmTotp.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/totp/confirmTotp.js +4 -4
- package/dist/esm/api/routes/manager/auth/totp/enrollTotp.d.ts +1 -1
- package/dist/esm/api/routes/manager/auth/totp/enrollTotp.js +3 -3
- package/dist/esm/api/routes/manager/auth/totp/verifyTotp.d.ts +1 -1
- package/dist/esm/api/routes/manager/auth/totp/verifyTotp.js +5 -5
- package/dist/esm/api/routes/manager/auth/updateAccount.d.ts +10 -10
- package/dist/esm/api/routes/manager/auth/updateAccount.js +3 -3
- package/dist/esm/api/routes/manager/auth/updatePassword.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/updatePassword.js +5 -5
- package/dist/esm/api/routes/manager/auth/updateTutorialPreferences.d.ts +10 -10
- package/dist/esm/api/routes/manager/auth/updateTutorialPreferences.js +3 -3
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnAuthOptions.js +4 -4
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnAuthVerify.js +6 -6
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterOptions.d.ts +2 -2
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterOptions.js +3 -3
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.d.ts +1 -1
- package/dist/esm/api/routes/manager/auth/webauthn/webauthnRegisterVerify.js +6 -6
- package/dist/esm/api/routes/manager/backups/create.d.ts +2 -2
- package/dist/esm/api/routes/manager/backups/create.js +2 -2
- package/dist/esm/api/routes/manager/backups/list.d.ts +2 -2
- package/dist/esm/api/routes/manager/backups/list.js +2 -2
- package/dist/esm/api/routes/manager/backups/restore.d.ts +2 -2
- package/dist/esm/api/routes/manager/backups/restore.js +4 -4
- package/dist/esm/api/routes/manager/comments.d.ts +2 -2
- package/dist/esm/api/routes/manager/comments.js +8 -8
- package/dist/esm/api/routes/manager/contentType.d.ts +16 -16
- package/dist/esm/api/routes/manager/contentType.js +3 -3
- package/dist/esm/api/routes/manager/contentTypes.d.ts +14 -14
- package/dist/esm/api/routes/manager/contentTypes.js +1 -1
- package/dist/esm/api/routes/manager/contentVersions.d.ts +2 -2
- package/dist/esm/api/routes/manager/contentVersions.js +13 -13
- package/dist/esm/api/routes/manager/create.d.ts +5 -5
- package/dist/esm/api/routes/manager/create.js +11 -11
- package/dist/esm/api/routes/manager/delete.d.ts +2 -2
- package/dist/esm/api/routes/manager/delete.js +12 -12
- package/dist/esm/api/routes/manager/duplicate.d.ts +5 -5
- package/dist/esm/api/routes/manager/duplicate.js +6 -6
- package/dist/esm/api/routes/manager/favorites.d.ts +2 -2
- package/dist/esm/api/routes/manager/favorites.js +5 -5
- package/dist/esm/api/routes/manager/get.d.ts +2 -2
- package/dist/esm/api/routes/manager/get.js +10 -10
- package/dist/esm/api/routes/manager/languages.d.ts +4 -4
- package/dist/esm/api/routes/manager/languages.js +1 -1
- package/dist/esm/api/routes/manager/list.d.ts +2 -2
- package/dist/esm/api/routes/manager/list.js +15 -15
- package/dist/esm/api/routes/manager/literals/list.d.ts +2 -2
- package/dist/esm/api/routes/manager/literals/list.js +5 -5
- package/dist/esm/api/routes/manager/literals/upsert.d.ts +2 -2
- package/dist/esm/api/routes/manager/literals/upsert.js +6 -6
- package/dist/esm/api/routes/manager/localeVariants.d.ts +49 -49
- package/dist/esm/api/routes/manager/localeVariants.js +19 -19
- package/dist/esm/api/routes/manager/logs/cleanup.d.ts +2 -2
- package/dist/esm/api/routes/manager/logs/cleanup.js +3 -3
- package/dist/esm/api/routes/manager/logs/list.d.ts +2 -2
- package/dist/esm/api/routes/manager/logs/list.js +2 -2
- package/dist/esm/api/routes/manager/media/createFolder.d.ts +2 -2
- package/dist/esm/api/routes/manager/media/createFolder.js +7 -7
- package/dist/esm/api/routes/manager/media/deleteFolder.d.ts +2 -2
- package/dist/esm/api/routes/manager/media/deleteFolder.js +7 -7
- 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 +16 -11
- package/dist/esm/api/routes/manager/media/deleteMediaStorage.js.map +1 -1
- package/dist/esm/api/routes/manager/media/finalizeUpload.d.ts +2 -2
- package/dist/esm/api/routes/manager/media/finalizeUpload.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/finalizeUpload.js +16 -12
- package/dist/esm/api/routes/manager/media/finalizeUpload.js.map +1 -1
- package/dist/esm/api/routes/manager/media/getMediaUrl.d.ts +2 -2
- package/dist/esm/api/routes/manager/media/getMediaUrl.js +6 -6
- package/dist/esm/api/routes/manager/media/listFolders.d.ts +2 -2
- package/dist/esm/api/routes/manager/media/listFolders.js +4 -4
- package/dist/esm/api/routes/manager/media/prepareUpload.d.ts +3 -3
- package/dist/esm/api/routes/manager/media/prepareUpload.js +5 -5
- package/dist/esm/api/routes/manager/media/reimportMedia.d.ts +16 -7
- package/dist/esm/api/routes/manager/media/reimportMedia.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/reimportMedia.js +27 -17
- 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 +15 -13
- package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.js.map +1 -1
- package/dist/esm/api/routes/manager/media/uploadBinary.d.ts +1 -1
- package/dist/esm/api/routes/manager/media/uploadBinary.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/media/uploadBinary.js +119 -46
- package/dist/esm/api/routes/manager/media/uploadBinary.js.map +1 -1
- package/dist/esm/api/routes/manager/migrations/list.d.ts +2 -2
- package/dist/esm/api/routes/manager/migrations/list.js +2 -2
- package/dist/esm/api/routes/manager/notifications.d.ts +2 -2
- package/dist/esm/api/routes/manager/notifications.js +6 -6
- package/dist/esm/api/routes/manager/permissions.d.ts +1 -1
- package/dist/esm/api/routes/manager/permissions.js +2 -2
- package/dist/esm/api/routes/manager/preview/create.d.ts +2 -2
- package/dist/esm/api/routes/manager/preview/create.js +15 -15
- package/dist/esm/api/routes/manager/previewSlugRedirects.d.ts +2 -2
- package/dist/esm/api/routes/manager/previewSlugRedirects.js +3 -3
- package/dist/esm/api/routes/manager/regenerateRoutes.d.ts +1 -1
- package/dist/esm/api/routes/manager/regenerateRoutes.js +2 -2
- package/dist/esm/api/routes/manager/reviewPolicies.d.ts +2 -2
- package/dist/esm/api/routes/manager/reviewPolicies.js +7 -7
- package/dist/esm/api/routes/manager/reviews.d.ts +2 -2
- package/dist/esm/api/routes/manager/reviews.js +8 -8
- package/dist/esm/api/routes/manager/routeLayout.d.ts +2 -2
- package/dist/esm/api/routes/manager/routeLayout.js +6 -6
- package/dist/esm/api/routes/manager/setDefaultLanguage.d.ts +2 -2
- package/dist/esm/api/routes/manager/setDefaultLanguage.js +5 -5
- package/dist/esm/api/routes/manager/template.d.ts +3 -3
- package/dist/esm/api/routes/manager/template.js +10 -10
- package/dist/esm/api/routes/manager/translateDocument.d.ts +2 -2
- package/dist/esm/api/routes/manager/translateDocument.js +11 -11
- package/dist/esm/api/routes/manager/trash.d.ts +3 -3
- package/dist/esm/api/routes/manager/trash.js +9 -9
- package/dist/esm/api/routes/manager/uiLocales.d.ts +2 -1
- package/dist/esm/api/routes/manager/uiLocales.d.ts.map +1 -1
- package/dist/esm/api/routes/manager/uiLocales.js +36 -7
- package/dist/esm/api/routes/manager/uiLocales.js.map +1 -1
- package/dist/esm/api/routes/manager/update.d.ts +5 -5
- package/dist/esm/api/routes/manager/update.js +14 -14
- package/dist/esm/api/routes/manager/users.d.ts +2 -2
- package/dist/esm/api/routes/manager/users.js +2 -2
- package/dist/esm/api/routes/manager/versions/get.d.ts +2 -2
- package/dist/esm/api/routes/manager/versions/get.js +2 -2
- package/dist/esm/api/routes/manager/versions/list.d.ts +2 -2
- package/dist/esm/api/routes/manager/versions/list.js +2 -2
- package/dist/esm/api/routes/manager/versions/restore.d.ts +2 -2
- package/dist/esm/api/routes/manager/versions/restore.js +8 -8
- package/dist/esm/api/routes/web/llms.d.ts +1 -1
- package/dist/esm/api/routes/web/llms.d.ts.map +1 -1
- package/dist/esm/api/routes/web/llms.js +43 -50
- package/dist/esm/api/routes/web/llms.js.map +1 -1
- package/dist/esm/api/routes/web/page.d.ts +7 -5
- package/dist/esm/api/routes/web/page.d.ts.map +1 -1
- package/dist/esm/api/routes/web/page.js +64 -33
- package/dist/esm/api/routes/web/page.js.map +1 -1
- package/dist/esm/api/routes/web/previewPage.d.ts +31 -17
- package/dist/esm/api/routes/web/previewPage.d.ts.map +1 -1
- package/dist/esm/api/routes/web/previewPage.js +9 -9
- package/dist/esm/api/routes/web/robots.d.ts +1 -1
- package/dist/esm/api/routes/web/robots.js +2 -2
- package/dist/esm/api/routes/web/seo.d.ts +1 -1
- package/dist/esm/api/routes/web/sitemap.d.ts +1 -1
- package/dist/esm/api/routes/web/sitemap.d.ts.map +1 -1
- package/dist/esm/api/routes/web/sitemap.js +15 -5
- package/dist/esm/api/routes/web/sitemap.js.map +1 -1
- package/dist/esm/api/routes/web/staticPaths.d.ts +3 -3
- package/dist/esm/api/routes/web/staticPaths.d.ts.map +1 -1
- package/dist/esm/api/routes/web/staticPaths.js +7 -5
- package/dist/esm/api/routes/web/staticPaths.js.map +1 -1
- package/dist/esm/api/sessionCookie.d.ts +1 -1
- package/dist/esm/api/utils/authEvents.d.ts +2 -2
- package/dist/esm/api/utils/authEvents.js +2 -2
- package/dist/esm/api/utils/authRateLimit.d.ts +1 -1
- package/dist/esm/api/utils/authRateLimit.js +1 -1
- package/dist/esm/api/utils/breadcrums.d.ts +5 -5
- package/dist/esm/api/utils/breadcrums.js +3 -3
- package/dist/esm/api/utils/checkFailureCase.d.ts +1 -1
- package/dist/esm/api/utils/checkFailureCase.js +1 -1
- package/dist/esm/api/utils/checkOwnership.d.ts +2 -2
- package/dist/esm/api/utils/checkOwnership.js +5 -5
- package/dist/esm/api/utils/checkPermissions.d.ts +2 -2
- package/dist/esm/api/utils/checkPermissions.js +3 -3
- package/dist/esm/api/utils/contentTemplate.d.ts +2 -2
- package/dist/esm/api/utils/contentTemplate.js +7 -7
- package/dist/esm/api/utils/dynamicData.d.ts +7 -6
- package/dist/esm/api/utils/dynamicData.d.ts.map +1 -1
- package/dist/esm/api/utils/dynamicData.js +202 -140
- package/dist/esm/api/utils/dynamicData.js.map +1 -1
- package/dist/esm/api/utils/getLanguages.d.ts +2 -2
- package/dist/esm/api/utils/getLanguages.js +2 -2
- package/dist/esm/api/utils/getLink.d.ts +2 -2
- package/dist/esm/api/utils/getLink.js +5 -5
- package/dist/esm/api/utils/getUser.d.ts +9 -9
- package/dist/esm/api/utils/getUser.js +4 -4
- 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/iteratorVisibility.d.ts +1 -1
- package/dist/esm/api/utils/localeVariants.d.ts +1 -1
- package/dist/esm/api/utils/localeVariants.js +8 -8
- package/dist/esm/api/utils/managerNotifications.d.ts +5 -5
- package/dist/esm/api/utils/managerNotifications.js +3 -3
- 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/mediaUploadToken.d.ts +1 -1
- package/dist/esm/api/utils/parseId.d.ts +1 -1
- package/dist/esm/api/utils/parseId.js +1 -1
- package/dist/esm/api/utils/passwords.js +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/redirects/createSlugChangeRedirects.d.ts +2 -2
- package/dist/esm/api/utils/redirects/createSlugChangeRedirects.js +6 -6
- package/dist/esm/api/utils/redirects/resolveRedirect.js +2 -2
- package/dist/esm/api/utils/redirects/slugPathChanges.d.ts +1 -1
- package/dist/esm/api/utils/redirects/slugPathChanges.js +4 -4
- package/dist/esm/api/utils/requireContentType.d.ts +1 -1
- package/dist/esm/api/utils/requireContentType.js +2 -2
- package/dist/esm/api/utils/reviews.d.ts +14 -14
- package/dist/esm/api/utils/reviews.js +4 -4
- package/dist/esm/api/utils/routes/revalidatePath.js +5 -5
- package/dist/esm/api/utils/routes/routeDefinitions.d.ts +1 -1
- package/dist/esm/api/utils/routes/routeMapHelpers.d.ts +10 -7
- package/dist/esm/api/utils/routes/routeMapHelpers.d.ts.map +1 -1
- package/dist/esm/api/utils/routes/routeMapHelpers.js +50 -17
- package/dist/esm/api/utils/routes/routeMapHelpers.js.map +1 -1
- package/dist/esm/api/utils/routes/syncConfiguredRoutes.d.ts +2 -2
- package/dist/esm/api/utils/routes/syncConfiguredRoutes.js +5 -5
- package/dist/esm/api/utils/routes/updateRoutesMap.d.ts +2 -2
- package/dist/esm/api/utils/routes/updateRoutesMap.d.ts.map +1 -1
- package/dist/esm/api/utils/routes/updateRoutesMap.js +17 -12
- package/dist/esm/api/utils/routes/updateRoutesMap.js.map +1 -1
- package/dist/esm/api/utils/safeManagerQuery.d.ts +2 -2
- package/dist/esm/api/utils/safeManagerQuery.js +1 -1
- package/dist/esm/api/utils/sanitizeManagerOutput.d.ts +1 -1
- package/dist/esm/api/utils/sanitizeManagerOutput.js +1 -1
- package/dist/esm/api/utils/transformObjectIdsToStrings.js +1 -1
- package/dist/esm/api/utils/transformStringToObjectIds.js +1 -1
- package/dist/esm/api/utils/translate.d.ts +1 -1
- package/dist/esm/api/utils/translate.js +3 -3
- package/dist/esm/api/utils/validateModule.d.ts +1 -1
- package/dist/esm/api/utils/validateModule.js +2 -2
- package/dist/esm/auth/accountRecovery.d.ts +1 -1
- package/dist/esm/auth/completePrimaryAuthentication.d.ts +1 -1
- package/dist/esm/auth/completePrimaryAuthentication.js +3 -3
- package/dist/esm/auth/loginAdapters.d.ts +1 -1
- package/dist/esm/auth/passwordFail2ban.d.ts +2 -2
- package/dist/esm/auth/passwordFail2ban.js +4 -4
- package/dist/esm/auth/passwordResetMailTemplate.d.ts +2 -2
- package/dist/esm/auth/passwordResetMailTemplate.js +1 -1
- package/dist/esm/bootstrapState.d.ts +14 -14
- package/dist/esm/client.d.ts +62 -60
- package/dist/esm/client.d.ts.map +1 -1
- package/dist/esm/client.js +33 -32
- package/dist/esm/client.js.map +1 -1
- package/dist/esm/contracts.d.ts +60 -59
- package/dist/esm/contracts.d.ts.map +1 -1
- package/dist/esm/contracts.js +60 -59
- package/dist/esm/contracts.js.map +1 -1
- package/dist/esm/eventLog/index.d.ts +6 -6
- package/dist/esm/eventLog/index.js +4 -4
- package/dist/esm/eventLog/mongo.d.ts +1 -1
- package/dist/esm/eventLog/mongo.js +2 -2
- package/dist/esm/eventLog/service.d.ts +1 -1
- package/dist/esm/index.d.ts +52 -51
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +54 -54
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal-content-types/ApiOperation.d.ts +198 -158
- package/dist/esm/internal-content-types/ApiOperation.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ApiOperation.js +2 -2
- package/dist/esm/internal-content-types/Backup.d.ts +1055 -110
- package/dist/esm/internal-content-types/Backup.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Backup.js +5 -5
- package/dist/esm/internal-content-types/Backup.js.map +1 -1
- package/dist/esm/internal-content-types/BackupDocument.d.ts +198 -158
- package/dist/esm/internal-content-types/BackupDocument.d.ts.map +1 -1
- package/dist/esm/internal-content-types/BackupDocument.js +2 -2
- package/dist/esm/internal-content-types/ContentComment.d.ts +7230 -2011
- package/dist/esm/internal-content-types/ContentComment.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentComment.js +5 -5
- package/dist/esm/internal-content-types/ContentComment.js.map +1 -1
- package/dist/esm/internal-content-types/ContentCommentReadState.d.ts +4876 -1388
- package/dist/esm/internal-content-types/ContentCommentReadState.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentCommentReadState.js +3 -3
- package/dist/esm/internal-content-types/ContentReview.d.ts +34417 -10570
- package/dist/esm/internal-content-types/ContentReview.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReview.js +35 -22
- package/dist/esm/internal-content-types/ContentReview.js.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewDecision.d.ts +5203 -1340
- package/dist/esm/internal-content-types/ContentReviewDecision.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewDecision.js +4 -4
- package/dist/esm/internal-content-types/ContentReviewDecision.js.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts +1777 -270
- package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentReviewPolicy.js +5 -5
- package/dist/esm/internal-content-types/ContentReviewPolicy.js.map +1 -1
- package/dist/esm/internal-content-types/ContentTemplate.d.ts +131 -105
- package/dist/esm/internal-content-types/ContentTemplate.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentTemplate.js +2 -2
- package/dist/esm/internal-content-types/ContentVersion.d.ts +1315 -195
- package/dist/esm/internal-content-types/ContentVersion.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ContentVersion.js +6 -6
- package/dist/esm/internal-content-types/ContentVersion.js.map +1 -1
- package/dist/esm/internal-content-types/HelloWorld.d.ts +51 -41
- package/dist/esm/internal-content-types/HelloWorld.d.ts.map +1 -1
- package/dist/esm/internal-content-types/HelloWorld.js +2 -2
- package/dist/esm/internal-content-types/Language.d.ts +154 -54
- package/dist/esm/internal-content-types/Language.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Language.js +3 -3
- package/dist/esm/internal-content-types/Language.js.map +1 -1
- package/dist/esm/internal-content-types/LiteralTranslation.d.ts +101 -81
- package/dist/esm/internal-content-types/LiteralTranslation.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LiteralTranslation.js +2 -2
- package/dist/esm/internal-content-types/LlmsSettings.d.ts +2676 -1239
- package/dist/esm/internal-content-types/LlmsSettings.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LlmsSettings.js +10 -11
- package/dist/esm/internal-content-types/LlmsSettings.js.map +1 -1
- package/dist/esm/internal-content-types/LoginIpBlock.d.ts +191 -85
- package/dist/esm/internal-content-types/LoginIpBlock.d.ts.map +1 -1
- package/dist/esm/internal-content-types/LoginIpBlock.js +3 -3
- package/dist/esm/internal-content-types/LoginIpBlock.js.map +1 -1
- package/dist/esm/internal-content-types/ManagerFavorite.d.ts +4919 -1441
- package/dist/esm/internal-content-types/ManagerFavorite.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerFavorite.js +3 -3
- package/dist/esm/internal-content-types/ManagerNotification.d.ts +10508 -3073
- package/dist/esm/internal-content-types/ManagerNotification.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerNotification.js +5 -5
- package/dist/esm/internal-content-types/ManagerNotification.js.map +1 -1
- package/dist/esm/internal-content-types/ManagerRole.d.ts +56 -44
- package/dist/esm/internal-content-types/ManagerRole.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerRole.js +2 -2
- package/dist/esm/internal-content-types/ManagerRoleHooks.d.ts +2 -2
- package/dist/esm/internal-content-types/ManagerRoleHooks.js +3 -3
- package/dist/esm/internal-content-types/ManagerUser.d.ts +2009 -282
- package/dist/esm/internal-content-types/ManagerUser.d.ts.map +1 -1
- package/dist/esm/internal-content-types/ManagerUser.js +12 -12
- package/dist/esm/internal-content-types/ManagerUser.js.map +1 -1
- package/dist/esm/internal-content-types/ManagerUserHooks.d.ts +2 -2
- package/dist/esm/internal-content-types/ManagerUserHooks.js +3 -3
- package/dist/esm/internal-content-types/Media.d.ts +6386 -1059
- package/dist/esm/internal-content-types/Media.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Media.js +21 -20
- package/dist/esm/internal-content-types/Media.js.map +1 -1
- package/dist/esm/internal-content-types/MediaFolder.d.ts +508 -121
- package/dist/esm/internal-content-types/MediaFolder.d.ts.map +1 -1
- package/dist/esm/internal-content-types/MediaFolder.js +4 -4
- package/dist/esm/internal-content-types/MediaFolder.js.map +1 -1
- package/dist/esm/internal-content-types/MfaChallenge.d.ts +5361 -1402
- package/dist/esm/internal-content-types/MfaChallenge.d.ts.map +1 -1
- package/dist/esm/internal-content-types/MfaChallenge.js +5 -5
- package/dist/esm/internal-content-types/MfaChallenge.js.map +1 -1
- package/dist/esm/internal-content-types/Migration.d.ts +1321 -180
- package/dist/esm/internal-content-types/Migration.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Migration.js +7 -7
- package/dist/esm/internal-content-types/Migration.js.map +1 -1
- package/dist/esm/internal-content-types/MigrationLock.d.ts +24 -20
- package/dist/esm/internal-content-types/MigrationLock.d.ts.map +1 -1
- package/dist/esm/internal-content-types/MigrationLock.js +2 -2
- package/dist/esm/internal-content-types/Page.d.ts +148 -118
- package/dist/esm/internal-content-types/Page.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Page.js +3 -3
- package/dist/esm/internal-content-types/PasswordResetToken.d.ts +4886 -1328
- package/dist/esm/internal-content-types/PasswordResetToken.d.ts.map +1 -1
- package/dist/esm/internal-content-types/PasswordResetToken.js +5 -5
- package/dist/esm/internal-content-types/PasswordResetToken.js.map +1 -1
- package/dist/esm/internal-content-types/PreviewSnapshot.d.ts +907 -295
- package/dist/esm/internal-content-types/PreviewSnapshot.d.ts.map +1 -1
- package/dist/esm/internal-content-types/PreviewSnapshot.js +4 -4
- package/dist/esm/internal-content-types/PreviewSnapshot.js.map +1 -1
- package/dist/esm/internal-content-types/Redirect.d.ts +1599 -233
- package/dist/esm/internal-content-types/Redirect.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Redirect.js +6 -6
- package/dist/esm/internal-content-types/Redirect.js.map +1 -1
- package/dist/esm/internal-content-types/RobotsRule.d.ts +976 -137
- package/dist/esm/internal-content-types/RobotsRule.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RobotsRule.js +5 -5
- package/dist/esm/internal-content-types/RobotsRule.js.map +1 -1
- package/dist/esm/internal-content-types/Route.d.ts +565 -168
- package/dist/esm/internal-content-types/Route.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Route.js +4 -4
- package/dist/esm/internal-content-types/Route.js.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModule.d.ts +548 -223
- package/dist/esm/internal-content-types/RouteLayoutModule.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModule.js +3 -3
- package/dist/esm/internal-content-types/RouteLayoutModule.js.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts +517 -198
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js +3 -3
- package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js.map +1 -1
- package/dist/esm/internal-content-types/RouteLocaleVariant.d.ts +296 -236
- package/dist/esm/internal-content-types/RouteLocaleVariant.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteLocaleVariant.js +2 -2
- package/dist/esm/internal-content-types/RouteMap.d.ts +604 -199
- package/dist/esm/internal-content-types/RouteMap.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteMap.js +4 -4
- package/dist/esm/internal-content-types/RouteMap.js.map +1 -1
- package/dist/esm/internal-content-types/RouteSettings.d.ts +1662 -586
- package/dist/esm/internal-content-types/RouteSettings.d.ts.map +1 -1
- package/dist/esm/internal-content-types/RouteSettings.js +4 -4
- package/dist/esm/internal-content-types/RouteSettings.js.map +1 -1
- package/dist/esm/internal-content-types/SchemaState.d.ts +104 -84
- package/dist/esm/internal-content-types/SchemaState.d.ts.map +1 -1
- package/dist/esm/internal-content-types/SchemaState.js +2 -2
- package/dist/esm/internal-content-types/Seo.d.ts +3728 -1145
- package/dist/esm/internal-content-types/Seo.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Seo.js +36 -22
- 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 +16199 -4240
- package/dist/esm/internal-content-types/SeoSettings.d.ts.map +1 -1
- package/dist/esm/internal-content-types/SeoSettings.js +8 -8
- package/dist/esm/internal-content-types/SeoSettings.js.map +1 -1
- package/dist/esm/internal-content-types/Session.d.ts +4892 -1420
- package/dist/esm/internal-content-types/Session.d.ts.map +1 -1
- package/dist/esm/internal-content-types/Session.js +3 -3
- 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/TemplateContent.d.ts +1 -1
- package/dist/esm/internal-content-types/TemplateContent.js +1 -1
- package/dist/esm/internal-content-types/UserMfa.d.ts +5607 -1225
- package/dist/esm/internal-content-types/UserMfa.d.ts.map +1 -1
- package/dist/esm/internal-content-types/UserMfa.js +10 -10
- package/dist/esm/internal-content-types/UserMfa.js.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnCredential.d.ts +4956 -1452
- package/dist/esm/internal-content-types/WebAuthnCredential.d.ts.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnCredential.js +3 -3
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts +4935 -1367
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts.map +1 -1
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.js +4 -4
- package/dist/esm/internal-content-types/WebAuthnRegChallenge.js.map +1 -1
- package/dist/esm/internal-content-types/index.d.ts +45 -43
- package/dist/esm/internal-content-types/index.d.ts.map +1 -1
- package/dist/esm/internal-content-types/index.js +45 -43
- package/dist/esm/internal-content-types/index.js.map +1 -1
- package/dist/esm/internal-content-types/syncAdminRole.d.ts +5 -5
- package/dist/esm/internal-content-types/syncAdminRole.js +4 -4
- package/dist/esm/lib/ContentType.d.ts +7 -7
- package/dist/esm/lib/ContentType.d.ts.map +1 -1
- package/dist/esm/lib/ContentType.js +16 -8
- package/dist/esm/lib/ContentType.js.map +1 -1
- package/dist/esm/lib/Permissions.d.ts +2 -2
- package/dist/esm/lib/Permissions.js +4 -4
- package/dist/esm/lib/Registry.d.ts +6 -6
- package/dist/esm/lib/Registry.d.ts.map +1 -1
- package/dist/esm/lib/Registry.js +5 -4
- package/dist/esm/lib/Registry.js.map +1 -1
- package/dist/esm/lib/errors/AppError.d.ts +1 -1
- package/dist/esm/lib/errors/AppError.js +1 -1
- package/dist/esm/lib/errors/index.d.ts +4 -4
- package/dist/esm/lib/errors/index.js +3 -3
- package/dist/esm/lib/errors/throwAppError.d.ts +1 -1
- package/dist/esm/lib/errors/throwAppError.js +3 -3
- 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 +6 -2
- 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 +17 -14
- package/dist/esm/lib/fields/Fields.d.ts.map +1 -1
- package/dist/esm/lib/fields/Fields.js +16 -14
- 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 +4 -3
- package/dist/esm/lib/fields/Iterator.d.ts.map +1 -1
- package/dist/esm/lib/fields/Iterator.js +4 -4
- 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 +17 -16
- package/dist/esm/lib/fields/index.d.ts.map +1 -1
- package/dist/esm/lib/fields/index.js +17 -16
- package/dist/esm/lib/fields/index.js.map +1 -1
- package/dist/esm/lib/hooks.d.ts +4 -4
- package/dist/esm/lib/routeableContent.js +1 -1
- package/dist/esm/lib/types/index.d.ts +2 -2
- package/dist/esm/lib/utils/getListField.d.ts +1 -1
- package/dist/esm/lib/utils/getSchemas.d.ts +1 -1
- package/dist/esm/lib/utils/getTranslation.d.ts +2 -2
- package/dist/esm/lib/utils/getTranslation.js +1 -1
- package/dist/esm/lib/utils/isTranslatableObject.d.ts +1 -1
- package/dist/esm/lib/utils/translateObject.d.ts +2 -2
- package/dist/esm/lib/utils/translateObject.js +3 -3
- package/dist/esm/literals/definitions.d.ts +1 -1
- package/dist/esm/literals/definitions.js +1 -1
- package/dist/esm/literals/index.d.ts +2 -2
- package/dist/esm/literals/index.js +2 -2
- package/dist/esm/mail/index.d.ts +6 -6
- package/dist/esm/mail/index.js +5 -5
- package/dist/esm/mail/mailService.d.ts +2 -2
- package/dist/esm/mail/mailService.js +1 -1
- package/dist/esm/mail/templates.d.ts +1 -1
- package/dist/esm/mail/templates.js +2 -2
- package/dist/esm/manager.d.ts +8 -3
- package/dist/esm/manager.d.ts.map +1 -1
- package/dist/esm/manager.js +1 -1
- package/dist/esm/media/imageOptimization.d.ts +8 -2
- package/dist/esm/media/imageOptimization.d.ts.map +1 -1
- package/dist/esm/media/imageOptimization.js +2 -2
- package/dist/esm/media/imageOptimization.js.map +1 -1
- package/dist/esm/media/index.d.ts +4 -4
- package/dist/esm/media/index.js +3 -3
- 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/mediaService.d.ts +1 -1
- 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/backups.js +5 -5
- package/dist/esm/orm/createIndexes.d.ts.map +1 -1
- package/dist/esm/orm/createIndexes.js +8 -4
- package/dist/esm/orm/createIndexes.js.map +1 -1
- package/dist/esm/orm/database.js +3 -3
- package/dist/esm/orm/dbService.d.ts +6 -6
- package/dist/esm/orm/index.d.ts +2 -2
- package/dist/esm/orm/index.js +16 -16
- package/dist/esm/orm/migrations.d.ts +1 -1
- package/dist/esm/orm/migrations.js +4 -4
- package/dist/esm/orm/mongodbPeer.js +1 -1
- package/dist/esm/orm/operations/clear.d.ts +2 -2
- package/dist/esm/orm/operations/clear.js +1 -1
- package/dist/esm/orm/operations/create.d.ts +4 -4
- package/dist/esm/orm/operations/create.js +7 -7
- package/dist/esm/orm/operations/delete.d.ts +3 -3
- package/dist/esm/orm/operations/delete.js +5 -5
- package/dist/esm/orm/operations/find.d.ts +2 -2
- package/dist/esm/orm/operations/find.js +3 -3
- package/dist/esm/orm/operations/findDependencies.d.ts +2 -2
- package/dist/esm/orm/operations/findDependencies.js +4 -4
- package/dist/esm/orm/operations/get.d.ts +3 -3
- package/dist/esm/orm/operations/get.js +3 -3
- package/dist/esm/orm/operations/getAll.d.ts +2 -2
- package/dist/esm/orm/operations/getAll.js +2 -2
- package/dist/esm/orm/operations/list.d.ts +2 -2
- package/dist/esm/orm/operations/list.js +3 -3
- package/dist/esm/orm/operations/update.d.ts +5 -5
- package/dist/esm/orm/operations/update.js +8 -8
- package/dist/esm/orm/operations/updateMany.d.ts +4 -4
- package/dist/esm/orm/operations/updateMany.js +4 -4
- package/dist/esm/orm/operations/upsert.d.ts +3 -3
- package/dist/esm/orm/operations/upsert.js +4 -4
- package/dist/esm/orm/utils/deepDeleteNulls.js +1 -1
- package/dist/esm/orm/utils/parseId.d.ts +1 -1
- package/dist/esm/orm/utils/parseId.js +1 -1
- package/dist/esm/orm/utils/transformObjectIdsToStrings.js +1 -1
- package/dist/esm/orm/utils/transformStringToObjectIds.js +1 -1
- package/dist/esm/orm/versions.d.ts +1 -1
- package/dist/esm/orm/versions.js +7 -7
- package/dist/esm/plugins.d.ts +11 -11
- package/dist/esm/schemas/manager/auth/externalLogin.js +1 -1
- package/dist/esm/schemas/manager/comments.js +1 -1
- package/dist/esm/schemas/manager/contentVersions.d.ts +64 -64
- package/dist/esm/schemas/manager/contentVersions.js +3 -3
- package/dist/esm/schemas/manager/literals/upsert.js +1 -1
- package/dist/esm/schemas/manager/localeVariants.d.ts +96 -96
- package/dist/esm/schemas/manager/localeVariants.js +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 +10 -1
- package/dist/esm/schemas/manager/media/finalizeUpload.js.map +1 -1
- package/dist/esm/schemas/manager/media/getMediaUrl.js +1 -1
- package/dist/esm/schemas/manager/media/listFolders.js +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 +2 -2
- 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/notifications.js +1 -1
- package/dist/esm/schemas/manager/reviews.js +1 -1
- 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 +2 -1
- package/dist/esm/schemas/manager/uiLocales.js.map +1 -1
- package/dist/esm/schemas/web/page.d.ts +187 -46
- package/dist/esm/schemas/web/page.d.ts.map +1 -1
- package/dist/esm/schemas/web/page.js +3 -4
- package/dist/esm/schemas/web/page.js.map +1 -1
- package/dist/esm/schemas/web/previewPage.d.ts +103 -34
- package/dist/esm/schemas/web/previewPage.d.ts.map +1 -1
- package/dist/esm/schemas/web/previewPage.js +1 -1
- package/dist/esm/translation/document.d.ts +3 -3
- package/dist/esm/translation/index.d.ts +4 -4
- package/dist/esm/translation/index.js +3 -3
- package/dist/esm/translation/translationService.d.ts +1 -1
- package/dist/esm/web/client.d.ts +1 -1
- package/dist/esm/web/client.js +1 -1
- package/dist/esm/web/index.d.ts +2 -2
- package/dist/esm/web/index.js +2 -2
- package/dist/esm/web/page.d.ts +8 -8
- 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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dynamicData.d.ts","sourceRoot":"","sources":["../../../../src/api/utils/dynamicData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,uBAAuB,
|
|
1
|
+
{"version":3,"file":"dynamicData.d.ts","sourceRoot":"","sources":["../../../../src/api/utils/dynamicData.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,WAAW,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAUL,KAAK,8BAA8B,EACpC,MAAM,uBAAuB,CAAA;AAE9B,OAAO,KAAK,EAAE,2BAA2B,EAAE,QAAQ,EAAS,MAAM,iBAAiB,CAAA;AAEnF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAA;AASpD,KAAK,cAAc,GAAG;IACpB,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,CAAC,EAAE,WAAW,CAAA;IACzB,aAAa,CAAC,EAAE;QACd,WAAW,EAAE,WAAW,CAAA;QACxB,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAC/B,CAAA;IACD,OAAO,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3B,CAAA;AA6UD,eAAO,MAAM,6BAA6B,GAAU,sEAOjD;IACD,EAAE,EAAE,SAAS,CAAA;IACb,MAAM,EAAE,8BAA8B,CAAA;IACtC,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;IACtC,kBAAkB,EAAE,WAAW,CAAA;IAC/B,gBAAgB,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,WAAW,CAAC,KAAK,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAA;CAC3F,+BA2CA,CAAA;AA+PD,eAAO,MAAM,iCAAiC,GAC5C,OAAO,WAAW,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,GAAG,SAAS,EAChD,UAAU,MAAM,WAIjB,CAAA;AAyED,eAAO,MAAM,qBAAqB,GAAI,cAAc,OAAO,EAAE,eAAe,OAAO,cAiBlF,CAAA;AAED,eAAO,MAAM,sBAAsB,GAAI,cAAc,OAAO,EAAE,eAAe,OAAO,UAYnF,CAAA;AAiED,eAAO,MAAM,kBAAkB,GAAU,CAAC,EAAE,OAAO,CAAC,EAAE,SAAS,cAAc,KAAG,OAAO,CAAC,CAAC,CAuCxF,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAI,CAAC,EAAE,OAAO,CAAC,KAAG,CAYlD,CAAA;AAED,eAAO,MAAM,oBAAoB,GAAU,CAAC,SAAS,WAAW,EAAE,qCAK/D;IACD,EAAE,EAAE,SAAS,CAAA;IACb,WAAW,EAAE,CAAC,CAAA;IACd,IAAI,EAAE,2BAA2B,CAAC,CAAC,CAAC,CAAA;IACpC,OAAO,EAAE,KAAK,GAAG,SAAS,CAAA;CAC3B,uj5mBAiBA,CAAA"}
|
|
@@ -1,105 +1,113 @@
|
|
|
1
|
-
import { getRakunBootstrapOptions } from
|
|
2
|
-
import { DYNAMIC_BINDINGS_FIELD_NAME, DynamicQueryCurrentValueSchema, DynamicQueryDocumentValueSchema, getDynamicDocumentBindings, isDynamicDataSourceContentTypeAllowed, } from
|
|
3
|
-
import { Logger } from
|
|
4
|
-
import { getContentTypeByName } from
|
|
5
|
-
import { runOnGetHook } from
|
|
6
|
-
import { getLink } from
|
|
7
|
-
import {
|
|
8
|
-
import { populateRelations } from
|
|
9
|
-
import { parseSafeManagerQuery } from
|
|
10
|
-
import { getContentHookContext } from '../hooks/context
|
|
11
|
-
import { resolveBreadcrumsFields } from './breadcrums
|
|
12
|
-
const isRecord = (value) => !!value &&
|
|
13
|
-
typeof value === "object" &&
|
|
14
|
-
!Array.isArray(value) &&
|
|
15
|
-
!(value instanceof Date);
|
|
1
|
+
import { getRakunBootstrapOptions } from '../../bootstrapState';
|
|
2
|
+
import { DYNAMIC_BINDINGS_FIELD_NAME, DynamicQueryCurrentValueSchema, DynamicQueryDocumentValueSchema, getDynamicDocumentBindings, isDynamicDataSourceContentTypeAllowed, } from '../../lib/dynamicData';
|
|
3
|
+
import { Logger } from '../../lib/Logger';
|
|
4
|
+
import { getContentTypeByName } from '../../lib/Registry';
|
|
5
|
+
import { runOnGetHook } from '../hooks/runContentHooks';
|
|
6
|
+
import { getLink } from './getLink';
|
|
7
|
+
import { populateFields } from './populates/populateLinks';
|
|
8
|
+
import { populateRelations } from './populates/populateRelations';
|
|
9
|
+
import { parseSafeManagerQuery } from './safeManagerQuery';
|
|
10
|
+
import { getContentHookContext } from '../hooks/context';
|
|
11
|
+
import { resolveBreadcrumsFields } from './breadcrums';
|
|
12
|
+
const isRecord = (value) => !!value && typeof value === 'object' && !Array.isArray(value) && !(value instanceof Date);
|
|
16
13
|
const getAtPath = (value, path) => {
|
|
17
14
|
if (!path)
|
|
18
15
|
return undefined;
|
|
19
|
-
return path.split(
|
|
16
|
+
return path.split('.').reduce((current, segment) => {
|
|
20
17
|
if (!isRecord(current))
|
|
21
18
|
return undefined;
|
|
22
19
|
return current[segment];
|
|
23
20
|
}, value);
|
|
24
21
|
};
|
|
25
|
-
const
|
|
26
|
-
|
|
27
|
-
|
|
22
|
+
const setAtPath = (target, path, value) => {
|
|
23
|
+
const segments = path.split('.');
|
|
24
|
+
let current = target;
|
|
25
|
+
for (const [index, segment] of segments.entries()) {
|
|
26
|
+
if (index === segments.length - 1) {
|
|
27
|
+
Object.defineProperty(current, segment, {
|
|
28
|
+
configurable: true,
|
|
29
|
+
enumerable: true,
|
|
30
|
+
value,
|
|
31
|
+
writable: true,
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
const existing = current[segment];
|
|
36
|
+
const next = isRecord(existing) ? existing : {};
|
|
37
|
+
if (next !== existing) {
|
|
38
|
+
Object.defineProperty(current, segment, {
|
|
39
|
+
configurable: true,
|
|
40
|
+
enumerable: true,
|
|
41
|
+
value: next,
|
|
42
|
+
writable: true,
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
current = next;
|
|
46
|
+
}
|
|
47
|
+
};
|
|
48
|
+
const isPublicDocument = (value) => value._trashed !== true && value._visibility !== 'draft' && value._visibility !== 'trash';
|
|
28
49
|
const getAllowedSourceContentType = (sourceContentTypeName) => {
|
|
29
50
|
const contentType = getContentTypeByName(sourceContentTypeName);
|
|
30
|
-
return isDynamicDataSourceContentTypeAllowed(contentType)
|
|
31
|
-
|
|
51
|
+
return isDynamicDataSourceContentTypeAllowed(contentType) ? contentType : undefined;
|
|
52
|
+
};
|
|
53
|
+
const getDynamicTargetField = (contentType, path) => {
|
|
54
|
+
const [fieldName, ...rest] = path.split('.');
|
|
55
|
+
const field = contentType.fields[fieldName];
|
|
56
|
+
if (!field || !contentType.allowsDynamicBindingForField(fieldName)) {
|
|
57
|
+
return undefined;
|
|
58
|
+
}
|
|
59
|
+
if (rest.length === 0)
|
|
60
|
+
return field;
|
|
61
|
+
return rest.length === 1 &&
|
|
62
|
+
field.meta.capabilities.dynamic?.mapProperties === true &&
|
|
63
|
+
field.meta.capabilities.dynamic?.properties?.[rest[0]]
|
|
64
|
+
? field
|
|
32
65
|
: undefined;
|
|
33
66
|
};
|
|
34
|
-
const fileSourcePaths = new Set([
|
|
35
|
-
"url",
|
|
36
|
-
"previewUrl",
|
|
37
|
-
"name",
|
|
38
|
-
"title",
|
|
39
|
-
"alt",
|
|
40
|
-
"mime",
|
|
41
|
-
"srcSet",
|
|
42
|
-
"width",
|
|
43
|
-
"height",
|
|
44
|
-
"size",
|
|
45
|
-
]);
|
|
46
|
-
const linkSourcePaths = new Set(["href", "title"]);
|
|
47
67
|
const isDynamicSourcePathAllowed = (contentType, path, depth = 0) => {
|
|
48
68
|
if (!path)
|
|
49
69
|
return false;
|
|
50
|
-
const [fieldName, ...rest] = path.split(
|
|
70
|
+
const [fieldName, ...rest] = path.split('.');
|
|
51
71
|
const field = contentType.fields[fieldName];
|
|
52
72
|
if (!field || !contentType.allowsDynamicBindingForField(fieldName)) {
|
|
53
73
|
return false;
|
|
54
74
|
}
|
|
55
75
|
if (rest.length === 0)
|
|
56
76
|
return true;
|
|
57
|
-
if (field.meta.
|
|
58
|
-
|
|
59
|
-
depth < 3) {
|
|
60
|
-
return isDynamicSourcePathAllowed(field.contentType, rest.join("."), depth + 1);
|
|
61
|
-
}
|
|
62
|
-
if (field.meta.type === "File") {
|
|
63
|
-
return rest.length === 1 && fileSourcePaths.has(rest[0]);
|
|
64
|
-
}
|
|
65
|
-
if (field.meta.type === "Link") {
|
|
66
|
-
return rest.length === 1 && linkSourcePaths.has(rest[0]);
|
|
77
|
+
if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field && depth < 3) {
|
|
78
|
+
return isDynamicSourcePathAllowed(field.contentType, rest.join('.'), depth + 1);
|
|
67
79
|
}
|
|
68
|
-
return
|
|
80
|
+
return rest.length === 1 && !!field.meta.capabilities.dynamic?.properties?.[rest[0]];
|
|
69
81
|
};
|
|
70
82
|
const getDynamicSourceField = (contentType, path, depth = 0) => {
|
|
71
83
|
if (!path)
|
|
72
84
|
return undefined;
|
|
73
|
-
const [fieldName, ...rest] = path.split(
|
|
85
|
+
const [fieldName, ...rest] = path.split('.');
|
|
74
86
|
const field = contentType.fields[fieldName];
|
|
75
87
|
if (!field || !contentType.allowsDynamicBindingForField(fieldName)) {
|
|
76
88
|
return undefined;
|
|
77
89
|
}
|
|
78
90
|
if (rest.length === 0)
|
|
79
91
|
return field;
|
|
80
|
-
if (field.meta.
|
|
81
|
-
|
|
82
|
-
depth < 3) {
|
|
83
|
-
return getDynamicSourceField(field.contentType, rest.join("."), depth + 1);
|
|
92
|
+
if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field && depth < 3) {
|
|
93
|
+
return getDynamicSourceField(field.contentType, rest.join('.'), depth + 1);
|
|
84
94
|
}
|
|
85
95
|
return undefined;
|
|
86
96
|
};
|
|
87
97
|
const isArraySourceField = (field) => {
|
|
88
98
|
if (!field)
|
|
89
99
|
return false;
|
|
90
|
-
|
|
91
|
-
return true;
|
|
92
|
-
return "isMultiple" in field.meta && field.meta.isMultiple === true;
|
|
100
|
+
return field.meta.capabilities.valueKind === 'array';
|
|
93
101
|
};
|
|
94
102
|
const getRelationTarget = (field) => {
|
|
95
103
|
if (!field || field.getIsTranslatable())
|
|
96
104
|
return undefined;
|
|
97
|
-
if (field.meta.
|
|
105
|
+
if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field) {
|
|
98
106
|
return field.contentType;
|
|
99
107
|
}
|
|
100
|
-
if (field.meta.
|
|
108
|
+
if (field.meta.capabilities.dynamic?.collection === 'homogeneous' && 'field' in field) {
|
|
101
109
|
const itemField = field.field;
|
|
102
|
-
if (itemField.meta.
|
|
110
|
+
if (itemField.meta.capabilities.dynamic?.relation === true && 'contentType' in itemField) {
|
|
103
111
|
return itemField.contentType;
|
|
104
112
|
}
|
|
105
113
|
}
|
|
@@ -109,8 +117,8 @@ const getDocumentListItemContentType = (field, itemName) => {
|
|
|
109
117
|
if (!field || !isArraySourceField(field) || field.getIsTranslatable()) {
|
|
110
118
|
return undefined;
|
|
111
119
|
}
|
|
112
|
-
if (
|
|
113
|
-
|
|
120
|
+
if (field.meta.capabilities.dynamic?.collection === 'heterogeneous' &&
|
|
121
|
+
'fields' in field &&
|
|
114
122
|
Array.isArray(field.fields)) {
|
|
115
123
|
if (!itemName)
|
|
116
124
|
return undefined;
|
|
@@ -140,7 +148,7 @@ const loadSourceDocument = async (db, source) => {
|
|
|
140
148
|
if (!item || !isPublicDocument(item)) {
|
|
141
149
|
return undefined;
|
|
142
150
|
}
|
|
143
|
-
return (await populateRelations(await
|
|
151
|
+
return (await populateRelations(await populateFields(item)));
|
|
144
152
|
};
|
|
145
153
|
const resolveSourceValue = async ({ db, source, currentSource, currentContentType, allowCurrentSource, contextSource, }) => {
|
|
146
154
|
const usesCurrentRecord = allowCurrentSource === true &&
|
|
@@ -163,8 +171,8 @@ const resolveSourceValue = async ({ db, source, currentSource, currentContentTyp
|
|
|
163
171
|
: await loadSourceDocument(db, source);
|
|
164
172
|
if (!sourceDocument)
|
|
165
173
|
return undefined;
|
|
166
|
-
if (source.virtual ===
|
|
167
|
-
const sourceId = typeof sourceDocument._id ===
|
|
174
|
+
if (source.virtual === 'href') {
|
|
175
|
+
const sourceId = typeof sourceDocument._id === 'string' ? sourceDocument._id : source.id;
|
|
168
176
|
return sourceId ? await resolveHref(source, sourceId) : undefined;
|
|
169
177
|
}
|
|
170
178
|
if (!isDynamicSourcePathAllowed(sourceContentType, source.path)) {
|
|
@@ -172,17 +180,17 @@ const resolveSourceValue = async ({ db, source, currentSource, currentContentTyp
|
|
|
172
180
|
}
|
|
173
181
|
return getAtPath(sourceDocument, source.path);
|
|
174
182
|
};
|
|
175
|
-
const isRelatedCollectionSource = (source) =>
|
|
176
|
-
const isNestedListSource = (source) =>
|
|
183
|
+
const isRelatedCollectionSource = (source) => 'kind' in source && source.kind === 'relatedCollection';
|
|
184
|
+
const isNestedListSource = (source) => 'kind' in source && source.kind === 'list';
|
|
177
185
|
const addPublicContentFilter = (query) => ({
|
|
178
186
|
...query,
|
|
179
187
|
filter: {
|
|
180
188
|
...query.filter,
|
|
181
189
|
_trashed: { $ne: true },
|
|
182
|
-
_visibility: { $nin: [
|
|
190
|
+
_visibility: { $nin: ['draft', 'trash'] },
|
|
183
191
|
},
|
|
184
192
|
});
|
|
185
|
-
const isDynamicQueryCurrentPathAllowed = (contentType, path) => path ===
|
|
193
|
+
const isDynamicQueryCurrentPathAllowed = (contentType, path) => path === '_id' || isDynamicSourcePathAllowed(contentType, path);
|
|
186
194
|
const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, currentDocument, currentDocumentContentType) => {
|
|
187
195
|
const currentValue = DynamicQueryCurrentValueSchema.safeParse(value);
|
|
188
196
|
if (currentValue.success) {
|
|
@@ -191,9 +199,7 @@ const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, cu
|
|
|
191
199
|
return { success: false };
|
|
192
200
|
}
|
|
193
201
|
const resolved = getAtPath(currentItem, path);
|
|
194
|
-
return resolved === undefined
|
|
195
|
-
? { success: false }
|
|
196
|
-
: { success: true, value: resolved };
|
|
202
|
+
return resolved === undefined ? { success: false } : { success: true, value: resolved };
|
|
197
203
|
}
|
|
198
204
|
const documentValue = DynamicQueryDocumentValueSchema.safeParse(value);
|
|
199
205
|
if (documentValue.success) {
|
|
@@ -202,9 +208,7 @@ const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, cu
|
|
|
202
208
|
return { success: false };
|
|
203
209
|
}
|
|
204
210
|
const resolved = getAtPath(currentDocument, path);
|
|
205
|
-
return resolved === undefined
|
|
206
|
-
? { success: false }
|
|
207
|
-
: { success: true, value: resolved };
|
|
211
|
+
return resolved === undefined ? { success: false } : { success: true, value: resolved };
|
|
208
212
|
}
|
|
209
213
|
if (Array.isArray(value)) {
|
|
210
214
|
const items = [];
|
|
@@ -228,12 +232,12 @@ const resolveDynamicQueryValue = (value, currentItem, currentItemContentType, cu
|
|
|
228
232
|
}
|
|
229
233
|
return { success: true, value };
|
|
230
234
|
};
|
|
231
|
-
export const resolveRelatedCollectionValue = async ({ db, source, currentSource, currentContentType, populateDocument = async (sourceItem) => (await populateRelations(await
|
|
235
|
+
export const resolveRelatedCollectionValue = async ({ db, source, currentSource, currentContentType, populateDocument = async (sourceItem) => (await populateRelations(await populateFields(sourceItem))), }) => {
|
|
232
236
|
if (!isDynamicDataSourceContentTypeAllowed(currentContentType)) {
|
|
233
237
|
return undefined;
|
|
234
238
|
}
|
|
235
239
|
const sourceId = currentSource._id;
|
|
236
|
-
if (typeof sourceId !==
|
|
240
|
+
if (typeof sourceId !== 'string')
|
|
237
241
|
return undefined;
|
|
238
242
|
const relatedContentType = getAllowedSourceContentType(source.contentType);
|
|
239
243
|
if (!relatedContentType)
|
|
@@ -264,16 +268,16 @@ export const resolveRelatedCollectionValue = async ({ db, source, currentSource,
|
|
|
264
268
|
};
|
|
265
269
|
const resolveListMapSourceValue = async ({ db, source, targetField, currentSource, currentContentType, contextSource, }) => {
|
|
266
270
|
if (isNestedListSource(source)) {
|
|
267
|
-
|
|
268
|
-
if (!targetContentType)
|
|
271
|
+
if (!targetField || !getDynamicListTarget(targetField, source.itemName)) {
|
|
269
272
|
return undefined;
|
|
273
|
+
}
|
|
270
274
|
return await resolveListBinding({
|
|
271
275
|
db,
|
|
272
276
|
binding: source,
|
|
273
277
|
contextSource,
|
|
274
278
|
currentDocument: currentSource,
|
|
275
279
|
currentDocumentContentType: currentContentType,
|
|
276
|
-
|
|
280
|
+
targetField,
|
|
277
281
|
});
|
|
278
282
|
}
|
|
279
283
|
if (isRelatedCollectionSource(source)) {
|
|
@@ -293,7 +297,7 @@ const resolveListMapSourceValue = async ({ db, source, targetField, currentSourc
|
|
|
293
297
|
contextSource,
|
|
294
298
|
});
|
|
295
299
|
};
|
|
296
|
-
const resolveListBinding = async ({ db, binding, contextSource, currentDocument, currentDocumentContentType,
|
|
300
|
+
const resolveListBinding = async ({ db, binding, contextSource, currentDocument, currentDocumentContentType, targetField, }) => {
|
|
297
301
|
const documentSource = binding.source;
|
|
298
302
|
const rootDocumentSource = contextSource ?? {
|
|
299
303
|
contentType: currentDocumentContentType,
|
|
@@ -305,6 +309,9 @@ const resolveListBinding = async ({ db, binding, contextSource, currentDocument,
|
|
|
305
309
|
if (!sourceContentType) {
|
|
306
310
|
return undefined;
|
|
307
311
|
}
|
|
312
|
+
const target = getDynamicListTarget(targetField, binding.itemName);
|
|
313
|
+
if (!target)
|
|
314
|
+
return undefined;
|
|
308
315
|
let sourceItems;
|
|
309
316
|
if (documentSource) {
|
|
310
317
|
if (documentSource.contentType !== currentDocumentContentType.name) {
|
|
@@ -319,9 +326,7 @@ const resolveListBinding = async ({ db, binding, contextSource, currentDocument,
|
|
|
319
326
|
if (!Array.isArray(value))
|
|
320
327
|
return undefined;
|
|
321
328
|
sourceItems = documentSource.itemName
|
|
322
|
-
? value.flatMap((item) => isRecord(item) &&
|
|
323
|
-
item.name === documentSource.itemName &&
|
|
324
|
-
"value" in item
|
|
329
|
+
? value.flatMap((item) => isRecord(item) && item.name === documentSource.itemName && 'value' in item
|
|
325
330
|
? [item.value]
|
|
326
331
|
: [])
|
|
327
332
|
: value;
|
|
@@ -342,105 +347,147 @@ const resolveListBinding = async ({ db, binding, contextSource, currentDocument,
|
|
|
342
347
|
return undefined;
|
|
343
348
|
const populated = documentSource
|
|
344
349
|
? sourceItem
|
|
345
|
-
: (await populateRelations(await
|
|
346
|
-
const
|
|
347
|
-
|
|
348
|
-
targetField,
|
|
350
|
+
: (await populateRelations(await populateFields(sourceItem)));
|
|
351
|
+
const mappedEntries = await Promise.all(Object.entries(binding.map).map(async ([targetPath, source]) => [
|
|
352
|
+
targetPath,
|
|
349
353
|
await resolveListMapSourceValue({
|
|
350
354
|
db,
|
|
351
355
|
source,
|
|
352
|
-
targetField:
|
|
356
|
+
targetField: target.kind === 'linkArray'
|
|
357
|
+
? undefined
|
|
358
|
+
: getDynamicTargetField(target.contentType, targetPath),
|
|
353
359
|
currentSource: populated,
|
|
354
360
|
currentContentType: sourceContentType,
|
|
355
361
|
contextSource: rootDocumentSource,
|
|
356
362
|
}),
|
|
357
|
-
]))
|
|
363
|
+
]));
|
|
364
|
+
const mapped = {};
|
|
365
|
+
mappedEntries
|
|
366
|
+
.sort(([left], [right]) => left.split('.').length - right.split('.').length)
|
|
367
|
+
.forEach(([targetPath, value]) => setAtPath(mapped, targetPath, value));
|
|
368
|
+
if (target.kind === 'linkArray')
|
|
369
|
+
return mapped;
|
|
370
|
+
const targetValue = {
|
|
371
|
+
_id: typeof sourceItem._id === 'string'
|
|
372
|
+
? `${binding.itemName}:${sourceItem._id}`
|
|
373
|
+
: `${binding.itemName}:${index}`,
|
|
374
|
+
_type: target.contentType.name,
|
|
375
|
+
...mapped,
|
|
376
|
+
};
|
|
377
|
+
if (target.kind === 'relationArray')
|
|
378
|
+
return targetValue;
|
|
358
379
|
return {
|
|
359
380
|
name: binding.itemName,
|
|
360
|
-
value:
|
|
361
|
-
_id: typeof sourceItem._id === "string"
|
|
362
|
-
? `${binding.itemName}:${sourceItem._id}`
|
|
363
|
-
: `${binding.itemName}:${index}`,
|
|
364
|
-
_type: itemContentTypeName,
|
|
365
|
-
...mapped,
|
|
366
|
-
},
|
|
381
|
+
value: targetValue,
|
|
367
382
|
};
|
|
368
383
|
}));
|
|
369
384
|
return resolvedItems.filter((item) => item !== undefined);
|
|
370
385
|
};
|
|
371
|
-
const
|
|
372
|
-
if (!field ||
|
|
386
|
+
const getBlocksTargetContentType = (field, itemName) => {
|
|
387
|
+
if (!field || field.meta.capabilities.dynamic?.collection !== 'heterogeneous') {
|
|
373
388
|
return undefined;
|
|
374
389
|
}
|
|
375
|
-
if (!(
|
|
390
|
+
if (!('fields' in field) || !Array.isArray(field.fields)) {
|
|
376
391
|
return undefined;
|
|
377
392
|
}
|
|
378
393
|
const entry = field.fields.find((item) => item.name === itemName);
|
|
379
394
|
if (!entry ||
|
|
380
|
-
entry.field.meta.
|
|
381
|
-
!(
|
|
395
|
+
entry.field.meta.capabilities.dynamic?.relation !== true ||
|
|
396
|
+
!('contentType' in entry.field)) {
|
|
382
397
|
return undefined;
|
|
383
398
|
}
|
|
384
399
|
return entry.field.contentType;
|
|
385
400
|
};
|
|
386
|
-
|
|
401
|
+
const getSimpleListItemField = (field) => {
|
|
402
|
+
if (!field ||
|
|
403
|
+
field.meta.capabilities.dynamic?.collection !== 'homogeneous' ||
|
|
404
|
+
!('field' in field)) {
|
|
405
|
+
return undefined;
|
|
406
|
+
}
|
|
407
|
+
return field.field;
|
|
408
|
+
};
|
|
409
|
+
const getDynamicListTarget = (field, itemName) => {
|
|
410
|
+
const blocksContentType = getBlocksTargetContentType(field, itemName);
|
|
411
|
+
if (blocksContentType) {
|
|
412
|
+
return { kind: 'blocks', contentType: blocksContentType };
|
|
413
|
+
}
|
|
414
|
+
const itemField = getSimpleListItemField(field);
|
|
415
|
+
if (!itemField)
|
|
416
|
+
return undefined;
|
|
417
|
+
if (itemField.meta.capabilities.dynamic?.relation === true && 'contentType' in itemField) {
|
|
418
|
+
const contentType = itemField.contentType;
|
|
419
|
+
if (itemName !== contentType.name)
|
|
420
|
+
return undefined;
|
|
421
|
+
return {
|
|
422
|
+
kind: 'relationArray',
|
|
423
|
+
contentType,
|
|
424
|
+
};
|
|
425
|
+
}
|
|
426
|
+
const itemTypeName = itemField.meta.editor ?? itemField.meta.type;
|
|
427
|
+
return itemField.meta.capabilities.dynamic?.mapProperties === true &&
|
|
428
|
+
itemField.meta.capabilities.dynamic?.properties &&
|
|
429
|
+
itemName === itemTypeName
|
|
430
|
+
? { kind: 'linkArray' }
|
|
431
|
+
: undefined;
|
|
432
|
+
};
|
|
433
|
+
export const getDynamicListItemContentTypeName = (field, itemName) => {
|
|
434
|
+
const target = getDynamicListTarget(field, itemName);
|
|
435
|
+
return target && target.kind !== 'linkArray' ? target.contentType.name : itemName;
|
|
436
|
+
};
|
|
387
437
|
const filterListBindingMap = (contentType, fieldName, binding) => {
|
|
388
|
-
|
|
389
|
-
if (!targetContentType)
|
|
390
|
-
return binding;
|
|
391
|
-
return filterListBindingForTarget(targetContentType, binding);
|
|
438
|
+
return filterListBindingForTarget(contentType.fields[fieldName], binding);
|
|
392
439
|
};
|
|
393
|
-
const filterListBindingForTarget = (
|
|
440
|
+
const filterListBindingForTarget = (targetField, binding) => {
|
|
441
|
+
const target = getDynamicListTarget(targetField, binding.itemName);
|
|
442
|
+
if (!target)
|
|
443
|
+
return { ...binding, map: {} };
|
|
394
444
|
return {
|
|
395
445
|
...binding,
|
|
396
|
-
map: Object.fromEntries(Object.entries(binding.map).flatMap(([
|
|
397
|
-
if (
|
|
446
|
+
map: Object.fromEntries(Object.entries(binding.map).flatMap(([targetPath, source]) => {
|
|
447
|
+
if (target.kind === 'linkArray') {
|
|
448
|
+
return targetField &&
|
|
449
|
+
'field' in targetField &&
|
|
450
|
+
!!targetField.field.meta.capabilities.dynamic
|
|
451
|
+
?.properties?.[targetPath] &&
|
|
452
|
+
!isNestedListSource(source)
|
|
453
|
+
? [[targetPath, source]]
|
|
454
|
+
: [];
|
|
455
|
+
}
|
|
456
|
+
const field = getDynamicTargetField(target.contentType, targetPath);
|
|
457
|
+
if (!field) {
|
|
398
458
|
return [];
|
|
399
459
|
}
|
|
400
460
|
if (!isNestedListSource(source)) {
|
|
401
|
-
return [[
|
|
461
|
+
return [[targetPath, source]];
|
|
402
462
|
}
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
targetField,
|
|
408
|
-
filterListBindingForTarget(nestedTargetContentType, source),
|
|
409
|
-
],
|
|
410
|
-
]
|
|
411
|
-
: [];
|
|
463
|
+
if (targetPath.includes('.'))
|
|
464
|
+
return [];
|
|
465
|
+
const nestedTarget = getDynamicListTarget(field, source.itemName);
|
|
466
|
+
return nestedTarget ? [[targetPath, filterListBindingForTarget(field, source)]] : [];
|
|
412
467
|
})),
|
|
413
468
|
};
|
|
414
469
|
};
|
|
415
470
|
const getListItemStableKey = (item) => {
|
|
416
471
|
if (!isRecord(item))
|
|
417
472
|
return undefined;
|
|
418
|
-
const name = typeof item.name ===
|
|
473
|
+
const name = typeof item.name === 'string' ? item.name : '';
|
|
419
474
|
const value = item.value;
|
|
420
|
-
if (isRecord(value) && typeof value._id ===
|
|
421
|
-
const id = value._id.startsWith(`${name}:`)
|
|
422
|
-
? value._id.slice(name.length + 1)
|
|
423
|
-
: value._id;
|
|
475
|
+
if (isRecord(value) && typeof value._id === 'string') {
|
|
476
|
+
const id = value._id.startsWith(`${name}:`) ? value._id.slice(name.length + 1) : value._id;
|
|
424
477
|
return `${name}:${id}`;
|
|
425
478
|
}
|
|
426
|
-
if (isRecord(value) &&
|
|
427
|
-
isRecord(value.data) &&
|
|
428
|
-
typeof value.data._id === "string") {
|
|
479
|
+
if (isRecord(value) && isRecord(value.data) && typeof value.data._id === 'string') {
|
|
429
480
|
return `${name}:${value.data._id}`;
|
|
430
481
|
}
|
|
431
482
|
return undefined;
|
|
432
483
|
};
|
|
433
484
|
const isListValueItem = (item) => isRecord(item) &&
|
|
434
|
-
typeof item.name ===
|
|
435
|
-
Object.prototype.hasOwnProperty.call(item,
|
|
485
|
+
typeof item.name === 'string' &&
|
|
486
|
+
Object.prototype.hasOwnProperty.call(item, 'value') &&
|
|
436
487
|
item.value !== undefined;
|
|
437
488
|
export const mergeDynamicListItems = (currentValue, resolvedValue) => {
|
|
438
|
-
const currentItems = Array.isArray(currentValue)
|
|
439
|
-
|
|
440
|
-
: [];
|
|
441
|
-
const resolvedItems = Array.isArray(resolvedValue)
|
|
442
|
-
? resolvedValue.filter(isListValueItem)
|
|
443
|
-
: [];
|
|
489
|
+
const currentItems = Array.isArray(currentValue) ? currentValue.filter(isListValueItem) : [];
|
|
490
|
+
const resolvedItems = Array.isArray(resolvedValue) ? resolvedValue.filter(isListValueItem) : [];
|
|
444
491
|
const seen = new Set();
|
|
445
492
|
const merged = [];
|
|
446
493
|
for (const item of [...resolvedItems, ...currentItems]) {
|
|
@@ -454,6 +501,19 @@ export const mergeDynamicListItems = (currentValue, resolvedValue) => {
|
|
|
454
501
|
}
|
|
455
502
|
return merged;
|
|
456
503
|
};
|
|
504
|
+
export const mergeDynamicArrayItems = (currentValue, resolvedValue) => {
|
|
505
|
+
const currentItems = Array.isArray(currentValue) ? currentValue : [];
|
|
506
|
+
const resolvedItems = Array.isArray(resolvedValue) ? resolvedValue : [];
|
|
507
|
+
const seenIds = new Set();
|
|
508
|
+
return [...resolvedItems, ...currentItems].filter((item) => {
|
|
509
|
+
if (!isRecord(item) || typeof item._id !== 'string')
|
|
510
|
+
return true;
|
|
511
|
+
if (seenIds.has(item._id))
|
|
512
|
+
return false;
|
|
513
|
+
seenIds.add(item._id);
|
|
514
|
+
return true;
|
|
515
|
+
});
|
|
516
|
+
};
|
|
457
517
|
const resolveRecordBindings = async ({ db, contentType, value, contextSource, }) => {
|
|
458
518
|
const bindings = getDynamicDocumentBindings(value[DYNAMIC_BINDINGS_FIELD_NAME]);
|
|
459
519
|
if (!bindings)
|
|
@@ -475,13 +535,14 @@ const resolveRecordBindings = async ({ db, contentType, value, contextSource, })
|
|
|
475
535
|
}
|
|
476
536
|
}
|
|
477
537
|
catch (error) {
|
|
478
|
-
Logger.error(
|
|
538
|
+
Logger.error('dynamicData: field binding failed', error);
|
|
479
539
|
}
|
|
480
540
|
}
|
|
481
541
|
for (const [field, binding] of Object.entries(bindings.lists ?? {})) {
|
|
482
542
|
if (!contentType.allowsDynamicBindingForField(field))
|
|
483
543
|
continue;
|
|
484
544
|
try {
|
|
545
|
+
const targetField = contentType.fields[field];
|
|
485
546
|
const filteredBinding = filterListBindingMap(contentType, field, binding);
|
|
486
547
|
const resolved = await resolveListBinding({
|
|
487
548
|
db,
|
|
@@ -489,14 +550,17 @@ const resolveRecordBindings = async ({ db, contentType, value, contextSource, })
|
|
|
489
550
|
contextSource,
|
|
490
551
|
currentDocument: contextSource?.value ?? next,
|
|
491
552
|
currentDocumentContentType: contextSource?.contentType ?? contentType,
|
|
492
|
-
|
|
553
|
+
targetField,
|
|
493
554
|
});
|
|
494
555
|
if (resolved !== undefined) {
|
|
495
|
-
next[field] =
|
|
556
|
+
next[field] =
|
|
557
|
+
targetField.meta.capabilities.dynamic?.collection === 'homogeneous'
|
|
558
|
+
? mergeDynamicArrayItems(next[field], resolved)
|
|
559
|
+
: mergeDynamicListItems(next[field], resolved);
|
|
496
560
|
}
|
|
497
561
|
}
|
|
498
562
|
catch (error) {
|
|
499
|
-
Logger.error(
|
|
563
|
+
Logger.error('dynamicData: list binding failed', error);
|
|
500
564
|
}
|
|
501
565
|
}
|
|
502
566
|
return next;
|
|
@@ -508,9 +572,7 @@ export const resolveDynamicData = async (value, options) => {
|
|
|
508
572
|
if (!isRecord(value))
|
|
509
573
|
return value;
|
|
510
574
|
const contentType = options.contentType ??
|
|
511
|
-
(typeof value._type ===
|
|
512
|
-
? getContentTypeByName(value._type)
|
|
513
|
-
: undefined);
|
|
575
|
+
(typeof value._type === 'string' ? getContentTypeByName(value._type) : undefined);
|
|
514
576
|
const boundValue = contentType
|
|
515
577
|
? await resolveRecordBindings({
|
|
516
578
|
db: options.db,
|