@focus-reactive/payload-plugin-translator 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (606) hide show
  1. package/README.md +27 -14
  2. package/package.json +3 -1
  3. package/dist/client/app/cache/CacheProvider.d.ts.map +0 -1
  4. package/dist/client/app/cache/CacheProvider.export.d.ts.map +0 -1
  5. package/dist/client/app/cache/CacheProvider.export.js.map +0 -1
  6. package/dist/client/app/cache/CacheProvider.js.map +0 -1
  7. package/dist/client/app/cache/CacheProvider.jsx +0 -11
  8. package/dist/client/app/config/TranslateKitConfigContext.d.ts.map +0 -1
  9. package/dist/client/app/config/TranslateKitConfigContext.js.map +0 -1
  10. package/dist/client/app/config/TranslateKitConfigContext.jsx +0 -13
  11. package/dist/client/app/config/index.d.ts.map +0 -1
  12. package/dist/client/app/config/index.js.map +0 -1
  13. package/dist/client/entities/translation/api/mutations/useCancelCollectionTranslations.d.ts.map +0 -1
  14. package/dist/client/entities/translation/api/mutations/useCancelCollectionTranslations.js.map +0 -1
  15. package/dist/client/entities/translation/api/mutations/useCancelDocumentTranslation.d.ts.map +0 -1
  16. package/dist/client/entities/translation/api/mutations/useCancelDocumentTranslation.js.map +0 -1
  17. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslation.d.ts.map +0 -1
  18. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslation.js.map +0 -1
  19. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslations.d.ts.map +0 -1
  20. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslations.js.map +0 -1
  21. package/dist/client/entities/translation/api/mutations/useRunDocumentTranslation.d.ts.map +0 -1
  22. package/dist/client/entities/translation/api/mutations/useRunDocumentTranslation.js.map +0 -1
  23. package/dist/client/entities/translation/api/queries/useCollectionTranslationStatus.d.ts.map +0 -1
  24. package/dist/client/entities/translation/api/queries/useCollectionTranslationStatus.js.map +0 -1
  25. package/dist/client/entities/translation/api/queries/useDocumentTranslation.d.ts.map +0 -1
  26. package/dist/client/entities/translation/api/queries/useDocumentTranslation.js.map +0 -1
  27. package/dist/client/entities/translation/index.d.ts.map +0 -1
  28. package/dist/client/entities/translation/index.js.map +0 -1
  29. package/dist/client/entities/translation/model/enums.d.ts.map +0 -1
  30. package/dist/client/entities/translation/model/enums.js.map +0 -1
  31. package/dist/client/entities/translation/model/types.d.ts.map +0 -1
  32. package/dist/client/entities/translation/model/types.js.map +0 -1
  33. package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.d.ts.map +0 -1
  34. package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.js.map +0 -1
  35. package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.jsx +0 -25
  36. package/dist/client/entities/translation/ui/CompletedTranslationStatus/index.d.ts.map +0 -1
  37. package/dist/client/entities/translation/ui/CompletedTranslationStatus/index.js.map +0 -1
  38. package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.d.ts.map +0 -1
  39. package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.js.map +0 -1
  40. package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.jsx +0 -24
  41. package/dist/client/entities/translation/ui/FailedTranslationStatus/index.d.ts.map +0 -1
  42. package/dist/client/entities/translation/ui/FailedTranslationStatus/index.js.map +0 -1
  43. package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.d.ts.map +0 -1
  44. package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.js.map +0 -1
  45. package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.jsx +0 -38
  46. package/dist/client/entities/translation/ui/PendingTranslationStatus/index.d.ts.map +0 -1
  47. package/dist/client/entities/translation/ui/PendingTranslationStatus/index.js.map +0 -1
  48. package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.d.ts.map +0 -1
  49. package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.js.map +0 -1
  50. package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.jsx +0 -32
  51. package/dist/client/entities/translation/ui/RunningTranslationStatus/index.d.ts.map +0 -1
  52. package/dist/client/entities/translation/ui/RunningTranslationStatus/index.js.map +0 -1
  53. package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.d.ts.map +0 -1
  54. package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.js.map +0 -1
  55. package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.jsx +0 -16
  56. package/dist/client/entities/translation/ui/TranslationDirection/index.d.ts.map +0 -1
  57. package/dist/client/entities/translation/ui/TranslationDirection/index.js.map +0 -1
  58. package/dist/client/features/collection-translation-form/index.client.d.ts.map +0 -1
  59. package/dist/client/features/collection-translation-form/index.client.js.map +0 -1
  60. package/dist/client/features/collection-translation-form/index.d.ts.map +0 -1
  61. package/dist/client/features/collection-translation-form/index.js.map +0 -1
  62. package/dist/client/features/collection-translation-form/model/constants.d.ts.map +0 -1
  63. package/dist/client/features/collection-translation-form/model/constants.js.map +0 -1
  64. package/dist/client/features/collection-translation-form/model/form-model.d.ts.map +0 -1
  65. package/dist/client/features/collection-translation-form/model/form-model.js.map +0 -1
  66. package/dist/client/features/collection-translation-form/model/index.d.ts.map +0 -1
  67. package/dist/client/features/collection-translation-form/model/index.js.map +0 -1
  68. package/dist/client/features/collection-translation-form/model/schema.d.ts.map +0 -1
  69. package/dist/client/features/collection-translation-form/model/schema.js.map +0 -1
  70. package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.d.ts.map +0 -1
  71. package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.js.map +0 -1
  72. package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.jsx +0 -25
  73. package/dist/client/features/collection-translation-form/ui/index.d.ts.map +0 -1
  74. package/dist/client/features/collection-translation-form/ui/index.js.map +0 -1
  75. package/dist/client/features/collection-translation-popup/index.d.ts.map +0 -1
  76. package/dist/client/features/collection-translation-popup/index.js.map +0 -1
  77. package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.d.ts.map +0 -1
  78. package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.js.map +0 -1
  79. package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.jsx +0 -23
  80. package/dist/client/features/collection-translation-progress/index.d.ts.map +0 -1
  81. package/dist/client/features/collection-translation-progress/index.js.map +0 -1
  82. package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.d.ts.map +0 -1
  83. package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.js.map +0 -1
  84. package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.jsx +0 -47
  85. package/dist/client/features/document-translation-progress-failed/index.d.ts.map +0 -1
  86. package/dist/client/features/document-translation-progress-failed/index.js.map +0 -1
  87. package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.d.ts.map +0 -1
  88. package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.js.map +0 -1
  89. package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.jsx +0 -19
  90. package/dist/client/features/document-translation-progress-pending/index.d.ts.map +0 -1
  91. package/dist/client/features/document-translation-progress-pending/index.js.map +0 -1
  92. package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.d.ts.map +0 -1
  93. package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.js.map +0 -1
  94. package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.jsx +0 -34
  95. package/dist/client/features/document-translation-progress-running/index.d.ts.map +0 -1
  96. package/dist/client/features/document-translation-progress-running/index.js.map +0 -1
  97. package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.d.ts.map +0 -1
  98. package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.js.map +0 -1
  99. package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.jsx +0 -19
  100. package/dist/client/features/open-document-translation-popup/index.d.ts.map +0 -1
  101. package/dist/client/features/open-document-translation-popup/index.js.map +0 -1
  102. package/dist/client/features/open-document-translation-popup/ui/OpenDocumentTranslationPopup.d.ts.map +0 -1
  103. package/dist/client/features/open-document-translation-popup/ui/OpenDocumentTranslationPopup.js.map +0 -1
  104. package/dist/client/features/open-document-translation-popup/ui/OpenDocumentTranslationPopup.jsx +0 -15
  105. package/dist/client/features/translate-document-form/index.client.d.ts.map +0 -1
  106. package/dist/client/features/translate-document-form/index.client.js.map +0 -1
  107. package/dist/client/features/translate-document-form/index.d.ts.map +0 -1
  108. package/dist/client/features/translate-document-form/index.js.map +0 -1
  109. package/dist/client/features/translate-document-form/model/constants.d.ts.map +0 -1
  110. package/dist/client/features/translate-document-form/model/constants.js.map +0 -1
  111. package/dist/client/features/translate-document-form/model/form-model.d.ts.map +0 -1
  112. package/dist/client/features/translate-document-form/model/form-model.js.map +0 -1
  113. package/dist/client/features/translate-document-form/model/index.d.ts.map +0 -1
  114. package/dist/client/features/translate-document-form/model/index.js.map +0 -1
  115. package/dist/client/features/translate-document-form/model/schema.d.ts.map +0 -1
  116. package/dist/client/features/translate-document-form/model/schema.js.map +0 -1
  117. package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.d.ts.map +0 -1
  118. package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.js.map +0 -1
  119. package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.jsx +0 -24
  120. package/dist/client/features/translate-document-form/ui/index.d.ts.map +0 -1
  121. package/dist/client/features/translate-document-form/ui/index.js.map +0 -1
  122. package/dist/client/shared/lib/assets/icons/LanguageTranslateIcon.d.ts.map +0 -1
  123. package/dist/client/shared/lib/assets/icons/LanguageTranslateIcon.js.map +0 -1
  124. package/dist/client/shared/lib/assets/icons/LanguageTranslateIcon.jsx +0 -4
  125. package/dist/client/shared/lib/assets/icons/QuestionCircleIcon.d.ts.map +0 -1
  126. package/dist/client/shared/lib/assets/icons/QuestionCircleIcon.js.map +0 -1
  127. package/dist/client/shared/lib/assets/icons/QuestionCircleIcon.jsx +0 -3
  128. package/dist/client/shared/lib/assets/icons/ReloadIcon.d.ts.map +0 -1
  129. package/dist/client/shared/lib/assets/icons/ReloadIcon.js.map +0 -1
  130. package/dist/client/shared/lib/assets/icons/ReloadIcon.jsx +0 -3
  131. package/dist/client/shared/lib/errors/handleApiError.d.ts.map +0 -1
  132. package/dist/client/shared/lib/errors/handleApiError.js.map +0 -1
  133. package/dist/client/shared/lib/forms/handle-form-error.d.ts.map +0 -1
  134. package/dist/client/shared/lib/forms/handle-form-error.js.map +0 -1
  135. package/dist/client/shared/lib/payload/hooks/useCollectionDashboardUrlParams.d.ts.map +0 -1
  136. package/dist/client/shared/lib/payload/hooks/useCollectionDashboardUrlParams.js.map +0 -1
  137. package/dist/client/shared/lib/payload/hooks/useCollectionDocumentUrlParams.d.ts.map +0 -1
  138. package/dist/client/shared/lib/payload/hooks/useCollectionDocumentUrlParams.js.map +0 -1
  139. package/dist/client/shared/lib/payload/hooks/useLocaleOptions.d.ts.map +0 -1
  140. package/dist/client/shared/lib/payload/hooks/useLocaleOptions.js.map +0 -1
  141. package/dist/client/shared/lib/utils/errors/handleApiError.d.ts.map +0 -1
  142. package/dist/client/shared/lib/utils/errors/handleApiError.js.map +0 -1
  143. package/dist/client/shared/lib/utils/react/useToggle.d.ts.map +0 -1
  144. package/dist/client/shared/lib/utils/react/useToggle.js.map +0 -1
  145. package/dist/client/shared/providers/CacheClientProvider/CacheClientProvider.factory.d.ts.map +0 -1
  146. package/dist/client/shared/providers/CacheClientProvider/CacheClientProvider.factory.js.map +0 -1
  147. package/dist/client/shared/providers/CacheClientProvider/index.d.ts.map +0 -1
  148. package/dist/client/shared/providers/CacheClientProvider/index.js.map +0 -1
  149. package/dist/client/shared/types/AccessGuard.d.ts.map +0 -1
  150. package/dist/client/shared/types/AccessGuard.js.map +0 -1
  151. package/dist/client/shared/types/PayloadComponentExport.d.ts.map +0 -1
  152. package/dist/client/shared/types/PayloadComponentExport.js.map +0 -1
  153. package/dist/client/shared/ui/Alert/Alert.d.ts.map +0 -1
  154. package/dist/client/shared/ui/Alert/Alert.js.map +0 -1
  155. package/dist/client/shared/ui/Alert/Alert.jsx +0 -33
  156. package/dist/client/shared/ui/Alert/index.d.ts.map +0 -1
  157. package/dist/client/shared/ui/Alert/index.js.map +0 -1
  158. package/dist/client/shared/ui/Button/Button.d.ts.map +0 -1
  159. package/dist/client/shared/ui/Button/Button.js.map +0 -1
  160. package/dist/client/shared/ui/Button/Button.jsx +0 -35
  161. package/dist/client/shared/ui/Button/index.d.ts.map +0 -1
  162. package/dist/client/shared/ui/Button/index.js.map +0 -1
  163. package/dist/client/shared/ui/Checkbox/Checkbox.d.ts.map +0 -1
  164. package/dist/client/shared/ui/Checkbox/Checkbox.js.map +0 -1
  165. package/dist/client/shared/ui/Checkbox/Checkbox.jsx +0 -6
  166. package/dist/client/shared/ui/Checkbox/index.d.ts.map +0 -1
  167. package/dist/client/shared/ui/Checkbox/index.js.map +0 -1
  168. package/dist/client/shared/ui/ColorIndicator/ColorIndicator.d.ts.map +0 -1
  169. package/dist/client/shared/ui/ColorIndicator/ColorIndicator.js.map +0 -1
  170. package/dist/client/shared/ui/ColorIndicator/ColorIndicator.jsx +0 -7
  171. package/dist/client/shared/ui/ColorIndicator/index.d.ts.map +0 -1
  172. package/dist/client/shared/ui/ColorIndicator/index.js.map +0 -1
  173. package/dist/client/shared/ui/Description/Description.d.ts.map +0 -1
  174. package/dist/client/shared/ui/Description/Description.js.map +0 -1
  175. package/dist/client/shared/ui/Description/Description.jsx +0 -7
  176. package/dist/client/shared/ui/Description/index.d.ts.map +0 -1
  177. package/dist/client/shared/ui/Description/index.js.map +0 -1
  178. package/dist/client/shared/ui/Divider/Divider.d.ts.map +0 -1
  179. package/dist/client/shared/ui/Divider/Divider.js.map +0 -1
  180. package/dist/client/shared/ui/Divider/Divider.jsx +0 -7
  181. package/dist/client/shared/ui/Divider/index.d.ts.map +0 -1
  182. package/dist/client/shared/ui/Divider/index.js.map +0 -1
  183. package/dist/client/shared/ui/Label/Label.d.ts.map +0 -1
  184. package/dist/client/shared/ui/Label/Label.js.map +0 -1
  185. package/dist/client/shared/ui/Label/Label.jsx +0 -9
  186. package/dist/client/shared/ui/Label/index.d.ts.map +0 -1
  187. package/dist/client/shared/ui/Label/index.js.map +0 -1
  188. package/dist/client/shared/ui/Loading/Loading.d.ts.map +0 -1
  189. package/dist/client/shared/ui/Loading/Loading.js.map +0 -1
  190. package/dist/client/shared/ui/Loading/Loading.jsx +0 -11
  191. package/dist/client/shared/ui/Loading/index.d.ts.map +0 -1
  192. package/dist/client/shared/ui/Loading/index.js.map +0 -1
  193. package/dist/client/shared/ui/Popup/Popup.d.ts.map +0 -1
  194. package/dist/client/shared/ui/Popup/Popup.js.map +0 -1
  195. package/dist/client/shared/ui/Popup/Popup.jsx +0 -13
  196. package/dist/client/shared/ui/Popup/index.d.ts.map +0 -1
  197. package/dist/client/shared/ui/Popup/index.js.map +0 -1
  198. package/dist/client/shared/ui/ProgressBar/ProgressBar.d.ts.map +0 -1
  199. package/dist/client/shared/ui/ProgressBar/ProgressBar.js.map +0 -1
  200. package/dist/client/shared/ui/ProgressBar/ProgressBar.jsx +0 -11
  201. package/dist/client/shared/ui/ProgressBar/index.d.ts.map +0 -1
  202. package/dist/client/shared/ui/ProgressBar/index.js.map +0 -1
  203. package/dist/client/shared/ui/Select/Select.d.ts.map +0 -1
  204. package/dist/client/shared/ui/Select/Select.js.map +0 -1
  205. package/dist/client/shared/ui/Select/Select.jsx +0 -41
  206. package/dist/client/shared/ui/Select/index.d.ts.map +0 -1
  207. package/dist/client/shared/ui/Select/index.js.map +0 -1
  208. package/dist/client/shared/ui/StatusCounter/StatusCounter.d.ts.map +0 -1
  209. package/dist/client/shared/ui/StatusCounter/StatusCounter.js.map +0 -1
  210. package/dist/client/shared/ui/StatusCounter/StatusCounter.jsx +0 -26
  211. package/dist/client/shared/ui/StatusCounter/index.d.ts.map +0 -1
  212. package/dist/client/shared/ui/StatusCounter/index.js.map +0 -1
  213. package/dist/client/shared/ui/StatusIndicator/StatusIndicator.d.ts.map +0 -1
  214. package/dist/client/shared/ui/StatusIndicator/StatusIndicator.js.map +0 -1
  215. package/dist/client/shared/ui/StatusIndicator/StatusIndicator.jsx +0 -10
  216. package/dist/client/shared/ui/StatusIndicator/index.d.ts.map +0 -1
  217. package/dist/client/shared/ui/StatusIndicator/index.js.map +0 -1
  218. package/dist/client/shared/ui/Tooltip/Tooltip.d.ts.map +0 -1
  219. package/dist/client/shared/ui/Tooltip/Tooltip.js.map +0 -1
  220. package/dist/client/shared/ui/Tooltip/Tooltip.jsx +0 -16
  221. package/dist/client/shared/ui/Tooltip/index.d.ts.map +0 -1
  222. package/dist/client/shared/ui/Tooltip/index.js.map +0 -1
  223. package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.d.ts.map +0 -1
  224. package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.js.map +0 -1
  225. package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.jsx +0 -24
  226. package/dist/client/shared/ui/form/FormCheckbox/index.d.ts.map +0 -1
  227. package/dist/client/shared/ui/form/FormCheckbox/index.js.map +0 -1
  228. package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.d.ts.map +0 -1
  229. package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.js.map +0 -1
  230. package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.jsx +0 -21
  231. package/dist/client/shared/ui/form/FormCheckboxPublish/index.d.ts.map +0 -1
  232. package/dist/client/shared/ui/form/FormCheckboxPublish/index.js.map +0 -1
  233. package/dist/client/shared/ui/form/FormSelect/FormSelect.d.ts.map +0 -1
  234. package/dist/client/shared/ui/form/FormSelect/FormSelect.js.map +0 -1
  235. package/dist/client/shared/ui/form/FormSelect/FormSelect.jsx +0 -44
  236. package/dist/client/shared/ui/form/FormSelect/index.d.ts.map +0 -1
  237. package/dist/client/shared/ui/form/FormSelect/index.js.map +0 -1
  238. package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.d.ts.map +0 -1
  239. package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.js.map +0 -1
  240. package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.jsx +0 -6
  241. package/dist/client/shared/ui/form/FormSelectLocale/index.d.ts.map +0 -1
  242. package/dist/client/shared/ui/form/FormSelectLocale/index.js.map +0 -1
  243. package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.d.ts.map +0 -1
  244. package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.js.map +0 -1
  245. package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.jsx +0 -25
  246. package/dist/client/shared/ui/form/FormSelectStrategy/index.d.ts.map +0 -1
  247. package/dist/client/shared/ui/form/FormSelectStrategy/index.js.map +0 -1
  248. package/dist/client/shared/utils/componentPath.d.ts.map +0 -1
  249. package/dist/client/shared/utils/componentPath.js.map +0 -1
  250. package/dist/client/widgets/bulk-translation-dashboard/index.d.ts.map +0 -1
  251. package/dist/client/widgets/bulk-translation-dashboard/index.js.map +0 -1
  252. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.d.ts.map +0 -1
  253. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.d.ts.map +0 -1
  254. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.js.map +0 -1
  255. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.jsx +0 -11
  256. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.js.map +0 -1
  257. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.jsx +0 -55
  258. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.d.ts.map +0 -1
  259. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.js.map +0 -1
  260. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.jsx +0 -17
  261. package/dist/client/widgets/bulk-translation-dashboard/ui/index.d.ts.map +0 -1
  262. package/dist/client/widgets/bulk-translation-dashboard/ui/index.js.map +0 -1
  263. package/dist/client/widgets/translate-document/index.d.ts.map +0 -1
  264. package/dist/client/widgets/translate-document/index.js.map +0 -1
  265. package/dist/client/widgets/translate-document/ui/TranslateDocument.d.ts.map +0 -1
  266. package/dist/client/widgets/translate-document/ui/TranslateDocument.export.d.ts.map +0 -1
  267. package/dist/client/widgets/translate-document/ui/TranslateDocument.export.js.map +0 -1
  268. package/dist/client/widgets/translate-document/ui/TranslateDocument.js.map +0 -1
  269. package/dist/client/widgets/translate-document/ui/TranslateDocument.jsx +0 -55
  270. package/dist/client/widgets/translate-document/ui/TranslateDocument.server.d.ts.map +0 -1
  271. package/dist/client/widgets/translate-document/ui/TranslateDocument.server.js.map +0 -1
  272. package/dist/client/widgets/translate-document/ui/TranslateDocument.server.jsx +0 -16
  273. package/dist/client/widgets/translate-document/ui/index.d.ts.map +0 -1
  274. package/dist/client/widgets/translate-document/ui/index.js.map +0 -1
  275. package/dist/field-config.d.ts.map +0 -1
  276. package/dist/field-config.js.map +0 -1
  277. package/dist/index.d.ts.map +0 -1
  278. package/dist/index.js.map +0 -1
  279. package/dist/plugin.d.ts.map +0 -1
  280. package/dist/plugin.js.map +0 -1
  281. package/dist/server/features/_lib/collection-utils.d.ts.map +0 -1
  282. package/dist/server/features/_lib/collection-utils.js.map +0 -1
  283. package/dist/server/features/_lib/index.d.ts.map +0 -1
  284. package/dist/server/features/_lib/index.js.map +0 -1
  285. package/dist/server/features/cancel/handler.d.ts.map +0 -1
  286. package/dist/server/features/cancel/handler.js.map +0 -1
  287. package/dist/server/features/cancel/handler.test.d.ts +0 -2
  288. package/dist/server/features/cancel/handler.test.d.ts.map +0 -1
  289. package/dist/server/features/cancel/handler.test.js +0 -63
  290. package/dist/server/features/cancel/index.d.ts.map +0 -1
  291. package/dist/server/features/cancel/index.js.map +0 -1
  292. package/dist/server/features/cancel/model.d.ts.map +0 -1
  293. package/dist/server/features/cancel/model.js.map +0 -1
  294. package/dist/server/features/cancel/route.d.ts.map +0 -1
  295. package/dist/server/features/cancel/route.js.map +0 -1
  296. package/dist/server/features/cancel-by-collection/handler.d.ts.map +0 -1
  297. package/dist/server/features/cancel-by-collection/handler.js.map +0 -1
  298. package/dist/server/features/cancel-by-collection/handler.test.d.ts +0 -2
  299. package/dist/server/features/cancel-by-collection/handler.test.d.ts.map +0 -1
  300. package/dist/server/features/cancel-by-collection/handler.test.js +0 -126
  301. package/dist/server/features/cancel-by-collection/index.d.ts.map +0 -1
  302. package/dist/server/features/cancel-by-collection/index.js.map +0 -1
  303. package/dist/server/features/cancel-by-collection/model.d.ts.map +0 -1
  304. package/dist/server/features/cancel-by-collection/model.js.map +0 -1
  305. package/dist/server/features/cancel-by-collection/route.d.ts.map +0 -1
  306. package/dist/server/features/cancel-by-collection/route.js.map +0 -1
  307. package/dist/server/features/enqueue-translation/handler.d.ts.map +0 -1
  308. package/dist/server/features/enqueue-translation/handler.js.map +0 -1
  309. package/dist/server/features/enqueue-translation/handler.test.d.ts +0 -2
  310. package/dist/server/features/enqueue-translation/handler.test.d.ts.map +0 -1
  311. package/dist/server/features/enqueue-translation/handler.test.js +0 -115
  312. package/dist/server/features/enqueue-translation/index.d.ts.map +0 -1
  313. package/dist/server/features/enqueue-translation/index.js.map +0 -1
  314. package/dist/server/features/enqueue-translation/model.d.ts.map +0 -1
  315. package/dist/server/features/enqueue-translation/model.js.map +0 -1
  316. package/dist/server/features/enqueue-translation/route.d.ts.map +0 -1
  317. package/dist/server/features/enqueue-translation/route.js.map +0 -1
  318. package/dist/server/features/get-collection-status/handler.d.ts.map +0 -1
  319. package/dist/server/features/get-collection-status/handler.js.map +0 -1
  320. package/dist/server/features/get-collection-status/handler.test.d.ts +0 -2
  321. package/dist/server/features/get-collection-status/handler.test.d.ts.map +0 -1
  322. package/dist/server/features/get-collection-status/handler.test.js +0 -108
  323. package/dist/server/features/get-collection-status/index.d.ts.map +0 -1
  324. package/dist/server/features/get-collection-status/index.js.map +0 -1
  325. package/dist/server/features/get-collection-status/model.d.ts.map +0 -1
  326. package/dist/server/features/get-collection-status/model.js.map +0 -1
  327. package/dist/server/features/get-collection-status/route.d.ts.map +0 -1
  328. package/dist/server/features/get-collection-status/route.js.map +0 -1
  329. package/dist/server/features/get-document-status/handler.d.ts.map +0 -1
  330. package/dist/server/features/get-document-status/handler.js.map +0 -1
  331. package/dist/server/features/get-document-status/handler.test.d.ts +0 -2
  332. package/dist/server/features/get-document-status/handler.test.d.ts.map +0 -1
  333. package/dist/server/features/get-document-status/handler.test.js +0 -138
  334. package/dist/server/features/get-document-status/index.d.ts.map +0 -1
  335. package/dist/server/features/get-document-status/index.js.map +0 -1
  336. package/dist/server/features/get-document-status/model.d.ts.map +0 -1
  337. package/dist/server/features/get-document-status/model.js.map +0 -1
  338. package/dist/server/features/get-document-status/route.d.ts.map +0 -1
  339. package/dist/server/features/get-document-status/route.js.map +0 -1
  340. package/dist/server/features/index.d.ts.map +0 -1
  341. package/dist/server/features/index.js.map +0 -1
  342. package/dist/server/features/run-translation/handler.d.ts.map +0 -1
  343. package/dist/server/features/run-translation/handler.js.map +0 -1
  344. package/dist/server/features/run-translation/handler.test.d.ts +0 -2
  345. package/dist/server/features/run-translation/handler.test.d.ts.map +0 -1
  346. package/dist/server/features/run-translation/handler.test.js +0 -98
  347. package/dist/server/features/run-translation/index.d.ts.map +0 -1
  348. package/dist/server/features/run-translation/index.js.map +0 -1
  349. package/dist/server/features/run-translation/model.d.ts.map +0 -1
  350. package/dist/server/features/run-translation/model.js.map +0 -1
  351. package/dist/server/features/run-translation/route.d.ts.map +0 -1
  352. package/dist/server/features/run-translation/route.js.map +0 -1
  353. package/dist/server/features/translate-document/handler.d.ts.map +0 -1
  354. package/dist/server/features/translate-document/handler.js.map +0 -1
  355. package/dist/server/features/translate-document/handler.test.d.ts +0 -2
  356. package/dist/server/features/translate-document/handler.test.d.ts.map +0 -1
  357. package/dist/server/features/translate-document/handler.test.js +0 -171
  358. package/dist/server/features/translate-document/index.d.ts.map +0 -1
  359. package/dist/server/features/translate-document/index.js.map +0 -1
  360. package/dist/server/features/translate-document/model.d.ts.map +0 -1
  361. package/dist/server/features/translate-document/model.js.map +0 -1
  362. package/dist/server/features/translate-document/task.d.ts.map +0 -1
  363. package/dist/server/features/translate-document/task.js.map +0 -1
  364. package/dist/server/index.d.ts.map +0 -1
  365. package/dist/server/index.js.map +0 -1
  366. package/dist/server/modules/index.d.ts.map +0 -1
  367. package/dist/server/modules/index.js.map +0 -1
  368. package/dist/server/modules/task-runner/TaskRunner.interface.d.ts.map +0 -1
  369. package/dist/server/modules/task-runner/TaskRunner.interface.js.map +0 -1
  370. package/dist/server/modules/task-runner/TaskRunnerProvider.interface.d.ts.map +0 -1
  371. package/dist/server/modules/task-runner/TaskRunnerProvider.interface.js.map +0 -1
  372. package/dist/server/modules/task-runner/index.d.ts.map +0 -1
  373. package/dist/server/modules/task-runner/index.js.map +0 -1
  374. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsRunnerProvider.d.ts.map +0 -1
  375. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsRunnerProvider.js.map +0 -1
  376. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.d.ts.map +0 -1
  377. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.js.map +0 -1
  378. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.test.d.ts +0 -2
  379. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.test.d.ts.map +0 -1
  380. package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.test.js +0 -188
  381. package/dist/server/modules/task-runner/payload-jobs-runner/index.d.ts.map +0 -1
  382. package/dist/server/modules/task-runner/payload-jobs-runner/index.js.map +0 -1
  383. package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.d.ts.map +0 -1
  384. package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.js.map +0 -1
  385. package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.d.ts +0 -2
  386. package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.d.ts.map +0 -1
  387. package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.js +0 -169
  388. package/dist/server/modules/task-runner/payload-jobs-runner/types.d.ts.map +0 -1
  389. package/dist/server/modules/task-runner/payload-jobs-runner/types.js.map +0 -1
  390. package/dist/server/modules/task-runner/sync-runner/SyncRunnerProvider.d.ts.map +0 -1
  391. package/dist/server/modules/task-runner/sync-runner/SyncRunnerProvider.js.map +0 -1
  392. package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.d.ts.map +0 -1
  393. package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.js.map +0 -1
  394. package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.test.d.ts +0 -2
  395. package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.test.d.ts.map +0 -1
  396. package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.test.js +0 -148
  397. package/dist/server/modules/task-runner/sync-runner/index.d.ts.map +0 -1
  398. package/dist/server/modules/task-runner/sync-runner/index.js.map +0 -1
  399. package/dist/server/modules/task-runner/sync-runner/types.d.ts.map +0 -1
  400. package/dist/server/modules/task-runner/sync-runner/types.js.map +0 -1
  401. package/dist/server/modules/task-runner/types.d.ts.map +0 -1
  402. package/dist/server/modules/task-runner/types.js.map +0 -1
  403. package/dist/server/modules/translation-pipeline/TranslationPipeline.d.ts.map +0 -1
  404. package/dist/server/modules/translation-pipeline/TranslationPipeline.js.map +0 -1
  405. package/dist/server/modules/translation-pipeline/TranslationPipeline.test.d.ts +0 -2
  406. package/dist/server/modules/translation-pipeline/TranslationPipeline.test.d.ts.map +0 -1
  407. package/dist/server/modules/translation-pipeline/TranslationPipeline.test.js +0 -552
  408. package/dist/server/modules/translation-pipeline/index.d.ts.map +0 -1
  409. package/dist/server/modules/translation-pipeline/index.js.map +0 -1
  410. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.d.ts.map +0 -1
  411. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.js.map +0 -1
  412. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.stage.d.ts.map +0 -1
  413. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.stage.js.map +0 -1
  414. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.test.d.ts +0 -2
  415. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.test.d.ts.map +0 -1
  416. package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.test.js +0 -294
  417. package/dist/server/modules/translation-pipeline/stages/data-reconciler/index.d.ts.map +0 -1
  418. package/dist/server/modules/translation-pipeline/stages/data-reconciler/index.js.map +0 -1
  419. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.d.ts.map +0 -1
  420. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.js.map +0 -1
  421. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.stage.d.ts.map +0 -1
  422. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.stage.js.map +0 -1
  423. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.test.d.ts +0 -2
  424. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.test.d.ts.map +0 -1
  425. package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.test.js +0 -737
  426. package/dist/server/modules/translation-pipeline/stages/field-collector/index.d.ts.map +0 -1
  427. package/dist/server/modules/translation-pipeline/stages/field-collector/index.js.map +0 -1
  428. package/dist/server/modules/translation-pipeline/stages/index.d.ts.map +0 -1
  429. package/dist/server/modules/translation-pipeline/stages/index.js.map +0 -1
  430. package/dist/server/modules/translation-pipeline/stages/text-expander/PlainTextExpander.d.ts.map +0 -1
  431. package/dist/server/modules/translation-pipeline/stages/text-expander/PlainTextExpander.js.map +0 -1
  432. package/dist/server/modules/translation-pipeline/stages/text-expander/RichTextExpander.d.ts.map +0 -1
  433. package/dist/server/modules/translation-pipeline/stages/text-expander/RichTextExpander.js.map +0 -1
  434. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.d.ts.map +0 -1
  435. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.js.map +0 -1
  436. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.stage.d.ts.map +0 -1
  437. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.stage.js.map +0 -1
  438. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.test.d.ts +0 -2
  439. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.test.d.ts.map +0 -1
  440. package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.test.js +0 -396
  441. package/dist/server/modules/translation-pipeline/stages/text-expander/TextExpander.interface.d.ts.map +0 -1
  442. package/dist/server/modules/translation-pipeline/stages/text-expander/TextExpander.interface.js.map +0 -1
  443. package/dist/server/modules/translation-pipeline/stages/text-expander/index.d.ts.map +0 -1
  444. package/dist/server/modules/translation-pipeline/stages/text-expander/index.js.map +0 -1
  445. package/dist/server/modules/translation-pipeline/stages/translation/Translation.stage.d.ts.map +0 -1
  446. package/dist/server/modules/translation-pipeline/stages/translation/Translation.stage.js.map +0 -1
  447. package/dist/server/modules/translation-pipeline/stages/translation/index.d.ts.map +0 -1
  448. package/dist/server/modules/translation-pipeline/stages/translation/index.js.map +0 -1
  449. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.d.ts.map +0 -1
  450. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.js.map +0 -1
  451. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.stage.d.ts.map +0 -1
  452. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.stage.js.map +0 -1
  453. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.test.d.ts +0 -2
  454. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.test.d.ts.map +0 -1
  455. package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.test.js +0 -110
  456. package/dist/server/modules/translation-pipeline/stages/translation-applicator/index.d.ts.map +0 -1
  457. package/dist/server/modules/translation-pipeline/stages/translation-applicator/index.js.map +0 -1
  458. package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.d.ts.map +0 -1
  459. package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.js.map +0 -1
  460. package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.test.d.ts +0 -2
  461. package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.test.d.ts.map +0 -1
  462. package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.test.js +0 -36
  463. package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.d.ts.map +0 -1
  464. package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.js.map +0 -1
  465. package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.test.d.ts +0 -2
  466. package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.test.d.ts.map +0 -1
  467. package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.test.js +0 -77
  468. package/dist/server/modules/translation-pipeline/strategies/TranslationStrategy.interface.d.ts.map +0 -1
  469. package/dist/server/modules/translation-pipeline/strategies/TranslationStrategy.interface.js.map +0 -1
  470. package/dist/server/modules/translation-pipeline/strategies/index.d.ts.map +0 -1
  471. package/dist/server/modules/translation-pipeline/strategies/index.js.map +0 -1
  472. package/dist/server/modules/translation-pipeline/types/FieldChunk.d.ts.map +0 -1
  473. package/dist/server/modules/translation-pipeline/types/FieldChunk.js.map +0 -1
  474. package/dist/server/modules/translation-pipeline/types/Pipeline.d.ts.map +0 -1
  475. package/dist/server/modules/translation-pipeline/types/Pipeline.js.map +0 -1
  476. package/dist/server/modules/translation-pipeline/types/PipelineContext.d.ts.map +0 -1
  477. package/dist/server/modules/translation-pipeline/types/PipelineContext.js.map +0 -1
  478. package/dist/server/modules/translation-pipeline/types/TextChunk.d.ts.map +0 -1
  479. package/dist/server/modules/translation-pipeline/types/TextChunk.js.map +0 -1
  480. package/dist/server/modules/translation-pipeline/types/index.d.ts.map +0 -1
  481. package/dist/server/modules/translation-pipeline/types/index.js.map +0 -1
  482. package/dist/server/modules/translation-providers/OpenAITranslation.provider.d.ts.map +0 -1
  483. package/dist/server/modules/translation-providers/OpenAITranslation.provider.js.map +0 -1
  484. package/dist/server/modules/translation-providers/OpenAITranslation.provider.test.d.ts +0 -2
  485. package/dist/server/modules/translation-providers/OpenAITranslation.provider.test.d.ts.map +0 -1
  486. package/dist/server/modules/translation-providers/OpenAITranslation.provider.test.js +0 -214
  487. package/dist/server/modules/translation-providers/TranslationProvider.interface.d.ts.map +0 -1
  488. package/dist/server/modules/translation-providers/TranslationProvider.interface.js.map +0 -1
  489. package/dist/server/modules/translation-providers/index.d.ts.map +0 -1
  490. package/dist/server/modules/translation-providers/index.js.map +0 -1
  491. package/dist/server/shared/access/AnyAccessGuard.d.ts.map +0 -1
  492. package/dist/server/shared/access/AnyAccessGuard.js.map +0 -1
  493. package/dist/server/shared/access/handler.d.ts.map +0 -1
  494. package/dist/server/shared/access/handler.js.map +0 -1
  495. package/dist/server/shared/access/index.d.ts.map +0 -1
  496. package/dist/server/shared/access/index.js.map +0 -1
  497. package/dist/server/shared/access/types.d.ts.map +0 -1
  498. package/dist/server/shared/access/types.js.map +0 -1
  499. package/dist/server/shared/field-config/getFieldConfig.d.ts.map +0 -1
  500. package/dist/server/shared/field-config/getFieldConfig.js.map +0 -1
  501. package/dist/server/shared/field-config/getFieldConfig.test.d.ts +0 -2
  502. package/dist/server/shared/field-config/getFieldConfig.test.d.ts.map +0 -1
  503. package/dist/server/shared/field-config/getFieldConfig.test.js +0 -74
  504. package/dist/server/shared/field-config/index.d.ts.map +0 -1
  505. package/dist/server/shared/field-config/index.js.map +0 -1
  506. package/dist/server/shared/field-config/types.d.ts.map +0 -1
  507. package/dist/server/shared/field-config/types.js.map +0 -1
  508. package/dist/server/shared/guards/collection-guards.d.ts.map +0 -1
  509. package/dist/server/shared/guards/collection-guards.js.map +0 -1
  510. package/dist/server/shared/guards/field-guards.d.ts.map +0 -1
  511. package/dist/server/shared/guards/field-guards.js.map +0 -1
  512. package/dist/server/shared/guards/field-guards.test.d.ts +0 -2
  513. package/dist/server/shared/guards/field-guards.test.d.ts.map +0 -1
  514. package/dist/server/shared/guards/field-guards.test.js +0 -166
  515. package/dist/server/shared/guards/index.d.ts.map +0 -1
  516. package/dist/server/shared/guards/index.js.map +0 -1
  517. package/dist/server/shared/http/ServerResponse.d.ts.map +0 -1
  518. package/dist/server/shared/http/ServerResponse.js.map +0 -1
  519. package/dist/server/shared/http/ServerResponse.test.d.ts +0 -2
  520. package/dist/server/shared/http/ServerResponse.test.d.ts.map +0 -1
  521. package/dist/server/shared/http/ServerResponse.test.js +0 -161
  522. package/dist/server/shared/http/index.d.ts.map +0 -1
  523. package/dist/server/shared/http/index.js.map +0 -1
  524. package/dist/server/shared/http/withAccessCheck.d.ts.map +0 -1
  525. package/dist/server/shared/http/withAccessCheck.js.map +0 -1
  526. package/dist/server/shared/http/withAccessCheck.test.d.ts +0 -2
  527. package/dist/server/shared/http/withAccessCheck.test.d.ts.map +0 -1
  528. package/dist/server/shared/http/withAccessCheck.test.js +0 -46
  529. package/dist/server/shared/http/withErrorHandler.d.ts.map +0 -1
  530. package/dist/server/shared/http/withErrorHandler.js.map +0 -1
  531. package/dist/server/shared/http/withErrorHandler.test.d.ts +0 -2
  532. package/dist/server/shared/http/withErrorHandler.test.d.ts.map +0 -1
  533. package/dist/server/shared/http/withErrorHandler.test.js +0 -69
  534. package/dist/server/shared/index.d.ts.map +0 -1
  535. package/dist/server/shared/index.js.map +0 -1
  536. package/dist/server/shared/lexical/collectTextNodes.d.ts.map +0 -1
  537. package/dist/server/shared/lexical/collectTextNodes.js.map +0 -1
  538. package/dist/server/shared/lexical/collectTextNodes.test.d.ts +0 -2
  539. package/dist/server/shared/lexical/collectTextNodes.test.d.ts.map +0 -1
  540. package/dist/server/shared/lexical/collectTextNodes.test.js +0 -120
  541. package/dist/server/shared/lexical/guards.d.ts.map +0 -1
  542. package/dist/server/shared/lexical/guards.js.map +0 -1
  543. package/dist/server/shared/lexical/guards.test.d.ts +0 -2
  544. package/dist/server/shared/lexical/guards.test.d.ts.map +0 -1
  545. package/dist/server/shared/lexical/guards.test.js +0 -160
  546. package/dist/server/shared/lexical/index.d.ts.map +0 -1
  547. package/dist/server/shared/lexical/index.js.map +0 -1
  548. package/dist/server/shared/lexical/isEmptyRichText.d.ts.map +0 -1
  549. package/dist/server/shared/lexical/isEmptyRichText.js.map +0 -1
  550. package/dist/server/shared/lexical/isEmptyRichText.test.d.ts +0 -2
  551. package/dist/server/shared/lexical/isEmptyRichText.test.d.ts.map +0 -1
  552. package/dist/server/shared/lexical/isEmptyRichText.test.js +0 -251
  553. package/dist/server/shared/lexical/traverseLexicalTree.d.ts.map +0 -1
  554. package/dist/server/shared/lexical/traverseLexicalTree.js.map +0 -1
  555. package/dist/server/shared/lexical/traverseLexicalTree.test.d.ts +0 -2
  556. package/dist/server/shared/lexical/traverseLexicalTree.test.d.ts.map +0 -1
  557. package/dist/server/shared/lexical/traverseLexicalTree.test.js +0 -112
  558. package/dist/server/shared/lexical/types.d.ts.map +0 -1
  559. package/dist/server/shared/lexical/types.js.map +0 -1
  560. package/dist/server/shared/utils/LazyMap.d.ts.map +0 -1
  561. package/dist/server/shared/utils/LazyMap.js.map +0 -1
  562. package/dist/server/shared/utils/LazyMap.test.d.ts +0 -2
  563. package/dist/server/shared/utils/LazyMap.test.d.ts.map +0 -1
  564. package/dist/server/shared/utils/LazyMap.test.js +0 -262
  565. package/dist/server/shared/utils/filterLocalizedFields.d.ts.map +0 -1
  566. package/dist/server/shared/utils/filterLocalizedFields.js.map +0 -1
  567. package/dist/server/shared/utils/filterLocalizedFields.test.d.ts +0 -2
  568. package/dist/server/shared/utils/filterLocalizedFields.test.d.ts.map +0 -1
  569. package/dist/server/shared/utils/filterLocalizedFields.test.js +0 -338
  570. package/dist/server/shared/utils/getByPath.d.ts.map +0 -1
  571. package/dist/server/shared/utils/getByPath.js.map +0 -1
  572. package/dist/server/shared/utils/getByPath.test.d.ts +0 -2
  573. package/dist/server/shared/utils/getByPath.test.d.ts.map +0 -1
  574. package/dist/server/shared/utils/getByPath.test.js +0 -33
  575. package/dist/server/shared/utils/index.d.ts.map +0 -1
  576. package/dist/server/shared/utils/index.js.map +0 -1
  577. package/dist/server/shared/utils/isEmpty.d.ts.map +0 -1
  578. package/dist/server/shared/utils/isEmpty.js.map +0 -1
  579. package/dist/server/shared/utils/isEmpty.test.d.ts +0 -2
  580. package/dist/server/shared/utils/isEmpty.test.d.ts.map +0 -1
  581. package/dist/server/shared/utils/isEmpty.test.js +0 -60
  582. package/dist/server/shared/utils/isObject.d.ts.map +0 -1
  583. package/dist/server/shared/utils/isObject.js.map +0 -1
  584. package/dist/server/shared/utils/isObject.test.d.ts +0 -2
  585. package/dist/server/shared/utils/isObject.test.d.ts.map +0 -1
  586. package/dist/server/shared/utils/isObject.test.js +0 -57
  587. package/dist/server/shared/utils/normalizePath.d.ts.map +0 -1
  588. package/dist/server/shared/utils/normalizePath.js.map +0 -1
  589. package/dist/server/shared/utils/normalizePath.test.d.ts +0 -2
  590. package/dist/server/shared/utils/normalizePath.test.d.ts.map +0 -1
  591. package/dist/server/shared/utils/normalizePath.test.js +0 -33
  592. package/dist/server/shared/utils/pipe.d.ts.map +0 -1
  593. package/dist/server/shared/utils/pipe.js.map +0 -1
  594. package/dist/server/shared/utils/pipe.test.d.ts +0 -2
  595. package/dist/server/shared/utils/pipe.test.d.ts.map +0 -1
  596. package/dist/server/shared/utils/pipe.test.js +0 -55
  597. package/dist/server/shared/utils/setByPath.d.ts.map +0 -1
  598. package/dist/server/shared/utils/setByPath.js.map +0 -1
  599. package/dist/server/shared/utils/setByPath.test.d.ts +0 -2
  600. package/dist/server/shared/utils/setByPath.test.d.ts.map +0 -1
  601. package/dist/server/shared/utils/setByPath.test.js +0 -46
  602. package/dist/types/AccessGuard.d.ts.map +0 -1
  603. package/dist/types/AccessGuard.js.map +0 -1
  604. package/dist/types/index.d.ts.map +0 -1
  605. package/dist/types/index.js.map +0 -1
  606. package/dist/vitest-env.d.js.map +0 -1
@@ -1,55 +0,0 @@
1
- 'use client';
2
- import { toast, useLocale } from '@payloadcms/ui';
3
- import { useEffect, useMemo } from 'react';
4
- import { CompletedTranslationStatus, TranslationsApi } from '../../../entities/translation';
5
- import { OpenDocumentTranslationPopup } from '../../../features/open-document-translation-popup';
6
- import { DocumentTranslationForm, FORM_FIELDS } from '../../../features/translate-document-form';
7
- import { DocumentTranslationFormModel } from '../../../features/translate-document-form/index.client';
8
- import { handleFormError } from '../../../shared/lib/forms/handle-form-error';
9
- import { useCollectionDocumentUrlParams } from '../../../shared/lib/payload/hooks/useCollectionDocumentUrlParams';
10
- import { DocumentTranslationProgressFailed } from '../../../features/document-translation-progress-failed';
11
- import { DocumentTranslationProgressRunning } from '../../../features/document-translation-progress-running';
12
- import { DocumentTranslationProgressPending } from '../../../features/document-translation-progress-pending';
13
- const TranslateDocument = ({ hasDrafts }) => {
14
- const locale = useLocale();
15
- const params = useCollectionDocumentUrlParams();
16
- const queueTranslationApi = TranslationsApi.useQueueDocumentTranslation();
17
- const { data, error, isLoading } = TranslationsApi.useDocumentTranslation(params);
18
- useEffect(() => {
19
- if (error) {
20
- toast.error(error.message);
21
- }
22
- }, [error]);
23
- const initialValues = useMemo(() => ({
24
- [FORM_FIELDS.SOURCE_LNG]: locale.code,
25
- [FORM_FIELDS.HIDDEN_COLLECTION_SLUG]: params.collection,
26
- [FORM_FIELDS.HIDDEN_COLLECTION_ID]: params.id,
27
- }), [locale.code, params.collection, params.id]);
28
- const { form } = DocumentTranslationFormModel.useForm({ initialValues });
29
- const handleSubmit = async (formData, onSuccess) => {
30
- try {
31
- await queueTranslationApi.mutateAsync({
32
- ...formData,
33
- collection_id: [formData[FORM_FIELDS.HIDDEN_COLLECTION_ID]],
34
- });
35
- onSuccess?.();
36
- }
37
- catch (e) {
38
- handleFormError(e, form);
39
- }
40
- };
41
- return (<>
42
- <OpenDocumentTranslationPopup isLoading={isLoading}>
43
- {({ close }) => (<>
44
- <h4>Document Translation</h4>
45
- <DocumentTranslationForm form={form} onSubmit={(data) => handleSubmit(data, close)} hasDrafts={hasDrafts}/>
46
- </>)}
47
- </OpenDocumentTranslationPopup>
48
-
49
- {data?.status === 'completed' && (<CompletedTranslationStatus sourceLocale={data.input.source_lng} targetLocale={data.input.target_lng} completed_at={data.completed_at}/>)}
50
- {data?.status === 'failed' && <DocumentTranslationProgressFailed data={data}/>}
51
- {data?.status === 'running' && <DocumentTranslationProgressRunning data={data}/>}
52
- {data?.status === 'pending' && <DocumentTranslationProgressPending data={data}/>}
53
- </>);
54
- };
55
- export default TranslateDocument;
@@ -1 +0,0 @@
1
- {"version":3,"file":"TranslateDocument.server.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/translate-document/ui/TranslateDocument.server.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iCAAiC,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AAElF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAA;AAKhE,KAAK,4BAA4B,GAAG,iCAAiC,GAAG;IACtE,UAAU,EAAE,gBAAgB,CAAA;IAC5B,MAAM,EAAE,WAAW,CAAA;CACpB,CAAA;AAED,iBAAe,uBAAuB,CAAC,KAAK,EAAE,4BAA4B,+CAYzE;AAED,eAAe,uBAAuB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/client/widgets/translate-document/ui/TranslateDocument.server.tsx"],"sourcesContent":["import { headers as getHeaders } from 'next/headers'\nimport type { BeforeDocumentControlsServerProps, CollectionConfig } from 'payload'\n\nimport type { AccessGuard } from '../../../../types/AccessGuard'\nimport { collectionHasDrafts } from '../../../../server/shared/guards'\n\nimport TranslateDocument from './TranslateDocument'\n\ntype TranslateDocumentServerProps = BeforeDocumentControlsServerProps & {\n collection: CollectionConfig\n access: AccessGuard\n}\n\nasync function TranslateDocumentServer(props: TranslateDocumentServerProps) {\n const headers = await getHeaders()\n const hasAccess = await props.access.check({\n req: { user: props.user, headers, payload: props.payload },\n })\n\n if (!hasAccess) return null\n if (!props.id) return null\n\n const hasDrafts = collectionHasDrafts(props.collection)\n\n return <TranslateDocument hasDrafts={hasDrafts} />\n}\n\nexport default TranslateDocumentServer\n"],"names":["headers","getHeaders","collectionHasDrafts","TranslateDocument","TranslateDocumentServer","props","hasAccess","access","check","req","user","payload","id","hasDrafts","collection"],"mappings":";AAAA,SAASA,WAAWC,UAAU,QAAQ,eAAc;AAIpD,SAASC,mBAAmB,QAAQ,mCAAkC;AAEtE,OAAOC,uBAAuB,sBAAqB;AAOnD,eAAeC,wBAAwBC,KAAmC;IACxE,MAAML,UAAU,MAAMC;IACtB,MAAMK,YAAY,MAAMD,MAAME,MAAM,CAACC,KAAK,CAAC;QACzCC,KAAK;YAAEC,MAAML,MAAMK,IAAI;YAAEV;YAASW,SAASN,MAAMM,OAAO;QAAC;IAC3D;IAEA,IAAI,CAACL,WAAW,OAAO;IACvB,IAAI,CAACD,MAAMO,EAAE,EAAE,OAAO;IAEtB,MAAMC,YAAYX,oBAAoBG,MAAMS,UAAU;IAEtD,qBAAO,KAACX;QAAkBU,WAAWA;;AACvC;AAEA,eAAeT,wBAAuB"}
@@ -1,16 +0,0 @@
1
- import { headers as getHeaders } from 'next/headers';
2
- import { collectionHasDrafts } from '../../../../server/shared/guards';
3
- import TranslateDocument from './TranslateDocument';
4
- async function TranslateDocumentServer(props) {
5
- const headers = await getHeaders();
6
- const hasAccess = await props.access.check({
7
- req: { user: props.user, headers, payload: props.payload },
8
- });
9
- if (!hasAccess)
10
- return null;
11
- if (!props.id)
12
- return null;
13
- const hasDrafts = collectionHasDrafts(props.collection);
14
- return <TranslateDocument hasDrafts={hasDrafts}/>;
15
- }
16
- export default TranslateDocumentServer;
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/client/widgets/translate-document/ui/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../../src/client/widgets/translate-document/ui/index.ts"],"sourcesContent":["export { default } from './TranslateDocument'\n"],"names":["default"],"mappings":"AAAA,SAASA,OAAO,QAAQ,sBAAqB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"field-config.d.ts","sourceRoot":"","sources":["../src/field-config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,SAAS,CAAA;AAEpC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAA;AAG1E,YAAY,EAAE,sBAAsB,EAAE,CAAA;AAEtC;;GAEG;AACH,YAAY,EAAE,sBAAsB,IAAI,uBAAuB,EAAE,CAAA;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,oBAAoB,CAAC,CAAC,SAAS,KAAK,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,sBAAsB,GAAG,CAAC,CAQjG;AAED;;GAEG;AACH,eAAO,MAAM,iBAAiB,6BAAuB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/field-config.ts"],"sourcesContent":["import type { Field } from 'payload'\n\nimport type { FieldTranslationConfig } from './server/shared/field-config'\nimport { TRANSLATE_KIT_CUSTOM_KEY } from './server/shared/field-config'\n\nexport type { FieldTranslationConfig }\n\n/**\n * @deprecated Use `FieldTranslationConfig` instead\n */\nexport type { FieldTranslationConfig as TranslateKitFieldConfig }\n\n/**\n * Apply translation configuration to a Payload field.\n *\n * Use this helper to configure how fields should be handled during translation.\n *\n * @param field - The Payload field to configure\n * @param config - Translation configuration options\n * @returns The field with translation configuration applied\n *\n * @example\n * ```ts\n * import { withFieldTranslation } from '@focus-reactive/payload-plugin-translator'\n *\n * // Exclude a field from translation\n * withFieldTranslation(\n * { name: 'sku', type: 'text', localized: true },\n * { exclude: true }\n * )\n * ```\n *\n * @example\n * ```ts\n * // In a collection definition\n * const Products: CollectionConfig = {\n * slug: 'products',\n * fields: [\n * { name: 'title', type: 'text', localized: true },\n * withFieldTranslation(\n * { name: 'sku', type: 'text', localized: true },\n * { exclude: true }\n * ),\n * ],\n * }\n * ```\n */\nexport function withFieldTranslation<T extends Field>(field: T, config: FieldTranslationConfig): T {\n return {\n ...field,\n custom: {\n ...(field.custom ?? {}),\n [TRANSLATE_KIT_CUSTOM_KEY]: config,\n },\n }\n}\n\n/**\n * @deprecated Use `withFieldTranslation` instead\n */\nexport const translateKitField = withFieldTranslation\n"],"names":["TRANSLATE_KIT_CUSTOM_KEY","withFieldTranslation","field","config","custom","translateKitField"],"mappings":"AAGA,SAASA,wBAAwB,QAAQ,+BAA8B;AASvE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCC,GACD,OAAO,SAASC,qBAAsCC,KAAQ,EAAEC,MAA8B;IAC5F,OAAO;QACL,GAAGD,KAAK;QACRE,QAAQ;YACN,GAAIF,MAAME,MAAM,IAAI,CAAC,CAAC;YACtB,CAACJ,yBAAyB,EAAEG;QAC9B;IACF;AACF;AAEA;;CAEC,GACD,OAAO,MAAME,oBAAoBJ,qBAAoB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAC3C,YAAY,EAAE,sBAAsB,EAAE,MAAM,UAAU,CAAA;AAGtD,YAAY,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAA;AAG1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,wCAAwC,CAAA;AAC7E,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,YAAY,GACb,MAAM,wCAAwC,CAAA;AAG/C,OAAO,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,8BAA8B,CAAA;AACxF,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAA;AAGhG,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAA;AACrD,YAAY,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAA;AAG5D,OAAO,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,MAAM,UAAU,CAAA;AAC3E,YAAY,EAAE,+BAA+B,EAAE,MAAM,UAAU,CAAA;AAC/D,OAAO,EAAE,yBAAyB,EAAE,MAAM,wCAAwC,CAAA;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAA;AAClD,YAAY,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAA"}
package/dist/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["// Main plugin\nexport { translatorPlugin } from './plugin'\nexport type { TranslatorPluginConfig } from './plugin'\n\n// Access control\nexport type { AccessGuard, AccessGuardRequest } from './types/AccessGuard'\n\n// Translation providers\nexport { createOpenAIProvider } from './server/modules/translation-providers'\nexport type {\n TranslationProvider,\n TranslationInput,\n TranslationOutput,\n OpenAIProviderConfig,\n DryRunConfig,\n} from './server/modules/translation-providers'\n\n// Task runners\nexport { createPayloadJobsRunner, createSyncRunner } from './server/modules/task-runner'\nexport type { TaskRunnerProvider, PayloadJobsRunnerOptions } from './server/modules/task-runner'\n\n// Field config\nexport { withFieldTranslation } from './field-config'\nexport type { FieldTranslationConfig } from './field-config'\n\n// Deprecated exports (for backwards compatibility)\nexport { createTranslatePlugin, TranslateCollectionPlugin } from './plugin'\nexport type { TranslateCollectionPluginConfig } from './plugin'\nexport { OpenAITranslationProvider } from './server/modules/translation-providers'\nexport { translateKitField } from './field-config'\nexport type { TranslateKitFieldConfig } from './field-config'\n"],"names":["translatorPlugin","createOpenAIProvider","createPayloadJobsRunner","createSyncRunner","withFieldTranslation","createTranslatePlugin","TranslateCollectionPlugin","OpenAITranslationProvider","translateKitField"],"mappings":"AAAA,cAAc;AACd,SAASA,gBAAgB,QAAQ,WAAU;AAM3C,wBAAwB;AACxB,SAASC,oBAAoB,QAAQ,yCAAwC;AAS7E,eAAe;AACf,SAASC,uBAAuB,EAAEC,gBAAgB,QAAQ,+BAA8B;AAGxF,eAAe;AACf,SAASC,oBAAoB,QAAQ,iBAAgB;AAGrD,mDAAmD;AACnD,SAASC,qBAAqB,EAAEC,yBAAyB,QAAQ,WAAU;AAE3E,SAASC,yBAAyB,QAAQ,yCAAwC;AAClF,SAASC,iBAAiB,QAAQ,iBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../src/plugin.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,EAAE,MAAM,SAAS,CAAA;AAKvD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,wCAAwC,CAAA;AACjF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAUtE,MAAM,MAAM,sBAAsB,GAAG;IACnC;;;;OAIG;IACH,WAAW,EAAE,gBAAgB,EAAE,CAAA;IAC/B;;;OAGG;IACH,mBAAmB,EAAE,mBAAmB,CAAA;IACxC;;;OAGG;IACH,MAAM,EAAE,kBAAkB,CAAA;IAC1B;;;;OAIG;IACH,MAAM,CAAC,EAAE,WAAW,CAAA;IACpB;;;;;OAKG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,uDAAuD;AACvD,MAAM,MAAM,+BAA+B,GAAG,sBAAsB,CAAA;AAEpE,0DAA0D;AAC1D,qBAAa,yBAAyB;IACxB,OAAO,CAAC,QAAQ,CAAC,YAAY;gBAAZ,YAAY,EAAE,sBAAsB;IAEjE,IAAI,IAAI,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC;CAqF5C;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,sBAAsB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,OAAO,CAAC,MAAM,CAAC,CAEpG;AAED,iDAAiD;AACjD,eAAO,MAAM,qBAAqB,yBAAmB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/plugin.ts"],"sourcesContent":["import type { CollectionConfig, Config } from 'payload'\n\nimport { CacheProviderExport } from './client/app/cache/CacheProvider.export'\nimport { BulkDocumentTranslationDashboard } from './client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export'\nimport { TranslateDocumentExport } from './client/widgets/translate-document'\nimport type { AccessGuard } from './types/AccessGuard'\nimport type { TranslationProvider } from './server/modules/translation-providers'\nimport type { TaskRunnerProvider } from './server/modules/task-runner'\nimport { TranslateDocumentHandler } from './server/features/translate-document'\nimport { createEnqueueRoute } from './server/features/enqueue-translation'\nimport { createRunRoute } from './server/features/run-translation'\nimport { createCancelRoute } from './server/features/cancel'\nimport { createCancelByCollectionRoute } from './server/features/cancel-by-collection'\nimport { createGetDocumentStatusRoute } from './server/features/get-document-status'\nimport { createGetCollectionStatusRoute } from './server/features/get-collection-status'\nimport { normalizePath, pipe } from './server/shared'\n\nexport type TranslatorPluginConfig = {\n /**\n * Original collection configs (same objects passed to buildConfig).\n * IMPORTANT: Must be the original collection objects, NOT sanitized configs from payload.collections.\n * Original schemas preserve `localized: true` on nested fields.\n */\n collections: CollectionConfig[]\n /**\n * Translation provider implementation (e.g., OpenAI, DeepL).\n * Handles the actual text translation.\n */\n translationProvider: TranslationProvider\n /**\n * Task runner backend for background task execution.\n * Use createPayloadJobsRunner() for Payload Jobs integration.\n */\n runner: TaskRunnerProvider\n /**\n * Access guard for translation endpoints.\n * Controls who can trigger translations via API.\n * @default undefined (no access restrictions)\n */\n access?: AccessGuard\n /**\n * Base path for all translation API endpoints.\n * Useful to avoid conflicts with existing routes.\n * @example '/my-translate' results in '/my-translate/enqueue', '/my-translate/run/:id', etc.\n * @default '/translate'\n */\n basePath?: string\n}\n\n/** @deprecated Use `TranslatorPluginConfig` instead */\nexport type TranslateCollectionPluginConfig = TranslatorPluginConfig\n\n/** @deprecated Use `translatorPlugin` function instead */\nexport class TranslateCollectionPlugin {\n constructor(private readonly pluginConfig: TranslatorPluginConfig) {}\n\n init(): (config: Config) => Promise<Config> {\n return async (config) => {\n const { access, translationProvider, basePath: rawBasePath = '/translate' } = this.pluginConfig\n\n // Build schema map from deep-cloned collections\n // Deep clone is required because Payload mutates the original collection objects,\n // removing `localized: true` from nested fields during sanitization\n const schemaMap = new Map(this.pluginConfig.collections.map((col) => [col.slug, structuredClone(col.fields)]))\n const collectionSlugs = new Set(schemaMap.keys())\n const basePath = normalizePath(rawBasePath)\n const translateHandler = new TranslateDocumentHandler(translationProvider, schemaMap)\n\n // Configure runner with handler callback\n const runnerConfigModifier = this.pluginConfig.runner.configure({\n handler: async (payload, input) => {\n await translateHandler.handle(payload, {\n collection: input.collection,\n collectionId: input.collectionId,\n sourceLng: input.sourceLng,\n targetLng: input.targetLng,\n strategy: input.strategy,\n publishOnTranslation: input.publishOnTranslation,\n })\n },\n collections: Array.from(collectionSlugs),\n })\n\n return pipe<Config>(\n // 1. Set up UI component provider import\n (cfg) => {\n if (!cfg.admin) cfg.admin = {}\n if (!cfg.admin.components) cfg.admin.components = {}\n if (!cfg.admin.components.providers) cfg.admin.components.providers = []\n\n cfg.admin.components.providers.push(new CacheProviderExport(basePath))\n return cfg\n },\n\n // 2. Set up UI component import\n (cfg) => {\n cfg.collections?.forEach((collection) => {\n if (!collectionSlugs.has(collection.slug)) {\n return\n }\n\n if (!collection.admin) collection.admin = {}\n if (!collection.admin.components) collection.admin.components = {}\n if (!collection.admin.components.edit) collection.admin.components.edit = {}\n if (!collection.admin.components.edit.beforeDocumentControls) {\n collection.admin.components.edit.beforeDocumentControls = []\n }\n if (!collection.admin.components.beforeListTable) {\n collection.admin.components.beforeListTable = []\n }\n\n collection.admin.components.edit.beforeDocumentControls.push(\n new TranslateDocumentExport(collection, access),\n )\n collection.admin.components.beforeListTable.push(new BulkDocumentTranslationDashboard(access))\n })\n return cfg\n },\n\n // 3. Runner configures jobs/tasks/autorun\n runnerConfigModifier,\n\n // 4. Add global endpoints\n (cfg) => {\n if (!cfg.endpoints) cfg.endpoints = []\n const collectionConfig = { availableCollections: collectionSlugs }\n cfg.endpoints.push(\n ...[\n createEnqueueRoute(this.pluginConfig.runner, collectionConfig, access, basePath),\n createRunRoute(this.pluginConfig.runner, access, basePath),\n createCancelRoute(this.pluginConfig.runner, access, basePath),\n createCancelByCollectionRoute(collectionConfig, this.pluginConfig.runner, access, basePath),\n createGetDocumentStatusRoute(collectionConfig, this.pluginConfig.runner, access, basePath),\n createGetCollectionStatusRoute(collectionConfig, this.pluginConfig.runner, access, basePath),\n ],\n )\n return cfg\n },\n )(config)\n }\n }\n}\n\n/**\n * Creates a translation plugin for Payload CMS collections.\n *\n * @example\n * ```ts\n * export default buildConfig({\n * plugins: [\n * translatorPlugin({\n * collections: [Posts, Pages],\n * translationProvider: createOpenAIProvider({ apiKey: process.env.OPENAI_API_KEY }),\n * runner: createPayloadJobsRunner(),\n * }),\n * ],\n * })\n * ```\n */\nexport function translatorPlugin(config: TranslatorPluginConfig): (config: Config) => Promise<Config> {\n return new TranslateCollectionPlugin(config).init()\n}\n\n/** @deprecated Use `translatorPlugin` instead */\nexport const createTranslatePlugin = translatorPlugin\n"],"names":["CacheProviderExport","BulkDocumentTranslationDashboard","TranslateDocumentExport","TranslateDocumentHandler","createEnqueueRoute","createRunRoute","createCancelRoute","createCancelByCollectionRoute","createGetDocumentStatusRoute","createGetCollectionStatusRoute","normalizePath","pipe","TranslateCollectionPlugin","pluginConfig","init","config","access","translationProvider","basePath","rawBasePath","schemaMap","Map","collections","map","col","slug","structuredClone","fields","collectionSlugs","Set","keys","translateHandler","runnerConfigModifier","runner","configure","handler","payload","input","handle","collection","collectionId","sourceLng","targetLng","strategy","publishOnTranslation","Array","from","cfg","admin","components","providers","push","forEach","has","edit","beforeDocumentControls","beforeListTable","endpoints","collectionConfig","availableCollections","translatorPlugin","createTranslatePlugin"],"mappings":"AAEA,SAASA,mBAAmB,QAAQ,0CAAyC;AAC7E,SAASC,gCAAgC,QAAQ,iFAAgF;AACjI,SAASC,uBAAuB,QAAQ,sCAAqC;AAI7E,SAASC,wBAAwB,QAAQ,uCAAsC;AAC/E,SAASC,kBAAkB,QAAQ,wCAAuC;AAC1E,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,iBAAiB,QAAQ,2BAA0B;AAC5D,SAASC,6BAA6B,QAAQ,yCAAwC;AACtF,SAASC,4BAA4B,QAAQ,wCAAuC;AACpF,SAASC,8BAA8B,QAAQ,0CAAyC;AACxF,SAASC,aAAa,EAAEC,IAAI,QAAQ,kBAAiB;AAqCrD,wDAAwD,GACxD,OAAO,MAAMC;;IACX,YAAY,AAAiBC,YAAoC,CAAE;aAAtCA,eAAAA;IAAuC;IAEpEC,OAA4C;QAC1C,OAAO,OAAOC;YACZ,MAAM,EAAEC,MAAM,EAAEC,mBAAmB,EAAEC,UAAUC,cAAc,YAAY,EAAE,GAAG,IAAI,CAACN,YAAY;YAE/F,gDAAgD;YAChD,kFAAkF;YAClF,oEAAoE;YACpE,MAAMO,YAAY,IAAIC,IAAI,IAAI,CAACR,YAAY,CAACS,WAAW,CAACC,GAAG,CAAC,CAACC,MAAQ;oBAACA,IAAIC,IAAI;oBAAEC,gBAAgBF,IAAIG,MAAM;iBAAE;YAC5G,MAAMC,kBAAkB,IAAIC,IAAIT,UAAUU,IAAI;YAC9C,MAAMZ,WAAWR,cAAcS;YAC/B,MAAMY,mBAAmB,IAAI5B,yBAAyBc,qBAAqBG;YAE3E,yCAAyC;YACzC,MAAMY,uBAAuB,IAAI,CAACnB,YAAY,CAACoB,MAAM,CAACC,SAAS,CAAC;gBAC9DC,SAAS,OAAOC,SAASC;oBACvB,MAAMN,iBAAiBO,MAAM,CAACF,SAAS;wBACrCG,YAAYF,MAAME,UAAU;wBAC5BC,cAAcH,MAAMG,YAAY;wBAChCC,WAAWJ,MAAMI,SAAS;wBAC1BC,WAAWL,MAAMK,SAAS;wBAC1BC,UAAUN,MAAMM,QAAQ;wBACxBC,sBAAsBP,MAAMO,oBAAoB;oBAClD;gBACF;gBACAtB,aAAauB,MAAMC,IAAI,CAAClB;YAC1B;YAEA,OAAOjB,KACL,yCAAyC;YACzC,CAACoC;gBACC,IAAI,CAACA,IAAIC,KAAK,EAAED,IAAIC,KAAK,GAAG,CAAC;gBAC7B,IAAI,CAACD,IAAIC,KAAK,CAACC,UAAU,EAAEF,IAAIC,KAAK,CAACC,UAAU,GAAG,CAAC;gBACnD,IAAI,CAACF,IAAIC,KAAK,CAACC,UAAU,CAACC,SAAS,EAAEH,IAAIC,KAAK,CAACC,UAAU,CAACC,SAAS,GAAG,EAAE;gBAExEH,IAAIC,KAAK,CAACC,UAAU,CAACC,SAAS,CAACC,IAAI,CAAC,IAAInD,oBAAoBkB;gBAC5D,OAAO6B;YACT,GAEA,gCAAgC;YAChC,CAACA;gBACCA,IAAIzB,WAAW,EAAE8B,QAAQ,CAACb;oBACxB,IAAI,CAACX,gBAAgByB,GAAG,CAACd,WAAWd,IAAI,GAAG;wBACzC;oBACF;oBAEA,IAAI,CAACc,WAAWS,KAAK,EAAET,WAAWS,KAAK,GAAG,CAAC;oBAC3C,IAAI,CAACT,WAAWS,KAAK,CAACC,UAAU,EAAEV,WAAWS,KAAK,CAACC,UAAU,GAAG,CAAC;oBACjE,IAAI,CAACV,WAAWS,KAAK,CAACC,UAAU,CAACK,IAAI,EAAEf,WAAWS,KAAK,CAACC,UAAU,CAACK,IAAI,GAAG,CAAC;oBAC3E,IAAI,CAACf,WAAWS,KAAK,CAACC,UAAU,CAACK,IAAI,CAACC,sBAAsB,EAAE;wBAC5DhB,WAAWS,KAAK,CAACC,UAAU,CAACK,IAAI,CAACC,sBAAsB,GAAG,EAAE;oBAC9D;oBACA,IAAI,CAAChB,WAAWS,KAAK,CAACC,UAAU,CAACO,eAAe,EAAE;wBAChDjB,WAAWS,KAAK,CAACC,UAAU,CAACO,eAAe,GAAG,EAAE;oBAClD;oBAEAjB,WAAWS,KAAK,CAACC,UAAU,CAACK,IAAI,CAACC,sBAAsB,CAACJ,IAAI,CAC1D,IAAIjD,wBAAwBqC,YAAYvB;oBAE1CuB,WAAWS,KAAK,CAACC,UAAU,CAACO,eAAe,CAACL,IAAI,CAAC,IAAIlD,iCAAiCe;gBACxF;gBACA,OAAO+B;YACT,GAEA,0CAA0C;YAC1Cf,sBAEA,0BAA0B;YAC1B,CAACe;gBACC,IAAI,CAACA,IAAIU,SAAS,EAAEV,IAAIU,SAAS,GAAG,EAAE;gBACtC,MAAMC,mBAAmB;oBAAEC,sBAAsB/B;gBAAgB;gBACjEmB,IAAIU,SAAS,CAACN,IAAI,IACb;oBACD/C,mBAAmB,IAAI,CAACS,YAAY,CAACoB,MAAM,EAAEyB,kBAAkB1C,QAAQE;oBACvEb,eAAe,IAAI,CAACQ,YAAY,CAACoB,MAAM,EAAEjB,QAAQE;oBACjDZ,kBAAkB,IAAI,CAACO,YAAY,CAACoB,MAAM,EAAEjB,QAAQE;oBACpDX,8BAA8BmD,kBAAkB,IAAI,CAAC7C,YAAY,CAACoB,MAAM,EAAEjB,QAAQE;oBAClFV,6BAA6BkD,kBAAkB,IAAI,CAAC7C,YAAY,CAACoB,MAAM,EAAEjB,QAAQE;oBACjFT,+BAA+BiD,kBAAkB,IAAI,CAAC7C,YAAY,CAACoB,MAAM,EAAEjB,QAAQE;iBACpF;gBAEH,OAAO6B;YACT,GACAhC;QACJ;IACF;AACF;AAEA;;;;;;;;;;;;;;;CAeC,GACD,OAAO,SAAS6C,iBAAiB7C,MAA8B;IAC7D,OAAO,IAAIH,0BAA0BG,QAAQD,IAAI;AACnD;AAEA,+CAA+C,GAC/C,OAAO,MAAM+C,wBAAwBD,iBAAgB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"collection-utils.d.ts","sourceRoot":"","sources":["../../../../src/server/features/_lib/collection-utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAEtD;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,oBAAoB,EAAE,GAAG,CAAC,cAAc,CAAC,GACxC,cAAc,GAAG,IAAI,CAEvB;AAED;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CAQ7G"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/_lib/collection-utils.ts"],"sourcesContent":["import type { CollectionSlug, Payload } from 'payload'\n\n/**\n * Checks if collection is available for translation\n */\nexport function isCollectionAvailable(\n collectionSlug: string,\n availableCollections: Set<CollectionSlug>,\n): CollectionSlug | null {\n return availableCollections.has(collectionSlug) ? collectionSlug : null\n}\n\n/**\n * Gets all document IDs from a collection (for select_all option)\n */\nexport async function getAllCollectionIds(payload: Payload, collectionSlug: CollectionSlug): Promise<string[]> {\n const result = await payload.find({\n collection: collectionSlug,\n pagination: false,\n depth: 0,\n select: { id: true },\n })\n return result.docs.map((doc) => String(doc.id))\n}\n"],"names":["isCollectionAvailable","collectionSlug","availableCollections","has","getAllCollectionIds","payload","result","find","collection","pagination","depth","select","id","docs","map","doc","String"],"mappings":"AAEA;;CAEC,GACD,OAAO,SAASA,sBACdC,cAAsB,EACtBC,oBAAyC;IAEzC,OAAOA,qBAAqBC,GAAG,CAACF,kBAAkBA,iBAAiB;AACrE;AAEA;;CAEC,GACD,OAAO,eAAeG,oBAAoBC,OAAgB,EAAEJ,cAA8B;IACxF,MAAMK,SAAS,MAAMD,QAAQE,IAAI,CAAC;QAChCC,YAAYP;QACZQ,YAAY;QACZC,OAAO;QACPC,QAAQ;YAAEC,IAAI;QAAK;IACrB;IACA,OAAON,OAAOO,IAAI,CAACC,GAAG,CAAC,CAACC,MAAQC,OAAOD,IAAIH,EAAE;AAC/C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/features/_lib/index.ts"],"names":[],"mappings":"AAAA,cAAc,oBAAoB,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/_lib/index.ts"],"sourcesContent":["export * from './collection-utils'\n"],"names":[],"mappings":"AAAA,cAAc,qBAAoB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAInE;;GAEG;AACH,qBAAa,aAAa;IACZ,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBAAjB,iBAAiB,EAAE,kBAAkB;IAE5D,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CAUrD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel/handler.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport { ServerResponse } from '../../shared'\nimport type { TaskRunnerProvider } from '../../modules/task-runner'\n\nimport { CancelInputSchema } from './model'\n\n/**\n * Cancels and deletes translation tasks by IDs\n */\nexport class CancelHandler {\n constructor(private readonly taskRunnerFactory: TaskRunnerProvider) {}\n\n async handle(req: PayloadRequest): Promise<Response> {\n const validationResult = CancelInputSchema.safeParse(await req.json?.())\n if (validationResult.error) return ServerResponse.validationError(validationResult.error.errors)\n\n const { ids } = validationResult.data\n const runner = this.taskRunnerFactory.create(req.payload)\n await runner.cancel(ids)\n\n return ServerResponse.noContent()\n }\n}\n"],"names":["ServerResponse","CancelInputSchema","CancelHandler","taskRunnerFactory","handle","req","validationResult","safeParse","json","error","validationError","errors","ids","data","runner","create","payload","cancel","noContent"],"mappings":"AAEA,SAASA,cAAc,QAAQ,eAAc;AAG7C,SAASC,iBAAiB,QAAQ,UAAS;AAE3C;;CAEC,GACD,OAAO,MAAMC;;IACX,YAAY,AAAiBC,iBAAqC,CAAE;aAAvCA,oBAAAA;IAAwC;IAErE,MAAMC,OAAOC,GAAmB,EAAqB;QACnD,MAAMC,mBAAmBL,kBAAkBM,SAAS,CAAC,MAAMF,IAAIG,IAAI;QACnE,IAAIF,iBAAiBG,KAAK,EAAE,OAAOT,eAAeU,eAAe,CAACJ,iBAAiBG,KAAK,CAACE,MAAM;QAE/F,MAAM,EAAEC,GAAG,EAAE,GAAGN,iBAAiBO,IAAI;QACrC,MAAMC,SAAS,IAAI,CAACX,iBAAiB,CAACY,MAAM,CAACV,IAAIW,OAAO;QACxD,MAAMF,OAAOG,MAAM,CAACL;QAEpB,OAAOZ,eAAekB,SAAS;IACjC;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=handler.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.test.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel/handler.test.ts"],"names":[],"mappings":""}
@@ -1,63 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { CancelHandler } from './handler';
3
- describe('CancelHandler', () => {
4
- let handler;
5
- let mockTaskRunner;
6
- let mockTaskRunnerFactory;
7
- const createMockRequest = (body) => ({
8
- payload: {},
9
- json: vi.fn().mockResolvedValue(body),
10
- });
11
- beforeEach(() => {
12
- mockTaskRunner = {
13
- enqueue: vi.fn(),
14
- cancel: vi.fn().mockResolvedValue(undefined),
15
- run: vi.fn(),
16
- findByCollection: vi.fn(),
17
- };
18
- mockTaskRunnerFactory = {
19
- create: vi.fn().mockReturnValue(mockTaskRunner),
20
- configure: vi.fn(),
21
- };
22
- handler = new CancelHandler(mockTaskRunnerFactory);
23
- });
24
- describe('validation', () => {
25
- it('returns validation error for missing ids', async () => {
26
- const req = createMockRequest({});
27
- const response = await handler.handle(req);
28
- expect(response.status).toBe(400);
29
- const body = await response.json();
30
- expect(body.message).toBe('Validation error');
31
- });
32
- it('returns validation error for non-array ids', async () => {
33
- const req = createMockRequest({ ids: 'not-an-array' });
34
- const response = await handler.handle(req);
35
- expect(response.status).toBe(400);
36
- });
37
- it('returns validation error for empty ids array', async () => {
38
- const req = createMockRequest({ ids: [] });
39
- const response = await handler.handle(req);
40
- expect(response.status).toBe(400);
41
- });
42
- });
43
- describe('success responses', () => {
44
- it('cancels tasks and returns 204', async () => {
45
- const req = createMockRequest({ ids: ['task-1', 'task-2'] });
46
- const response = await handler.handle(req);
47
- expect(response.status).toBe(204);
48
- expect(response.body).toBeNull();
49
- });
50
- it('calls runner.cancel with provided ids', async () => {
51
- const req = createMockRequest({ ids: ['task-1', 'task-2', 'task-3'] });
52
- await handler.handle(req);
53
- expect(mockTaskRunner.cancel).toHaveBeenCalledWith(['task-1', 'task-2', 'task-3']);
54
- });
55
- it('creates task runner with request payload', async () => {
56
- const mockPayload = { collections: {} };
57
- const req = createMockRequest({ ids: ['task-1'] });
58
- req.payload = mockPayload;
59
- await handler.handle(req);
60
- expect(mockTaskRunnerFactory.create).toHaveBeenCalledWith(mockPayload);
61
- });
62
- });
63
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel/index.ts"],"sourcesContent":["export { createCancelRoute } from './route'\n"],"names":["createCancelRoute"],"mappings":"AAAA,SAASA,iBAAiB,QAAQ,UAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAEvB;;GAEG;AACH,eAAO,MAAM,iBAAiB;;;;;;EAE5B,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel/model.ts"],"sourcesContent":["import { z } from 'zod'\n\n/**\n * Input validation schema for batch cancel\n */\nexport const CancelInputSchema = z.object({\n ids: z.array(z.string().nonempty()).min(1),\n})\n"],"names":["z","CancelInputSchema","object","ids","array","string","nonempty","min"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAEvB;;CAEC,GACD,OAAO,MAAMC,oBAAoBD,EAAEE,MAAM,CAAC;IACxCC,KAAKH,EAAEI,KAAK,CAACJ,EAAEK,MAAM,GAAGC,QAAQ,IAAIC,GAAG,CAAC;AAC1C,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAInE;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,SAAe,GACtB,QAAQ,CAQV"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel/route.ts"],"sourcesContent":["import type { Endpoint } from 'payload'\n\nimport { withErrorHandler, withAccessCheck } from '../../shared'\nimport type { AccessGuard } from '../../shared'\nimport type { TaskRunnerProvider } from '../../modules/task-runner'\n\nimport { CancelHandler } from './handler'\n\n/**\n * Creates the batch cancel endpoint\n */\nexport function createCancelRoute(\n taskRunnerFactory: TaskRunnerProvider,\n access?: AccessGuard,\n basePath = '/translate',\n): Endpoint {\n const handler = new CancelHandler(taskRunnerFactory)\n\n return {\n path: `${basePath}/cancel`,\n method: 'delete',\n handler: withAccessCheck(withErrorHandler(handler.handle.bind(handler)), access),\n }\n}\n"],"names":["withErrorHandler","withAccessCheck","CancelHandler","createCancelRoute","taskRunnerFactory","access","basePath","handler","path","method","handle","bind"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,eAAe,QAAQ,eAAc;AAIhE,SAASC,aAAa,QAAQ,YAAW;AAEzC;;CAEC,GACD,OAAO,SAASC,kBACdC,iBAAqC,EACrCC,MAAoB,EACpBC,WAAW,YAAY;IAEvB,MAAMC,UAAU,IAAIL,cAAcE;IAElC,OAAO;QACLI,MAAM,GAAGF,SAAS,OAAO,CAAC;QAC1BG,QAAQ;QACRF,SAASN,gBAAgBD,iBAAiBO,QAAQG,MAAM,CAACC,IAAI,CAACJ,WAAWF;IAC3E;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel-by-collection/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,SAAS,CAAA;AAE1E;;GAEG;AACH,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,kBAAkB;IAGlD,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CAqBrD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel-by-collection/handler.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport { ServerResponse } from '../../shared'\nimport type { TaskRunnerProvider } from '../../modules/task-runner'\nimport { isCollectionAvailable } from '../_lib/collection-utils'\n\nimport { CancelByCollectionInputSchema, type CancelConfig } from './model'\n\n/**\n * Cancels all pending translation tasks for a collection\n */\nexport class CancelByCollectionHandler {\n constructor(\n private readonly config: CancelConfig,\n private readonly taskRunnerFactory: TaskRunnerProvider,\n ) {}\n\n async handle(req: PayloadRequest): Promise<Response> {\n const validationResult = CancelByCollectionInputSchema.safeParse(req.routeParams)\n if (validationResult.error) return ServerResponse.validationError(validationResult.error.errors)\n\n const collectionSlug = isCollectionAvailable(\n validationResult.data.collection_slug,\n this.config.availableCollections,\n )\n if (!collectionSlug) return ServerResponse.badRequest('Collection not available for translation')\n\n const runner = this.taskRunnerFactory.create(req.payload)\n const tasks = await runner.findByCollection(collectionSlug)\n if (tasks.length === 0) return ServerResponse.noContent()\n\n const pendingTaskIds = tasks.filter((task) => task.status === 'pending').map((task) => task.id)\n if (pendingTaskIds.length === 0) return ServerResponse.noContent()\n\n await runner.cancel(pendingTaskIds)\n\n return ServerResponse.noContent()\n }\n}\n"],"names":["ServerResponse","isCollectionAvailable","CancelByCollectionInputSchema","CancelByCollectionHandler","config","taskRunnerFactory","handle","req","validationResult","safeParse","routeParams","error","validationError","errors","collectionSlug","data","collection_slug","availableCollections","badRequest","runner","create","payload","tasks","findByCollection","length","noContent","pendingTaskIds","filter","task","status","map","id","cancel"],"mappings":"AAEA,SAASA,cAAc,QAAQ,eAAc;AAE7C,SAASC,qBAAqB,QAAQ,2BAA0B;AAEhE,SAASC,6BAA6B,QAA2B,UAAS;AAE1E;;CAEC,GACD,OAAO,MAAMC;;;IACX,YACE,AAAiBC,MAAoB,EACrC,AAAiBC,iBAAqC,CACtD;aAFiBD,SAAAA;aACAC,oBAAAA;IAChB;IAEH,MAAMC,OAAOC,GAAmB,EAAqB;QACnD,MAAMC,mBAAmBN,8BAA8BO,SAAS,CAACF,IAAIG,WAAW;QAChF,IAAIF,iBAAiBG,KAAK,EAAE,OAAOX,eAAeY,eAAe,CAACJ,iBAAiBG,KAAK,CAACE,MAAM;QAE/F,MAAMC,iBAAiBb,sBACrBO,iBAAiBO,IAAI,CAACC,eAAe,EACrC,IAAI,CAACZ,MAAM,CAACa,oBAAoB;QAElC,IAAI,CAACH,gBAAgB,OAAOd,eAAekB,UAAU,CAAC;QAEtD,MAAMC,SAAS,IAAI,CAACd,iBAAiB,CAACe,MAAM,CAACb,IAAIc,OAAO;QACxD,MAAMC,QAAQ,MAAMH,OAAOI,gBAAgB,CAACT;QAC5C,IAAIQ,MAAME,MAAM,KAAK,GAAG,OAAOxB,eAAeyB,SAAS;QAEvD,MAAMC,iBAAiBJ,MAAMK,MAAM,CAAC,CAACC,OAASA,KAAKC,MAAM,KAAK,WAAWC,GAAG,CAAC,CAACF,OAASA,KAAKG,EAAE;QAC9F,IAAIL,eAAeF,MAAM,KAAK,GAAG,OAAOxB,eAAeyB,SAAS;QAEhE,MAAMN,OAAOa,MAAM,CAACN;QAEpB,OAAO1B,eAAeyB,SAAS;IACjC;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=handler.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.test.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel-by-collection/handler.test.ts"],"names":[],"mappings":""}
@@ -1,126 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { CancelByCollectionHandler } from './handler';
3
- describe('CancelByCollectionHandler', () => {
4
- let handler;
5
- let mockTaskRunner;
6
- let mockTaskRunnerFactory;
7
- let config;
8
- const createMockTask = (overrides = {}) => ({
9
- id: 'task-123',
10
- status: 'pending',
11
- input: {
12
- collectionSlug: 'posts',
13
- collectionId: 'doc-123',
14
- sourceLng: 'en',
15
- targetLng: 'de',
16
- strategy: 'overwrite',
17
- publishOnTranslation: false,
18
- },
19
- createdAt: '2024-01-01T00:00:00Z',
20
- updatedAt: '2024-01-01T01:00:00Z',
21
- cancelled: false,
22
- ...overrides,
23
- });
24
- const createMockRequest = (params = {}) => ({
25
- payload: {},
26
- routeParams: params,
27
- });
28
- beforeEach(() => {
29
- mockTaskRunner = {
30
- enqueue: vi.fn(),
31
- cancel: vi.fn().mockResolvedValue(undefined),
32
- run: vi.fn(),
33
- findByCollection: vi.fn().mockResolvedValue([]),
34
- };
35
- mockTaskRunnerFactory = {
36
- create: vi.fn().mockReturnValue(mockTaskRunner),
37
- configure: vi.fn(),
38
- };
39
- config = {
40
- availableCollections: new Set(['posts', 'pages']),
41
- };
42
- handler = new CancelByCollectionHandler(config, mockTaskRunnerFactory);
43
- });
44
- describe('validation', () => {
45
- it('returns validation error for missing collection_slug', async () => {
46
- const req = createMockRequest({});
47
- const response = await handler.handle(req);
48
- expect(response.status).toBe(400);
49
- const body = await response.json();
50
- expect(body.message).toBe('Validation error');
51
- });
52
- it('returns validation error for empty collection_slug', async () => {
53
- const req = createMockRequest({ collection_slug: '' });
54
- const response = await handler.handle(req);
55
- expect(response.status).toBe(400);
56
- });
57
- });
58
- describe('collection availability', () => {
59
- it('returns bad request for unavailable collection', async () => {
60
- const req = createMockRequest({ collection_slug: 'users' });
61
- const response = await handler.handle(req);
62
- expect(response.status).toBe(400);
63
- const body = await response.json();
64
- expect(body.message).toBe('Collection not available for translation');
65
- });
66
- });
67
- describe('no tasks to cancel', () => {
68
- it('returns 204 when no tasks exist for collection', async () => {
69
- ;
70
- mockTaskRunner.findByCollection.mockResolvedValue([]);
71
- const req = createMockRequest({ collection_slug: 'posts' });
72
- const response = await handler.handle(req);
73
- expect(response.status).toBe(204);
74
- expect(response.body).toBeNull();
75
- });
76
- it('returns 204 when all tasks are already completed', async () => {
77
- const tasks = [
78
- createMockTask({ id: 'task-1', status: 'completed' }),
79
- createMockTask({ id: 'task-2', status: 'failed' }),
80
- ];
81
- mockTaskRunner.findByCollection.mockResolvedValue(tasks);
82
- const req = createMockRequest({ collection_slug: 'posts' });
83
- const response = await handler.handle(req);
84
- expect(response.status).toBe(204);
85
- expect(mockTaskRunner.cancel).not.toHaveBeenCalled();
86
- });
87
- it('returns 204 when all tasks are running (not pending)', async () => {
88
- const tasks = [
89
- createMockTask({ id: 'task-1', status: 'running' }),
90
- createMockTask({ id: 'task-2', status: 'running' }),
91
- ];
92
- mockTaskRunner.findByCollection.mockResolvedValue(tasks);
93
- const req = createMockRequest({ collection_slug: 'posts' });
94
- const response = await handler.handle(req);
95
- expect(response.status).toBe(204);
96
- expect(mockTaskRunner.cancel).not.toHaveBeenCalled();
97
- });
98
- });
99
- describe('cancelling pending tasks', () => {
100
- it('cancels only pending tasks', async () => {
101
- const tasks = [
102
- createMockTask({ id: 'task-1', status: 'pending' }),
103
- createMockTask({ id: 'task-2', status: 'running' }),
104
- createMockTask({ id: 'task-3', status: 'pending' }),
105
- createMockTask({ id: 'task-4', status: 'completed' }),
106
- ];
107
- mockTaskRunner.findByCollection.mockResolvedValue(tasks);
108
- const req = createMockRequest({ collection_slug: 'posts' });
109
- const response = await handler.handle(req);
110
- expect(response.status).toBe(204);
111
- expect(mockTaskRunner.cancel).toHaveBeenCalledWith(['task-1', 'task-3']);
112
- });
113
- it('calls findByCollection with correct collection slug', async () => {
114
- const req = createMockRequest({ collection_slug: 'pages' });
115
- await handler.handle(req);
116
- expect(mockTaskRunner.findByCollection).toHaveBeenCalledWith('pages');
117
- });
118
- it('creates task runner with request payload', async () => {
119
- const mockPayload = { collections: {} };
120
- const req = createMockRequest({ collection_slug: 'posts' });
121
- req.payload = mockPayload;
122
- await handler.handle(req);
123
- expect(mockTaskRunnerFactory.create).toHaveBeenCalledWith(mockPayload);
124
- });
125
- });
126
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel-by-collection/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,SAAS,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel-by-collection/index.ts"],"sourcesContent":["export { createCancelByCollectionRoute } from './route'\n"],"names":["createCancelByCollectionRoute"],"mappings":"AAAA,SAASA,6BAA6B,QAAQ,UAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel-by-collection/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,6BAA6B;;;;;;EAExC,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,YAAY,GAAG;IACzB,oBAAoB,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;CAC1C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel-by-collection/model.ts"],"sourcesContent":["import { z } from 'zod'\nimport type { CollectionSlug } from 'payload'\n\n/**\n * Input validation schema\n */\nexport const CancelByCollectionInputSchema = z.object({\n collection_slug: z.string().nonempty(),\n})\n\n/**\n * Handler configuration\n */\nexport type CancelConfig = {\n availableCollections: Set<CollectionSlug>\n}\n"],"names":["z","CancelByCollectionInputSchema","object","collection_slug","string","nonempty"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAGvB;;CAEC,GACD,OAAO,MAAMC,gCAAgCD,EAAEE,MAAM,CAAC;IACpDC,iBAAiBH,EAAEI,MAAM,GAAGC,QAAQ;AACtC,GAAE"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../../src/server/features/cancel-by-collection/route.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAGvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAEnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAG3C;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,MAAM,EAAE,YAAY,EACpB,iBAAiB,EAAE,kBAAkB,EACrC,MAAM,CAAC,EAAE,WAAW,EACpB,QAAQ,SAAe,GACtB,QAAQ,CAQV"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/cancel-by-collection/route.ts"],"sourcesContent":["import type { Endpoint } from 'payload'\n\nimport { withErrorHandler, withAccessCheck } from '../../shared'\nimport type { AccessGuard } from '../../shared'\nimport type { TaskRunnerProvider } from '../../modules/task-runner'\n\nimport type { CancelConfig } from './model'\nimport { CancelByCollectionHandler } from './handler'\n\n/**\n * Creates the cancel by collection endpoint\n */\nexport function createCancelByCollectionRoute(\n config: CancelConfig,\n taskRunnerFactory: TaskRunnerProvider,\n access?: AccessGuard,\n basePath = '/translate',\n): Endpoint {\n const handler = new CancelByCollectionHandler(config, taskRunnerFactory)\n\n return {\n path: `${basePath}/cancel-by-collection/:collection_slug`,\n method: 'delete',\n handler: withAccessCheck(withErrorHandler(handler.handle.bind(handler)), access),\n }\n}\n"],"names":["withErrorHandler","withAccessCheck","CancelByCollectionHandler","createCancelByCollectionRoute","config","taskRunnerFactory","access","basePath","handler","path","method","handle","bind"],"mappings":"AAEA,SAASA,gBAAgB,EAAEC,eAAe,QAAQ,eAAc;AAKhE,SAASC,yBAAyB,QAAQ,YAAW;AAErD;;CAEC,GACD,OAAO,SAASC,8BACdC,MAAoB,EACpBC,iBAAqC,EACrCC,MAAoB,EACpBC,WAAW,YAAY;IAEvB,MAAMC,UAAU,IAAIN,0BAA0BE,QAAQC;IAEtD,OAAO;QACLI,MAAM,GAAGF,SAAS,sCAAsC,CAAC;QACzDG,QAAQ;QACRF,SAASP,gBAAgBD,iBAAiBQ,QAAQG,MAAM,CAACC,IAAI,CAACJ,WAAWF;IAC3E;AACF"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.d.ts","sourceRoot":"","sources":["../../../../src/server/features/enqueue-translation/handler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAG7C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAA;AAGnE,OAAO,EAAsB,KAAK,aAAa,EAAE,MAAM,SAAS,CAAA;AAEhE;;GAEG;AACH,qBAAa,yBAAyB;IAElC,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,iBAAiB;gBADjB,MAAM,EAAE,aAAa,EACrB,iBAAiB,EAAE,kBAAkB;IAGlD,MAAM,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,QAAQ,CAAC;CA0BrD"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/enqueue-translation/handler.ts"],"sourcesContent":["import type { PayloadRequest } from 'payload'\n\nimport { ServerResponse } from '../../shared'\nimport type { TaskRunnerProvider } from '../../modules/task-runner'\nimport { isCollectionAvailable, getAllCollectionIds } from '../_lib/collection-utils'\n\nimport { EnqueueInputSchema, type EnqueueConfig } from './model'\n\n/**\n * Enqueues translation tasks for documents\n */\nexport class EnqueueTranslationHandler {\n constructor(\n private readonly config: EnqueueConfig,\n private readonly taskRunnerFactory: TaskRunnerProvider,\n ) {}\n\n async handle(req: PayloadRequest): Promise<Response> {\n const validationResult = EnqueueInputSchema.safeParse(await req.json?.())\n if (validationResult.error) return ServerResponse.validationError(validationResult.error.errors)\n\n const { source_lng, target_lng, collection_slug, collection_id, select_all, strategy, publish_on_translation } =\n validationResult.data\n\n const collectionSlug = isCollectionAvailable(collection_slug, this.config.availableCollections)\n if (!collectionSlug) return ServerResponse.badRequest('Content of this collection is not available for translation')\n\n const collectionIds = select_all ? await getAllCollectionIds(req.payload, collectionSlug) : collection_id\n\n const runner = this.taskRunnerFactory.create(req.payload)\n const tasks = collectionIds.map((id) => ({\n collectionSlug,\n collectionId: id,\n sourceLng: source_lng,\n targetLng: target_lng,\n strategy: strategy,\n publishOnTranslation: publish_on_translation,\n }))\n\n await runner.enqueue(tasks)\n\n return ServerResponse.success({ success: true, queued: tasks.length })\n }\n}\n"],"names":["ServerResponse","isCollectionAvailable","getAllCollectionIds","EnqueueInputSchema","EnqueueTranslationHandler","config","taskRunnerFactory","handle","req","validationResult","safeParse","json","error","validationError","errors","source_lng","target_lng","collection_slug","collection_id","select_all","strategy","publish_on_translation","data","collectionSlug","availableCollections","badRequest","collectionIds","payload","runner","create","tasks","map","id","collectionId","sourceLng","targetLng","publishOnTranslation","enqueue","success","queued","length"],"mappings":"AAEA,SAASA,cAAc,QAAQ,eAAc;AAE7C,SAASC,qBAAqB,EAAEC,mBAAmB,QAAQ,2BAA0B;AAErF,SAASC,kBAAkB,QAA4B,UAAS;AAEhE;;CAEC,GACD,OAAO,MAAMC;;;IACX,YACE,AAAiBC,MAAqB,EACtC,AAAiBC,iBAAqC,CACtD;aAFiBD,SAAAA;aACAC,oBAAAA;IAChB;IAEH,MAAMC,OAAOC,GAAmB,EAAqB;QACnD,MAAMC,mBAAmBN,mBAAmBO,SAAS,CAAC,MAAMF,IAAIG,IAAI;QACpE,IAAIF,iBAAiBG,KAAK,EAAE,OAAOZ,eAAea,eAAe,CAACJ,iBAAiBG,KAAK,CAACE,MAAM;QAE/F,MAAM,EAAEC,UAAU,EAAEC,UAAU,EAAEC,eAAe,EAAEC,aAAa,EAAEC,UAAU,EAAEC,QAAQ,EAAEC,sBAAsB,EAAE,GAC5GZ,iBAAiBa,IAAI;QAEvB,MAAMC,iBAAiBtB,sBAAsBgB,iBAAiB,IAAI,CAACZ,MAAM,CAACmB,oBAAoB;QAC9F,IAAI,CAACD,gBAAgB,OAAOvB,eAAeyB,UAAU,CAAC;QAEtD,MAAMC,gBAAgBP,aAAa,MAAMjB,oBAAoBM,IAAImB,OAAO,EAAEJ,kBAAkBL;QAE5F,MAAMU,SAAS,IAAI,CAACtB,iBAAiB,CAACuB,MAAM,CAACrB,IAAImB,OAAO;QACxD,MAAMG,QAAQJ,cAAcK,GAAG,CAAC,CAACC,KAAQ,CAAA;gBACvCT;gBACAU,cAAcD;gBACdE,WAAWnB;gBACXoB,WAAWnB;gBACXI,UAAUA;gBACVgB,sBAAsBf;YACxB,CAAA;QAEA,MAAMO,OAAOS,OAAO,CAACP;QAErB,OAAO9B,eAAesC,OAAO,CAAC;YAAEA,SAAS;YAAMC,QAAQT,MAAMU,MAAM;QAAC;IACtE;AACF"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=handler.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"handler.test.d.ts","sourceRoot":"","sources":["../../../../src/server/features/enqueue-translation/handler.test.ts"],"names":[],"mappings":""}
@@ -1,115 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach } from 'vitest';
2
- import { EnqueueTranslationHandler } from './handler';
3
- // Mock collection-utils
4
- vi.mock('../_lib/collection-utils', () => ({
5
- isCollectionAvailable: vi.fn((slug, available) => (available.has(slug) ? slug : null)),
6
- getAllCollectionIds: vi.fn().mockResolvedValue(['doc-1', 'doc-2', 'doc-3']),
7
- }));
8
- describe('EnqueueTranslationHandler', () => {
9
- let handler;
10
- let mockTaskRunner;
11
- let mockTaskRunnerFactory;
12
- let config;
13
- const createMockRequest = (body) => ({
14
- payload: {},
15
- json: vi.fn().mockResolvedValue(body),
16
- });
17
- beforeEach(() => {
18
- vi.clearAllMocks();
19
- mockTaskRunner = {
20
- enqueue: vi.fn().mockResolvedValue(undefined),
21
- cancel: vi.fn(),
22
- run: vi.fn(),
23
- findByCollection: vi.fn(),
24
- };
25
- mockTaskRunnerFactory = {
26
- create: vi.fn().mockReturnValue(mockTaskRunner),
27
- configure: vi.fn(),
28
- };
29
- config = {
30
- availableCollections: new Set(['posts', 'pages']),
31
- };
32
- handler = new EnqueueTranslationHandler(config, mockTaskRunnerFactory);
33
- });
34
- describe('validation', () => {
35
- it('returns validation error for missing required fields', async () => {
36
- const req = createMockRequest({});
37
- const response = await handler.handle(req);
38
- expect(response.status).toBe(400);
39
- });
40
- it('returns validation error for missing source_lng', async () => {
41
- const req = createMockRequest({
42
- target_lng: 'de',
43
- collection_slug: 'posts',
44
- collection_id: ['doc-1'],
45
- });
46
- const response = await handler.handle(req);
47
- expect(response.status).toBe(400);
48
- });
49
- });
50
- describe('collection availability', () => {
51
- it('returns bad request for unavailable collection', async () => {
52
- const req = createMockRequest({
53
- source_lng: 'en',
54
- target_lng: 'de',
55
- collection_slug: 'users',
56
- collection_id: ['doc-1'],
57
- strategy: 'overwrite',
58
- });
59
- const response = await handler.handle(req);
60
- expect(response.status).toBe(400);
61
- const body = await response.json();
62
- expect(body.message).toContain('not available for translation');
63
- });
64
- });
65
- describe('success responses', () => {
66
- it('enqueues tasks for specific documents', async () => {
67
- const req = createMockRequest({
68
- source_lng: 'en',
69
- target_lng: 'de',
70
- collection_slug: 'posts',
71
- collection_id: ['doc-1', 'doc-2'],
72
- strategy: 'overwrite',
73
- });
74
- const response = await handler.handle(req);
75
- expect(response.status).toBe(200);
76
- const body = await response.json();
77
- expect(body.data).toEqual({ success: true, queued: 2 });
78
- });
79
- it('calls runner.enqueue with correct tasks', async () => {
80
- const req = createMockRequest({
81
- source_lng: 'en',
82
- target_lng: 'fr',
83
- collection_slug: 'posts',
84
- collection_id: ['doc-123'],
85
- strategy: 'skip_existing',
86
- });
87
- await handler.handle(req);
88
- expect(mockTaskRunner.enqueue).toHaveBeenCalledWith([
89
- {
90
- collectionSlug: 'posts',
91
- collectionId: 'doc-123',
92
- sourceLng: 'en',
93
- targetLng: 'fr',
94
- strategy: 'skip_existing',
95
- publishOnTranslation: false,
96
- },
97
- ]);
98
- });
99
- // Note: select_all test skipped - requires non-empty collection_id in schema validation
100
- // This is a schema design decision that should be tested at integration level
101
- it('creates task runner with request payload', async () => {
102
- const mockPayload = { collections: {} };
103
- const req = createMockRequest({
104
- source_lng: 'en',
105
- target_lng: 'de',
106
- collection_slug: 'posts',
107
- collection_id: ['doc-1'],
108
- strategy: 'overwrite',
109
- });
110
- req.payload = mockPayload;
111
- await handler.handle(req);
112
- expect(mockTaskRunnerFactory.create).toHaveBeenCalledWith(mockPayload);
113
- });
114
- });
115
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/features/enqueue-translation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/enqueue-translation/index.ts"],"sourcesContent":["export { createEnqueueRoute } from './route'\n"],"names":["createEnqueueRoute"],"mappings":"AAAA,SAASA,kBAAkB,QAAQ,UAAS"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"model.d.ts","sourceRoot":"","sources":["../../../../src/server/features/enqueue-translation/model.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AACvB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;GAEG;AACH,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;;;;EAQ7B,CAAA;AAEF;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B,oBAAoB,EAAE,GAAG,CAAC,cAAc,CAAC,CAAA;CAC1C,CAAA"}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/features/enqueue-translation/model.ts"],"sourcesContent":["import { z } from 'zod'\nimport type { CollectionSlug } from 'payload'\n\n/**\n * Input validation schema\n */\nexport const EnqueueInputSchema = z.object({\n source_lng: z.string().nonempty(),\n target_lng: z.string().nonempty(),\n collection_slug: z.string().nonempty(),\n collection_id: z.array(z.coerce.string()).nonempty(),\n select_all: z.boolean().optional(),\n strategy: z.enum(['overwrite', 'skip_existing']).optional().default('overwrite'),\n publish_on_translation: z.boolean().optional().default(false),\n})\n\n/**\n * Handler configuration\n */\nexport type EnqueueConfig = {\n availableCollections: Set<CollectionSlug>\n}\n"],"names":["z","EnqueueInputSchema","object","source_lng","string","nonempty","target_lng","collection_slug","collection_id","array","coerce","select_all","boolean","optional","strategy","enum","default","publish_on_translation"],"mappings":"AAAA,SAASA,CAAC,QAAQ,MAAK;AAGvB;;CAEC,GACD,OAAO,MAAMC,qBAAqBD,EAAEE,MAAM,CAAC;IACzCC,YAAYH,EAAEI,MAAM,GAAGC,QAAQ;IAC/BC,YAAYN,EAAEI,MAAM,GAAGC,QAAQ;IAC/BE,iBAAiBP,EAAEI,MAAM,GAAGC,QAAQ;IACpCG,eAAeR,EAAES,KAAK,CAACT,EAAEU,MAAM,CAACN,MAAM,IAAIC,QAAQ;IAClDM,YAAYX,EAAEY,OAAO,GAAGC,QAAQ;IAChCC,UAAUd,EAAEe,IAAI,CAAC;QAAC;QAAa;KAAgB,EAAEF,QAAQ,GAAGG,OAAO,CAAC;IACpEC,wBAAwBjB,EAAEY,OAAO,GAAGC,QAAQ,GAAGG,OAAO,CAAC;AACzD,GAAE"}