@focus-reactive/payload-plugin-comments 1.0.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 (387) hide show
  1. package/README.md +563 -0
  2. package/dist/collection/access/isAuth.d.ts +3 -0
  3. package/dist/collection/access/isAuth.d.ts.map +1 -0
  4. package/dist/collection/access/isAuth.js +8 -0
  5. package/dist/collection/access/isAuth.js.map +1 -0
  6. package/dist/collection/hooks/setAuthorBeforeCreate.d.ts +3 -0
  7. package/dist/collection/hooks/setAuthorBeforeCreate.d.ts.map +1 -0
  8. package/dist/collection/hooks/setAuthorBeforeCreate.js +10 -0
  9. package/dist/collection/hooks/setAuthorBeforeCreate.js.map +1 -0
  10. package/dist/collection/hooks/setTenantBeforeCreate.d.ts +3 -0
  11. package/dist/collection/hooks/setTenantBeforeCreate.d.ts.map +1 -0
  12. package/dist/collection/hooks/setTenantBeforeCreate.js +24 -0
  13. package/dist/collection/hooks/setTenantBeforeCreate.js.map +1 -0
  14. package/dist/collection/index.d.ts +4 -0
  15. package/dist/collection/index.d.ts.map +1 -0
  16. package/dist/collection/index.js +139 -0
  17. package/dist/collection/index.js.map +1 -0
  18. package/dist/components/Avatar/index.d.ts +11 -0
  19. package/dist/components/Avatar/index.d.ts.map +1 -0
  20. package/dist/components/Avatar/index.js +11 -0
  21. package/dist/components/Avatar/index.js.map +1 -0
  22. package/dist/components/CommentEditor/ActionPanel.d.ts +8 -0
  23. package/dist/components/CommentEditor/ActionPanel.d.ts.map +1 -0
  24. package/dist/components/CommentEditor/ActionPanel.js +17 -0
  25. package/dist/components/CommentEditor/ActionPanel.js.map +1 -0
  26. package/dist/components/CommentEditor/index.d.ts +23 -0
  27. package/dist/components/CommentEditor/index.d.ts.map +1 -0
  28. package/dist/components/CommentEditor/index.js +265 -0
  29. package/dist/components/CommentEditor/index.js.map +1 -0
  30. package/dist/components/CommentItem/ToolsPanel.d.ts +9 -0
  31. package/dist/components/CommentItem/ToolsPanel.d.ts.map +1 -0
  32. package/dist/components/CommentItem/ToolsPanel.js +22 -0
  33. package/dist/components/CommentItem/ToolsPanel.js.map +1 -0
  34. package/dist/components/CommentItem/index.d.ts +8 -0
  35. package/dist/components/CommentItem/index.d.ts.map +1 -0
  36. package/dist/components/CommentItem/index.js +65 -0
  37. package/dist/components/CommentItem/index.js.map +1 -0
  38. package/dist/components/CommentsDrawer/components/Header.d.ts +6 -0
  39. package/dist/components/CommentsDrawer/components/Header.d.ts.map +1 -0
  40. package/dist/components/CommentsDrawer/components/Header.js +46 -0
  41. package/dist/components/CommentsDrawer/components/Header.js.map +1 -0
  42. package/dist/components/CommentsDrawer/index.d.ts +6 -0
  43. package/dist/components/CommentsDrawer/index.d.ts.map +1 -0
  44. package/dist/components/CommentsDrawer/index.js +30 -0
  45. package/dist/components/CommentsDrawer/index.js.map +1 -0
  46. package/dist/components/CommentsHeaderButton/index.d.ts +2 -0
  47. package/dist/components/CommentsHeaderButton/index.d.ts.map +1 -0
  48. package/dist/components/CommentsHeaderButton/index.js +19 -0
  49. package/dist/components/CommentsHeaderButton/index.js.map +1 -0
  50. package/dist/components/CommentsPanel/components/CollapsibleGroup.d.ts +10 -0
  51. package/dist/components/CommentsPanel/components/CollapsibleGroup.d.ts.map +1 -0
  52. package/dist/components/CommentsPanel/components/CollapsibleGroup.js +68 -0
  53. package/dist/components/CommentsPanel/components/CollapsibleGroup.js.map +1 -0
  54. package/dist/components/CommentsPanel/components/DocumentView.d.ts +9 -0
  55. package/dist/components/CommentsPanel/components/DocumentView.d.ts.map +1 -0
  56. package/dist/components/CommentsPanel/components/DocumentView.js +28 -0
  57. package/dist/components/CommentsPanel/components/DocumentView.js.map +1 -0
  58. package/dist/components/CommentsPanel/components/FieldGroupSection.d.ts +11 -0
  59. package/dist/components/CommentsPanel/components/FieldGroupSection.d.ts.map +1 -0
  60. package/dist/components/CommentsPanel/components/FieldGroupSection.js +62 -0
  61. package/dist/components/CommentsPanel/components/FieldGroupSection.js.map +1 -0
  62. package/dist/components/CommentsPanel/components/GlobalDocumentView.d.ts +9 -0
  63. package/dist/components/CommentsPanel/components/GlobalDocumentView.d.ts.map +1 -0
  64. package/dist/components/CommentsPanel/components/GlobalDocumentView.js +20 -0
  65. package/dist/components/CommentsPanel/components/GlobalDocumentView.js.map +1 -0
  66. package/dist/components/CommentsPanel/components/GlobalView.d.ts +9 -0
  67. package/dist/components/CommentsPanel/components/GlobalView.d.ts.map +1 -0
  68. package/dist/components/CommentsPanel/components/GlobalView.js +62 -0
  69. package/dist/components/CommentsPanel/components/GlobalView.js.map +1 -0
  70. package/dist/components/CommentsPanel/constants.d.ts +3 -0
  71. package/dist/components/CommentsPanel/constants.d.ts.map +1 -0
  72. package/dist/components/CommentsPanel/constants.js +9 -0
  73. package/dist/components/CommentsPanel/constants.js.map +1 -0
  74. package/dist/components/CommentsPanel/hooks/useCollapseState.d.ts +2 -0
  75. package/dist/components/CommentsPanel/hooks/useCollapseState.d.ts.map +1 -0
  76. package/dist/components/CommentsPanel/hooks/useCollapseState.js +44 -0
  77. package/dist/components/CommentsPanel/hooks/useCollapseState.js.map +1 -0
  78. package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.d.ts +2 -0
  79. package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.d.ts.map +1 -0
  80. package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.js +35 -0
  81. package/dist/components/CommentsPanel/hooks/useScrollToTargetFieldGroup.js.map +1 -0
  82. package/dist/components/CommentsPanel/index.d.ts +6 -0
  83. package/dist/components/CommentsPanel/index.d.ts.map +1 -0
  84. package/dist/components/CommentsPanel/index.js +32 -0
  85. package/dist/components/CommentsPanel/index.js.map +1 -0
  86. package/dist/components/CommentsPanel/types.d.ts +4 -0
  87. package/dist/components/CommentsPanel/types.d.ts.map +1 -0
  88. package/dist/components/CommentsPanel/types.js +1 -0
  89. package/dist/components/CommentsPanel/types.js.map +1 -0
  90. package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.d.ts +10 -0
  91. package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.d.ts.map +1 -0
  92. package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.js +15 -0
  93. package/dist/components/CommentsPanel/utils/createCollapsibleGroupKey.js.map +1 -0
  94. package/dist/components/CommentsPanel/utils/filterComments.d.ts +9 -0
  95. package/dist/components/CommentsPanel/utils/filterComments.d.ts.map +1 -0
  96. package/dist/components/CommentsPanel/utils/filterComments.js +17 -0
  97. package/dist/components/CommentsPanel/utils/filterComments.js.map +1 -0
  98. package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.d.ts +4 -0
  99. package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.d.ts.map +1 -0
  100. package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.js +14 -0
  101. package/dist/components/CommentsPanel/utils/groupCommentsByFieldPath.js.map +1 -0
  102. package/dist/components/CommentsPanel/utils/groupCommentsGlobally.d.ts +18 -0
  103. package/dist/components/CommentsPanel/utils/groupCommentsGlobally.d.ts.map +1 -0
  104. package/dist/components/CommentsPanel/utils/groupCommentsGlobally.js +58 -0
  105. package/dist/components/CommentsPanel/utils/groupCommentsGlobally.js.map +1 -0
  106. package/dist/components/CommentsPanel/utils/resolveEntityLabel.d.ts +3 -0
  107. package/dist/components/CommentsPanel/utils/resolveEntityLabel.d.ts.map +1 -0
  108. package/dist/components/CommentsPanel/utils/resolveEntityLabel.js +14 -0
  109. package/dist/components/CommentsPanel/utils/resolveEntityLabel.js.map +1 -0
  110. package/dist/components/CommentsPanel/utils/resolveFieldLabel.d.ts +11 -0
  111. package/dist/components/CommentsPanel/utils/resolveFieldLabel.d.ts.map +1 -0
  112. package/dist/components/CommentsPanel/utils/resolveFieldLabel.js +9 -0
  113. package/dist/components/CommentsPanel/utils/resolveFieldLabel.js.map +1 -0
  114. package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.d.ts +4 -0
  115. package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.d.ts.map +1 -0
  116. package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.js +11 -0
  117. package/dist/components/CommentsPanel/utils/sortGroupsByCreatedAt.js.map +1 -0
  118. package/dist/components/FieldCommentLabel/AddCommentPopup.d.ts +8 -0
  119. package/dist/components/FieldCommentLabel/AddCommentPopup.d.ts.map +1 -0
  120. package/dist/components/FieldCommentLabel/AddCommentPopup.js +50 -0
  121. package/dist/components/FieldCommentLabel/AddCommentPopup.js.map +1 -0
  122. package/dist/components/FieldCommentLabel/hooks/useStablePath.d.ts +2 -0
  123. package/dist/components/FieldCommentLabel/hooks/useStablePath.d.ts.map +1 -0
  124. package/dist/components/FieldCommentLabel/hooks/useStablePath.js +12 -0
  125. package/dist/components/FieldCommentLabel/hooks/useStablePath.js.map +1 -0
  126. package/dist/components/FieldCommentLabel/index.d.ts +11 -0
  127. package/dist/components/FieldCommentLabel/index.d.ts.map +1 -0
  128. package/dist/components/FieldCommentLabel/index.js +64 -0
  129. package/dist/components/FieldCommentLabel/index.js.map +1 -0
  130. package/dist/components/FieldCommentLabel/types.d.ts +4 -0
  131. package/dist/components/FieldCommentLabel/types.d.ts.map +1 -0
  132. package/dist/components/FieldCommentLabel/types.js +1 -0
  133. package/dist/components/FieldCommentLabel/types.js.map +1 -0
  134. package/dist/components/FieldCommentLabel/utils/buildStablePath.d.ts +2 -0
  135. package/dist/components/FieldCommentLabel/utils/buildStablePath.d.ts.map +1 -0
  136. package/dist/components/FieldCommentLabel/utils/buildStablePath.js +19 -0
  137. package/dist/components/FieldCommentLabel/utils/buildStablePath.js.map +1 -0
  138. package/dist/components/FieldCommentLabel/utils/exludeComments.d.ts +3 -0
  139. package/dist/components/FieldCommentLabel/utils/exludeComments.d.ts.map +1 -0
  140. package/dist/components/FieldCommentLabel/utils/exludeComments.js +12 -0
  141. package/dist/components/FieldCommentLabel/utils/exludeComments.js.map +1 -0
  142. package/dist/components/FieldCommentLabel/utils/resolveLabel.d.ts +3 -0
  143. package/dist/components/FieldCommentLabel/utils/resolveLabel.d.ts.map +1 -0
  144. package/dist/components/FieldCommentLabel/utils/resolveLabel.js +9 -0
  145. package/dist/components/FieldCommentLabel/utils/resolveLabel.js.map +1 -0
  146. package/dist/components/IconButton/index.d.ts +12 -0
  147. package/dist/components/IconButton/index.d.ts.map +1 -0
  148. package/dist/components/IconButton/index.js +38 -0
  149. package/dist/components/IconButton/index.js.map +1 -0
  150. package/dist/components/MentionDropdown.d.ts +11 -0
  151. package/dist/components/MentionDropdown.d.ts.map +1 -0
  152. package/dist/components/MentionDropdown.js +53 -0
  153. package/dist/components/MentionDropdown.js.map +1 -0
  154. package/dist/components/MentionLabel/index.d.ts +7 -0
  155. package/dist/components/MentionLabel/index.d.ts.map +1 -0
  156. package/dist/components/MentionLabel/index.js +21 -0
  157. package/dist/components/MentionLabel/index.js.map +1 -0
  158. package/dist/config.d.ts +4 -0
  159. package/dist/config.d.ts.map +1 -0
  160. package/dist/config.js +17 -0
  161. package/dist/config.js.map +1 -0
  162. package/dist/constants.d.ts +9 -0
  163. package/dist/constants.d.ts.map +1 -0
  164. package/dist/constants.js +22 -0
  165. package/dist/constants.js.map +1 -0
  166. package/dist/hooks/useRelativeDate.d.ts +2 -0
  167. package/dist/hooks/useRelativeDate.d.ts.map +1 -0
  168. package/dist/hooks/useRelativeDate.js +11 -0
  169. package/dist/hooks/useRelativeDate.js.map +1 -0
  170. package/dist/index.d.ts +5 -0
  171. package/dist/index.d.ts.map +1 -0
  172. package/dist/index.js +7 -0
  173. package/dist/index.js.map +1 -0
  174. package/dist/plugin.d.ts +4 -0
  175. package/dist/plugin.d.ts.map +1 -0
  176. package/dist/plugin.js +60 -0
  177. package/dist/plugin.js.map +1 -0
  178. package/dist/providers/CommentsDrawerProvider/index.d.ts +14 -0
  179. package/dist/providers/CommentsDrawerProvider/index.d.ts.map +1 -0
  180. package/dist/providers/CommentsDrawerProvider/index.js +28 -0
  181. package/dist/providers/CommentsDrawerProvider/index.js.map +1 -0
  182. package/dist/providers/CommentsProvider/index.d.ts +39 -0
  183. package/dist/providers/CommentsProvider/index.d.ts.map +1 -0
  184. package/dist/providers/CommentsProvider/index.js +237 -0
  185. package/dist/providers/CommentsProvider/index.js.map +1 -0
  186. package/dist/providers/CommentsProvider/mergeDocumentTitles.d.ts +3 -0
  187. package/dist/providers/CommentsProvider/mergeDocumentTitles.d.ts.map +1 -0
  188. package/dist/providers/CommentsProvider/mergeDocumentTitles.js +10 -0
  189. package/dist/providers/CommentsProvider/mergeDocumentTitles.js.map +1 -0
  190. package/dist/providers/CommentsProviderWrapper/index.d.ts +7 -0
  191. package/dist/providers/CommentsProviderWrapper/index.d.ts.map +1 -0
  192. package/dist/providers/CommentsProviderWrapper/index.js +16 -0
  193. package/dist/providers/CommentsProviderWrapper/index.js.map +1 -0
  194. package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.d.ts +13 -0
  195. package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.d.ts.map +1 -0
  196. package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.js +22 -0
  197. package/dist/providers/GlobalCommentsLoader/GlobalCommentsHydrator.js.map +1 -0
  198. package/dist/providers/GlobalCommentsLoader/index.d.ts +10 -0
  199. package/dist/providers/GlobalCommentsLoader/index.d.ts.map +1 -0
  200. package/dist/providers/GlobalCommentsLoader/index.js +31 -0
  201. package/dist/providers/GlobalCommentsLoader/index.js.map +1 -0
  202. package/dist/services/createComment.d.ts +12 -0
  203. package/dist/services/createComment.d.ts.map +1 -0
  204. package/dist/services/createComment.js +83 -0
  205. package/dist/services/createComment.js.map +1 -0
  206. package/dist/services/deleteComment.d.ts +3 -0
  207. package/dist/services/deleteComment.d.ts.map +1 -0
  208. package/dist/services/deleteComment.js +34 -0
  209. package/dist/services/deleteComment.js.map +1 -0
  210. package/dist/services/fetchMentionableUsers.d.ts +3 -0
  211. package/dist/services/fetchMentionableUsers.d.ts.map +1 -0
  212. package/dist/services/fetchMentionableUsers.js +46 -0
  213. package/dist/services/fetchMentionableUsers.js.map +1 -0
  214. package/dist/services/fieldLabels/fetchFieldLabels.d.ts +3 -0
  215. package/dist/services/fieldLabels/fetchFieldLabels.d.ts.map +1 -0
  216. package/dist/services/fieldLabels/fetchFieldLabels.js +74 -0
  217. package/dist/services/fieldLabels/fetchFieldLabels.js.map +1 -0
  218. package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.d.ts +5 -0
  219. package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.d.ts.map +1 -0
  220. package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.js +21 -0
  221. package/dist/services/fieldLabels/utils/groupFieldPathsByDocument.js.map +1 -0
  222. package/dist/services/fieldLabels/utils/resolveFieldPath.d.ts +4 -0
  223. package/dist/services/fieldLabels/utils/resolveFieldPath.d.ts.map +1 -0
  224. package/dist/services/fieldLabels/utils/resolveFieldPath.js +66 -0
  225. package/dist/services/fieldLabels/utils/resolveFieldPath.js.map +1 -0
  226. package/dist/services/fieldLabels/utils/schemaUtils.d.ts +6 -0
  227. package/dist/services/fieldLabels/utils/schemaUtils.d.ts.map +1 -0
  228. package/dist/services/fieldLabels/utils/schemaUtils.js +60 -0
  229. package/dist/services/fieldLabels/utils/schemaUtils.js.map +1 -0
  230. package/dist/services/findAllComments.d.ts +11 -0
  231. package/dist/services/findAllComments.d.ts.map +1 -0
  232. package/dist/services/findAllComments.js +47 -0
  233. package/dist/services/findAllComments.js.map +1 -0
  234. package/dist/services/getCurrentTenantId.d.ts +3 -0
  235. package/dist/services/getCurrentTenantId.d.ts.map +1 -0
  236. package/dist/services/getCurrentTenantId.js +13 -0
  237. package/dist/services/getCurrentTenantId.js.map +1 -0
  238. package/dist/services/getDocumentTitles.d.ts +3 -0
  239. package/dist/services/getDocumentTitles.d.ts.map +1 -0
  240. package/dist/services/getDocumentTitles.js +61 -0
  241. package/dist/services/getDocumentTitles.js.map +1 -0
  242. package/dist/services/getEntitiesLabels.d.ts +3 -0
  243. package/dist/services/getEntitiesLabels.d.ts.map +1 -0
  244. package/dist/services/getEntitiesLabels.js +14 -0
  245. package/dist/services/getEntitiesLabels.js.map +1 -0
  246. package/dist/services/resolveComment.d.ts +3 -0
  247. package/dist/services/resolveComment.d.ts.map +1 -0
  248. package/dist/services/resolveComment.js +41 -0
  249. package/dist/services/resolveComment.js.map +1 -0
  250. package/dist/services/sendMentionEmails.d.ts +11 -0
  251. package/dist/services/sendMentionEmails.d.ts.map +1 -0
  252. package/dist/services/sendMentionEmails.js +73 -0
  253. package/dist/services/sendMentionEmails.js.map +1 -0
  254. package/dist/services/syncAllCommentsData.d.ts +12 -0
  255. package/dist/services/syncAllCommentsData.d.ts.map +1 -0
  256. package/dist/services/syncAllCommentsData.js +48 -0
  257. package/dist/services/syncAllCommentsData.js.map +1 -0
  258. package/dist/styles.css +2 -0
  259. package/dist/translations/en.d.ts +5 -0
  260. package/dist/translations/en.d.ts.map +1 -0
  261. package/dist/translations/en.js +36 -0
  262. package/dist/translations/en.js.map +1 -0
  263. package/dist/translations/types.d.ts +32 -0
  264. package/dist/translations/types.d.ts.map +1 -0
  265. package/dist/translations/types.js +1 -0
  266. package/dist/translations/types.js.map +1 -0
  267. package/dist/types/base.d.ts +10 -0
  268. package/dist/types/base.d.ts.map +1 -0
  269. package/dist/types/base.js +1 -0
  270. package/dist/types/base.js.map +1 -0
  271. package/dist/types/collection.d.ts +2 -0
  272. package/dist/types/collection.d.ts.map +1 -0
  273. package/dist/types/collection.js +1 -0
  274. package/dist/types/collection.js.map +1 -0
  275. package/dist/types/comment.d.ts +23 -0
  276. package/dist/types/comment.d.ts.map +1 -0
  277. package/dist/types/comment.js +1 -0
  278. package/dist/types/comment.js.map +1 -0
  279. package/dist/types/config.d.ts +112 -0
  280. package/dist/types/config.d.ts.map +1 -0
  281. package/dist/types/config.js +1 -0
  282. package/dist/types/config.js.map +1 -0
  283. package/dist/types/entity.d.ts +15 -0
  284. package/dist/types/entity.d.ts.map +1 -0
  285. package/dist/types/entity.js +1 -0
  286. package/dist/types/entity.js.map +1 -0
  287. package/dist/types/general.d.ts +10 -0
  288. package/dist/types/general.d.ts.map +1 -0
  289. package/dist/types/general.js +1 -0
  290. package/dist/types/general.js.map +1 -0
  291. package/dist/types/index.d.ts +8 -0
  292. package/dist/types/index.d.ts.map +1 -0
  293. package/dist/types/index.js +1 -0
  294. package/dist/types/index.js.map +1 -0
  295. package/dist/types/user.d.ts +6 -0
  296. package/dist/types/user.d.ts.map +1 -0
  297. package/dist/types/user.js +1 -0
  298. package/dist/types/user.js.map +1 -0
  299. package/dist/utils/comment/extractVisibleComments.d.ts +13 -0
  300. package/dist/utils/comment/extractVisibleComments.d.ts.map +1 -0
  301. package/dist/utils/comment/extractVisibleComments.js +17 -0
  302. package/dist/utils/comment/extractVisibleComments.js.map +1 -0
  303. package/dist/utils/comment/filterCommentsByLocale.d.ts +3 -0
  304. package/dist/utils/comment/filterCommentsByLocale.d.ts.map +1 -0
  305. package/dist/utils/comment/filterCommentsByLocale.js +12 -0
  306. package/dist/utils/comment/filterCommentsByLocale.js.map +1 -0
  307. package/dist/utils/comment/renderCommentText.d.ts +12 -0
  308. package/dist/utils/comment/renderCommentText.d.ts.map +1 -0
  309. package/dist/utils/comment/renderCommentText.js +38 -0
  310. package/dist/utils/comment/renderCommentText.js.map +1 -0
  311. package/dist/utils/comment/serializeEditor.d.ts +2 -0
  312. package/dist/utils/comment/serializeEditor.d.ts.map +1 -0
  313. package/dist/utils/comment/serializeEditor.js +30 -0
  314. package/dist/utils/comment/serializeEditor.js.map +1 -0
  315. package/dist/utils/config/injectFieldCommentComponents.d.ts +4 -0
  316. package/dist/utils/config/injectFieldCommentComponents.d.ts.map +1 -0
  317. package/dist/utils/config/injectFieldCommentComponents.js +80 -0
  318. package/dist/utils/config/injectFieldCommentComponents.js.map +1 -0
  319. package/dist/utils/config/mergeTranslations.d.ts +3 -0
  320. package/dist/utils/config/mergeTranslations.d.ts.map +1 -0
  321. package/dist/utils/config/mergeTranslations.js +29 -0
  322. package/dist/utils/config/mergeTranslations.js.map +1 -0
  323. package/dist/utils/config/normalizeCollections.d.ts +7 -0
  324. package/dist/utils/config/normalizeCollections.d.ts.map +1 -0
  325. package/dist/utils/config/normalizeCollections.js +15 -0
  326. package/dist/utils/config/normalizeCollections.js.map +1 -0
  327. package/dist/utils/config/overrideCollections.d.ts +3 -0
  328. package/dist/utils/config/overrideCollections.d.ts.map +1 -0
  329. package/dist/utils/config/overrideCollections.js +38 -0
  330. package/dist/utils/config/overrideCollections.js.map +1 -0
  331. package/dist/utils/config/overrideCommentsCollection.d.ts +4 -0
  332. package/dist/utils/config/overrideCommentsCollection.d.ts.map +1 -0
  333. package/dist/utils/config/overrideCommentsCollection.js +14 -0
  334. package/dist/utils/config/overrideCommentsCollection.js.map +1 -0
  335. package/dist/utils/config/overrideGlobals.d.ts +3 -0
  336. package/dist/utils/config/overrideGlobals.d.ts.map +1 -0
  337. package/dist/utils/config/overrideGlobals.js +8 -0
  338. package/dist/utils/config/overrideGlobals.js.map +1 -0
  339. package/dist/utils/error/getDefaultErrorMessage.d.ts +2 -0
  340. package/dist/utils/error/getDefaultErrorMessage.d.ts.map +1 -0
  341. package/dist/utils/error/getDefaultErrorMessage.js +9 -0
  342. package/dist/utils/error/getDefaultErrorMessage.js.map +1 -0
  343. package/dist/utils/general/cn.d.ts +3 -0
  344. package/dist/utils/general/cn.d.ts.map +1 -0
  345. package/dist/utils/general/cn.js +9 -0
  346. package/dist/utils/general/cn.js.map +1 -0
  347. package/dist/utils/general/formatRelativeDate.d.ts +2 -0
  348. package/dist/utils/general/formatRelativeDate.d.ts.map +1 -0
  349. package/dist/utils/general/formatRelativeDate.js +28 -0
  350. package/dist/utils/general/formatRelativeDate.js.map +1 -0
  351. package/dist/utils/general/getURL.d.ts +2 -0
  352. package/dist/utils/general/getURL.d.ts.map +1 -0
  353. package/dist/utils/general/getURL.js +13 -0
  354. package/dist/utils/general/getURL.js.map +1 -0
  355. package/dist/utils/general/getValueByPath.d.ts +4 -0
  356. package/dist/utils/general/getValueByPath.d.ts.map +1 -0
  357. package/dist/utils/general/getValueByPath.js +19 -0
  358. package/dist/utils/general/getValueByPath.js.map +1 -0
  359. package/dist/utils/mention/isSelfMention.d.ts +4 -0
  360. package/dist/utils/mention/isSelfMention.d.ts.map +1 -0
  361. package/dist/utils/mention/isSelfMention.js +7 -0
  362. package/dist/utils/mention/isSelfMention.js.map +1 -0
  363. package/dist/utils/mention/parseMentionIds.d.ts +2 -0
  364. package/dist/utils/mention/parseMentionIds.d.ts.map +1 -0
  365. package/dist/utils/mention/parseMentionIds.js +13 -0
  366. package/dist/utils/mention/parseMentionIds.js.map +1 -0
  367. package/dist/utils/mode/defineModeByPathname.d.ts +11 -0
  368. package/dist/utils/mode/defineModeByPathname.d.ts.map +1 -0
  369. package/dist/utils/mode/defineModeByPathname.js +39 -0
  370. package/dist/utils/mode/defineModeByPathname.js.map +1 -0
  371. package/dist/utils/path/detectPluginBasePath.d.ts +2 -0
  372. package/dist/utils/path/detectPluginBasePath.d.ts.map +1 -0
  373. package/dist/utils/path/detectPluginBasePath.js +8 -0
  374. package/dist/utils/path/detectPluginBasePath.js.map +1 -0
  375. package/dist/utils/path/getComponentPath.d.ts +15 -0
  376. package/dist/utils/path/getComponentPath.d.ts.map +1 -0
  377. package/dist/utils/path/getComponentPath.js +22 -0
  378. package/dist/utils/path/getComponentPath.js.map +1 -0
  379. package/dist/utils/payload/extractPayload.d.ts +3 -0
  380. package/dist/utils/payload/extractPayload.d.ts.map +1 -0
  381. package/dist/utils/payload/extractPayload.js +9 -0
  382. package/dist/utils/payload/extractPayload.js.map +1 -0
  383. package/dist/utils/user/resolveUsername.d.ts +4 -0
  384. package/dist/utils/user/resolveUsername.d.ts.map +1 -0
  385. package/dist/utils/user/resolveUsername.js +14 -0
  386. package/dist/utils/user/resolveUsername.js.map +1 -0
  387. package/package.json +113 -0
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/deleteComment.ts"],"sourcesContent":["\"use server\";\n\nimport { headers } from \"next/headers\";\nimport { DEFAULT_COLLECTION_SLUG } from \"../constants\";\nimport { getDefaultErrorMessage } from \"../utils/error/getDefaultErrorMessage\";\nimport type { BaseServiceOptions, Response, Comment } from \"../types\";\nimport { extractPayload } from \"../utils/payload/extractPayload\";\n\nexport async function deleteComment(id: number | string, options?: BaseServiceOptions): Promise<Response<Comment>> {\n try {\n const payload = await extractPayload(options?.payload);\n const { user } = await payload.auth({ headers: await headers() });\n\n if (!user) {\n return { success: false, error: \"Unauthorized\" };\n }\n\n const data = (await payload.delete({\n collection: DEFAULT_COLLECTION_SLUG,\n id,\n overrideAccess: false,\n user,\n })) as Comment;\n\n return {\n success: true,\n data,\n };\n } catch (e) {\n console.error(`Failed to delete ${id} comment`, e);\n\n return {\n success: false,\n error: getDefaultErrorMessage(e),\n };\n }\n}\n"],"mappings":";AAEA,SAAS,eAAe;AACxB,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AAEvC,SAAS,sBAAsB;AAE/B,eAAsB,cAAc,IAAqB,SAA0D;AACjH,MAAI;AACF,UAAM,UAAU,MAAM,eAAe,SAAS,OAAO;AACrD,UAAM,EAAE,KAAK,IAAI,MAAM,QAAQ,KAAK,EAAE,SAAS,MAAM,QAAQ,EAAE,CAAC;AAEhE,QAAI,CAAC,MAAM;AACT,aAAO,EAAE,SAAS,OAAO,OAAO,eAAe;AAAA,IACjD;AAEA,UAAM,OAAQ,MAAM,QAAQ,OAAO;AAAA,MACjC,YAAY;AAAA,MACZ;AAAA,MACA,gBAAgB;AAAA,MAChB;AAAA,IACF,CAAC;AAED,WAAO;AAAA,MACL,SAAS;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,oBAAoB,EAAE,YAAY,CAAC;AAEjD,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,uBAAuB,CAAC;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { BaseServiceOptions, Response, User } from "../types";
2
+ export declare function fetchMentionableUsers(options?: BaseServiceOptions): Promise<Response<User[]>>;
3
+ //# sourceMappingURL=fetchMentionableUsers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchMentionableUsers.d.ts","sourceRoot":"","sources":["../../src/services/fetchMentionableUsers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAA+B,QAAQ,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAOhG,wBAAsB,qBAAqB,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,CA6CnG"}
@@ -0,0 +1,46 @@
1
+ "use server";
2
+ import { resolveUsername } from "../utils/user/resolveUsername";
3
+ import { getDefaultErrorMessage } from "../utils/error/getDefaultErrorMessage";
4
+ import { extractPayload } from "../utils/payload/extractPayload";
5
+ import { getCurrentTenantId } from "./getCurrentTenantId";
6
+ import { FALLBACK_USERNAME, USERNAME_DEFAULT_FIELD_PATH } from "../constants";
7
+ async function fetchMentionableUsers(options) {
8
+ try {
9
+ const payload = await extractPayload(options?.payload);
10
+ const pluginConfig = payload.config.admin?.custom?.commentsPlugin;
11
+ const usernameFieldPath = pluginConfig?.usernameFieldPath ?? USERNAME_DEFAULT_FIELD_PATH;
12
+ const tenantId = await getCurrentTenantId(payload);
13
+ const where = tenantId ? {
14
+ or: [{ tenant: { equals: tenantId } }, { tenant: { exists: false } }]
15
+ } : {};
16
+ const usersRes = await payload.find({
17
+ collection: "users",
18
+ overrideAccess: true,
19
+ limit: 200,
20
+ where: Object.keys(where).length ? where : void 0,
21
+ select: {
22
+ id: true,
23
+ email: true,
24
+ [usernameFieldPath]: true
25
+ }
26
+ });
27
+ const data = usersRes.docs.map((user) => ({
28
+ id: user.id,
29
+ [usernameFieldPath]: resolveUsername(user, usernameFieldPath, FALLBACK_USERNAME)
30
+ }));
31
+ return {
32
+ success: true,
33
+ data
34
+ };
35
+ } catch (e) {
36
+ console.error(`Failed to fetch mentionable users`, e);
37
+ return {
38
+ success: false,
39
+ error: getDefaultErrorMessage(e)
40
+ };
41
+ }
42
+ }
43
+ export {
44
+ fetchMentionableUsers
45
+ };
46
+ //# sourceMappingURL=fetchMentionableUsers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/fetchMentionableUsers.ts"],"sourcesContent":["\"use server\";\n\nimport type { Where } from \"payload\";\nimport type { BaseServiceOptions, CommentsPluginConfigStorage, Response, User } from \"../types\";\nimport { resolveUsername } from \"../utils/user/resolveUsername\";\nimport { getDefaultErrorMessage } from \"../utils/error/getDefaultErrorMessage\";\nimport { extractPayload } from \"../utils/payload/extractPayload\";\nimport { getCurrentTenantId } from \"./getCurrentTenantId\";\nimport { FALLBACK_USERNAME, USERNAME_DEFAULT_FIELD_PATH } from \"../constants\";\n\nexport async function fetchMentionableUsers(options?: BaseServiceOptions): Promise<Response<User[]>> {\n try {\n const payload = await extractPayload(options?.payload);\n\n const pluginConfig = payload.config.admin?.custom?.commentsPlugin as CommentsPluginConfigStorage | undefined;\n const usernameFieldPath = pluginConfig?.usernameFieldPath ?? USERNAME_DEFAULT_FIELD_PATH;\n\n const tenantId = await getCurrentTenantId(payload);\n\n const where: Where =\n tenantId ?\n {\n or: [{ tenant: { equals: tenantId } }, { tenant: { exists: false } }],\n }\n : {};\n\n const usersRes = await payload.find({\n collection: \"users\",\n overrideAccess: true,\n limit: 200,\n where: Object.keys(where).length ? where : undefined,\n select: {\n id: true,\n email: true,\n [usernameFieldPath]: true,\n },\n });\n\n const data = usersRes.docs.map((user) => ({\n id: user.id,\n [usernameFieldPath]: resolveUsername(user as User, usernameFieldPath, FALLBACK_USERNAME),\n })) as User[];\n\n return {\n success: true,\n data,\n };\n } catch (e) {\n console.error(`Failed to fetch mentionable users`, e);\n\n return {\n success: false,\n error: getDefaultErrorMessage(e),\n };\n }\n}\n"],"mappings":";AAIA,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AACvC,SAAS,sBAAsB;AAC/B,SAAS,0BAA0B;AACnC,SAAS,mBAAmB,mCAAmC;AAE/D,eAAsB,sBAAsB,SAAyD;AACnG,MAAI;AACF,UAAM,UAAU,MAAM,eAAe,SAAS,OAAO;AAErD,UAAM,eAAe,QAAQ,OAAO,OAAO,QAAQ;AACnD,UAAM,oBAAoB,cAAc,qBAAqB;AAE7D,UAAM,WAAW,MAAM,mBAAmB,OAAO;AAEjD,UAAM,QACJ,WACE;AAAA,MACE,IAAI,CAAC,EAAE,QAAQ,EAAE,QAAQ,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,MAAM,EAAE,CAAC;AAAA,IACtE,IACA,CAAC;AAEL,UAAM,WAAW,MAAM,QAAQ,KAAK;AAAA,MAClC,YAAY;AAAA,MACZ,gBAAgB;AAAA,MAChB,OAAO;AAAA,MACP,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,QAAQ;AAAA,MAC3C,QAAQ;AAAA,QACN,IAAI;AAAA,QACJ,OAAO;AAAA,QACP,CAAC,iBAAiB,GAAG;AAAA,MACvB;AAAA,IACF,CAAC;AAED,UAAM,OAAO,SAAS,KAAK,IAAI,CAAC,UAAU;AAAA,MACxC,IAAI,KAAK;AAAA,MACT,CAAC,iBAAiB,GAAG,gBAAgB,MAAc,mBAAmB,iBAAiB;AAAA,IACzF,EAAE;AAEF,WAAO;AAAA,MACL,SAAS;AAAA,MACT;AAAA,IACF;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,qCAAqC,CAAC;AAEpD,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,uBAAuB,CAAC;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { BaseServiceOptions, Comment, GlobalFieldLabelRegistry } from "../../types";
2
+ export declare function fetchFieldLabels(comments: Comment[], options?: BaseServiceOptions): Promise<GlobalFieldLabelRegistry>;
3
+ //# sourceMappingURL=fetchFieldLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fetchFieldLabels.d.ts","sourceRoot":"","sources":["../../../src/services/fieldLabels/fetchFieldLabels.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAmBzF,wBAAsB,gBAAgB,CACpC,QAAQ,EAAE,OAAO,EAAE,EACnB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,wBAAwB,CAAC,CAwFnC"}
@@ -0,0 +1,74 @@
1
+ "use server";
2
+ import { extractPayload } from "../../utils/payload/extractPayload";
3
+ import { groupFieldPathsByDocument } from "./utils/groupFieldPathsByDocument";
4
+ import { needsDocumentFetch } from "./utils/schemaUtils";
5
+ import { resolveFieldPath } from "./utils/resolveFieldPath";
6
+ async function fetchFieldLabels(comments, options) {
7
+ const registry = {};
8
+ const payload = await extractPayload(options?.payload);
9
+ const fieldPathsMap = groupFieldPathsByDocument(comments);
10
+ const collections = payload.collections;
11
+ for (const [slug, fieldPathsMapByDocument] of fieldPathsMap.entries()) {
12
+ const collectionConfig = collections[slug]?.config;
13
+ if (!collectionConfig) continue;
14
+ const schemaFields = collectionConfig.fields;
15
+ for (const [documentId, fieldPathsSet] of fieldPathsMapByDocument.entries()) {
16
+ const fieldPaths = Array.from(fieldPathsSet);
17
+ if (!fieldPaths.length) continue;
18
+ let docData = null;
19
+ if (needsDocumentFetch(fieldPaths, schemaFields)) {
20
+ try {
21
+ const doc = await payload.findByID({
22
+ collection: slug,
23
+ id: documentId,
24
+ overrideAccess: true,
25
+ depth: 5
26
+ });
27
+ docData = doc;
28
+ } catch {
29
+ }
30
+ }
31
+ registry[slug] ??= {};
32
+ registry[slug][documentId] ??= {};
33
+ const documentRegistry = registry[slug][documentId];
34
+ for (const fieldPath of fieldPaths) {
35
+ if (!fieldPath) continue;
36
+ documentRegistry[fieldPath] = resolveFieldPath(fieldPath.split("."), schemaFields, docData);
37
+ }
38
+ }
39
+ }
40
+ const globalFieldPathsMap = /* @__PURE__ */ new Map();
41
+ for (const { globalSlug, fieldPath } of comments) {
42
+ if (!globalSlug || !fieldPath) continue;
43
+ if (!globalFieldPathsMap.has(globalSlug)) globalFieldPathsMap.set(globalSlug, /* @__PURE__ */ new Set());
44
+ globalFieldPathsMap.get(globalSlug).add(fieldPath);
45
+ }
46
+ const globals = payload.globals;
47
+ for (const [slug, fieldPathsSet] of globalFieldPathsMap.entries()) {
48
+ const globalConfig = globals?.[slug]?.config;
49
+ if (!globalConfig) continue;
50
+ const schemaFields = globalConfig.fields;
51
+ const fieldPaths = Array.from(fieldPathsSet);
52
+ if (!fieldPaths.length) continue;
53
+ let docData = null;
54
+ if (needsDocumentFetch(fieldPaths, schemaFields)) {
55
+ try {
56
+ const doc = await payload.findGlobal({ slug, overrideAccess: true, depth: 5 });
57
+ docData = doc;
58
+ } catch {
59
+ }
60
+ }
61
+ registry[slug] ??= {};
62
+ registry[slug][0] ??= {};
63
+ const documentRegistry = registry[slug][0];
64
+ for (const fieldPath of fieldPaths) {
65
+ if (!fieldPath) continue;
66
+ documentRegistry[fieldPath] = resolveFieldPath(fieldPath.split("."), schemaFields, docData);
67
+ }
68
+ }
69
+ return registry;
70
+ }
71
+ export {
72
+ fetchFieldLabels
73
+ };
74
+ //# sourceMappingURL=fetchFieldLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../src/services/fieldLabels/fetchFieldLabels.ts"],"sourcesContent":["\"use server\";\n\nimport type { CollectionSlug, Field } from \"payload\";\nimport type { BaseServiceOptions, Comment, GlobalFieldLabelRegistry } from \"../../types\";\nimport { extractPayload } from \"../../utils/payload/extractPayload\";\nimport { groupFieldPathsByDocument } from \"./utils/groupFieldPathsByDocument\";\nimport { needsDocumentFetch } from \"./utils/schemaUtils\";\nimport { resolveFieldPath } from \"./utils/resolveFieldPath\";\n\ntype BasePayloadCollections = Record<\n string,\n {\n config: {\n fields: Field[];\n };\n }\n>;\n\ntype BaseGlobals = Record<string, { config: { fields: Field[] } }>;\n\ntype BaseDocumentData = Record<string, unknown>;\n\nexport async function fetchFieldLabels(\n comments: Comment[],\n options?: BaseServiceOptions,\n): Promise<GlobalFieldLabelRegistry> {\n const registry: GlobalFieldLabelRegistry = {};\n\n const payload = await extractPayload(options?.payload);\n\n // --- Collections branch ---\n const fieldPathsMap = groupFieldPathsByDocument(comments);\n const collections = payload.collections as BasePayloadCollections;\n\n for (const [slug, fieldPathsMapByDocument] of fieldPathsMap.entries()) {\n const collectionConfig = collections[slug]?.config;\n if (!collectionConfig) continue;\n\n const schemaFields = collectionConfig.fields;\n\n for (const [documentId, fieldPathsSet] of fieldPathsMapByDocument.entries()) {\n const fieldPaths = Array.from(fieldPathsSet);\n if (!fieldPaths.length) continue;\n\n let docData: BaseDocumentData | null = null;\n\n if (needsDocumentFetch(fieldPaths, schemaFields)) {\n try {\n const doc = await payload.findByID({\n collection: slug as CollectionSlug,\n id: documentId,\n overrideAccess: true,\n depth: 5,\n });\n\n docData = doc as unknown as BaseDocumentData;\n } catch {}\n }\n\n registry[slug] ??= {};\n registry[slug][documentId] ??= {};\n\n const documentRegistry = registry[slug][documentId];\n\n for (const fieldPath of fieldPaths) {\n if (!fieldPath) continue;\n\n documentRegistry[fieldPath] = resolveFieldPath(fieldPath.split(\".\"), schemaFields, docData);\n }\n }\n }\n\n // --- Globals branch ---\n const globalFieldPathsMap = new Map<string, Set<string>>();\n\n for (const { globalSlug, fieldPath } of comments) {\n if (!globalSlug || !fieldPath) continue;\n if (!globalFieldPathsMap.has(globalSlug)) globalFieldPathsMap.set(globalSlug, new Set());\n globalFieldPathsMap.get(globalSlug)!.add(fieldPath);\n }\n\n const globals = (payload as any).globals as BaseGlobals;\n\n for (const [slug, fieldPathsSet] of globalFieldPathsMap.entries()) {\n const globalConfig = globals?.[slug]?.config;\n if (!globalConfig) continue;\n\n const schemaFields = globalConfig.fields;\n const fieldPaths = Array.from(fieldPathsSet);\n if (!fieldPaths.length) continue;\n\n let docData: BaseDocumentData | null = null;\n\n if (needsDocumentFetch(fieldPaths, schemaFields)) {\n try {\n const doc = await payload.findGlobal({ slug, overrideAccess: true, depth: 5 });\n docData = doc as unknown as BaseDocumentData;\n } catch {}\n }\n\n // Use globalSlug as the first key and sentinel 0 as documentId\n registry[slug] ??= {};\n registry[slug][0] ??= {};\n\n const documentRegistry = registry[slug][0];\n\n for (const fieldPath of fieldPaths) {\n if (!fieldPath) continue;\n documentRegistry[fieldPath] = resolveFieldPath(fieldPath.split(\".\"), schemaFields, docData);\n }\n }\n\n return registry;\n}\n"],"mappings":";AAIA,SAAS,sBAAsB;AAC/B,SAAS,iCAAiC;AAC1C,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AAejC,eAAsB,iBACpB,UACA,SACmC;AACnC,QAAM,WAAqC,CAAC;AAE5C,QAAM,UAAU,MAAM,eAAe,SAAS,OAAO;AAGrD,QAAM,gBAAgB,0BAA0B,QAAQ;AACxD,QAAM,cAAc,QAAQ;AAE5B,aAAW,CAAC,MAAM,uBAAuB,KAAK,cAAc,QAAQ,GAAG;AACrE,UAAM,mBAAmB,YAAY,IAAI,GAAG;AAC5C,QAAI,CAAC,iBAAkB;AAEvB,UAAM,eAAe,iBAAiB;AAEtC,eAAW,CAAC,YAAY,aAAa,KAAK,wBAAwB,QAAQ,GAAG;AAC3E,YAAM,aAAa,MAAM,KAAK,aAAa;AAC3C,UAAI,CAAC,WAAW,OAAQ;AAExB,UAAI,UAAmC;AAEvC,UAAI,mBAAmB,YAAY,YAAY,GAAG;AAChD,YAAI;AACF,gBAAM,MAAM,MAAM,QAAQ,SAAS;AAAA,YACjC,YAAY;AAAA,YACZ,IAAI;AAAA,YACJ,gBAAgB;AAAA,YAChB,OAAO;AAAA,UACT,CAAC;AAED,oBAAU;AAAA,QACZ,QAAQ;AAAA,QAAC;AAAA,MACX;AAEA,eAAS,IAAI,MAAM,CAAC;AACpB,eAAS,IAAI,EAAE,UAAU,MAAM,CAAC;AAEhC,YAAM,mBAAmB,SAAS,IAAI,EAAE,UAAU;AAElD,iBAAW,aAAa,YAAY;AAClC,YAAI,CAAC,UAAW;AAEhB,yBAAiB,SAAS,IAAI,iBAAiB,UAAU,MAAM,GAAG,GAAG,cAAc,OAAO;AAAA,MAC5F;AAAA,IACF;AAAA,EACF;AAGA,QAAM,sBAAsB,oBAAI,IAAyB;AAEzD,aAAW,EAAE,YAAY,UAAU,KAAK,UAAU;AAChD,QAAI,CAAC,cAAc,CAAC,UAAW;AAC/B,QAAI,CAAC,oBAAoB,IAAI,UAAU,EAAG,qBAAoB,IAAI,YAAY,oBAAI,IAAI,CAAC;AACvF,wBAAoB,IAAI,UAAU,EAAG,IAAI,SAAS;AAAA,EACpD;AAEA,QAAM,UAAW,QAAgB;AAEjC,aAAW,CAAC,MAAM,aAAa,KAAK,oBAAoB,QAAQ,GAAG;AACjE,UAAM,eAAe,UAAU,IAAI,GAAG;AACtC,QAAI,CAAC,aAAc;AAEnB,UAAM,eAAe,aAAa;AAClC,UAAM,aAAa,MAAM,KAAK,aAAa;AAC3C,QAAI,CAAC,WAAW,OAAQ;AAExB,QAAI,UAAmC;AAEvC,QAAI,mBAAmB,YAAY,YAAY,GAAG;AAChD,UAAI;AACF,cAAM,MAAM,MAAM,QAAQ,WAAW,EAAE,MAAM,gBAAgB,MAAM,OAAO,EAAE,CAAC;AAC7E,kBAAU;AAAA,MACZ,QAAQ;AAAA,MAAC;AAAA,IACX;AAGA,aAAS,IAAI,MAAM,CAAC;AACpB,aAAS,IAAI,EAAE,CAAC,MAAM,CAAC;AAEvB,UAAM,mBAAmB,SAAS,IAAI,EAAE,CAAC;AAEzC,eAAW,aAAa,YAAY;AAClC,UAAI,CAAC,UAAW;AAChB,uBAAiB,SAAS,IAAI,iBAAiB,UAAU,MAAM,GAAG,GAAG,cAAc,OAAO;AAAA,IAC5F;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,5 @@
1
+ import type { Comment } from "../../../types";
2
+ type FieldPathsMap = Map<string, Map<number, Set<string>>>;
3
+ export declare function groupFieldPathsByDocument(comments: Comment[]): FieldPathsMap;
4
+ export {};
5
+ //# sourceMappingURL=groupFieldPathsByDocument.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"groupFieldPathsByDocument.d.ts","sourceRoot":"","sources":["../../../../src/services/fieldLabels/utils/groupFieldPathsByDocument.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAE9C,KAAK,aAAa,GAAG,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAE3D,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,OAAO,EAAE,iBAwB5D"}
@@ -0,0 +1,21 @@
1
+ function groupFieldPathsByDocument(comments) {
2
+ const fieldPathsMap = /* @__PURE__ */ new Map();
3
+ for (const { collectionSlug, documentId, fieldPath } of comments) {
4
+ if (!collectionSlug || !documentId || !fieldPath) continue;
5
+ if (!fieldPathsMap.has(collectionSlug)) {
6
+ fieldPathsMap.set(collectionSlug, /* @__PURE__ */ new Map());
7
+ }
8
+ const fieldPathsMapByDocument = fieldPathsMap.get(collectionSlug);
9
+ const docId = Number(documentId);
10
+ if (!fieldPathsMapByDocument.has(docId)) {
11
+ fieldPathsMapByDocument.set(docId, /* @__PURE__ */ new Set());
12
+ }
13
+ const fieldPaths = fieldPathsMapByDocument.get(docId);
14
+ fieldPaths.add(fieldPath);
15
+ }
16
+ return fieldPathsMap;
17
+ }
18
+ export {
19
+ groupFieldPathsByDocument
20
+ };
21
+ //# sourceMappingURL=groupFieldPathsByDocument.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/fieldLabels/utils/groupFieldPathsByDocument.ts"],"sourcesContent":["import type { Comment } from \"../../../types\";\n\ntype FieldPathsMap = Map<string, Map<number, Set<string>>>;\n\nexport function groupFieldPathsByDocument(comments: Comment[]) {\n const fieldPathsMap: FieldPathsMap = new Map();\n\n for (const { collectionSlug, documentId, fieldPath } of comments) {\n if (!collectionSlug || !documentId || !fieldPath) continue;\n\n if (!fieldPathsMap.has(collectionSlug)) {\n fieldPathsMap.set(collectionSlug, new Map());\n }\n\n const fieldPathsMapByDocument = fieldPathsMap.get(collectionSlug)!;\n\n const docId = Number(documentId);\n\n if (!fieldPathsMapByDocument.has(docId)) {\n fieldPathsMapByDocument.set(docId, new Set());\n }\n\n const fieldPaths = fieldPathsMapByDocument.get(docId)!;\n\n fieldPaths.add(fieldPath);\n }\n\n return fieldPathsMap;\n}\n"],"mappings":"AAIO,SAAS,0BAA0B,UAAqB;AAC7D,QAAM,gBAA+B,oBAAI,IAAI;AAE7C,aAAW,EAAE,gBAAgB,YAAY,UAAU,KAAK,UAAU;AAChE,QAAI,CAAC,kBAAkB,CAAC,cAAc,CAAC,UAAW;AAElD,QAAI,CAAC,cAAc,IAAI,cAAc,GAAG;AACtC,oBAAc,IAAI,gBAAgB,oBAAI,IAAI,CAAC;AAAA,IAC7C;AAEA,UAAM,0BAA0B,cAAc,IAAI,cAAc;AAEhE,UAAM,QAAQ,OAAO,UAAU;AAE/B,QAAI,CAAC,wBAAwB,IAAI,KAAK,GAAG;AACvC,8BAAwB,IAAI,OAAO,oBAAI,IAAI,CAAC;AAAA,IAC9C;AAEA,UAAM,aAAa,wBAAwB,IAAI,KAAK;AAEpD,eAAW,IAAI,SAAS;AAAA,EAC1B;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,4 @@
1
+ import type { Field } from "payload";
2
+ import type { FieldLabelSegment } from "../../../types";
3
+ export declare function resolveFieldPath(segments: string[], schemaFields: Field[], docData: Record<string, unknown> | null): FieldLabelSegment[];
4
+ //# sourceMappingURL=resolveFieldPath.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveFieldPath.d.ts","sourceRoot":"","sources":["../../../../src/services/fieldLabels/utils/resolveFieldPath.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAA6C,KAAK,EAAmC,MAAM,SAAS,CAAC;AACjH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGxD,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,MAAM,EAAE,EAClB,YAAY,EAAE,KAAK,EAAE,EACrB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACtC,iBAAiB,EAAE,CAmErB"}
@@ -0,0 +1,66 @@
1
+ import { findFieldByName, getLabelString } from "./schemaUtils";
2
+ function resolveFieldPath(segments, schemaFields, docData) {
3
+ const result = [];
4
+ let currentFields = schemaFields;
5
+ let currentData = docData;
6
+ let awaitingRowForField = null;
7
+ for (const segment of segments) {
8
+ if (awaitingRowForField) {
9
+ const rowId = segment;
10
+ let position = 0;
11
+ const parentData = currentData;
12
+ const fieldName = awaitingRowForField.name;
13
+ const arrayData = parentData?.[fieldName];
14
+ if (Array.isArray(arrayData)) {
15
+ const idx = arrayData.findIndex((item) => String(item.id) === rowId);
16
+ if (idx >= 0) {
17
+ position = idx;
18
+ const rowItem = arrayData[idx];
19
+ currentData = rowItem;
20
+ if (awaitingRowForField.type === "blocks") {
21
+ const blockType = rowItem["blockType"];
22
+ if (blockType) {
23
+ const blockConfig = awaitingRowForField.blocks.find((b) => b.slug === blockType);
24
+ currentFields = blockConfig?.fields ?? [];
25
+ } else {
26
+ currentFields = [];
27
+ }
28
+ } else {
29
+ currentFields = awaitingRowForField.fields;
30
+ }
31
+ }
32
+ }
33
+ result.push({ type: "row", id: rowId, position });
34
+ awaitingRowForField = null;
35
+ } else {
36
+ const field = findFieldByName(currentFields, segment);
37
+ if (!field) {
38
+ result.push({ type: "field", label: segment });
39
+ currentFields = [];
40
+ continue;
41
+ }
42
+ result.push({ type: "field", label: getLabelString(field) });
43
+ if (field.type === "array") {
44
+ awaitingRowForField = field;
45
+ } else if (field.type === "blocks") {
46
+ awaitingRowForField = field;
47
+ } else if (field.type === "group") {
48
+ currentFields = field.fields;
49
+ if (currentData && typeof currentData === "object") {
50
+ currentData = currentData[segment];
51
+ }
52
+ } else if (field.type === "tabs") {
53
+ currentFields = field.tabs.flatMap((t) => t.fields ?? []);
54
+ } else if (field.type === "collapsible" || field.type === "row") {
55
+ currentFields = field.fields;
56
+ } else {
57
+ currentFields = [];
58
+ }
59
+ }
60
+ }
61
+ return result;
62
+ }
63
+ export {
64
+ resolveFieldPath
65
+ };
66
+ //# sourceMappingURL=resolveFieldPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/fieldLabels/utils/resolveFieldPath.ts"],"sourcesContent":["import type { ArrayField, BlocksField, CollapsibleField, Field, GroupField, RowField, TabsField } from \"payload\";\nimport type { FieldLabelSegment } from \"../../../types\";\nimport { findFieldByName, getLabelString } from \"./schemaUtils\";\n\nexport function resolveFieldPath(\n segments: string[],\n schemaFields: Field[],\n docData: Record<string, unknown> | null,\n): FieldLabelSegment[] {\n const result: FieldLabelSegment[] = [];\n let currentFields: Field[] = schemaFields;\n let currentData: unknown = docData;\n let awaitingRowForField: (ArrayField | BlocksField) | null = null;\n\n for (const segment of segments) {\n if (awaitingRowForField) {\n const rowId = segment;\n let position = 0;\n const parentData = currentData as Record<string, unknown> | null;\n const fieldName = (awaitingRowForField as { name: string }).name;\n const arrayData = parentData?.[fieldName];\n\n if (Array.isArray(arrayData)) {\n const idx = arrayData.findIndex((item: unknown) => String((item as { id?: unknown }).id) === rowId);\n if (idx >= 0) {\n position = idx;\n const rowItem = arrayData[idx] as Record<string, unknown>;\n currentData = rowItem;\n\n if (awaitingRowForField.type === \"blocks\") {\n const blockType = rowItem[\"blockType\"] as string | undefined;\n if (blockType) {\n const blockConfig = (awaitingRowForField as BlocksField).blocks.find((b) => b.slug === blockType);\n currentFields = blockConfig?.fields ?? [];\n } else {\n currentFields = [];\n }\n } else {\n currentFields = (awaitingRowForField as ArrayField).fields;\n }\n }\n }\n\n result.push({ type: \"row\", id: rowId, position });\n awaitingRowForField = null;\n } else {\n const field = findFieldByName(currentFields, segment);\n if (!field) {\n result.push({ type: \"field\", label: segment });\n currentFields = [];\n continue;\n }\n\n result.push({ type: \"field\", label: getLabelString(field) });\n\n if (field.type === \"array\") {\n awaitingRowForField = field as ArrayField;\n } else if (field.type === \"blocks\") {\n awaitingRowForField = field as BlocksField;\n } else if (field.type === \"group\") {\n currentFields = (field as GroupField).fields;\n if (currentData && typeof currentData === \"object\") {\n currentData = (currentData as Record<string, unknown>)[segment];\n }\n } else if (field.type === \"tabs\") {\n currentFields = (field as TabsField).tabs.flatMap((t) => t.fields ?? []);\n } else if (field.type === \"collapsible\" || field.type === \"row\") {\n currentFields = (field as CollapsibleField | RowField).fields;\n } else {\n currentFields = [];\n }\n }\n }\n\n return result;\n}\n"],"mappings":"AAEA,SAAS,iBAAiB,sBAAsB;AAEzC,SAAS,iBACd,UACA,cACA,SACqB;AACrB,QAAM,SAA8B,CAAC;AACrC,MAAI,gBAAyB;AAC7B,MAAI,cAAuB;AAC3B,MAAI,sBAAyD;AAE7D,aAAW,WAAW,UAAU;AAC9B,QAAI,qBAAqB;AACvB,YAAM,QAAQ;AACd,UAAI,WAAW;AACf,YAAM,aAAa;AACnB,YAAM,YAAa,oBAAyC;AAC5D,YAAM,YAAY,aAAa,SAAS;AAExC,UAAI,MAAM,QAAQ,SAAS,GAAG;AAC5B,cAAM,MAAM,UAAU,UAAU,CAAC,SAAkB,OAAQ,KAA0B,EAAE,MAAM,KAAK;AAClG,YAAI,OAAO,GAAG;AACZ,qBAAW;AACX,gBAAM,UAAU,UAAU,GAAG;AAC7B,wBAAc;AAEd,cAAI,oBAAoB,SAAS,UAAU;AACzC,kBAAM,YAAY,QAAQ,WAAW;AACrC,gBAAI,WAAW;AACb,oBAAM,cAAe,oBAAoC,OAAO,KAAK,CAAC,MAAM,EAAE,SAAS,SAAS;AAChG,8BAAgB,aAAa,UAAU,CAAC;AAAA,YAC1C,OAAO;AACL,8BAAgB,CAAC;AAAA,YACnB;AAAA,UACF,OAAO;AACL,4BAAiB,oBAAmC;AAAA,UACtD;AAAA,QACF;AAAA,MACF;AAEA,aAAO,KAAK,EAAE,MAAM,OAAO,IAAI,OAAO,SAAS,CAAC;AAChD,4BAAsB;AAAA,IACxB,OAAO;AACL,YAAM,QAAQ,gBAAgB,eAAe,OAAO;AACpD,UAAI,CAAC,OAAO;AACV,eAAO,KAAK,EAAE,MAAM,SAAS,OAAO,QAAQ,CAAC;AAC7C,wBAAgB,CAAC;AACjB;AAAA,MACF;AAEA,aAAO,KAAK,EAAE,MAAM,SAAS,OAAO,eAAe,KAAK,EAAE,CAAC;AAE3D,UAAI,MAAM,SAAS,SAAS;AAC1B,8BAAsB;AAAA,MACxB,WAAW,MAAM,SAAS,UAAU;AAClC,8BAAsB;AAAA,MACxB,WAAW,MAAM,SAAS,SAAS;AACjC,wBAAiB,MAAqB;AACtC,YAAI,eAAe,OAAO,gBAAgB,UAAU;AAClD,wBAAe,YAAwC,OAAO;AAAA,QAChE;AAAA,MACF,WAAW,MAAM,SAAS,QAAQ;AAChC,wBAAiB,MAAoB,KAAK,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAAA,MACzE,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,OAAO;AAC/D,wBAAiB,MAAsC;AAAA,MACzD,OAAO;AACL,wBAAgB,CAAC;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,6 @@
1
+ import type { Field } from "payload";
2
+ export declare function flattenFields(fields: Field[]): Field[];
3
+ export declare function findFieldByName(fields: Field[], name: string): Field | undefined;
4
+ export declare function getLabelString(field: Field): string;
5
+ export declare function needsDocumentFetch(fieldPaths: string[], schemaFields: Field[]): boolean;
6
+ //# sourceMappingURL=schemaUtils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schemaUtils.d.ts","sourceRoot":"","sources":["../../../../src/services/fieldLabels/utils/schemaUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAgC,KAAK,EAAmC,MAAM,SAAS,CAAC;AAEpG,wBAAgB,aAAa,CAAC,MAAM,EAAE,KAAK,EAAE,WAc5C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,MAAM,GAAG,KAAK,GAAG,SAAS,CAEhF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,UAgB1C;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,GAAG,OAAO,CA+BvF"}
@@ -0,0 +1,60 @@
1
+ function flattenFields(fields) {
2
+ const result = [];
3
+ for (const field of fields) {
4
+ if ("name" in field) {
5
+ result.push(field);
6
+ } else if (field.type === "tabs") {
7
+ result.push(...flattenFields(field.tabs.flatMap((t) => t.fields ?? [])));
8
+ } else if (field.type === "collapsible" || field.type === "row") {
9
+ result.push(...flattenFields(field.fields));
10
+ }
11
+ }
12
+ return result;
13
+ }
14
+ function findFieldByName(fields, name) {
15
+ return flattenFields(fields).find((field) => "name" in field && field.name === name);
16
+ }
17
+ function getLabelString(field) {
18
+ const f = field;
19
+ if (typeof f.label === "string") return f.label;
20
+ if (f.label && typeof f.label === "object") {
21
+ const loc = f.label;
22
+ const val = loc["en"] ?? Object.values(loc)[0];
23
+ if (typeof val === "string") return val;
24
+ }
25
+ return f.name ?? "";
26
+ }
27
+ function needsDocumentFetch(fieldPaths, schemaFields) {
28
+ for (const path of fieldPaths) {
29
+ let fields = schemaFields;
30
+ let expectingRowId = false;
31
+ for (const segment of path.split(".")) {
32
+ if (expectingRowId) return true;
33
+ const field = findFieldByName(fields, segment);
34
+ if (!field) break;
35
+ if (field.type === "array") {
36
+ expectingRowId = true;
37
+ fields = field.fields;
38
+ } else if (field.type === "blocks") {
39
+ expectingRowId = true;
40
+ fields = [];
41
+ } else if (field.type === "group") {
42
+ fields = field.fields;
43
+ } else if (field.type === "tabs") {
44
+ fields = field.tabs.flatMap((t) => t.fields ?? []);
45
+ } else if (field.type === "collapsible" || field.type === "row") {
46
+ fields = field.fields;
47
+ } else {
48
+ fields = [];
49
+ }
50
+ }
51
+ }
52
+ return false;
53
+ }
54
+ export {
55
+ findFieldByName,
56
+ flattenFields,
57
+ getLabelString,
58
+ needsDocumentFetch
59
+ };
60
+ //# sourceMappingURL=schemaUtils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../src/services/fieldLabels/utils/schemaUtils.ts"],"sourcesContent":["import type { ArrayField, CollapsibleField, Field, GroupField, RowField, TabsField } from \"payload\";\n\nexport function flattenFields(fields: Field[]) {\n const result: Field[] = [];\n\n for (const field of fields) {\n if (\"name\" in field) {\n result.push(field);\n } else if (field.type === \"tabs\") {\n result.push(...flattenFields((field as TabsField).tabs.flatMap((t) => t.fields ?? [])));\n } else if (field.type === \"collapsible\" || field.type === \"row\") {\n result.push(...flattenFields((field as CollapsibleField | RowField).fields));\n }\n }\n\n return result;\n}\n\nexport function findFieldByName(fields: Field[], name: string): Field | undefined {\n return flattenFields(fields).find((field) => \"name\" in field && (field as { name: string }).name === name);\n}\n\nexport function getLabelString(field: Field) {\n const f = field as {\n name?: string;\n label?: unknown;\n };\n\n if (typeof f.label === \"string\") return f.label;\n\n if (f.label && typeof f.label === \"object\") {\n const loc = f.label as Record<string, unknown>;\n const val = loc[\"en\"] ?? Object.values(loc)[0];\n\n if (typeof val === \"string\") return val;\n }\n\n return f.name ?? \"\";\n}\n\nexport function needsDocumentFetch(fieldPaths: string[], schemaFields: Field[]): boolean {\n for (const path of fieldPaths) {\n let fields = schemaFields;\n\n let expectingRowId = false;\n\n for (const segment of path.split(\".\")) {\n if (expectingRowId) return true;\n\n const field = findFieldByName(fields, segment);\n\n if (!field) break;\n\n if (field.type === \"array\") {\n expectingRowId = true;\n fields = (field as ArrayField).fields;\n } else if (field.type === \"blocks\") {\n expectingRowId = true;\n fields = [];\n } else if (field.type === \"group\") {\n fields = (field as GroupField).fields;\n } else if (field.type === \"tabs\") {\n fields = (field as TabsField).tabs.flatMap((t) => t.fields ?? []);\n } else if (field.type === \"collapsible\" || field.type === \"row\") {\n fields = (field as CollapsibleField | RowField).fields;\n } else {\n fields = [];\n }\n }\n }\n return false;\n}\n"],"mappings":"AAEO,SAAS,cAAc,QAAiB;AAC7C,QAAM,SAAkB,CAAC;AAEzB,aAAW,SAAS,QAAQ;AAC1B,QAAI,UAAU,OAAO;AACnB,aAAO,KAAK,KAAK;AAAA,IACnB,WAAW,MAAM,SAAS,QAAQ;AAChC,aAAO,KAAK,GAAG,cAAe,MAAoB,KAAK,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC;AAAA,IACxF,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,OAAO;AAC/D,aAAO,KAAK,GAAG,cAAe,MAAsC,MAAM,CAAC;AAAA,IAC7E;AAAA,EACF;AAEA,SAAO;AACT;AAEO,SAAS,gBAAgB,QAAiB,MAAiC;AAChF,SAAO,cAAc,MAAM,EAAE,KAAK,CAAC,UAAU,UAAU,SAAU,MAA2B,SAAS,IAAI;AAC3G;AAEO,SAAS,eAAe,OAAc;AAC3C,QAAM,IAAI;AAKV,MAAI,OAAO,EAAE,UAAU,SAAU,QAAO,EAAE;AAE1C,MAAI,EAAE,SAAS,OAAO,EAAE,UAAU,UAAU;AAC1C,UAAM,MAAM,EAAE;AACd,UAAM,MAAM,IAAI,IAAI,KAAK,OAAO,OAAO,GAAG,EAAE,CAAC;AAE7C,QAAI,OAAO,QAAQ,SAAU,QAAO;AAAA,EACtC;AAEA,SAAO,EAAE,QAAQ;AACnB;AAEO,SAAS,mBAAmB,YAAsB,cAAgC;AACvF,aAAW,QAAQ,YAAY;AAC7B,QAAI,SAAS;AAEb,QAAI,iBAAiB;AAErB,eAAW,WAAW,KAAK,MAAM,GAAG,GAAG;AACrC,UAAI,eAAgB,QAAO;AAE3B,YAAM,QAAQ,gBAAgB,QAAQ,OAAO;AAE7C,UAAI,CAAC,MAAO;AAEZ,UAAI,MAAM,SAAS,SAAS;AAC1B,yBAAiB;AACjB,iBAAU,MAAqB;AAAA,MACjC,WAAW,MAAM,SAAS,UAAU;AAClC,yBAAiB;AACjB,iBAAS,CAAC;AAAA,MACZ,WAAW,MAAM,SAAS,SAAS;AACjC,iBAAU,MAAqB;AAAA,MACjC,WAAW,MAAM,SAAS,QAAQ;AAChC,iBAAU,MAAoB,KAAK,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;AAAA,MAClE,WAAW,MAAM,SAAS,iBAAiB,MAAM,SAAS,OAAO;AAC/D,iBAAU,MAAsC;AAAA,MAClD,OAAO;AACL,iBAAS,CAAC;AAAA,MACZ;AAAA,IACF;AAAA,EACF;AACA,SAAO;AACT;","names":[]}
@@ -0,0 +1,11 @@
1
+ import type { TypedUser } from "payload";
2
+ import type { Response, Comment, BaseServiceOptions } from "../types";
3
+ interface Props {
4
+ enabledCollections?: string[];
5
+ enabledGlobals?: string[];
6
+ user?: TypedUser | null;
7
+ options?: BaseServiceOptions;
8
+ }
9
+ export declare function findAllComments({ enabledCollections, enabledGlobals, options }?: Props): Promise<Response<Comment[]>>;
10
+ export {};
11
+ //# sourceMappingURL=findAllComments.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"findAllComments.d.ts","sourceRoot":"","sources":["../../src/services/findAllComments.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAS,MAAM,SAAS,CAAC;AAIhD,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAGtE,UAAU,KAAK;IACb,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,GAAG,IAAI,CAAC;IACxB,OAAO,CAAC,EAAE,kBAAkB,CAAC;CAC9B;AAED,wBAAsB,eAAe,CAAC,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,GAAE,KAAU,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CA6C/H"}
@@ -0,0 +1,47 @@
1
+ "use server";
2
+ import { extractPayload } from "../utils/payload/extractPayload";
3
+ import { DEFAULT_COLLECTION_SLUG } from "../constants";
4
+ import { getDefaultErrorMessage } from "../utils/error/getDefaultErrorMessage";
5
+ import { getCurrentTenantId } from "./getCurrentTenantId";
6
+ async function findAllComments({ enabledCollections, enabledGlobals, options } = {}) {
7
+ try {
8
+ const payload = await extractPayload(options?.payload);
9
+ const tenantId = await getCurrentTenantId(payload);
10
+ const where = {};
11
+ const hasCollections = (enabledCollections?.length ?? 0) > 0;
12
+ const hasGlobals = (enabledGlobals?.length ?? 0) > 0;
13
+ if (hasCollections || hasGlobals) {
14
+ where.or = [
15
+ ...hasCollections ? [{ collectionSlug: { in: enabledCollections } }] : [],
16
+ ...hasGlobals ? [{ globalSlug: { in: enabledGlobals } }] : []
17
+ ];
18
+ }
19
+ if (tenantId) {
20
+ where.tenant = {
21
+ equals: tenantId
22
+ };
23
+ }
24
+ const { docs: comments } = await payload.find({
25
+ collection: DEFAULT_COLLECTION_SLUG,
26
+ where: Object.keys(where).length ? where : void 0,
27
+ sort: "createdAt",
28
+ limit: 200,
29
+ depth: 1,
30
+ overrideAccess: true
31
+ });
32
+ return {
33
+ success: true,
34
+ data: comments
35
+ };
36
+ } catch (e) {
37
+ console.error("findAllComments failed:", e);
38
+ return {
39
+ success: false,
40
+ error: getDefaultErrorMessage(e)
41
+ };
42
+ }
43
+ }
44
+ export {
45
+ findAllComments
46
+ };
47
+ //# sourceMappingURL=findAllComments.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/findAllComments.ts"],"sourcesContent":["\"use server\";\n\nimport type { TypedUser, Where } from \"payload\";\nimport { extractPayload } from \"../utils/payload/extractPayload\";\nimport { DEFAULT_COLLECTION_SLUG } from \"../constants\";\nimport { getDefaultErrorMessage } from \"../utils/error/getDefaultErrorMessage\";\nimport type { Response, Comment, BaseServiceOptions } from \"../types\";\nimport { getCurrentTenantId } from \"./getCurrentTenantId\";\n\ninterface Props {\n enabledCollections?: string[];\n enabledGlobals?: string[];\n user?: TypedUser | null;\n options?: BaseServiceOptions;\n}\n\nexport async function findAllComments({ enabledCollections, enabledGlobals, options }: Props = {}): Promise<Response<Comment[]>> {\n try {\n const payload = await extractPayload(options?.payload);\n\n const tenantId = await getCurrentTenantId(payload);\n\n const where: Where = {};\n\n const hasCollections = (enabledCollections?.length ?? 0) > 0;\n const hasGlobals = (enabledGlobals?.length ?? 0) > 0;\n\n if (hasCollections || hasGlobals) {\n where.or = [\n ...(hasCollections ? [{ collectionSlug: { in: enabledCollections } }] : []),\n ...(hasGlobals ? [{ globalSlug: { in: enabledGlobals } }] : []),\n ];\n }\n\n if (tenantId) {\n where.tenant = {\n equals: tenantId,\n };\n }\n\n const { docs: comments } = await payload.find({\n collection: DEFAULT_COLLECTION_SLUG,\n where: Object.keys(where).length ? where : undefined,\n sort: \"createdAt\",\n limit: 200,\n depth: 1,\n overrideAccess: true,\n });\n\n return {\n success: true,\n data: comments as unknown as Comment[],\n };\n } catch (e) {\n console.error(\"findAllComments failed:\", e);\n\n return {\n success: false,\n error: getDefaultErrorMessage(e),\n };\n }\n}\n"],"mappings":";AAGA,SAAS,sBAAsB;AAC/B,SAAS,+BAA+B;AACxC,SAAS,8BAA8B;AAEvC,SAAS,0BAA0B;AASnC,eAAsB,gBAAgB,EAAE,oBAAoB,gBAAgB,QAAQ,IAAW,CAAC,GAAiC;AAC/H,MAAI;AACF,UAAM,UAAU,MAAM,eAAe,SAAS,OAAO;AAErD,UAAM,WAAW,MAAM,mBAAmB,OAAO;AAEjD,UAAM,QAAe,CAAC;AAEtB,UAAM,kBAAkB,oBAAoB,UAAU,KAAK;AAC3D,UAAM,cAAc,gBAAgB,UAAU,KAAK;AAEnD,QAAI,kBAAkB,YAAY;AAChC,YAAM,KAAK;AAAA,QACT,GAAI,iBAAiB,CAAC,EAAE,gBAAgB,EAAE,IAAI,mBAAmB,EAAE,CAAC,IAAI,CAAC;AAAA,QACzE,GAAI,aAAa,CAAC,EAAE,YAAY,EAAE,IAAI,eAAe,EAAE,CAAC,IAAI,CAAC;AAAA,MAC/D;AAAA,IACF;AAEA,QAAI,UAAU;AACZ,YAAM,SAAS;AAAA,QACb,QAAQ;AAAA,MACV;AAAA,IACF;AAEA,UAAM,EAAE,MAAM,SAAS,IAAI,MAAM,QAAQ,KAAK;AAAA,MAC5C,YAAY;AAAA,MACZ,OAAO,OAAO,KAAK,KAAK,EAAE,SAAS,QAAQ;AAAA,MAC3C,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,MACP,gBAAgB;AAAA,IAClB,CAAC;AAED,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,2BAA2B,CAAC;AAE1C,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,uBAAuB,CAAC;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { Payload } from "payload";
2
+ export declare function getCurrentTenantId(payload: Payload): Promise<string | number | null>;
3
+ //# sourceMappingURL=getCurrentTenantId.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCurrentTenantId.d.ts","sourceRoot":"","sources":["../../src/services/getCurrentTenantId.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAKvC,wBAAsB,kBAAkB,CAAC,OAAO,EAAE,OAAO,mCAQxD"}
@@ -0,0 +1,13 @@
1
+ "use server";
2
+ import { headers as getHeaders } from "next/headers";
3
+ import { getTenantFromCookie } from "@payloadcms/plugin-multi-tenant/utilities";
4
+ async function getCurrentTenantId(payload) {
5
+ const pluginConfig = payload.config.admin?.custom?.commentsPlugin;
6
+ const tenantConfig = pluginConfig?.tenant;
7
+ if (!tenantConfig?.enabled) return null;
8
+ return getTenantFromCookie(await getHeaders(), payload.db.defaultIDType);
9
+ }
10
+ export {
11
+ getCurrentTenantId
12
+ };
13
+ //# sourceMappingURL=getCurrentTenantId.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/getCurrentTenantId.ts"],"sourcesContent":["\"use server\";\n\nimport type { Payload } from \"payload\";\nimport { headers as getHeaders } from \"next/headers\";\nimport { getTenantFromCookie } from \"@payloadcms/plugin-multi-tenant/utilities\";\nimport type { CommentsPluginConfigStorage } from \"../types\";\n\nexport async function getCurrentTenantId(payload: Payload) {\n const pluginConfig = payload.config.admin?.custom?.commentsPlugin as CommentsPluginConfigStorage | undefined;\n\n const tenantConfig = pluginConfig?.tenant;\n\n if (!tenantConfig?.enabled) return null;\n\n return getTenantFromCookie(await getHeaders(), payload.db.defaultIDType);\n}\n"],"mappings":";AAGA,SAAS,WAAW,kBAAkB;AACtC,SAAS,2BAA2B;AAGpC,eAAsB,mBAAmB,SAAkB;AACzD,QAAM,eAAe,QAAQ,OAAO,OAAO,QAAQ;AAEnD,QAAM,eAAe,cAAc;AAEnC,MAAI,CAAC,cAAc,QAAS,QAAO;AAEnC,SAAO,oBAAoB,MAAM,WAAW,GAAG,QAAQ,GAAG,aAAa;AACzE;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { Response, Comment, DocumentTitles, BaseServiceOptions } from "../types";
2
+ export declare function getDocumentTitles(comments: Comment[], documentTitleFields: Record<string, string>, options?: BaseServiceOptions): Promise<Response<DocumentTitles>>;
3
+ //# sourceMappingURL=getDocumentTitles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getDocumentTitles.d.ts","sourceRoot":"","sources":["../../src/services/getDocumentTitles.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAgB,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAcpG,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,OAAO,EAAE,EACnB,mBAAmB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAC3C,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,CAuDnC"}
@@ -0,0 +1,61 @@
1
+ "use server";
2
+ import { extractPayload } from "../utils/payload/extractPayload";
3
+ import { getDefaultErrorMessage } from "../utils/error/getDefaultErrorMessage";
4
+ function buildDocumentTitlesFromDocs(docs, titleField) {
5
+ const result = {};
6
+ for (const doc of docs) {
7
+ const key = String(doc.id);
8
+ result[key] = String(doc[titleField]);
9
+ }
10
+ return result;
11
+ }
12
+ async function getDocumentTitles(comments, documentTitleFields, options) {
13
+ try {
14
+ const payload = await extractPayload(options?.payload);
15
+ const documentIdsMap = /* @__PURE__ */ new Map();
16
+ for (const { collectionSlug, documentId } of comments) {
17
+ if (!collectionSlug || documentId == null) continue;
18
+ if (!documentIdsMap.has(collectionSlug)) {
19
+ documentIdsMap.set(collectionSlug, /* @__PURE__ */ new Set());
20
+ }
21
+ documentIdsMap.get(collectionSlug).add(documentId);
22
+ }
23
+ const documentTitles = {};
24
+ await Promise.all(
25
+ [...documentIdsMap.entries()].map(async ([slug, ids]) => {
26
+ const titleField = documentTitleFields[slug] ?? "id";
27
+ try {
28
+ const { docs } = await payload.find({
29
+ collection: slug,
30
+ where: {
31
+ id: {
32
+ in: [...ids]
33
+ }
34
+ },
35
+ limit: ids.size,
36
+ depth: 0,
37
+ overrideAccess: true,
38
+ locale: options?.locale
39
+ });
40
+ documentTitles[slug] = buildDocumentTitlesFromDocs(docs, titleField);
41
+ } catch {
42
+ documentTitles[slug] = Object.fromEntries([...ids].map((id) => [String(id), String(id)]));
43
+ }
44
+ })
45
+ );
46
+ return {
47
+ success: true,
48
+ data: documentTitles
49
+ };
50
+ } catch (e) {
51
+ console.error(`Failed to fetch document titles`, e);
52
+ return {
53
+ success: false,
54
+ error: getDefaultErrorMessage(e)
55
+ };
56
+ }
57
+ }
58
+ export {
59
+ getDocumentTitles
60
+ };
61
+ //# sourceMappingURL=getDocumentTitles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/getDocumentTitles.ts"],"sourcesContent":["\"use server\";\n\nimport type { CollectionSlug } from \"payload\";\nimport { extractPayload } from \"../utils/payload/extractPayload\";\nimport { getDefaultErrorMessage } from \"../utils/error/getDefaultErrorMessage\";\nimport type { Response, Comment, BaseDocument, DocumentTitles, BaseServiceOptions } from \"../types\";\n\nfunction buildDocumentTitlesFromDocs(docs: BaseDocument[], titleField: string): Record<string, string> {\n const result: Record<string, string> = {};\n\n for (const doc of docs) {\n const key = String(doc.id);\n\n result[key] = String(doc[titleField]);\n }\n\n return result;\n}\n\nexport async function getDocumentTitles(\n comments: Comment[],\n documentTitleFields: Record<string, string>,\n options?: BaseServiceOptions,\n): Promise<Response<DocumentTitles>> {\n try {\n const payload = await extractPayload(options?.payload);\n\n const documentIdsMap = new Map<string, Set<number>>();\n\n for (const { collectionSlug, documentId } of comments) {\n if (!collectionSlug || documentId == null) continue;\n\n if (!documentIdsMap.has(collectionSlug)) {\n documentIdsMap.set(collectionSlug, new Set());\n }\n\n documentIdsMap.get(collectionSlug)!.add(documentId);\n }\n\n const documentTitles: DocumentTitles = {};\n\n await Promise.all(\n [...documentIdsMap.entries()].map(async ([slug, ids]) => {\n const titleField = documentTitleFields[slug] ?? \"id\";\n\n try {\n const { docs } = await payload.find({\n collection: slug as CollectionSlug,\n where: {\n id: {\n in: [...ids],\n },\n },\n limit: ids.size,\n depth: 0,\n overrideAccess: true,\n locale: options?.locale,\n });\n\n documentTitles[slug] = buildDocumentTitlesFromDocs(docs as unknown as BaseDocument[], titleField);\n } catch {\n documentTitles[slug] = Object.fromEntries([...ids].map((id) => [String(id), String(id)]));\n }\n }),\n );\n\n return {\n success: true,\n data: documentTitles,\n };\n } catch (e) {\n console.error(`Failed to fetch document titles`, e);\n\n return {\n success: false,\n error: getDefaultErrorMessage(e),\n };\n }\n}\n"],"mappings":";AAGA,SAAS,sBAAsB;AAC/B,SAAS,8BAA8B;AAGvC,SAAS,4BAA4B,MAAsB,YAA4C;AACrG,QAAM,SAAiC,CAAC;AAExC,aAAW,OAAO,MAAM;AACtB,UAAM,MAAM,OAAO,IAAI,EAAE;AAEzB,WAAO,GAAG,IAAI,OAAO,IAAI,UAAU,CAAC;AAAA,EACtC;AAEA,SAAO;AACT;AAEA,eAAsB,kBACpB,UACA,qBACA,SACmC;AACnC,MAAI;AACF,UAAM,UAAU,MAAM,eAAe,SAAS,OAAO;AAErD,UAAM,iBAAiB,oBAAI,IAAyB;AAEpD,eAAW,EAAE,gBAAgB,WAAW,KAAK,UAAU;AACrD,UAAI,CAAC,kBAAkB,cAAc,KAAM;AAE3C,UAAI,CAAC,eAAe,IAAI,cAAc,GAAG;AACvC,uBAAe,IAAI,gBAAgB,oBAAI,IAAI,CAAC;AAAA,MAC9C;AAEA,qBAAe,IAAI,cAAc,EAAG,IAAI,UAAU;AAAA,IACpD;AAEA,UAAM,iBAAiC,CAAC;AAExC,UAAM,QAAQ;AAAA,MACZ,CAAC,GAAG,eAAe,QAAQ,CAAC,EAAE,IAAI,OAAO,CAAC,MAAM,GAAG,MAAM;AACvD,cAAM,aAAa,oBAAoB,IAAI,KAAK;AAEhD,YAAI;AACF,gBAAM,EAAE,KAAK,IAAI,MAAM,QAAQ,KAAK;AAAA,YAClC,YAAY;AAAA,YACZ,OAAO;AAAA,cACL,IAAI;AAAA,gBACF,IAAI,CAAC,GAAG,GAAG;AAAA,cACb;AAAA,YACF;AAAA,YACA,OAAO,IAAI;AAAA,YACX,OAAO;AAAA,YACP,gBAAgB;AAAA,YAChB,QAAQ,SAAS;AAAA,UACnB,CAAC;AAED,yBAAe,IAAI,IAAI,4BAA4B,MAAmC,UAAU;AAAA,QAClG,QAAQ;AACN,yBAAe,IAAI,IAAI,OAAO,YAAY,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,OAAO,EAAE,CAAC,CAAC,CAAC;AAAA,QAC1F;AAAA,MACF,CAAC;AAAA,IACH;AAEA,WAAO;AAAA,MACL,SAAS;AAAA,MACT,MAAM;AAAA,IACR;AAAA,EACF,SAAS,GAAG;AACV,YAAQ,MAAM,mCAAmC,CAAC;AAElD,WAAO;AAAA,MACL,SAAS;AAAA,MACT,OAAO,uBAAuB,CAAC;AAAA,IACjC;AAAA,EACF;AACF;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { EntityLabelsMap, EntityConfig } from "../types";
2
+ export declare function getEntitiesLabels(entities: EntityConfig[], enabledSlugs: string[]): EntityLabelsMap;
3
+ //# sourceMappingURL=getEntitiesLabels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getEntitiesLabels.d.ts","sourceRoot":"","sources":["../../src/services/getEntitiesLabels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAE9D,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,YAAY,EAAE,EAAE,YAAY,EAAE,MAAM,EAAE,mBAajF"}
@@ -0,0 +1,14 @@
1
+ function getEntitiesLabels(entities, enabledSlugs) {
2
+ const slugSet = new Set(enabledSlugs);
3
+ const result = {};
4
+ for (const entity of entities) {
5
+ if (!slugSet.has(entity.slug)) continue;
6
+ const rawLabel = "labels" in entity ? entity.labels?.plural : entity.label;
7
+ result[entity.slug] = typeof rawLabel === "function" || rawLabel === void 0 ? entity.slug : rawLabel;
8
+ }
9
+ return result;
10
+ }
11
+ export {
12
+ getEntitiesLabels
13
+ };
14
+ //# sourceMappingURL=getEntitiesLabels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/services/getEntitiesLabels.ts"],"sourcesContent":["import type { EntityLabelsMap, EntityConfig } from \"../types\";\n\nexport function getEntitiesLabels(entities: EntityConfig[], enabledSlugs: string[]) {\n const slugSet = new Set(enabledSlugs);\n const result: EntityLabelsMap = {};\n\n for (const entity of entities) {\n if (!slugSet.has(entity.slug)) continue;\n\n const rawLabel = \"labels\" in entity ? entity.labels?.plural : entity.label;\n\n result[entity.slug] = typeof rawLabel === \"function\" || rawLabel === undefined ? entity.slug : rawLabel;\n }\n\n return result;\n}\n"],"mappings":"AAEO,SAAS,kBAAkB,UAA0B,cAAwB;AAClF,QAAM,UAAU,IAAI,IAAI,YAAY;AACpC,QAAM,SAA0B,CAAC;AAEjC,aAAW,UAAU,UAAU;AAC7B,QAAI,CAAC,QAAQ,IAAI,OAAO,IAAI,EAAG;AAE/B,UAAM,WAAW,YAAY,SAAS,OAAO,QAAQ,SAAS,OAAO;AAErE,WAAO,OAAO,IAAI,IAAI,OAAO,aAAa,cAAc,aAAa,SAAY,OAAO,OAAO;AAAA,EACjG;AAEA,SAAO;AACT;","names":[]}
@@ -0,0 +1,3 @@
1
+ import type { Response, Comment, BaseServiceOptions } from "../types";
2
+ export declare function resolveComment(id: number | string, resolved: boolean, options?: BaseServiceOptions): Promise<Response<Comment>>;
3
+ //# sourceMappingURL=resolveComment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resolveComment.d.ts","sourceRoot":"","sources":["../../src/services/resolveComment.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAMtE,wBAAsB,cAAc,CAClC,EAAE,EAAE,MAAM,GAAG,MAAM,EACnB,QAAQ,EAAE,OAAO,EACjB,OAAO,CAAC,EAAE,kBAAkB,GAC3B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAkC5B"}