@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.
Files changed (579) hide show
  1. package/README.md +124 -22
  2. package/dist/cjs/api/operations/manager-contract.js +8 -0
  3. package/dist/cjs/api/operations/manager-contract.js.map +1 -1
  4. package/dist/cjs/api/operations/manager-manifest.js +5 -0
  5. package/dist/cjs/api/operations/manager-manifest.js.map +1 -1
  6. package/dist/cjs/api/operations/manager.js +4 -0
  7. package/dist/cjs/api/operations/manager.js.map +1 -1
  8. package/dist/cjs/api/operations/web-contract.js +8 -0
  9. package/dist/cjs/api/operations/web-contract.js.map +1 -1
  10. package/dist/cjs/api/operations/web.js +4 -0
  11. package/dist/cjs/api/operations/web.js.map +1 -1
  12. package/dist/cjs/api/routes/manager/auth/markTourSeen.js +4 -1
  13. package/dist/cjs/api/routes/manager/auth/markTourSeen.js.map +1 -1
  14. package/dist/cjs/api/routes/manager/localeVariants.js +39 -1
  15. package/dist/cjs/api/routes/manager/localeVariants.js.map +1 -1
  16. package/dist/cjs/api/routes/manager/media/deleteMediaStorage.js +14 -9
  17. package/dist/cjs/api/routes/manager/media/deleteMediaStorage.js.map +1 -1
  18. package/dist/cjs/api/routes/manager/media/finalizeUpload.js +4 -0
  19. package/dist/cjs/api/routes/manager/media/finalizeUpload.js.map +1 -1
  20. package/dist/cjs/api/routes/manager/media/reimportMedia.js +20 -10
  21. package/dist/cjs/api/routes/manager/media/reimportMedia.js.map +1 -1
  22. package/dist/cjs/api/routes/manager/media/replaceMedia.js +224 -0
  23. package/dist/cjs/api/routes/manager/media/replaceMedia.js.map +1 -0
  24. package/dist/cjs/api/routes/manager/media/resolveMediaRecordUrls.js +14 -12
  25. package/dist/cjs/api/routes/manager/media/resolveMediaRecordUrls.js.map +1 -1
  26. package/dist/cjs/api/routes/manager/media/uploadBinary.js +112 -39
  27. package/dist/cjs/api/routes/manager/media/uploadBinary.js.map +1 -1
  28. package/dist/cjs/api/routes/manager/uiLocales.js +25 -1
  29. package/dist/cjs/api/routes/manager/uiLocales.js.map +1 -1
  30. package/dist/cjs/api/routes/web/llms.js +168 -0
  31. package/dist/cjs/api/routes/web/llms.js.map +1 -0
  32. package/dist/cjs/api/routes/web/page.js +47 -14
  33. package/dist/cjs/api/routes/web/page.js.map +1 -1
  34. package/dist/cjs/api/routes/web/sitemap.js +12 -2
  35. package/dist/cjs/api/routes/web/sitemap.js.map +1 -1
  36. package/dist/cjs/api/routes/web/staticPaths.js +4 -2
  37. package/dist/cjs/api/routes/web/staticPaths.js.map +1 -1
  38. package/dist/cjs/api/utils/dynamicData.js +193 -130
  39. package/dist/cjs/api/utils/dynamicData.js.map +1 -1
  40. package/dist/cjs/api/utils/index.js +2 -1
  41. package/dist/cjs/api/utils/index.js.map +1 -1
  42. package/dist/cjs/api/utils/mediaUploadKey.js +11 -1
  43. package/dist/cjs/api/utils/mediaUploadKey.js.map +1 -1
  44. package/dist/cjs/api/utils/populates/populateLinks.js +27 -55
  45. package/dist/cjs/api/utils/populates/populateLinks.js.map +1 -1
  46. package/dist/cjs/api/utils/populates/populateRelations.js +78 -43
  47. package/dist/cjs/api/utils/populates/populateRelations.js.map +1 -1
  48. package/dist/cjs/api/utils/routes/routeMapHelpers.js +44 -10
  49. package/dist/cjs/api/utils/routes/routeMapHelpers.js.map +1 -1
  50. package/dist/cjs/api/utils/routes/updateRoutesMap.js +12 -7
  51. package/dist/cjs/api/utils/routes/updateRoutesMap.js.map +1 -1
  52. package/dist/cjs/client.js +1 -0
  53. package/dist/cjs/client.js.map +1 -1
  54. package/dist/cjs/contracts.js +2 -0
  55. package/dist/cjs/contracts.js.map +1 -1
  56. package/dist/cjs/index.js +7 -4
  57. package/dist/cjs/index.js.map +1 -1
  58. package/dist/cjs/internal-content-types/Backup.js +3 -3
  59. package/dist/cjs/internal-content-types/Backup.js.map +1 -1
  60. package/dist/cjs/internal-content-types/ContentComment.js +2 -2
  61. package/dist/cjs/internal-content-types/ContentComment.js.map +1 -1
  62. package/dist/cjs/internal-content-types/ContentReview.js +31 -18
  63. package/dist/cjs/internal-content-types/ContentReview.js.map +1 -1
  64. package/dist/cjs/internal-content-types/ContentReviewDecision.js +1 -1
  65. package/dist/cjs/internal-content-types/ContentReviewDecision.js.map +1 -1
  66. package/dist/cjs/internal-content-types/ContentReviewPolicy.js +2 -2
  67. package/dist/cjs/internal-content-types/ContentReviewPolicy.js.map +1 -1
  68. package/dist/cjs/internal-content-types/ContentVersion.js +4 -4
  69. package/dist/cjs/internal-content-types/ContentVersion.js.map +1 -1
  70. package/dist/cjs/internal-content-types/Language.js +1 -1
  71. package/dist/cjs/internal-content-types/Language.js.map +1 -1
  72. package/dist/cjs/internal-content-types/LlmsSettings.js +59 -0
  73. package/dist/cjs/internal-content-types/LlmsSettings.js.map +1 -0
  74. package/dist/cjs/internal-content-types/LoginIpBlock.js +1 -1
  75. package/dist/cjs/internal-content-types/LoginIpBlock.js.map +1 -1
  76. package/dist/cjs/internal-content-types/ManagerNotification.js +2 -2
  77. package/dist/cjs/internal-content-types/ManagerNotification.js.map +1 -1
  78. package/dist/cjs/internal-content-types/ManagerUser.js +9 -9
  79. package/dist/cjs/internal-content-types/ManagerUser.js.map +1 -1
  80. package/dist/cjs/internal-content-types/Media.js +18 -17
  81. package/dist/cjs/internal-content-types/Media.js.map +1 -1
  82. package/dist/cjs/internal-content-types/MediaFolder.js +2 -2
  83. package/dist/cjs/internal-content-types/MediaFolder.js.map +1 -1
  84. package/dist/cjs/internal-content-types/MfaChallenge.js +2 -2
  85. package/dist/cjs/internal-content-types/MfaChallenge.js.map +1 -1
  86. package/dist/cjs/internal-content-types/Migration.js +5 -5
  87. package/dist/cjs/internal-content-types/Migration.js.map +1 -1
  88. package/dist/cjs/internal-content-types/PasswordResetToken.js +1 -1
  89. package/dist/cjs/internal-content-types/PasswordResetToken.js.map +1 -1
  90. package/dist/cjs/internal-content-types/PreviewSnapshot.js +2 -2
  91. package/dist/cjs/internal-content-types/PreviewSnapshot.js.map +1 -1
  92. package/dist/cjs/internal-content-types/Redirect.js +4 -4
  93. package/dist/cjs/internal-content-types/Redirect.js.map +1 -1
  94. package/dist/cjs/internal-content-types/RobotsRule.js +3 -3
  95. package/dist/cjs/internal-content-types/RobotsRule.js.map +1 -1
  96. package/dist/cjs/internal-content-types/Route.js +2 -2
  97. package/dist/cjs/internal-content-types/Route.js.map +1 -1
  98. package/dist/cjs/internal-content-types/RouteLayoutModule.js +1 -1
  99. package/dist/cjs/internal-content-types/RouteLayoutModule.js.map +1 -1
  100. package/dist/cjs/internal-content-types/RouteLayoutModuleOverride.js +1 -1
  101. package/dist/cjs/internal-content-types/RouteLayoutModuleOverride.js.map +1 -1
  102. package/dist/cjs/internal-content-types/RouteMap.js +2 -2
  103. package/dist/cjs/internal-content-types/RouteMap.js.map +1 -1
  104. package/dist/cjs/internal-content-types/RouteSettings.js +1 -1
  105. package/dist/cjs/internal-content-types/RouteSettings.js.map +1 -1
  106. package/dist/cjs/internal-content-types/Seo.js +34 -20
  107. package/dist/cjs/internal-content-types/Seo.js.map +1 -1
  108. package/dist/cjs/internal-content-types/SeoAudit.js +29 -0
  109. package/dist/cjs/internal-content-types/SeoAudit.js.map +1 -0
  110. package/dist/cjs/internal-content-types/SeoSettings.js +5 -5
  111. package/dist/cjs/internal-content-types/SeoSettings.js.map +1 -1
  112. package/dist/cjs/internal-content-types/StructuredData.js +102 -0
  113. package/dist/cjs/internal-content-types/StructuredData.js.map +1 -0
  114. package/dist/cjs/internal-content-types/UserMfa.js +6 -6
  115. package/dist/cjs/internal-content-types/UserMfa.js.map +1 -1
  116. package/dist/cjs/internal-content-types/WebAuthnRegChallenge.js +1 -1
  117. package/dist/cjs/internal-content-types/WebAuthnRegChallenge.js.map +1 -1
  118. package/dist/cjs/internal-content-types/index.js +3 -0
  119. package/dist/cjs/internal-content-types/index.js.map +1 -1
  120. package/dist/cjs/lib/ContentType.js +11 -3
  121. package/dist/cjs/lib/ContentType.js.map +1 -1
  122. package/dist/cjs/lib/Registry.js +1 -0
  123. package/dist/cjs/lib/Registry.js.map +1 -1
  124. package/dist/cjs/lib/fields/Boolean.js +5 -1
  125. package/dist/cjs/lib/fields/Boolean.js.map +1 -1
  126. package/dist/cjs/lib/fields/Breadcrums.js +5 -1
  127. package/dist/cjs/lib/fields/Breadcrums.js.map +1 -1
  128. package/dist/cjs/lib/fields/ContentReference.js +22 -6
  129. package/dist/cjs/lib/fields/ContentReference.js.map +1 -1
  130. package/dist/cjs/lib/fields/Date.js +11 -5
  131. package/dist/cjs/lib/fields/Date.js.map +1 -1
  132. package/dist/cjs/lib/fields/Field.js +71 -45
  133. package/dist/cjs/lib/fields/Field.js.map +1 -1
  134. package/dist/cjs/lib/fields/Fields.js +2 -0
  135. package/dist/cjs/lib/fields/Fields.js.map +1 -1
  136. package/dist/cjs/lib/fields/File.js +74 -25
  137. package/dist/cjs/lib/fields/File.js.map +1 -1
  138. package/dist/cjs/lib/fields/Iterator.js +1 -1
  139. package/dist/cjs/lib/fields/Iterator.js.map +1 -1
  140. package/dist/cjs/lib/fields/Link.js +26 -15
  141. package/dist/cjs/lib/fields/Link.js.map +1 -1
  142. package/dist/cjs/lib/fields/List.js +34 -12
  143. package/dist/cjs/lib/fields/List.js.map +1 -1
  144. package/dist/cjs/lib/fields/Menu.js +56 -0
  145. package/dist/cjs/lib/fields/Menu.js.map +1 -0
  146. package/dist/cjs/lib/fields/Number.js +3 -2
  147. package/dist/cjs/lib/fields/Number.js.map +1 -1
  148. package/dist/cjs/lib/fields/Relation.js +17 -15
  149. package/dist/cjs/lib/fields/Relation.js.map +1 -1
  150. package/dist/cjs/lib/fields/Select.js +20 -4
  151. package/dist/cjs/lib/fields/Select.js.map +1 -1
  152. package/dist/cjs/lib/fields/SelfRelation.js +4 -3
  153. package/dist/cjs/lib/fields/SelfRelation.js.map +1 -1
  154. package/dist/cjs/lib/fields/SimpleList.js +38 -14
  155. package/dist/cjs/lib/fields/SimpleList.js.map +1 -1
  156. package/dist/cjs/lib/fields/String.js +34 -36
  157. package/dist/cjs/lib/fields/String.js.map +1 -1
  158. package/dist/cjs/lib/fields/index.js +1 -0
  159. package/dist/cjs/lib/fields/index.js.map +1 -1
  160. package/dist/cjs/media/imageOptimization.js.map +1 -1
  161. package/dist/cjs/media/mediaOptimization.js +18 -0
  162. package/dist/cjs/media/mediaOptimization.js.map +1 -0
  163. package/dist/cjs/media/videoOptimization.js +142 -0
  164. package/dist/cjs/media/videoOptimization.js.map +1 -0
  165. package/dist/cjs/orm/createIndexes.js +4 -0
  166. package/dist/cjs/orm/createIndexes.js.map +1 -1
  167. package/dist/cjs/schemas/manager/localeVariants.js +1 -0
  168. package/dist/cjs/schemas/manager/localeVariants.js.map +1 -1
  169. package/dist/cjs/schemas/manager/media/finalizeUpload.js +10 -1
  170. package/dist/cjs/schemas/manager/media/finalizeUpload.js.map +1 -1
  171. package/dist/cjs/schemas/manager/media/reimportMedia.js.map +1 -1
  172. package/dist/cjs/schemas/manager/media/replaceMedia.js +21 -0
  173. package/dist/cjs/schemas/manager/media/replaceMedia.js.map +1 -0
  174. package/dist/cjs/schemas/manager/uiLocales.js +1 -0
  175. package/dist/cjs/schemas/manager/uiLocales.js.map +1 -1
  176. package/dist/cjs/schemas/web/llms.js +17 -0
  177. package/dist/cjs/schemas/web/llms.js.map +1 -0
  178. package/dist/cjs/schemas/web/page.js +2 -3
  179. package/dist/cjs/schemas/web/page.js.map +1 -1
  180. package/dist/cjs/web/page.js +1 -1
  181. package/dist/cjs/web/page.js.map +1 -1
  182. package/dist/docs/index.md +128 -16
  183. package/dist/esm/api/operations/index.d.ts +165 -26
  184. package/dist/esm/api/operations/index.d.ts.map +1 -1
  185. package/dist/esm/api/operations/manager-contract.d.ts +113 -8
  186. package/dist/esm/api/operations/manager-contract.d.ts.map +1 -1
  187. package/dist/esm/api/operations/manager-contract.js +9 -1
  188. package/dist/esm/api/operations/manager-contract.js.map +1 -1
  189. package/dist/esm/api/operations/manager-manifest.d.ts +5 -0
  190. package/dist/esm/api/operations/manager-manifest.d.ts.map +1 -1
  191. package/dist/esm/api/operations/manager-manifest.js +5 -0
  192. package/dist/esm/api/operations/manager-manifest.js.map +1 -1
  193. package/dist/esm/api/operations/manager.d.ts +113 -8
  194. package/dist/esm/api/operations/manager.d.ts.map +1 -1
  195. package/dist/esm/api/operations/manager.js +4 -0
  196. package/dist/esm/api/operations/manager.js.map +1 -1
  197. package/dist/esm/api/operations/web-contract.d.ts +52 -18
  198. package/dist/esm/api/operations/web-contract.d.ts.map +1 -1
  199. package/dist/esm/api/operations/web-contract.js +9 -1
  200. package/dist/esm/api/operations/web-contract.js.map +1 -1
  201. package/dist/esm/api/operations/web.d.ts +52 -18
  202. package/dist/esm/api/operations/web.d.ts.map +1 -1
  203. package/dist/esm/api/operations/web.js +4 -0
  204. package/dist/esm/api/operations/web.js.map +1 -1
  205. package/dist/esm/api/routes/manager/auth/getSession.d.ts +2 -2
  206. package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts +3 -3
  207. package/dist/esm/api/routes/manager/auth/markTourSeen.d.ts.map +1 -1
  208. package/dist/esm/api/routes/manager/auth/markTourSeen.js +4 -1
  209. package/dist/esm/api/routes/manager/auth/markTourSeen.js.map +1 -1
  210. package/dist/esm/api/routes/manager/auth/updateAccount.d.ts +2 -2
  211. package/dist/esm/api/routes/manager/auth/updateTutorialPreferences.d.ts +2 -2
  212. package/dist/esm/api/routes/manager/localeVariants.d.ts +16 -0
  213. package/dist/esm/api/routes/manager/localeVariants.d.ts.map +1 -1
  214. package/dist/esm/api/routes/manager/localeVariants.js +38 -1
  215. package/dist/esm/api/routes/manager/localeVariants.js.map +1 -1
  216. package/dist/esm/api/routes/manager/media/deleteMediaStorage.d.ts +1 -0
  217. package/dist/esm/api/routes/manager/media/deleteMediaStorage.d.ts.map +1 -1
  218. package/dist/esm/api/routes/manager/media/deleteMediaStorage.js +14 -9
  219. package/dist/esm/api/routes/manager/media/deleteMediaStorage.js.map +1 -1
  220. package/dist/esm/api/routes/manager/media/finalizeUpload.d.ts.map +1 -1
  221. package/dist/esm/api/routes/manager/media/finalizeUpload.js +5 -1
  222. package/dist/esm/api/routes/manager/media/finalizeUpload.js.map +1 -1
  223. package/dist/esm/api/routes/manager/media/reimportMedia.d.ts +12 -3
  224. package/dist/esm/api/routes/manager/media/reimportMedia.d.ts.map +1 -1
  225. package/dist/esm/api/routes/manager/media/reimportMedia.js +18 -8
  226. package/dist/esm/api/routes/manager/media/reimportMedia.js.map +1 -1
  227. package/dist/esm/api/routes/manager/media/replaceMedia.d.ts +32 -0
  228. package/dist/esm/api/routes/manager/media/replaceMedia.d.ts.map +1 -0
  229. package/dist/esm/api/routes/manager/media/replaceMedia.js +218 -0
  230. package/dist/esm/api/routes/manager/media/replaceMedia.js.map +1 -0
  231. package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.d.ts.map +1 -1
  232. package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.js +14 -12
  233. package/dist/esm/api/routes/manager/media/resolveMediaRecordUrls.js.map +1 -1
  234. package/dist/esm/api/routes/manager/media/uploadBinary.d.ts.map +1 -1
  235. package/dist/esm/api/routes/manager/media/uploadBinary.js +112 -39
  236. package/dist/esm/api/routes/manager/media/uploadBinary.js.map +1 -1
  237. package/dist/esm/api/routes/manager/uiLocales.d.ts +1 -0
  238. package/dist/esm/api/routes/manager/uiLocales.d.ts.map +1 -1
  239. package/dist/esm/api/routes/manager/uiLocales.js +23 -0
  240. package/dist/esm/api/routes/manager/uiLocales.js.map +1 -1
  241. package/dist/esm/api/routes/web/llms.d.ts +20 -0
  242. package/dist/esm/api/routes/web/llms.d.ts.map +1 -0
  243. package/dist/esm/api/routes/web/llms.js +163 -0
  244. package/dist/esm/api/routes/web/llms.js.map +1 -0
  245. package/dist/esm/api/routes/web/page.d.ts +2 -0
  246. package/dist/esm/api/routes/web/page.d.ts.map +1 -1
  247. package/dist/esm/api/routes/web/page.js +45 -14
  248. package/dist/esm/api/routes/web/page.js.map +1 -1
  249. package/dist/esm/api/routes/web/previewPage.d.ts +23 -9
  250. package/dist/esm/api/routes/web/previewPage.d.ts.map +1 -1
  251. package/dist/esm/api/routes/web/sitemap.d.ts.map +1 -1
  252. package/dist/esm/api/routes/web/sitemap.js +12 -2
  253. package/dist/esm/api/routes/web/sitemap.js.map +1 -1
  254. package/dist/esm/api/routes/web/staticPaths.d.ts.map +1 -1
  255. package/dist/esm/api/routes/web/staticPaths.js +4 -2
  256. package/dist/esm/api/routes/web/staticPaths.js.map +1 -1
  257. package/dist/esm/api/utils/dynamicData.d.ts +6 -5
  258. package/dist/esm/api/utils/dynamicData.d.ts.map +1 -1
  259. package/dist/esm/api/utils/dynamicData.js +200 -138
  260. package/dist/esm/api/utils/dynamicData.js.map +1 -1
  261. package/dist/esm/api/utils/getUser.d.ts +2 -2
  262. package/dist/esm/api/utils/index.d.ts +25 -25
  263. package/dist/esm/api/utils/index.d.ts.map +1 -1
  264. package/dist/esm/api/utils/index.js +25 -25
  265. package/dist/esm/api/utils/index.js.map +1 -1
  266. package/dist/esm/api/utils/mediaUploadKey.d.ts +2 -0
  267. package/dist/esm/api/utils/mediaUploadKey.d.ts.map +1 -1
  268. package/dist/esm/api/utils/mediaUploadKey.js +9 -0
  269. package/dist/esm/api/utils/mediaUploadKey.js.map +1 -1
  270. package/dist/esm/api/utils/populates/populateLinks.d.ts +4 -2
  271. package/dist/esm/api/utils/populates/populateLinks.d.ts.map +1 -1
  272. package/dist/esm/api/utils/populates/populateLinks.js +30 -58
  273. package/dist/esm/api/utils/populates/populateLinks.js.map +1 -1
  274. package/dist/esm/api/utils/populates/populateRelations.d.ts +2 -2
  275. package/dist/esm/api/utils/populates/populateRelations.d.ts.map +1 -1
  276. package/dist/esm/api/utils/populates/populateRelations.js +85 -50
  277. package/dist/esm/api/utils/populates/populateRelations.js.map +1 -1
  278. package/dist/esm/api/utils/reviews.d.ts +2 -2
  279. package/dist/esm/api/utils/routes/routeMapHelpers.d.ts +4 -1
  280. package/dist/esm/api/utils/routes/routeMapHelpers.d.ts.map +1 -1
  281. package/dist/esm/api/utils/routes/routeMapHelpers.js +42 -9
  282. package/dist/esm/api/utils/routes/routeMapHelpers.js.map +1 -1
  283. package/dist/esm/api/utils/routes/updateRoutesMap.d.ts.map +1 -1
  284. package/dist/esm/api/utils/routes/updateRoutesMap.js +12 -7
  285. package/dist/esm/api/utils/routes/updateRoutesMap.js.map +1 -1
  286. package/dist/esm/client.d.ts +2 -0
  287. package/dist/esm/client.d.ts.map +1 -1
  288. package/dist/esm/client.js +1 -0
  289. package/dist/esm/client.js.map +1 -1
  290. package/dist/esm/contracts.d.ts +2 -0
  291. package/dist/esm/contracts.d.ts.map +1 -1
  292. package/dist/esm/contracts.js +2 -0
  293. package/dist/esm/contracts.js.map +1 -1
  294. package/dist/esm/index.d.ts +3 -1
  295. package/dist/esm/index.d.ts.map +1 -1
  296. package/dist/esm/index.js +4 -3
  297. package/dist/esm/index.js.map +1 -1
  298. package/dist/esm/internal-content-types/ApiOperation.d.ts +56 -16
  299. package/dist/esm/internal-content-types/ApiOperation.d.ts.map +1 -1
  300. package/dist/esm/internal-content-types/Backup.d.ts +1044 -99
  301. package/dist/esm/internal-content-types/Backup.d.ts.map +1 -1
  302. package/dist/esm/internal-content-types/Backup.js +3 -3
  303. package/dist/esm/internal-content-types/Backup.js.map +1 -1
  304. package/dist/esm/internal-content-types/BackupDocument.d.ts +56 -16
  305. package/dist/esm/internal-content-types/BackupDocument.d.ts.map +1 -1
  306. package/dist/esm/internal-content-types/ContentComment.d.ts +5833 -614
  307. package/dist/esm/internal-content-types/ContentComment.d.ts.map +1 -1
  308. package/dist/esm/internal-content-types/ContentComment.js +2 -2
  309. package/dist/esm/internal-content-types/ContentComment.js.map +1 -1
  310. package/dist/esm/internal-content-types/ContentCommentReadState.d.ts +4384 -896
  311. package/dist/esm/internal-content-types/ContentCommentReadState.d.ts.map +1 -1
  312. package/dist/esm/internal-content-types/ContentReview.d.ts +33582 -9735
  313. package/dist/esm/internal-content-types/ContentReview.d.ts.map +1 -1
  314. package/dist/esm/internal-content-types/ContentReview.js +31 -18
  315. package/dist/esm/internal-content-types/ContentReview.js.map +1 -1
  316. package/dist/esm/internal-content-types/ContentReviewDecision.d.ts +4777 -914
  317. package/dist/esm/internal-content-types/ContentReviewDecision.d.ts.map +1 -1
  318. package/dist/esm/internal-content-types/ContentReviewDecision.js +1 -1
  319. package/dist/esm/internal-content-types/ContentReviewDecision.js.map +1 -1
  320. package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts +1547 -40
  321. package/dist/esm/internal-content-types/ContentReviewPolicy.d.ts.map +1 -1
  322. package/dist/esm/internal-content-types/ContentReviewPolicy.js +2 -2
  323. package/dist/esm/internal-content-types/ContentReviewPolicy.js.map +1 -1
  324. package/dist/esm/internal-content-types/ContentTemplate.d.ts +38 -12
  325. package/dist/esm/internal-content-types/ContentTemplate.d.ts.map +1 -1
  326. package/dist/esm/internal-content-types/ContentVersion.d.ts +1168 -48
  327. package/dist/esm/internal-content-types/ContentVersion.d.ts.map +1 -1
  328. package/dist/esm/internal-content-types/ContentVersion.js +4 -4
  329. package/dist/esm/internal-content-types/ContentVersion.js.map +1 -1
  330. package/dist/esm/internal-content-types/HelloWorld.d.ts +15 -5
  331. package/dist/esm/internal-content-types/HelloWorld.d.ts.map +1 -1
  332. package/dist/esm/internal-content-types/Language.d.ts +109 -9
  333. package/dist/esm/internal-content-types/Language.d.ts.map +1 -1
  334. package/dist/esm/internal-content-types/Language.js +1 -1
  335. package/dist/esm/internal-content-types/Language.js.map +1 -1
  336. package/dist/esm/internal-content-types/LiteralTranslation.d.ts +28 -8
  337. package/dist/esm/internal-content-types/LiteralTranslation.d.ts.map +1 -1
  338. package/dist/esm/internal-content-types/LlmsSettings.d.ts +4918 -0
  339. package/dist/esm/internal-content-types/LlmsSettings.d.ts.map +1 -0
  340. package/dist/esm/internal-content-types/LlmsSettings.js +53 -0
  341. package/dist/esm/internal-content-types/LlmsSettings.js.map +1 -0
  342. package/dist/esm/internal-content-types/LoginIpBlock.d.ts +119 -13
  343. package/dist/esm/internal-content-types/LoginIpBlock.d.ts.map +1 -1
  344. package/dist/esm/internal-content-types/LoginIpBlock.js +1 -1
  345. package/dist/esm/internal-content-types/LoginIpBlock.js.map +1 -1
  346. package/dist/esm/internal-content-types/ManagerFavorite.d.ts +4370 -892
  347. package/dist/esm/internal-content-types/ManagerFavorite.d.ts.map +1 -1
  348. package/dist/esm/internal-content-types/ManagerNotification.d.ts +8876 -1441
  349. package/dist/esm/internal-content-types/ManagerNotification.d.ts.map +1 -1
  350. package/dist/esm/internal-content-types/ManagerNotification.js +2 -2
  351. package/dist/esm/internal-content-types/ManagerNotification.js.map +1 -1
  352. package/dist/esm/internal-content-types/ManagerRole.d.ts +17 -5
  353. package/dist/esm/internal-content-types/ManagerRole.d.ts.map +1 -1
  354. package/dist/esm/internal-content-types/ManagerUser.d.ts +1775 -48
  355. package/dist/esm/internal-content-types/ManagerUser.d.ts.map +1 -1
  356. package/dist/esm/internal-content-types/ManagerUser.js +9 -9
  357. package/dist/esm/internal-content-types/ManagerUser.js.map +1 -1
  358. package/dist/esm/internal-content-types/Media.d.ts +6101 -774
  359. package/dist/esm/internal-content-types/Media.d.ts.map +1 -1
  360. package/dist/esm/internal-content-types/Media.js +18 -17
  361. package/dist/esm/internal-content-types/Media.js.map +1 -1
  362. package/dist/esm/internal-content-types/MediaFolder.d.ts +401 -14
  363. package/dist/esm/internal-content-types/MediaFolder.d.ts.map +1 -1
  364. package/dist/esm/internal-content-types/MediaFolder.js +2 -2
  365. package/dist/esm/internal-content-types/MediaFolder.js.map +1 -1
  366. package/dist/esm/internal-content-types/MfaChallenge.d.ts +4915 -956
  367. package/dist/esm/internal-content-types/MfaChallenge.d.ts.map +1 -1
  368. package/dist/esm/internal-content-types/MfaChallenge.js +2 -2
  369. package/dist/esm/internal-content-types/MfaChallenge.js.map +1 -1
  370. package/dist/esm/internal-content-types/Migration.d.ts +1180 -39
  371. package/dist/esm/internal-content-types/Migration.d.ts.map +1 -1
  372. package/dist/esm/internal-content-types/Migration.js +5 -5
  373. package/dist/esm/internal-content-types/Migration.js.map +1 -1
  374. package/dist/esm/internal-content-types/MigrationLock.d.ts +8 -4
  375. package/dist/esm/internal-content-types/MigrationLock.d.ts.map +1 -1
  376. package/dist/esm/internal-content-types/Page.d.ts +45 -15
  377. package/dist/esm/internal-content-types/Page.d.ts.map +1 -1
  378. package/dist/esm/internal-content-types/PasswordResetToken.d.ts +4452 -894
  379. package/dist/esm/internal-content-types/PasswordResetToken.d.ts.map +1 -1
  380. package/dist/esm/internal-content-types/PasswordResetToken.js +1 -1
  381. package/dist/esm/internal-content-types/PasswordResetToken.js.map +1 -1
  382. package/dist/esm/internal-content-types/PreviewSnapshot.d.ts +646 -34
  383. package/dist/esm/internal-content-types/PreviewSnapshot.d.ts.map +1 -1
  384. package/dist/esm/internal-content-types/PreviewSnapshot.js +2 -2
  385. package/dist/esm/internal-content-types/PreviewSnapshot.js.map +1 -1
  386. package/dist/esm/internal-content-types/Redirect.d.ts +1462 -96
  387. package/dist/esm/internal-content-types/Redirect.d.ts.map +1 -1
  388. package/dist/esm/internal-content-types/Redirect.js +4 -4
  389. package/dist/esm/internal-content-types/Redirect.js.map +1 -1
  390. package/dist/esm/internal-content-types/RobotsRule.d.ts +862 -23
  391. package/dist/esm/internal-content-types/RobotsRule.d.ts.map +1 -1
  392. package/dist/esm/internal-content-types/RobotsRule.js +3 -3
  393. package/dist/esm/internal-content-types/RobotsRule.js.map +1 -1
  394. package/dist/esm/internal-content-types/Route.d.ts +424 -27
  395. package/dist/esm/internal-content-types/Route.d.ts.map +1 -1
  396. package/dist/esm/internal-content-types/Route.js +2 -2
  397. package/dist/esm/internal-content-types/Route.js.map +1 -1
  398. package/dist/esm/internal-content-types/RouteLayoutModule.d.ts +350 -25
  399. package/dist/esm/internal-content-types/RouteLayoutModule.d.ts.map +1 -1
  400. package/dist/esm/internal-content-types/RouteLayoutModule.js +1 -1
  401. package/dist/esm/internal-content-types/RouteLayoutModule.js.map +1 -1
  402. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts +340 -21
  403. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.d.ts.map +1 -1
  404. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js +1 -1
  405. package/dist/esm/internal-content-types/RouteLayoutModuleOverride.js.map +1 -1
  406. package/dist/esm/internal-content-types/RouteLocaleVariant.d.ts +84 -24
  407. package/dist/esm/internal-content-types/RouteLocaleVariant.d.ts.map +1 -1
  408. package/dist/esm/internal-content-types/RouteMap.d.ts +427 -22
  409. package/dist/esm/internal-content-types/RouteMap.d.ts.map +1 -1
  410. package/dist/esm/internal-content-types/RouteMap.js +2 -2
  411. package/dist/esm/internal-content-types/RouteMap.js.map +1 -1
  412. package/dist/esm/internal-content-types/RouteSettings.d.ts +1610 -534
  413. package/dist/esm/internal-content-types/RouteSettings.d.ts.map +1 -1
  414. package/dist/esm/internal-content-types/RouteSettings.js +1 -1
  415. package/dist/esm/internal-content-types/RouteSettings.js.map +1 -1
  416. package/dist/esm/internal-content-types/SchemaState.d.ts +32 -12
  417. package/dist/esm/internal-content-types/SchemaState.d.ts.map +1 -1
  418. package/dist/esm/internal-content-types/Seo.d.ts +3188 -605
  419. package/dist/esm/internal-content-types/Seo.d.ts.map +1 -1
  420. package/dist/esm/internal-content-types/Seo.js +34 -20
  421. package/dist/esm/internal-content-types/Seo.js.map +1 -1
  422. package/dist/esm/internal-content-types/SeoAudit.d.ts +2724 -0
  423. package/dist/esm/internal-content-types/SeoAudit.d.ts.map +1 -0
  424. package/dist/esm/internal-content-types/SeoAudit.js +23 -0
  425. package/dist/esm/internal-content-types/SeoAudit.js.map +1 -0
  426. package/dist/esm/internal-content-types/SeoSettings.d.ts +16072 -4113
  427. package/dist/esm/internal-content-types/SeoSettings.d.ts.map +1 -1
  428. package/dist/esm/internal-content-types/SeoSettings.js +5 -5
  429. package/dist/esm/internal-content-types/SeoSettings.js.map +1 -1
  430. package/dist/esm/internal-content-types/Session.d.ts +4365 -893
  431. package/dist/esm/internal-content-types/Session.d.ts.map +1 -1
  432. package/dist/esm/internal-content-types/StructuredData.d.ts +6095 -0
  433. package/dist/esm/internal-content-types/StructuredData.d.ts.map +1 -0
  434. package/dist/esm/internal-content-types/StructuredData.js +96 -0
  435. package/dist/esm/internal-content-types/StructuredData.js.map +1 -0
  436. package/dist/esm/internal-content-types/UserMfa.d.ts +5285 -903
  437. package/dist/esm/internal-content-types/UserMfa.d.ts.map +1 -1
  438. package/dist/esm/internal-content-types/UserMfa.js +6 -6
  439. package/dist/esm/internal-content-types/UserMfa.js.map +1 -1
  440. package/dist/esm/internal-content-types/WebAuthnCredential.d.ts +4409 -905
  441. package/dist/esm/internal-content-types/WebAuthnCredential.d.ts.map +1 -1
  442. package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts +4466 -898
  443. package/dist/esm/internal-content-types/WebAuthnRegChallenge.d.ts.map +1 -1
  444. package/dist/esm/internal-content-types/WebAuthnRegChallenge.js +1 -1
  445. package/dist/esm/internal-content-types/WebAuthnRegChallenge.js.map +1 -1
  446. package/dist/esm/internal-content-types/index.d.ts +3 -0
  447. package/dist/esm/internal-content-types/index.d.ts.map +1 -1
  448. package/dist/esm/internal-content-types/index.js +3 -0
  449. package/dist/esm/internal-content-types/index.js.map +1 -1
  450. package/dist/esm/internal-content-types/syncAdminRole.d.ts +1 -1
  451. package/dist/esm/lib/ContentType.d.ts.map +1 -1
  452. package/dist/esm/lib/ContentType.js +11 -3
  453. package/dist/esm/lib/ContentType.js.map +1 -1
  454. package/dist/esm/lib/Registry.d.ts.map +1 -1
  455. package/dist/esm/lib/Registry.js +1 -0
  456. package/dist/esm/lib/Registry.js.map +1 -1
  457. package/dist/esm/lib/fields/Boolean.d.ts +4 -3
  458. package/dist/esm/lib/fields/Boolean.d.ts.map +1 -1
  459. package/dist/esm/lib/fields/Boolean.js +7 -3
  460. package/dist/esm/lib/fields/Boolean.js.map +1 -1
  461. package/dist/esm/lib/fields/Breadcrums.d.ts +2 -1
  462. package/dist/esm/lib/fields/Breadcrums.d.ts.map +1 -1
  463. package/dist/esm/lib/fields/Breadcrums.js +5 -1
  464. package/dist/esm/lib/fields/Breadcrums.js.map +1 -1
  465. package/dist/esm/lib/fields/ContentReference.d.ts +12 -5
  466. package/dist/esm/lib/fields/ContentReference.d.ts.map +1 -1
  467. package/dist/esm/lib/fields/ContentReference.js +25 -9
  468. package/dist/esm/lib/fields/ContentReference.js.map +1 -1
  469. package/dist/esm/lib/fields/Date.d.ts +5 -4
  470. package/dist/esm/lib/fields/Date.d.ts.map +1 -1
  471. package/dist/esm/lib/fields/Date.js +13 -7
  472. package/dist/esm/lib/fields/Date.js.map +1 -1
  473. package/dist/esm/lib/fields/Field.d.ts +105 -46
  474. package/dist/esm/lib/fields/Field.d.ts.map +1 -1
  475. package/dist/esm/lib/fields/Field.js +71 -45
  476. package/dist/esm/lib/fields/Field.js.map +1 -1
  477. package/dist/esm/lib/fields/Fields.d.ts +3 -0
  478. package/dist/esm/lib/fields/Fields.d.ts.map +1 -1
  479. package/dist/esm/lib/fields/Fields.js +2 -0
  480. package/dist/esm/lib/fields/Fields.js.map +1 -1
  481. package/dist/esm/lib/fields/File.d.ts +32 -6
  482. package/dist/esm/lib/fields/File.d.ts.map +1 -1
  483. package/dist/esm/lib/fields/File.js +76 -27
  484. package/dist/esm/lib/fields/File.js.map +1 -1
  485. package/dist/esm/lib/fields/Iterator.d.ts +2 -1
  486. package/dist/esm/lib/fields/Iterator.d.ts.map +1 -1
  487. package/dist/esm/lib/fields/Iterator.js +2 -2
  488. package/dist/esm/lib/fields/Iterator.js.map +1 -1
  489. package/dist/esm/lib/fields/Link.d.ts +32 -9
  490. package/dist/esm/lib/fields/Link.d.ts.map +1 -1
  491. package/dist/esm/lib/fields/Link.js +28 -18
  492. package/dist/esm/lib/fields/Link.js.map +1 -1
  493. package/dist/esm/lib/fields/List.d.ts +11 -10
  494. package/dist/esm/lib/fields/List.d.ts.map +1 -1
  495. package/dist/esm/lib/fields/List.js +37 -15
  496. package/dist/esm/lib/fields/List.js.map +1 -1
  497. package/dist/esm/lib/fields/Menu.d.ts +26 -0
  498. package/dist/esm/lib/fields/Menu.d.ts.map +1 -0
  499. package/dist/esm/lib/fields/Menu.js +49 -0
  500. package/dist/esm/lib/fields/Menu.js.map +1 -0
  501. package/dist/esm/lib/fields/Number.d.ts +4 -3
  502. package/dist/esm/lib/fields/Number.d.ts.map +1 -1
  503. package/dist/esm/lib/fields/Number.js +5 -4
  504. package/dist/esm/lib/fields/Number.js.map +1 -1
  505. package/dist/esm/lib/fields/Relation.d.ts +14 -13
  506. package/dist/esm/lib/fields/Relation.d.ts.map +1 -1
  507. package/dist/esm/lib/fields/Relation.js +21 -19
  508. package/dist/esm/lib/fields/Relation.js.map +1 -1
  509. package/dist/esm/lib/fields/Select.d.ts +10 -3
  510. package/dist/esm/lib/fields/Select.d.ts.map +1 -1
  511. package/dist/esm/lib/fields/Select.js +22 -6
  512. package/dist/esm/lib/fields/Select.js.map +1 -1
  513. package/dist/esm/lib/fields/SelfRelation.d.ts +5 -4
  514. package/dist/esm/lib/fields/SelfRelation.d.ts.map +1 -1
  515. package/dist/esm/lib/fields/SelfRelation.js +7 -6
  516. package/dist/esm/lib/fields/SelfRelation.js.map +1 -1
  517. package/dist/esm/lib/fields/SimpleList.d.ts +11 -4
  518. package/dist/esm/lib/fields/SimpleList.d.ts.map +1 -1
  519. package/dist/esm/lib/fields/SimpleList.js +40 -16
  520. package/dist/esm/lib/fields/SimpleList.js.map +1 -1
  521. package/dist/esm/lib/fields/String.d.ts +6 -5
  522. package/dist/esm/lib/fields/String.d.ts.map +1 -1
  523. package/dist/esm/lib/fields/String.js +38 -40
  524. package/dist/esm/lib/fields/String.js.map +1 -1
  525. package/dist/esm/lib/fields/index.d.ts +1 -0
  526. package/dist/esm/lib/fields/index.d.ts.map +1 -1
  527. package/dist/esm/lib/fields/index.js +1 -0
  528. package/dist/esm/lib/fields/index.js.map +1 -1
  529. package/dist/esm/manager.d.ts +5 -0
  530. package/dist/esm/manager.d.ts.map +1 -1
  531. package/dist/esm/media/imageOptimization.d.ts +7 -1
  532. package/dist/esm/media/imageOptimization.d.ts.map +1 -1
  533. package/dist/esm/media/imageOptimization.js.map +1 -1
  534. package/dist/esm/media/mediaOptimization.d.ts +12 -0
  535. package/dist/esm/media/mediaOptimization.d.ts.map +1 -0
  536. package/dist/esm/media/mediaOptimization.js +15 -0
  537. package/dist/esm/media/mediaOptimization.js.map +1 -0
  538. package/dist/esm/media/videoOptimization.d.ts +19 -0
  539. package/dist/esm/media/videoOptimization.d.ts.map +1 -0
  540. package/dist/esm/media/videoOptimization.js +136 -0
  541. package/dist/esm/media/videoOptimization.js.map +1 -0
  542. package/dist/esm/orm/createIndexes.d.ts.map +1 -1
  543. package/dist/esm/orm/createIndexes.js +5 -1
  544. package/dist/esm/orm/createIndexes.js.map +1 -1
  545. package/dist/esm/schemas/manager/localeVariants.d.ts +3 -0
  546. package/dist/esm/schemas/manager/localeVariants.d.ts.map +1 -1
  547. package/dist/esm/schemas/manager/localeVariants.js +1 -0
  548. package/dist/esm/schemas/manager/localeVariants.js.map +1 -1
  549. package/dist/esm/schemas/manager/media/finalizeUpload.d.ts +43 -0
  550. package/dist/esm/schemas/manager/media/finalizeUpload.d.ts.map +1 -1
  551. package/dist/esm/schemas/manager/media/finalizeUpload.js +9 -0
  552. package/dist/esm/schemas/manager/media/finalizeUpload.js.map +1 -1
  553. package/dist/esm/schemas/manager/media/reimportMedia.d.ts +17 -1
  554. package/dist/esm/schemas/manager/media/reimportMedia.d.ts.map +1 -1
  555. package/dist/esm/schemas/manager/media/reimportMedia.js.map +1 -1
  556. package/dist/esm/schemas/manager/media/replaceMedia.d.ts +107 -0
  557. package/dist/esm/schemas/manager/media/replaceMedia.d.ts.map +1 -0
  558. package/dist/esm/schemas/manager/media/replaceMedia.js +15 -0
  559. package/dist/esm/schemas/manager/media/replaceMedia.js.map +1 -0
  560. package/dist/esm/schemas/manager/uiLocales.d.ts +1 -0
  561. package/dist/esm/schemas/manager/uiLocales.d.ts.map +1 -1
  562. package/dist/esm/schemas/manager/uiLocales.js +1 -0
  563. package/dist/esm/schemas/manager/uiLocales.js.map +1 -1
  564. package/dist/esm/schemas/web/llms.d.ts +11 -0
  565. package/dist/esm/schemas/web/llms.d.ts.map +1 -0
  566. package/dist/esm/schemas/web/llms.js +11 -0
  567. package/dist/esm/schemas/web/llms.js.map +1 -0
  568. package/dist/esm/schemas/web/page.d.ts +147 -6
  569. package/dist/esm/schemas/web/page.d.ts.map +1 -1
  570. package/dist/esm/schemas/web/page.js +2 -3
  571. package/dist/esm/schemas/web/page.js.map +1 -1
  572. package/dist/esm/schemas/web/previewPage.d.ts +75 -6
  573. package/dist/esm/schemas/web/previewPage.d.ts.map +1 -1
  574. package/dist/esm/web/page.d.ts +7 -7
  575. package/dist/esm/web/page.d.ts.map +1 -1
  576. package/dist/esm/web/page.js +1 -1
  577. package/dist/esm/web/page.js.map +1 -1
  578. package/dist/tsconfig.build.tsbuildinfo +1 -1
  579. 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(".").reduce((current, segment) => {
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 isPublicDocument = (value) => value._trashed !== true &&
29
- value._visibility !== "draft" &&
30
- value._visibility !== "trash";
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
- ? contentType
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.type === "Relation" &&
61
- "contentType" in field &&
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 false;
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.type === "Relation" &&
84
- "contentType" in field &&
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
- if (field.meta.type === "List")
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.type === "Relation" && "contentType" in field) {
108
+ if (field.meta.capabilities.dynamic?.relation === true && 'contentType' in field) {
101
109
  return field.contentType;
102
110
  }
103
- if (field.meta.ui === "SimpleList" && "field" in field) {
111
+ if (field.meta.capabilities.dynamic?.collection === 'homogeneous' && 'field' in field) {
104
112
  const itemField = field.field;
105
- if (itemField.meta.type === "Relation" && "contentType" in itemField) {
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 ((field.meta.ui === "List" || field.meta.ui === "Iterator") &&
116
- "fields" in field &&
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.populateLinks)(item)));
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 === "href") {
170
- const sourceId = typeof sourceDocument._id === "string" ? sourceDocument._id : source.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) => "kind" in source && source.kind === "relatedCollection";
179
- const isNestedListSource = (source) => "kind" in source && source.kind === "list";
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: ["draft", "trash"] },
193
+ _visibility: { $nin: ['draft', 'trash'] },
186
194
  },
187
195
  });
188
- const isDynamicQueryCurrentPathAllowed = (contentType, path) => path === "_id" || isDynamicSourcePathAllowed(contentType, 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.populateLinks)(sourceItem))), }) => {
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 !== "string")
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
- const targetContentType = getListTargetContentType(targetField, source.itemName);
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
- itemContentTypeName: targetContentType.name,
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, itemContentTypeName, }) => {
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.populateLinks)(sourceItem)));
350
- const targetContentType = (0, Registry_1.getContentTypeByName)(itemContentTypeName);
351
- const mapped = Object.fromEntries(await Promise.all(Object.entries(binding.map).map(async ([targetField, source]) => [
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: targetContentType?.fields[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 getListTargetContentType = (field, itemName) => {
376
- if (!field || (field.meta.ui !== "List" && field.meta.ui !== "Iterator")) {
390
+ const getBlocksTargetContentType = (field, itemName) => {
391
+ if (!field || field.meta.capabilities.dynamic?.collection !== 'heterogeneous') {
377
392
  return undefined;
378
393
  }
379
- if (!("fields" in field) || !Array.isArray(field.fields)) {
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.type !== "Relation" ||
385
- !("contentType" in entry.field)) {
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 getDynamicListItemContentTypeName = (field, itemName) => getListTargetContentType(field, itemName)?.name ?? itemName;
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
- const targetContentType = getListTargetContentType(contentType.fields[fieldName], binding.itemName);
394
- if (!targetContentType)
395
- return binding;
396
- return filterListBindingForTarget(targetContentType, binding);
443
+ return filterListBindingForTarget(contentType.fields[fieldName], binding);
397
444
  };
398
- const filterListBindingForTarget = (targetContentType, binding) => {
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(([targetField, source]) => {
402
- if (!targetContentType.allowsDynamicBindingForField(targetField)) {
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 [[targetField, source]];
466
+ return [[targetPath, source]];
407
467
  }
408
- const nestedTargetContentType = getListTargetContentType(targetContentType.fields[targetField], source.itemName);
409
- return nestedTargetContentType
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 === "string" ? item.name : "";
478
+ const name = typeof item.name === 'string' ? item.name : '';
424
479
  const value = item.value;
425
- if (isRecord(value) && typeof value._id === "string") {
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 === "string" &&
440
- Object.prototype.hasOwnProperty.call(item, "value") &&
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
- ? currentValue.filter(isListValueItem)
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("dynamicData: field binding failed", 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
- itemContentTypeName: (0, exports.getDynamicListItemContentTypeName)(contentType.fields[field], binding.itemName),
560
+ targetField,
499
561
  });
500
562
  if (resolved !== undefined) {
501
- next[field] = (0, exports.mergeDynamicListItems)(next[field], resolved);
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("dynamicData: list binding failed", 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 === "string"
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,