@focus-reactive/payload-plugin-translator 0.6.1 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (487) hide show
  1. package/README.md +55 -0
  2. package/dist/client/app/cache/CacheProvider.d.ts +1 -1
  3. package/dist/client/app/cache/CacheProvider.export.d.ts +1 -1
  4. package/dist/client/app/cache/CacheProvider.export.js +2 -2
  5. package/dist/client/app/cache/CacheProvider.js +5 -5
  6. package/dist/client/app/config/TranslateKitConfigContext.d.ts +1 -1
  7. package/dist/client/app/config/TranslateKitConfigContext.js +3 -3
  8. package/dist/client/app/config/index.d.ts +2 -2
  9. package/dist/client/app/config/index.js +1 -1
  10. package/dist/client/entities/translation/api/mutations/useCancelCollectionTranslations.js +7 -7
  11. package/dist/client/entities/translation/api/mutations/useCancelDocumentTranslation.js +7 -7
  12. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslation.d.ts +1 -1
  13. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslation.js +8 -8
  14. package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslations.js +6 -6
  15. package/dist/client/entities/translation/api/mutations/useRunDocumentTranslation.js +7 -7
  16. package/dist/client/entities/translation/api/mutations/useTranslateField.d.ts +1 -1
  17. package/dist/client/entities/translation/api/queries/useCollectionTranslationStatus.d.ts +2 -2
  18. package/dist/client/entities/translation/api/queries/useCollectionTranslationStatus.js +9 -10
  19. package/dist/client/entities/translation/api/queries/useDocumentTranslation.d.ts +2 -2
  20. package/dist/client/entities/translation/api/queries/useDocumentTranslation.js +9 -10
  21. package/dist/client/entities/translation/index.d.ts +12 -12
  22. package/dist/client/entities/translation/index.js +11 -11
  23. package/dist/client/entities/translation/model/types.d.ts +1 -1
  24. package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.js +12 -12
  25. package/dist/client/entities/translation/ui/CompletedTranslationStatus/index.d.ts +1 -1
  26. package/dist/client/entities/translation/ui/CompletedTranslationStatus/index.js +1 -1
  27. package/dist/client/entities/translation/ui/CompletedTranslationStatus/styles.module.scss +1 -1
  28. package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.js +8 -8
  29. package/dist/client/entities/translation/ui/FailedTranslationStatus/index.d.ts +1 -1
  30. package/dist/client/entities/translation/ui/FailedTranslationStatus/index.js +1 -1
  31. package/dist/client/entities/translation/ui/FailedTranslationStatus/styles.module.scss +1 -1
  32. package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.js +14 -14
  33. package/dist/client/entities/translation/ui/PendingTranslationStatus/index.d.ts +1 -1
  34. package/dist/client/entities/translation/ui/PendingTranslationStatus/index.js +1 -1
  35. package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.js +13 -13
  36. package/dist/client/entities/translation/ui/RunningTranslationStatus/index.d.ts +1 -1
  37. package/dist/client/entities/translation/ui/RunningTranslationStatus/index.js +1 -1
  38. package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.d.ts +1 -1
  39. package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.js +2 -2
  40. package/dist/client/entities/translation/ui/TranslationDirection/index.d.ts +1 -1
  41. package/dist/client/entities/translation/ui/TranslationDirection/index.js +1 -1
  42. package/dist/client/entities/translation/ui/TranslationDirection/styles.module.scss +1 -1
  43. package/dist/client/features/collection-translation-form/index.client.d.ts +1 -1
  44. package/dist/client/features/collection-translation-form/index.client.js +1 -1
  45. package/dist/client/features/collection-translation-form/index.d.ts +3 -3
  46. package/dist/client/features/collection-translation-form/index.js +2 -2
  47. package/dist/client/features/collection-translation-form/model/constants.d.ts +1 -1
  48. package/dist/client/features/collection-translation-form/model/constants.js +9 -9
  49. package/dist/client/features/collection-translation-form/model/form-model.d.ts +1 -1
  50. package/dist/client/features/collection-translation-form/model/index.d.ts +1 -1
  51. package/dist/client/features/collection-translation-form/model/index.js +1 -1
  52. package/dist/client/features/collection-translation-form/model/schema.d.ts +1 -1
  53. package/dist/client/features/collection-translation-form/model/schema.js +6 -6
  54. package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.d.ts +1 -1
  55. package/dist/client/features/collection-translation-form/ui/index.d.ts +1 -1
  56. package/dist/client/features/collection-translation-form/ui/index.js +1 -1
  57. package/dist/client/features/collection-translation-form/ui/styles.module.scss +1 -1
  58. package/dist/client/features/collection-translation-popup/index.d.ts +1 -1
  59. package/dist/client/features/collection-translation-popup/index.js +1 -1
  60. package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.d.ts +1 -1
  61. package/dist/client/features/collection-translation-popup/ui/styles.module.scss +1 -1
  62. package/dist/client/features/collection-translation-progress/index.d.ts +1 -1
  63. package/dist/client/features/collection-translation-progress/index.js +1 -1
  64. package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.d.ts +2 -2
  65. package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.js +13 -13
  66. package/dist/client/features/collection-translation-progress/ui/styles.module.scss +1 -1
  67. package/dist/client/features/document-translation-progress-failed/index.d.ts +1 -1
  68. package/dist/client/features/document-translation-progress-failed/index.js +1 -1
  69. package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.d.ts +2 -2
  70. package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.js +3 -3
  71. package/dist/client/features/document-translation-progress-pending/index.d.ts +1 -1
  72. package/dist/client/features/document-translation-progress-pending/index.js +1 -1
  73. package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.d.ts +2 -2
  74. package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.js +5 -5
  75. package/dist/client/features/document-translation-progress-running/index.d.ts +1 -1
  76. package/dist/client/features/document-translation-progress-running/index.js +1 -1
  77. package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.d.ts +2 -2
  78. package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.js +3 -3
  79. package/dist/client/features/open-document-translation-popup/index.d.ts +1 -1
  80. package/dist/client/features/open-document-translation-popup/index.js +1 -1
  81. package/dist/client/features/open-document-translation-popup/ui/styles.module.scss +1 -1
  82. package/dist/client/features/translate-document-form/index.client.d.ts +1 -1
  83. package/dist/client/features/translate-document-form/index.client.js +1 -1
  84. package/dist/client/features/translate-document-form/index.d.ts +3 -3
  85. package/dist/client/features/translate-document-form/index.js +2 -2
  86. package/dist/client/features/translate-document-form/model/constants.d.ts +1 -1
  87. package/dist/client/features/translate-document-form/model/constants.js +11 -11
  88. package/dist/client/features/translate-document-form/model/form-model.d.ts +1 -1
  89. package/dist/client/features/translate-document-form/model/index.d.ts +1 -1
  90. package/dist/client/features/translate-document-form/model/index.js +1 -1
  91. package/dist/client/features/translate-document-form/model/schema.d.ts +1 -1
  92. package/dist/client/features/translate-document-form/model/schema.js +5 -5
  93. package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.d.ts +1 -1
  94. package/dist/client/features/translate-document-form/ui/index.d.ts +1 -1
  95. package/dist/client/features/translate-document-form/ui/index.js +1 -1
  96. package/dist/client/features/translate-document-form/ui/styles.module.scss +1 -1
  97. package/dist/client/shared/lib/errors/handleApiError.d.ts +1 -1
  98. package/dist/client/shared/lib/errors/handleApiError.js +2 -2
  99. package/dist/client/shared/lib/forms/handle-form-error.d.ts +1 -1
  100. package/dist/client/shared/lib/forms/handle-form-error.js +6 -6
  101. package/dist/client/shared/lib/payload/hooks/useCollectionDashboardUrlParams.d.ts +1 -1
  102. package/dist/client/shared/lib/payload/hooks/useCollectionDashboardUrlParams.js +1 -1
  103. package/dist/client/shared/lib/payload/hooks/useCollectionDocumentUrlParams.d.ts +1 -1
  104. package/dist/client/shared/lib/payload/hooks/useCollectionDocumentUrlParams.js +2 -2
  105. package/dist/client/shared/lib/payload/hooks/useLocaleOptions.js +2 -2
  106. package/dist/client/shared/lib/utils/errors/handleApiError.d.ts +1 -1
  107. package/dist/client/shared/lib/utils/errors/handleApiError.js +2 -2
  108. package/dist/client/shared/lib/utils/react/useToggle.js +1 -1
  109. package/dist/client/shared/providers/CacheClientProvider/CacheClientProvider.factory.d.ts +2 -2
  110. package/dist/client/shared/providers/CacheClientProvider/CacheClientProvider.factory.js +3 -3
  111. package/dist/client/shared/providers/CacheClientProvider/index.d.ts +1 -1
  112. package/dist/client/shared/providers/CacheClientProvider/index.js +1 -1
  113. package/dist/client/shared/types/AccessGuard.d.ts +1 -1
  114. package/dist/client/shared/ui/Alert/Alert.d.ts +2 -2
  115. package/dist/client/shared/ui/Alert/Alert.js +18 -18
  116. package/dist/client/shared/ui/Alert/index.d.ts +1 -1
  117. package/dist/client/shared/ui/Alert/index.js +1 -1
  118. package/dist/client/shared/ui/Alert/styles.module.scss +1 -1
  119. package/dist/client/shared/ui/Button/index.d.ts +1 -1
  120. package/dist/client/shared/ui/Button/index.js +1 -1
  121. package/dist/client/shared/ui/Button/styles.module.scss +6 -3
  122. package/dist/client/shared/ui/Checkbox/Checkbox.d.ts +2 -2
  123. package/dist/client/shared/ui/Checkbox/Checkbox.js +4 -4
  124. package/dist/client/shared/ui/Checkbox/index.d.ts +1 -1
  125. package/dist/client/shared/ui/Checkbox/index.js +1 -1
  126. package/dist/client/shared/ui/Checkbox/styles.module.scss +1 -1
  127. package/dist/client/shared/ui/ColorIndicator/ColorIndicator.d.ts +2 -2
  128. package/dist/client/shared/ui/ColorIndicator/ColorIndicator.js +2 -2
  129. package/dist/client/shared/ui/ColorIndicator/index.d.ts +1 -1
  130. package/dist/client/shared/ui/ColorIndicator/index.js +1 -1
  131. package/dist/client/shared/ui/ColorIndicator/styles.module.scss +1 -1
  132. package/dist/client/shared/ui/Description/Description.d.ts +3 -3
  133. package/dist/client/shared/ui/Description/Description.js +4 -4
  134. package/dist/client/shared/ui/Description/index.d.ts +1 -1
  135. package/dist/client/shared/ui/Description/index.js +1 -1
  136. package/dist/client/shared/ui/Description/styles.module.scss +1 -1
  137. package/dist/client/shared/ui/Divider/Divider.d.ts +4 -4
  138. package/dist/client/shared/ui/Divider/Divider.js +4 -4
  139. package/dist/client/shared/ui/Divider/index.d.ts +1 -1
  140. package/dist/client/shared/ui/Divider/index.js +1 -1
  141. package/dist/client/shared/ui/Divider/styles.module.scss +1 -1
  142. package/dist/client/shared/ui/Label/Label.d.ts +2 -2
  143. package/dist/client/shared/ui/Label/Label.js +3 -3
  144. package/dist/client/shared/ui/Label/index.d.ts +1 -1
  145. package/dist/client/shared/ui/Label/index.js +1 -1
  146. package/dist/client/shared/ui/Label/styles.module.scss +1 -1
  147. package/dist/client/shared/ui/Loading/Loading.d.ts +1 -1
  148. package/dist/client/shared/ui/Loading/Loading.js +9 -9
  149. package/dist/client/shared/ui/Loading/index.d.ts +1 -1
  150. package/dist/client/shared/ui/Loading/index.js +1 -1
  151. package/dist/client/shared/ui/Loading/styles.module.scss +2 -2
  152. package/dist/client/shared/ui/Popup/Popup.d.ts +1 -1
  153. package/dist/client/shared/ui/Popup/index.d.ts +1 -1
  154. package/dist/client/shared/ui/Popup/index.js +1 -1
  155. package/dist/client/shared/ui/Popup/styles.module.scss +1 -1
  156. package/dist/client/shared/ui/ProgressBar/ProgressBar.d.ts +2 -2
  157. package/dist/client/shared/ui/ProgressBar/ProgressBar.js +3 -3
  158. package/dist/client/shared/ui/ProgressBar/index.d.ts +1 -1
  159. package/dist/client/shared/ui/ProgressBar/index.js +1 -1
  160. package/dist/client/shared/ui/ProgressBar/styles.module.scss +1 -1
  161. package/dist/client/shared/ui/Select/index.d.ts +1 -1
  162. package/dist/client/shared/ui/Select/index.js +1 -1
  163. package/dist/client/shared/ui/Select/styles.module.scss +1 -1
  164. package/dist/client/shared/ui/StatusCounter/StatusCounter.d.ts +2 -2
  165. package/dist/client/shared/ui/StatusCounter/StatusCounter.js +13 -13
  166. package/dist/client/shared/ui/StatusCounter/index.d.ts +1 -1
  167. package/dist/client/shared/ui/StatusCounter/index.js +1 -1
  168. package/dist/client/shared/ui/StatusCounter/styles.module.scss +1 -1
  169. package/dist/client/shared/ui/StatusIndicator/StatusIndicator.d.ts +3 -3
  170. package/dist/client/shared/ui/StatusIndicator/StatusIndicator.js +4 -4
  171. package/dist/client/shared/ui/StatusIndicator/index.d.ts +1 -1
  172. package/dist/client/shared/ui/StatusIndicator/index.js +1 -1
  173. package/dist/client/shared/ui/StatusIndicator/styles.module.scss +1 -1
  174. package/dist/client/shared/ui/Tooltip/Tooltip.d.ts +2 -2
  175. package/dist/client/shared/ui/Tooltip/Tooltip.js +4 -4
  176. package/dist/client/shared/ui/Tooltip/index.d.ts +1 -1
  177. package/dist/client/shared/ui/Tooltip/index.js +1 -1
  178. package/dist/client/shared/ui/Tooltip/styles.module.scss +5 -5
  179. package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.d.ts +1 -1
  180. package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.js +6 -6
  181. package/dist/client/shared/ui/form/FormCheckbox/index.d.ts +1 -1
  182. package/dist/client/shared/ui/form/FormCheckbox/index.js +1 -1
  183. package/dist/client/shared/ui/form/FormCheckbox/styles.module.scss +1 -1
  184. package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.js +5 -5
  185. package/dist/client/shared/ui/form/FormCheckboxPublish/index.d.ts +1 -1
  186. package/dist/client/shared/ui/form/FormCheckboxPublish/index.js +1 -1
  187. package/dist/client/shared/ui/form/FormCheckboxPublish/styles.module.scss +1 -1
  188. package/dist/client/shared/ui/form/FormSelect/FormSelect.d.ts +5 -5
  189. package/dist/client/shared/ui/form/FormSelect/FormSelect.js +9 -9
  190. package/dist/client/shared/ui/form/FormSelect/index.d.ts +1 -1
  191. package/dist/client/shared/ui/form/FormSelect/index.js +1 -1
  192. package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.d.ts +1 -1
  193. package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.js +2 -2
  194. package/dist/client/shared/ui/form/FormSelectLocale/index.d.ts +1 -1
  195. package/dist/client/shared/ui/form/FormSelectLocale/index.js +1 -1
  196. package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.d.ts +2 -2
  197. package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.js +9 -9
  198. package/dist/client/shared/ui/form/FormSelectStrategy/index.d.ts +2 -2
  199. package/dist/client/shared/ui/form/FormSelectStrategy/index.js +1 -1
  200. package/dist/client/shared/ui/form/FormSelectStrategy/styles.module.scss +1 -1
  201. package/dist/client/shared/utils/componentPath.js +1 -1
  202. package/dist/client/widgets/bulk-translation-dashboard/index.d.ts +1 -1
  203. package/dist/client/widgets/bulk-translation-dashboard/index.js +1 -1
  204. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.d.ts +2 -2
  205. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.js +3 -3
  206. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.js +11 -11
  207. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.d.ts +2 -2
  208. package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.js +3 -3
  209. package/dist/client/widgets/bulk-translation-dashboard/ui/index.d.ts +1 -1
  210. package/dist/client/widgets/bulk-translation-dashboard/ui/index.js +1 -1
  211. package/dist/client/widgets/translate-document/index.d.ts +1 -1
  212. package/dist/client/widgets/translate-document/index.js +1 -1
  213. package/dist/client/widgets/translate-document/ui/TranslateDocument.export.d.ts +3 -3
  214. package/dist/client/widgets/translate-document/ui/TranslateDocument.export.js +3 -3
  215. package/dist/client/widgets/translate-document/ui/TranslateDocument.js +16 -16
  216. package/dist/client/widgets/translate-document/ui/TranslateDocument.server.d.ts +2 -2
  217. package/dist/client/widgets/translate-document/ui/TranslateDocument.server.js +3 -3
  218. package/dist/client/widgets/translate-document/ui/index.d.ts +1 -1
  219. package/dist/client/widgets/translate-document/ui/index.js +1 -1
  220. package/dist/client/widgets/translate-field-control/ui/TranslateFieldControl.export.d.ts +1 -1
  221. package/dist/client/widgets/translate-field-control/ui/styles.module.scss +1 -1
  222. package/dist/{server/modules/translation-levels → composition/levels}/collectionLevel.d.ts +1 -1
  223. package/dist/{server/modules/translation-levels → composition/levels}/collectionLevel.js +1 -1
  224. package/dist/{server/modules/translation-levels → composition/levels}/documentLevel.d.ts +1 -1
  225. package/dist/{server/modules/translation-levels → composition/levels}/documentLevel.js +1 -1
  226. package/dist/{server/modules/translation-levels → composition/levels}/fieldLevel.d.ts +1 -1
  227. package/dist/{server/modules/translation-levels → composition/levels}/fieldLevel.js +1 -1
  228. package/dist/composition/levels/index.d.ts +3 -0
  229. package/dist/composition/levels/index.js +5 -0
  230. package/dist/{server/modules/translation-levels → composition/levels}/useDocTranslationApi.d.ts +1 -1
  231. package/dist/{server/modules/translation-levels → composition/levels}/useDocTranslationApi.js +1 -1
  232. package/dist/core/content-projection/computeSourceFingerprint.d.ts +15 -0
  233. package/dist/core/content-projection/computeSourceFingerprint.js +19 -0
  234. package/dist/core/content-projection/contentProjector.d.ts +28 -0
  235. package/dist/core/content-projection/contentProjector.js +97 -0
  236. package/dist/core/content-projection/fingerprinter.d.ts +28 -0
  237. package/dist/core/content-projection/fingerprinter.js +29 -0
  238. package/dist/core/content-projection/idPath.d.ts +48 -0
  239. package/dist/core/content-projection/idPath.js +64 -0
  240. package/dist/core/content-projection/translatableLeaf.d.ts +27 -0
  241. package/dist/core/content-projection/translatableLeaf.js +37 -0
  242. package/dist/core/field-config/getFieldConfig.d.ts +23 -0
  243. package/dist/{server/shared → core}/field-config/getFieldConfig.js +5 -5
  244. package/dist/{server/shared → core}/field-config/index.d.ts +3 -3
  245. package/dist/core/field-config/index.js +4 -0
  246. package/dist/{server/shared → core}/field-traversal/findFieldByPath.d.ts +2 -3
  247. package/dist/core/field-traversal/guards.d.ts +19 -0
  248. package/dist/core/field-traversal/guards.js +20 -0
  249. package/dist/core/field-traversal/index.d.ts +7 -0
  250. package/dist/core/field-traversal/index.js +7 -0
  251. package/dist/{server/shared → core}/field-traversal/kernel.d.ts +7 -8
  252. package/dist/{server/shared → core}/field-traversal/kernel.js +6 -6
  253. package/dist/core/field-traversal/predicates.d.ts +24 -0
  254. package/dist/core/field-traversal/predicates.js +17 -0
  255. package/dist/{server/shared → core}/field-traversal/types.d.ts +129 -27
  256. package/dist/{server/shared → core}/field-traversal/types.js +6 -0
  257. package/dist/{server/shared → core}/field-traversal/walkFields.d.ts +2 -3
  258. package/dist/core/index.d.ts +12 -0
  259. package/dist/core/index.js +15 -0
  260. package/dist/{server/shared → core}/lexical/collectTextNodes.d.ts +1 -1
  261. package/dist/{server/shared → core}/lexical/collectTextNodes.js +1 -1
  262. package/dist/{server/shared → core}/lexical/guards.d.ts +1 -1
  263. package/dist/{server/shared → core}/lexical/guards.js +4 -4
  264. package/dist/core/lexical/index.d.ts +6 -0
  265. package/dist/core/lexical/index.js +6 -0
  266. package/dist/{server/shared → core}/lexical/isEmptyRichText.d.ts +1 -1
  267. package/dist/{server/shared → core}/lexical/isEmptyRichText.js +3 -3
  268. package/dist/{server/shared → core}/lexical/traverseLexicalTree.d.ts +1 -1
  269. package/dist/{server/shared → core}/lexical/traverseLexicalTree.js +1 -1
  270. package/dist/core/lexical/types.d.ts +33 -0
  271. package/dist/core/lexical/types.js +11 -0
  272. package/dist/core/provenance/ProvenanceStore.interface.d.ts +99 -0
  273. package/dist/core/provenance/ProvenanceStore.interface.js +37 -0
  274. package/dist/core/provenance/index.d.ts +1 -0
  275. package/dist/core/provenance/index.js +5 -0
  276. package/dist/{server/modules → core}/translation-pipeline/TranslationPipeline.d.ts +4 -4
  277. package/dist/{server/modules → core}/translation-pipeline/TranslationPipeline.js +1 -1
  278. package/dist/{server/modules → core}/translation-pipeline/stages/data-reconciler/DataReconciler.d.ts +2 -2
  279. package/dist/{server/modules → core}/translation-pipeline/stages/data-reconciler/DataReconciler.js +3 -2
  280. package/dist/core/translation-pipeline/stages/data-reconciler/index.d.ts +2 -0
  281. package/dist/core/translation-pipeline/stages/data-reconciler/index.js +4 -0
  282. package/dist/{server/modules → core}/translation-pipeline/stages/field-collector/FieldChunkCollector.d.ts +2 -2
  283. package/dist/{server/modules → core}/translation-pipeline/stages/field-collector/FieldChunkCollector.js +18 -4
  284. package/dist/{server/modules → core}/translation-pipeline/stages/field-collector/FieldChunkCollector.stage.d.ts +2 -2
  285. package/dist/{server/modules → core}/translation-pipeline/stages/field-collector/FieldChunkCollector.stage.js +2 -2
  286. package/dist/core/translation-pipeline/stages/field-collector/index.d.ts +2 -0
  287. package/dist/core/translation-pipeline/stages/field-collector/index.js +4 -0
  288. package/dist/core/translation-pipeline/stages/index.d.ts +6 -0
  289. package/dist/core/translation-pipeline/stages/index.js +7 -0
  290. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/PlainTextExpander.d.ts +2 -2
  291. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/PlainTextExpander.js +2 -2
  292. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/RichTextExpander.d.ts +2 -2
  293. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/RichTextExpander.js +3 -3
  294. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/TextChunkExpander.d.ts +2 -2
  295. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/TextChunkExpander.stage.d.ts +2 -2
  296. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/TextChunkExpander.stage.js +4 -4
  297. package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/TextExpander.interface.d.ts +1 -1
  298. package/dist/core/translation-pipeline/stages/text-expander/index.d.ts +6 -0
  299. package/dist/core/translation-pipeline/stages/text-expander/index.js +6 -0
  300. package/dist/{server/modules → core}/translation-pipeline/stages/translation/Translation.stage.d.ts +2 -2
  301. package/dist/{server/modules → core}/translation-pipeline/stages/translation/Translation.stage.js +1 -1
  302. package/dist/core/translation-pipeline/stages/translation/index.d.ts +1 -0
  303. package/dist/core/translation-pipeline/stages/translation/index.js +3 -0
  304. package/dist/{server/modules → core}/translation-pipeline/stages/translation-applicator/TranslationMutator.d.ts +1 -1
  305. package/dist/{server/modules → core}/translation-pipeline/stages/translation-applicator/TranslationMutator.js +1 -1
  306. package/dist/{server/modules → core}/translation-pipeline/stages/translation-applicator/TranslationMutator.stage.d.ts +1 -1
  307. package/dist/{server/modules → core}/translation-pipeline/stages/translation-applicator/TranslationMutator.stage.js +2 -2
  308. package/dist/core/translation-pipeline/stages/translation-applicator/index.d.ts +2 -0
  309. package/dist/core/translation-pipeline/stages/translation-applicator/index.js +4 -0
  310. package/dist/{server/modules → core}/translation-pipeline/strategies/Overwrite.strategy.d.ts +1 -1
  311. package/dist/{server/modules → core}/translation-pipeline/strategies/Overwrite.strategy.js +1 -1
  312. package/dist/{server/modules → core}/translation-pipeline/strategies/SkipExisting.strategy.d.ts +1 -1
  313. package/dist/{server/modules → core}/translation-pipeline/strategies/SkipExisting.strategy.js +3 -1
  314. package/dist/core/translation-pipeline/strategies/index.d.ts +13 -0
  315. package/dist/{server/modules → core}/translation-pipeline/strategies/index.js +4 -4
  316. package/dist/{server/modules → core}/translation-pipeline/translateContent.d.ts +2 -2
  317. package/dist/{server/modules → core}/translation-pipeline/types/FieldChunk.d.ts +3 -3
  318. package/dist/{server/modules → core}/translation-pipeline/types/Pipeline.d.ts +2 -2
  319. package/dist/{server/modules → core}/translation-pipeline/types/PipelineContext.d.ts +4 -4
  320. package/dist/{server/modules → core}/translation-pipeline/types/TextChunk.d.ts +3 -3
  321. package/dist/{server/modules → core}/translation-pipeline/types/TextChunk.js +2 -2
  322. package/dist/core/translation-pipeline/types/index.d.ts +5 -0
  323. package/dist/core/translation-pipeline/types/index.js +3 -0
  324. package/dist/core/translation-providers/index.d.ts +1 -0
  325. package/dist/core/translation-providers/index.js +5 -0
  326. package/dist/core/utils/index.d.ts +2 -0
  327. package/dist/core/utils/index.js +4 -0
  328. package/dist/{server/shared → core}/utils/isEmpty.js +2 -2
  329. package/dist/{server/shared → core}/utils/isObject.js +1 -1
  330. package/dist/field-actions.d.ts +1 -1
  331. package/dist/field-config.d.ts +1 -1
  332. package/dist/field-config.js +1 -1
  333. package/dist/index.d.ts +7 -4
  334. package/dist/index.js +4 -4
  335. package/dist/plugin.d.ts +27 -1
  336. package/dist/plugin.js +56 -16
  337. package/dist/server/features/_lib/collection-utils.d.ts +1 -1
  338. package/dist/server/features/_lib/index.d.ts +1 -1
  339. package/dist/server/features/_lib/index.js +1 -1
  340. package/dist/server/features/cancel/index.d.ts +1 -1
  341. package/dist/server/features/cancel/index.js +1 -1
  342. package/dist/server/features/cancel-by-collection/index.d.ts +1 -1
  343. package/dist/server/features/cancel-by-collection/index.js +1 -1
  344. package/dist/server/features/cancel-by-collection/model.d.ts +2 -2
  345. package/dist/server/features/cancel-by-collection/model.js +1 -1
  346. package/dist/server/features/createTranslationRoutes.d.ts +1 -1
  347. package/dist/server/features/enqueue-translation/index.d.ts +1 -1
  348. package/dist/server/features/enqueue-translation/index.js +1 -1
  349. package/dist/server/features/enqueue-translation/model.d.ts +2 -2
  350. package/dist/server/features/enqueue-translation/model.js +4 -4
  351. package/dist/server/features/get-collection-status/index.d.ts +1 -1
  352. package/dist/server/features/get-collection-status/index.js +1 -1
  353. package/dist/server/features/get-collection-status/model.d.ts +3 -3
  354. package/dist/server/features/get-collection-status/model.js +1 -1
  355. package/dist/server/features/get-document-status/index.d.ts +2 -2
  356. package/dist/server/features/get-document-status/index.js +2 -2
  357. package/dist/server/features/run-translation/index.d.ts +1 -1
  358. package/dist/server/features/run-translation/index.js +1 -1
  359. package/dist/server/features/translate-document/handler.d.ts +6 -3
  360. package/dist/server/features/translate-document/handler.js +28 -2
  361. package/dist/server/features/translate-document/index.d.ts +1 -1
  362. package/dist/server/features/translate-document/model.d.ts +2 -7
  363. package/dist/server/features/translate-document/model.js +1 -2
  364. package/dist/server/features/translate-field/handler.js +1 -1
  365. package/dist/server/features/translate-field/index.d.ts +2 -1
  366. package/dist/server/features/translate-field/model.d.ts +2 -19
  367. package/dist/server/features/translate-field/resolveFieldSubtree.js +1 -1
  368. package/dist/server/features/translate-field/route.d.ts +1 -1
  369. package/dist/server/index.d.ts +3 -3
  370. package/dist/server/index.js +3 -3
  371. package/dist/server/modules/index.d.ts +2 -2
  372. package/dist/server/modules/index.js +2 -2
  373. package/dist/server/modules/lifecycle/LifecycleNotifier.d.ts +21 -0
  374. package/dist/server/modules/lifecycle/LifecycleNotifier.js +38 -0
  375. package/dist/server/modules/lifecycle/index.d.ts +4 -0
  376. package/dist/server/modules/lifecycle/index.js +7 -0
  377. package/dist/server/modules/lifecycle/taskMapping.d.ts +7 -0
  378. package/dist/server/modules/lifecycle/taskMapping.js +16 -0
  379. package/dist/server/modules/lifecycle/types.d.ts +45 -0
  380. package/dist/server/modules/lifecycle/types.js +21 -0
  381. package/dist/server/modules/lifecycle/withQueuedNotification.d.ts +9 -0
  382. package/dist/server/modules/lifecycle/withQueuedNotification.js +19 -0
  383. package/dist/server/modules/provenance/PayloadProvenanceStore.d.ts +21 -0
  384. package/dist/server/modules/provenance/PayloadProvenanceStore.js +109 -0
  385. package/dist/server/modules/provenance/index.d.ts +5 -0
  386. package/dist/server/modules/provenance/index.js +8 -0
  387. package/dist/server/modules/provenance/provenanceCleanupHook.d.ts +18 -0
  388. package/dist/server/modules/provenance/provenanceCleanupHook.js +41 -0
  389. package/dist/server/modules/provenance/provenanceCollection.d.ts +23 -0
  390. package/dist/server/modules/provenance/provenanceCollection.js +82 -0
  391. package/dist/server/modules/provenance/slugGuard.d.ts +16 -0
  392. package/dist/server/modules/provenance/slugGuard.js +19 -0
  393. package/dist/server/modules/task-runner/TaskRunner.interface.d.ts +2 -2
  394. package/dist/server/modules/task-runner/TaskRunnerProvider.interface.d.ts +1 -1
  395. package/dist/server/modules/task-runner/index.d.ts +1 -1
  396. package/dist/server/modules/task-runner/payload-jobs-runner/index.d.ts +2 -2
  397. package/dist/server/modules/task-runner/payload-jobs-runner/index.js +1 -1
  398. package/dist/server/modules/task-runner/sync-runner/index.d.ts +1 -1
  399. package/dist/server/modules/task-runner/sync-runner/index.js +1 -1
  400. package/dist/server/modules/translation-levels/PluginConfigBuilder.d.ts +3 -3
  401. package/dist/server/modules/translation-levels/index.d.ts +1 -4
  402. package/dist/server/modules/translation-levels/index.js +1 -3
  403. package/dist/server/modules/translation-levels/types.d.ts +3 -3
  404. package/dist/server/shared/access/AnyAccessGuard.d.ts +1 -1
  405. package/dist/server/shared/access/handler.d.ts +1 -1
  406. package/dist/server/shared/access/index.d.ts +3 -3
  407. package/dist/server/shared/access/index.js +1 -1
  408. package/dist/server/shared/access/types.d.ts +1 -1
  409. package/dist/server/shared/guards/collection-guards.d.ts +1 -1
  410. package/dist/server/shared/guards/collection-guards.js +2 -2
  411. package/dist/server/shared/guards/field-guards.d.ts +9 -20
  412. package/dist/server/shared/guards/field-guards.js +5 -20
  413. package/dist/server/shared/guards/index.d.ts +3 -3
  414. package/dist/server/shared/guards/index.js +2 -2
  415. package/dist/server/shared/http/ServerResponse.js +15 -15
  416. package/dist/server/shared/http/index.d.ts +3 -3
  417. package/dist/server/shared/http/index.js +3 -3
  418. package/dist/server/shared/http/withAccessCheck.d.ts +2 -2
  419. package/dist/server/shared/http/withAccessCheck.js +1 -1
  420. package/dist/server/shared/http/withErrorHandler.js +3 -3
  421. package/dist/server/shared/index.d.ts +6 -5
  422. package/dist/server/shared/index.js +4 -3
  423. package/dist/server/shared/utils/filterLocalizedFields.js +2 -2
  424. package/dist/server/shared/utils/getByPath.js +2 -2
  425. package/dist/server/shared/utils/index.d.ts +9 -9
  426. package/dist/server/shared/utils/index.js +8 -8
  427. package/dist/server/shared/utils/normalizePath.js +3 -3
  428. package/dist/server/shared/utils/setByPath.js +2 -2
  429. package/dist/translation-providers/index.d.ts +2 -0
  430. package/dist/translation-providers/index.js +10 -0
  431. package/dist/{server/modules/translation-providers → translation-providers/openai}/OpenAITranslation.provider.d.ts +1 -1
  432. package/dist/{server/modules/translation-providers → translation-providers/openai}/OpenAITranslation.provider.js +1 -1
  433. package/dist/translation-providers/openai/index.d.ts +1 -0
  434. package/dist/translation-providers/openai/index.js +5 -0
  435. package/dist/types/CollectionSchemaMap.d.ts +6 -0
  436. package/dist/types/CollectionSchemaMap.js +6 -0
  437. package/dist/{client/shared/types → types}/PayloadComponentExport.d.ts +1 -1
  438. package/dist/types/index.d.ts +4 -1
  439. package/dist/types/wire/field-translation.d.ts +17 -0
  440. package/dist/types/wire/field-translation.js +7 -0
  441. package/package.json +3 -1
  442. package/dist/server/modules/translation-pipeline/stages/data-reconciler/index.d.ts +0 -2
  443. package/dist/server/modules/translation-pipeline/stages/data-reconciler/index.js +0 -4
  444. package/dist/server/modules/translation-pipeline/stages/field-collector/index.d.ts +0 -2
  445. package/dist/server/modules/translation-pipeline/stages/field-collector/index.js +0 -4
  446. package/dist/server/modules/translation-pipeline/stages/index.d.ts +0 -6
  447. package/dist/server/modules/translation-pipeline/stages/index.js +0 -7
  448. package/dist/server/modules/translation-pipeline/stages/text-expander/index.d.ts +0 -6
  449. package/dist/server/modules/translation-pipeline/stages/text-expander/index.js +0 -6
  450. package/dist/server/modules/translation-pipeline/stages/translation/index.d.ts +0 -1
  451. package/dist/server/modules/translation-pipeline/stages/translation/index.js +0 -3
  452. package/dist/server/modules/translation-pipeline/stages/translation-applicator/index.d.ts +0 -2
  453. package/dist/server/modules/translation-pipeline/stages/translation-applicator/index.js +0 -4
  454. package/dist/server/modules/translation-pipeline/strategies/index.d.ts +0 -13
  455. package/dist/server/modules/translation-pipeline/types/index.d.ts +0 -5
  456. package/dist/server/modules/translation-pipeline/types/index.js +0 -3
  457. package/dist/server/modules/translation-providers/index.d.ts +0 -2
  458. package/dist/server/modules/translation-providers/index.js +0 -3
  459. package/dist/server/shared/field-config/getFieldConfig.d.ts +0 -20
  460. package/dist/server/shared/field-config/index.js +0 -4
  461. package/dist/server/shared/field-traversal/index.d.ts +0 -5
  462. package/dist/server/shared/field-traversal/index.js +0 -5
  463. package/dist/server/shared/lexical/index.d.ts +0 -6
  464. package/dist/server/shared/lexical/index.js +0 -6
  465. package/dist/server/shared/lexical/types.d.ts +0 -19
  466. package/dist/server/shared/lexical/types.js +0 -8
  467. /package/dist/{server/shared → core}/field-config/types.d.ts +0 -0
  468. /package/dist/{server/shared → core}/field-config/types.js +0 -0
  469. /package/dist/{server/shared → core}/field-traversal/findFieldByPath.js +0 -0
  470. /package/dist/{server/shared → core}/field-traversal/walkFields.js +0 -0
  471. /package/dist/{server/modules → core}/translation-pipeline/index.d.ts +0 -0
  472. /package/dist/{server/modules → core}/translation-pipeline/index.js +0 -0
  473. /package/dist/{server/modules → core}/translation-pipeline/stages/data-reconciler/DataReconciler.stage.d.ts +0 -0
  474. /package/dist/{server/modules → core}/translation-pipeline/stages/data-reconciler/DataReconciler.stage.js +0 -0
  475. /package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/TextChunkExpander.js +0 -0
  476. /package/dist/{server/modules → core}/translation-pipeline/stages/text-expander/TextExpander.interface.js +0 -0
  477. /package/dist/{server/modules → core}/translation-pipeline/strategies/TranslationStrategy.interface.d.ts +0 -0
  478. /package/dist/{server/modules → core}/translation-pipeline/strategies/TranslationStrategy.interface.js +0 -0
  479. /package/dist/{server/modules → core}/translation-pipeline/translateContent.js +0 -0
  480. /package/dist/{server/modules → core}/translation-pipeline/types/FieldChunk.js +0 -0
  481. /package/dist/{server/modules → core}/translation-pipeline/types/Pipeline.js +0 -0
  482. /package/dist/{server/modules → core}/translation-pipeline/types/PipelineContext.js +0 -0
  483. /package/dist/{server/modules → core}/translation-providers/TranslationProvider.interface.d.ts +0 -0
  484. /package/dist/{server/modules → core}/translation-providers/TranslationProvider.interface.js +0 -0
  485. /package/dist/{server/shared → core}/utils/isEmpty.d.ts +0 -0
  486. /package/dist/{server/shared → core}/utils/isObject.d.ts +0 -0
  487. /package/dist/{client/shared/types → types}/PayloadComponentExport.js +0 -0
@@ -0,0 +1,18 @@
1
+ import type { CollectionAfterDeleteHook, Config } from "payload";
2
+ import type { ProvenanceStoreFactory } from "./PayloadProvenanceStore";
3
+ /**
4
+ * Build the `afterDelete` hook that cascade-deletes a document's provenance rows for `provenanceSlug`.
5
+ *
6
+ * Best-effort by design: the store's delete runs in its own transaction (the store does not thread
7
+ * `req`), and any failure is swallowed and logged — so cleanup can never roll back or fail the user's
8
+ * document delete. `id` is `number | string`, so it is stringified to match the stored `documentId`.
9
+ */
10
+ export declare function makeProvenanceCleanupHook(storeFactory: ProvenanceStoreFactory, provenanceSlug: string): CollectionAfterDeleteHook;
11
+ /**
12
+ * Attach the provenance cleanup hook to every managed (translatable) collection on `config`, appending
13
+ * to any consumer-supplied `afterDelete` array. Idempotent per `provenanceSlug`: a collection that
14
+ * already carries this slug's cleanup hook is skipped, so a repeated `init()` never stacks duplicates,
15
+ * yet a second instance with a different slug still attaches its own hook. The sidecar collection is
16
+ * never in `managedSlugs`, so it is never hooked (no recursion).
17
+ */
18
+ export declare function injectProvenanceCleanup(config: Config, managedSlugs: Set<string>, storeFactory: ProvenanceStoreFactory, provenanceSlug: string): void;
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Build the `afterDelete` hook that cascade-deletes a document's provenance rows for `provenanceSlug`.
3
+ *
4
+ * Best-effort by design: the store's delete runs in its own transaction (the store does not thread
5
+ * `req`), and any failure is swallowed and logged — so cleanup can never roll back or fail the user's
6
+ * document delete. `id` is `number | string`, so it is stringified to match the stored `documentId`.
7
+ */ export function makeProvenanceCleanupHook(storeFactory, provenanceSlug) {
8
+ const hook = async ({ id, collection, req })=>{
9
+ try {
10
+ const store = storeFactory(req.payload);
11
+ await store.deleteByDocument(collection.slug, String(id));
12
+ } catch (error) {
13
+ req.payload.logger.error({
14
+ err: error,
15
+ collection: collection.slug,
16
+ documentId: String(id),
17
+ msg: "translator: failed to clean up provenance records after document delete"
18
+ });
19
+ }
20
+ };
21
+ hook.__translatorProvenanceCleanup = provenanceSlug;
22
+ return hook;
23
+ }
24
+ /**
25
+ * Attach the provenance cleanup hook to every managed (translatable) collection on `config`, appending
26
+ * to any consumer-supplied `afterDelete` array. Idempotent per `provenanceSlug`: a collection that
27
+ * already carries this slug's cleanup hook is skipped, so a repeated `init()` never stacks duplicates,
28
+ * yet a second instance with a different slug still attaches its own hook. The sidecar collection is
29
+ * never in `managedSlugs`, so it is never hooked (no recursion).
30
+ */ export function injectProvenanceCleanup(config, managedSlugs, storeFactory, provenanceSlug) {
31
+ const hook = makeProvenanceCleanupHook(storeFactory, provenanceSlug);
32
+ for (const collection of config.collections ?? []){
33
+ if (!managedSlugs.has(collection.slug)) continue;
34
+ collection.hooks ??= {};
35
+ collection.hooks.afterDelete ??= [];
36
+ const alreadyInjected = collection.hooks.afterDelete.some((existing)=>existing.__translatorProvenanceCleanup === provenanceSlug);
37
+ if (!alreadyInjected) collection.hooks.afterDelete.push(hook);
38
+ }
39
+ }
40
+
41
+ //# sourceMappingURL=provenanceCleanupHook.js.map
@@ -0,0 +1,23 @@
1
+ import type { CollectionConfig } from "payload";
2
+ /** Default slug for the provenance sidecar collection. Overridable via `provenance.slug`. */
3
+ export declare const DEFAULT_PROVENANCE_SLUG = "translator-provenance";
4
+ /**
5
+ * True for the plugin's own provenance sidecar collection. Recognised by the {@link PROVENANCE_MARKER}
6
+ * on `custom` (not the slug, which is consumer-configurable), so plugin wiring can stay idempotent on
7
+ * a repeated run and the slug-collision guard can ignore an already-added sidecar.
8
+ */
9
+ export declare function isProvenanceCollection(collection: {
10
+ custom?: unknown;
11
+ }): boolean;
12
+ /**
13
+ * Build the Payload config for the provenance sidecar collection.
14
+ *
15
+ * Deliberately minimal and DB-portable — only `text`/`date` fields and one composite index — so the
16
+ * same config yields a trivial migration on SQL (Postgres/SQLite) and an inferred collection on
17
+ * MongoDB. The collection is hidden from the admin UI: it is plugin-managed bookkeeping, not editor
18
+ * content. The composite index on `(collectionSlug, documentId, targetLocale)` is the upsert key.
19
+ *
20
+ * The plugin ships only this config; the consumer's Payload creates the table (see the design doc's
21
+ * SQL-migration note). Enabled only when the consumer opts in via `provenance` (wired in slice B).
22
+ */
23
+ export declare function makeProvenanceCollection(slug?: string): CollectionConfig;
@@ -0,0 +1,82 @@
1
+ /** Default slug for the provenance sidecar collection. Overridable via `provenance.slug`. */ export const DEFAULT_PROVENANCE_SLUG = "translator-provenance";
2
+ /** The `custom` marker tagging the plugin's own provenance sidecar (set + read in this module). */ const PROVENANCE_MARKER = "translatorProvenance";
3
+ /**
4
+ * True for the plugin's own provenance sidecar collection. Recognised by the {@link PROVENANCE_MARKER}
5
+ * on `custom` (not the slug, which is consumer-configurable), so plugin wiring can stay idempotent on
6
+ * a repeated run and the slug-collision guard can ignore an already-added sidecar.
7
+ */ export function isProvenanceCollection(collection) {
8
+ return collection.custom?.[PROVENANCE_MARKER] === true;
9
+ }
10
+ /**
11
+ * Build the Payload config for the provenance sidecar collection.
12
+ *
13
+ * Deliberately minimal and DB-portable — only `text`/`date` fields and one composite index — so the
14
+ * same config yields a trivial migration on SQL (Postgres/SQLite) and an inferred collection on
15
+ * MongoDB. The collection is hidden from the admin UI: it is plugin-managed bookkeeping, not editor
16
+ * content. The composite index on `(collectionSlug, documentId, targetLocale)` is the upsert key.
17
+ *
18
+ * The plugin ships only this config; the consumer's Payload creates the table (see the design doc's
19
+ * SQL-migration note). Enabled only when the consumer opts in via `provenance` (wired in slice B).
20
+ */ export function makeProvenanceCollection(slug = DEFAULT_PROVENANCE_SLUG) {
21
+ return {
22
+ slug,
23
+ admin: {
24
+ hidden: true
25
+ },
26
+ // Marker so plugin wiring can recognise its own collection ({@link isProvenanceCollection}) — lets
27
+ // a repeated plugin run stay idempotent and lets the slug-collision guard ignore its own sidecar.
28
+ custom: {
29
+ [PROVENANCE_MARKER]: true
30
+ },
31
+ fields: [
32
+ {
33
+ name: "collectionSlug",
34
+ type: "text",
35
+ required: true,
36
+ index: true
37
+ },
38
+ {
39
+ name: "documentId",
40
+ type: "text",
41
+ required: true,
42
+ index: true
43
+ },
44
+ {
45
+ name: "targetLocale",
46
+ type: "text",
47
+ required: true
48
+ },
49
+ {
50
+ name: "sourceLocale",
51
+ type: "text",
52
+ required: true
53
+ },
54
+ {
55
+ name: "sourceFingerprint",
56
+ type: "text",
57
+ required: true
58
+ },
59
+ {
60
+ name: "translatedAt",
61
+ type: "date",
62
+ required: true
63
+ },
64
+ {
65
+ name: "dismissedFingerprint",
66
+ type: "text"
67
+ }
68
+ ],
69
+ indexes: [
70
+ {
71
+ fields: [
72
+ "collectionSlug",
73
+ "documentId",
74
+ "targetLocale"
75
+ ],
76
+ unique: true
77
+ }
78
+ ]
79
+ };
80
+ }
81
+
82
+ //# sourceMappingURL=provenanceCollection.js.map
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Fail fast if the provenance sidecar slug collides with a collection the consumer already defines.
3
+ * Sharing a table would silently corrupt both — better a clear startup error telling the consumer to
4
+ * set `provenance.slug`.
5
+ *
6
+ * Compares by exact slug: this catches the common footgun — a consumer collection already using this
7
+ * slug — and is correct on every adapter (on MongoDB the slug IS the collection name). It does NOT
8
+ * try to model SQL table-name derivation: `@payloadcms/drizzle` snake-cases slugs and honours
9
+ * `dbName` overrides, so case/separator variants (`translatorProvenance` vs `translator-provenance`)
10
+ * or `dbName` collisions are not detected here. Robust table-name collision detection, if it proves
11
+ * necessary, belongs at plugin init where the full `CollectionConfig` (including `dbName`) is
12
+ * available — not in this slug-only helper.
13
+ */
14
+ export declare function assertProvenanceSlugFree(slug: string, collections: ReadonlyArray<{
15
+ slug: string;
16
+ }>): void;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Fail fast if the provenance sidecar slug collides with a collection the consumer already defines.
3
+ * Sharing a table would silently corrupt both — better a clear startup error telling the consumer to
4
+ * set `provenance.slug`.
5
+ *
6
+ * Compares by exact slug: this catches the common footgun — a consumer collection already using this
7
+ * slug — and is correct on every adapter (on MongoDB the slug IS the collection name). It does NOT
8
+ * try to model SQL table-name derivation: `@payloadcms/drizzle` snake-cases slugs and honours
9
+ * `dbName` overrides, so case/separator variants (`translatorProvenance` vs `translator-provenance`)
10
+ * or `dbName` collisions are not detected here. Robust table-name collision detection, if it proves
11
+ * necessary, belongs at plugin init where the full `CollectionConfig` (including `dbName`) is
12
+ * available — not in this slug-only helper.
13
+ */ export function assertProvenanceSlugFree(slug, collections) {
14
+ if (collections.some((collection)=>collection.slug === slug)) {
15
+ throw new Error(`[payload-plugin-translator] provenance slug "${slug}" collides with an existing collection. ` + "Set a distinct slug via the plugin's provenance.slug option.");
16
+ }
17
+ }
18
+
19
+ //# sourceMappingURL=slugGuard.js.map
@@ -1,5 +1,5 @@
1
- import type { CollectionSlug } from 'payload';
2
- import type { Task, TaskInput, RunResult } from './types';
1
+ import type { CollectionSlug } from "payload";
2
+ import type { Task, TaskInput, RunResult } from "./types";
3
3
  /**
4
4
  * Interface for task execution backends.
5
5
  *
@@ -1,7 +1,7 @@
1
1
  import type { CollectionSlug, Config, Payload } from "payload";
2
2
  import type { TaskRunner } from "./TaskRunner.interface";
3
3
  import type { ID } from "./types";
4
- import type { TranslationStrategyName } from "../translation-pipeline/strategies";
4
+ import type { TranslationStrategyName } from "../../../core/translation-pipeline/strategies";
5
5
  /**
6
6
  * Input for task handler callback
7
7
  */
@@ -1,4 +1,4 @@
1
- export type { TaskRunnerProvider, TaskRunnerFactory, TaskRunnerContext } from "./TaskRunnerProvider.interface";
1
+ export type { TaskRunnerProvider, TaskRunnerFactory, TaskRunnerContext, } from "./TaskRunnerProvider.interface";
2
2
  export type { Task, TaskStatus } from "./types";
3
3
  export { createPayloadJobsRunner } from "./payload-jobs-runner";
4
4
  export type { PayloadJobsRunnerOptions } from "./payload-jobs-runner";
@@ -1,2 +1,2 @@
1
- export { createPayloadJobsRunner } from './PayloadJobsRunnerProvider';
2
- export type { PayloadJobsRunnerOptions } from './types';
1
+ export { createPayloadJobsRunner } from "./PayloadJobsRunnerProvider";
2
+ export type { PayloadJobsRunnerOptions } from "./types";
@@ -1,3 +1,3 @@
1
- export { createPayloadJobsRunner } from './PayloadJobsRunnerProvider';
1
+ export { createPayloadJobsRunner } from "./PayloadJobsRunnerProvider";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export { createSyncRunner } from './SyncRunnerProvider';
1
+ export { createSyncRunner } from "./SyncRunnerProvider";
@@ -1,3 +1,3 @@
1
- export { createSyncRunner } from './SyncRunnerProvider';
1
+ export { createSyncRunner } from "./SyncRunnerProvider";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  import type { CollectionConfig, Config, Endpoint } from "payload";
2
2
  import type { AccessGuard } from "../../../types/AccessGuard";
3
- import type { RawPayloadComponentExport } from "../../../client/shared/types/PayloadComponentExport";
4
- import type { CollectionSchemaMap } from "../../features/translate-document";
5
- import type { TranslationProvider } from "../translation-providers";
3
+ import type { RawPayloadComponentExport } from "../../../types/PayloadComponentExport";
4
+ import type { CollectionSchemaMap } from "../../../types/CollectionSchemaMap";
5
+ import type { TranslationProvider } from "../../../core/translation-providers";
6
6
  import type { TaskRunnerFactory } from "../task-runner";
7
7
  import type { CollectionAdminSlot, LevelContext } from "./types";
8
8
  type ConfigModifier = (config: Config) => Config;
@@ -1,4 +1 @@
1
- export type { TranslationLevel } from "./types";
2
- export { documentLevel } from "./documentLevel";
3
- export { collectionLevel } from "./collectionLevel";
4
- export { fieldLevel } from "./fieldLevel";
1
+ export type { TranslationLevel, LevelContext, CollectionAdminSlot } from "./types";
@@ -1,5 +1,3 @@
1
- export { documentLevel } from "./documentLevel";
2
- export { collectionLevel } from "./collectionLevel";
3
- export { fieldLevel } from "./fieldLevel";
1
+ export { };
4
2
 
5
3
  //# sourceMappingURL=index.js.map
@@ -1,8 +1,8 @@
1
1
  import type { CollectionConfig, Endpoint } from "payload";
2
2
  import type { AccessGuard } from "../../../types/AccessGuard";
3
- import type { RawPayloadComponentExport } from "../../../client/shared/types/PayloadComponentExport";
4
- import type { CollectionSchemaMap } from "../../features/translate-document";
5
- import type { TranslationProvider } from "../translation-providers";
3
+ import type { RawPayloadComponentExport } from "../../../types/PayloadComponentExport";
4
+ import type { CollectionSchemaMap } from "../../../types/CollectionSchemaMap";
5
+ import type { TranslationProvider } from "../../../core/translation-providers";
6
6
  import type { TaskRunnerFactory } from "../task-runner";
7
7
  export type CollectionAdminSlot = "beforeDocumentControls" | "beforeListTable";
8
8
  /**
@@ -1,4 +1,4 @@
1
- import type { AccessGuard } from './types';
1
+ import type { AccessGuard } from "./types";
2
2
  /**
3
3
  * Default access guard that allows all requests
4
4
  */
@@ -1,4 +1,4 @@
1
- import type { Payload } from 'payload';
1
+ import type { Payload } from "payload";
2
2
  /**
3
3
  * Base handler interface for all feature handlers
4
4
  */
@@ -1,3 +1,3 @@
1
- export type { AccessGuard, AccessGuardRequest } from './types';
2
- export { AnyAccessGuard } from './AnyAccessGuard';
3
- export type { Handler } from './handler';
1
+ export type { AccessGuard, AccessGuardRequest } from "./types";
2
+ export { AnyAccessGuard } from "./AnyAccessGuard";
3
+ export type { Handler } from "./handler";
@@ -1,3 +1,3 @@
1
- export { AnyAccessGuard } from './AnyAccessGuard';
1
+ export { AnyAccessGuard } from "./AnyAccessGuard";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export type { AccessGuard, AccessGuardRequest } from '../../../types/AccessGuard';
1
+ export type { AccessGuard, AccessGuardRequest } from "../../../types/AccessGuard";
@@ -1,4 +1,4 @@
1
- import type { CollectionConfig, SanitizedCollectionConfig } from 'payload';
1
+ import type { CollectionConfig, SanitizedCollectionConfig } from "payload";
2
2
  /**
3
3
  * Checks if a collection has drafts enabled.
4
4
  * Handles both CollectionConfig and SanitizedCollectionConfig.
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Type guard: Checks if versions config is an object (not boolean).
3
3
  */ function isVersionsObject(versions) {
4
- return typeof versions === 'object' && versions !== null;
4
+ return typeof versions === "object" && versions !== null;
5
5
  }
6
6
  /**
7
7
  * Checks if a collection has drafts enabled.
@@ -10,7 +10,7 @@
10
10
  const { versions } = collection;
11
11
  if (!versions) return false;
12
12
  if (!isVersionsObject(versions)) return false;
13
- return 'drafts' in versions && Boolean(versions.drafts);
13
+ return "drafts" in versions && Boolean(versions.drafts);
14
14
  }
15
15
 
16
16
  //# sourceMappingURL=collection-guards.js.map
@@ -1,14 +1,20 @@
1
- import type { Field, RichTextField, TabsField, TextareaField, TextField } from 'payload';
1
+ import type { Field, RichTextField, TextareaField, TextField } from "payload";
2
2
  /** Translatable field types that contain text content */
3
3
  export type TranslatableField = RichTextField | TextareaField | TextField;
4
4
  /**
5
5
  * Type guard: Checks if a field contains translatable text content (text, textarea, richText).
6
+ * Narrows a `{ type: string }`-shaped field to the concrete Payload {@link TranslatableField}
7
+ * union.
6
8
  */
7
- export declare function isTranslatableField(field: Field): field is TranslatableField;
9
+ export declare function isTranslatableField(field: {
10
+ type: string;
11
+ }): field is TranslatableField;
8
12
  /**
9
13
  * Type guard: Checks if a field has the `localized` property set to true.
10
14
  */
11
- export declare function isLocalizedField(field: Field): field is Field & {
15
+ export declare function isLocalizedField<T extends {
16
+ localized?: boolean;
17
+ }>(field: T): field is T & {
12
18
  localized: true;
13
19
  };
14
20
  /**
@@ -17,20 +23,3 @@ export declare function isLocalizedField(field: Field): field is Field & {
17
23
  export declare function isRelationshipField(field: Field): field is Field & {
18
24
  relationTo: unknown;
19
25
  };
20
- /**
21
- * Type guard: Checks if a field is a tabs field.
22
- */
23
- export declare function isTabsField(field: Field): field is TabsField;
24
- /**
25
- * Type guard: Checks if value is a block item (has blockType property).
26
- */
27
- export declare function isBlockItem(value: unknown): value is Record<string, unknown> & {
28
- blockType: string;
29
- };
30
- /**
31
- * Type guard: Checks if value has a fields array property.
32
- * Works with Field, Tab, or any object with fields.
33
- */
34
- export declare function hasFields(value: unknown): value is {
35
- fields: Field[];
36
- };
@@ -1,34 +1,19 @@
1
- import { isObject } from '../utils';
2
1
  /**
3
2
  * Type guard: Checks if a field contains translatable text content (text, textarea, richText).
3
+ * Narrows a `{ type: string }`-shaped field to the concrete Payload {@link TranslatableField}
4
+ * union.
4
5
  */ export function isTranslatableField(field) {
5
- return field.type === 'text' || field.type === 'textarea' || field.type === 'richText';
6
+ return field.type === "text" || field.type === "textarea" || field.type === "richText";
6
7
  }
7
8
  /**
8
9
  * Type guard: Checks if a field has the `localized` property set to true.
9
10
  */ export function isLocalizedField(field) {
10
- return 'localized' in field && field.localized === true;
11
+ return "localized" in field && field.localized === true;
11
12
  }
12
13
  /**
13
14
  * Type guard: Checks if a field is a relationship or upload field (should be skipped).
14
15
  */ export function isRelationshipField(field) {
15
- return 'relationTo' in field && field.relationTo !== undefined;
16
- }
17
- /**
18
- * Type guard: Checks if a field is a tabs field.
19
- */ export function isTabsField(field) {
20
- return field.type === 'tabs';
21
- }
22
- /**
23
- * Type guard: Checks if value is a block item (has blockType property).
24
- */ export function isBlockItem(value) {
25
- return isObject(value) && 'blockType' in value && typeof value.blockType === 'string';
26
- }
27
- /**
28
- * Type guard: Checks if value has a fields array property.
29
- * Works with Field, Tab, or any object with fields.
30
- */ export function hasFields(value) {
31
- return isObject(value) && 'fields' in value && Array.isArray(value.fields);
16
+ return "relationTo" in field && field.relationTo !== undefined;
32
17
  }
33
18
 
34
19
  //# sourceMappingURL=field-guards.js.map
@@ -1,3 +1,3 @@
1
- export type { TranslatableField } from './field-guards';
2
- export { isTranslatableField, isLocalizedField, isRelationshipField, isTabsField, isBlockItem, hasFields, } from './field-guards';
3
- export { collectionHasDrafts } from './collection-guards';
1
+ export type { TranslatableField } from "./field-guards";
2
+ export { isTranslatableField, isLocalizedField, isRelationshipField } from "./field-guards";
3
+ export { collectionHasDrafts } from "./collection-guards";
@@ -1,4 +1,4 @@
1
- export { isTranslatableField, isLocalizedField, isRelationshipField, isTabsField, isBlockItem, hasFields } from './field-guards';
2
- export { collectionHasDrafts } from './collection-guards';
1
+ export { isTranslatableField, isLocalizedField, isRelationshipField } from "./field-guards";
2
+ export { collectionHasDrafts } from "./collection-guards";
3
3
 
4
4
  //# sourceMappingURL=index.js.map
@@ -13,7 +13,7 @@ export class ServerResponse {
13
13
  status: 201
14
14
  });
15
15
  }
16
- static accepted(message = 'Request accepted') {
16
+ static accepted(message = "Request accepted") {
17
17
  return Response.json({
18
18
  message
19
19
  }, {
@@ -25,7 +25,7 @@ export class ServerResponse {
25
25
  status: 204
26
26
  });
27
27
  }
28
- static badRequest(message = 'Bad request', details) {
28
+ static badRequest(message = "Bad request", details) {
29
29
  const body = details ? {
30
30
  message,
31
31
  details
@@ -36,42 +36,42 @@ export class ServerResponse {
36
36
  status: 400
37
37
  });
38
38
  }
39
- static unauthorized(message = 'Unauthorized') {
39
+ static unauthorized(message = "Unauthorized") {
40
40
  return Response.json({
41
41
  message
42
42
  }, {
43
43
  status: 401
44
44
  });
45
45
  }
46
- static forbidden(message = 'Forbidden') {
46
+ static forbidden(message = "Forbidden") {
47
47
  return Response.json({
48
48
  message
49
49
  }, {
50
50
  status: 403
51
51
  });
52
52
  }
53
- static notFound(message = 'Resource not found') {
53
+ static notFound(message = "Resource not found") {
54
54
  return Response.json({
55
55
  message
56
56
  }, {
57
57
  status: 404
58
58
  });
59
59
  }
60
- static methodNotAllowed(message = 'Method not allowed') {
60
+ static methodNotAllowed(message = "Method not allowed") {
61
61
  return Response.json({
62
62
  message
63
63
  }, {
64
64
  status: 405
65
65
  });
66
66
  }
67
- static conflict(message = 'Conflict') {
67
+ static conflict(message = "Conflict") {
68
68
  return Response.json({
69
69
  message
70
70
  }, {
71
71
  status: 409
72
72
  });
73
73
  }
74
- static unprocessableEntity(message = 'Unprocessable entity', details) {
74
+ static unprocessableEntity(message = "Unprocessable entity", details) {
75
75
  const body = details ? {
76
76
  message,
77
77
  details
@@ -82,42 +82,42 @@ export class ServerResponse {
82
82
  status: 422
83
83
  });
84
84
  }
85
- static tooManyRequests(message = 'Too many requests') {
85
+ static tooManyRequests(message = "Too many requests") {
86
86
  return Response.json({
87
87
  message
88
88
  }, {
89
89
  status: 429
90
90
  });
91
91
  }
92
- static internalServerError(message = 'Internal server error') {
92
+ static internalServerError(message = "Internal server error") {
93
93
  return Response.json({
94
94
  message
95
95
  }, {
96
96
  status: 500
97
97
  });
98
98
  }
99
- static notImplemented(message = 'Not implemented') {
99
+ static notImplemented(message = "Not implemented") {
100
100
  return Response.json({
101
101
  message
102
102
  }, {
103
103
  status: 501
104
104
  });
105
105
  }
106
- static badGateway(message = 'Bad gateway') {
106
+ static badGateway(message = "Bad gateway") {
107
107
  return Response.json({
108
108
  message
109
109
  }, {
110
110
  status: 502
111
111
  });
112
112
  }
113
- static serviceUnavailable(message = 'Service unavailable') {
113
+ static serviceUnavailable(message = "Service unavailable") {
114
114
  return Response.json({
115
115
  message
116
116
  }, {
117
117
  status: 503
118
118
  });
119
119
  }
120
- static gatewayTimeout(message = 'Gateway timeout') {
120
+ static gatewayTimeout(message = "Gateway timeout") {
121
121
  return Response.json({
122
122
  message
123
123
  }, {
@@ -126,7 +126,7 @@ export class ServerResponse {
126
126
  }
127
127
  static validationError(details) {
128
128
  return Response.json({
129
- message: 'Validation error',
129
+ message: "Validation error",
130
130
  details
131
131
  }, {
132
132
  status: 400
@@ -1,3 +1,3 @@
1
- export { ServerResponse } from './ServerResponse';
2
- export { withErrorHandler } from './withErrorHandler';
3
- export { withAccessCheck } from './withAccessCheck';
1
+ export { ServerResponse } from "./ServerResponse";
2
+ export { withErrorHandler } from "./withErrorHandler";
3
+ export { withAccessCheck } from "./withAccessCheck";
@@ -1,5 +1,5 @@
1
- export { ServerResponse } from './ServerResponse';
2
- export { withErrorHandler } from './withErrorHandler';
3
- export { withAccessCheck } from './withAccessCheck';
1
+ export { ServerResponse } from "./ServerResponse";
2
+ export { withErrorHandler } from "./withErrorHandler";
3
+ export { withAccessCheck } from "./withAccessCheck";
4
4
 
5
5
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import type { PayloadRequest } from 'payload';
2
- import type { AccessGuard } from '../access/types';
1
+ import type { PayloadRequest } from "payload";
2
+ import type { AccessGuard } from "../access/types";
3
3
  /**
4
4
  * Wraps handler with access check.
5
5
  * Returns 403 Forbidden if access guard denies the request.
@@ -1,4 +1,4 @@
1
- import { ServerResponse } from './ServerResponse';
1
+ import { ServerResponse } from "./ServerResponse";
2
2
  /**
3
3
  * Wraps handler with access check.
4
4
  * Returns 403 Forbidden if access guard denies the request.
@@ -1,5 +1,5 @@
1
- import { APIError } from 'payload';
2
- import { ServerResponse } from './ServerResponse';
1
+ import { APIError } from "payload";
2
+ import { ServerResponse } from "./ServerResponse";
3
3
  /**
4
4
  * Wraps async handler with error handling.
5
5
  * Catches APIError and generic Error, returns appropriate HTTP response.
@@ -8,7 +8,7 @@ import { ServerResponse } from './ServerResponse';
8
8
  try {
9
9
  return await handler(...args);
10
10
  } catch (e) {
11
- console.error('[TranslateKit] Handler error:', e);
11
+ console.error("[TranslateKit] Handler error:", e);
12
12
  if (e instanceof APIError) {
13
13
  return ServerResponse.custom(e.message, e.status);
14
14
  }