@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
@@ -1,5 +1,5 @@
1
- import type { PipelineContext, PipelineStage } from '../../types';
2
- import type { TranslationProvider } from '../../../translation-providers';
1
+ import type { PipelineContext, PipelineStage } from "../../types";
2
+ import type { TranslationProvider } from "../../../translation-providers";
3
3
  /**
4
4
  * Calls translation provider to translate text.
5
5
  */
@@ -11,7 +11,7 @@
11
11
  }
12
12
  const translations = await this.provider.translate(ctx.textMap, ctx.sourceLng, ctx.targetLng);
13
13
  if (!translations) {
14
- throw new Error('Translation provider returned null');
14
+ throw new Error("Translation provider returned null");
15
15
  }
16
16
  return {
17
17
  ...ctx,
@@ -0,0 +1 @@
1
+ export { TranslationStage } from "./Translation.stage";
@@ -0,0 +1,3 @@
1
+ export { TranslationStage } from "./Translation.stage";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import type { TextChunk } from '../../types';
1
+ import type { TextChunk } from "../../types";
2
2
  /**
3
3
  * Applies translations by mutating data through TextChunk references.
4
4
  * This is the simplest stage - just direct mutation.
@@ -1,4 +1,4 @@
1
- import { isPlainTextChunk, isRichTextChunk } from '../../types';
1
+ import { isPlainTextChunk, isRichTextChunk } from "../../types";
2
2
  /**
3
3
  * Applies translations by mutating data through TextChunk references.
4
4
  * This is the simplest stage - just direct mutation.
@@ -1,4 +1,4 @@
1
- import type { PipelineContext, PipelineStage } from '../../types';
1
+ import type { PipelineContext, PipelineStage } from "../../types";
2
2
  /**
3
3
  * Applies translations to data via mutation.
4
4
  */
@@ -1,10 +1,10 @@
1
- import { TranslationMutator } from './TranslationMutator';
1
+ import { TranslationMutator } from "./TranslationMutator";
2
2
  /**
3
3
  * Applies translations to data via mutation.
4
4
  */ export class TranslationMutatorStage {
5
5
  execute(ctx) {
6
6
  if (!ctx.textChunks || !ctx.translations) {
7
- throw new Error('TranslationMutatorStage requires textChunks and translations');
7
+ throw new Error("TranslationMutatorStage requires textChunks and translations");
8
8
  }
9
9
  const mutator = new TranslationMutator();
10
10
  mutator.apply(ctx.textChunks, ctx.translations);
@@ -0,0 +1,2 @@
1
+ export { TranslationMutator } from "./TranslationMutator";
2
+ export { TranslationMutatorStage } from "./TranslationMutator.stage";
@@ -0,0 +1,4 @@
1
+ export { TranslationMutator } from "./TranslationMutator";
2
+ export { TranslationMutatorStage } from "./TranslationMutator.stage";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import type { TranslationStrategy, StrategyContext } from './TranslationStrategy.interface';
1
+ import type { TranslationStrategy, StrategyContext } from "./TranslationStrategy.interface";
2
2
  /**
3
3
  * Translates all fields, overwriting existing translations.
4
4
  * This is the default strategy.
@@ -1,4 +1,4 @@
1
- import { isEmpty } from '../../../shared';
1
+ import { isEmpty } from "../../utils/isEmpty";
2
2
  /**
3
3
  * Translates all fields, overwriting existing translations.
4
4
  * This is the default strategy.
@@ -1,4 +1,4 @@
1
- import type { TranslationStrategy, StrategyContext } from './TranslationStrategy.interface';
1
+ import type { TranslationStrategy, StrategyContext } from "./TranslationStrategy.interface";
2
2
  /**
3
3
  * Only translates fields that are empty or missing in the target locale.
4
4
  * Existing translations are preserved.
@@ -1,4 +1,6 @@
1
- import { isSerializedLexicalRoot, isEmptyRichText, isEmpty } from '../../../shared';
1
+ import { isEmptyRichText } from "../../lexical/isEmptyRichText";
2
+ import { isSerializedLexicalRoot } from "../../lexical/guards";
3
+ import { isEmpty } from "../../utils/isEmpty";
2
4
  /**
3
5
  * Only translates fields that are empty or missing in the target locale.
4
6
  * Existing translations are preserved.
@@ -0,0 +1,13 @@
1
+ import type { TranslationStrategy } from "./TranslationStrategy.interface";
2
+ import { OverwriteStrategy } from "./Overwrite.strategy";
3
+ import { SkipExistingStrategy } from "./SkipExisting.strategy";
4
+ export type { TranslationStrategy, StrategyContext } from "./TranslationStrategy.interface";
5
+ export { OverwriteStrategy, SkipExistingStrategy };
6
+ /**
7
+ * Strategy names for runtime selection.
8
+ */
9
+ export type TranslationStrategyName = "overwrite" | "skip_existing";
10
+ /**
11
+ * Creates a TranslationStrategy instance by name.
12
+ */
13
+ export declare function createTranslationStrategy(name: TranslationStrategyName): TranslationStrategy;
@@ -1,13 +1,13 @@
1
- import { OverwriteStrategy } from './Overwrite.strategy';
2
- import { SkipExistingStrategy } from './SkipExisting.strategy';
1
+ import { OverwriteStrategy } from "./Overwrite.strategy";
2
+ import { SkipExistingStrategy } from "./SkipExisting.strategy";
3
3
  export { OverwriteStrategy, SkipExistingStrategy };
4
4
  /**
5
5
  * Creates a TranslationStrategy instance by name.
6
6
  */ export function createTranslationStrategy(name) {
7
7
  switch(name){
8
- case 'skip_existing':
8
+ case "skip_existing":
9
9
  return new SkipExistingStrategy();
10
- case 'overwrite':
10
+ case "overwrite":
11
11
  default:
12
12
  return new OverwriteStrategy();
13
13
  }
@@ -1,9 +1,9 @@
1
- import type { Field } from "payload";
1
+ import type { FieldLike } from "../field-traversal";
2
2
  import type { TranslationProvider } from "../translation-providers";
3
3
  import type { TranslationStrategyName } from "./strategies";
4
4
  export type TranslateContentArgs = {
5
5
  /** Schema subtree to translate (e.g. `[declaredFieldConfig]`). */
6
- schema: Field[];
6
+ schema: FieldLike[];
7
7
  /** Source values, rooted to match `schema` (e.g. `{ [fieldName]: value }`). */
8
8
  sourceData: Record<string, unknown>;
9
9
  /**
@@ -1,4 +1,4 @@
1
- import type { Field } from 'payload';
1
+ import type { LeafFieldLike } from "../../field-traversal/types";
2
2
  /**
3
3
  * Represents a field-level chunk containing schema metadata.
4
4
  * Used in stages 1-3 where schema awareness is needed.
@@ -6,8 +6,8 @@ import type { Field } from 'payload';
6
6
  * Contains a reference to the parent data object for later mutation.
7
7
  */
8
8
  export type FieldChunk = {
9
- /** The field schema from Payload CMS */
10
- schema: Field;
9
+ /** The leaf field schema (only `type`/`name` are read downstream). */
10
+ schema: LeafFieldLike;
11
11
  /** Reference to the parent data object (for mutation) */
12
12
  dataRef: Record<string, unknown>;
13
13
  /** The key in the dataRef object */
@@ -1,10 +1,10 @@
1
- import type { Field } from 'payload';
1
+ import type { FieldLike } from "../../field-traversal";
2
2
  /**
3
3
  * Pipeline configuration for translation execution.
4
4
  * Contains only data transformation inputs — no persistence concerns.
5
5
  */
6
6
  export type PipelineConfig = {
7
- schema: Field[];
7
+ schema: FieldLike[];
8
8
  sourceData: Record<string, unknown>;
9
9
  targetData: Record<string, unknown>;
10
10
  sourceLng: string;
@@ -1,12 +1,12 @@
1
- import type { Field } from 'payload';
2
- import type { FieldChunk } from './FieldChunk';
3
- import type { TextChunk } from './TextChunk';
1
+ import type { FieldLike } from "../../field-traversal";
2
+ import type { FieldChunk } from "./FieldChunk";
3
+ import type { TextChunk } from "./TextChunk";
4
4
  /**
5
5
  * Pipeline context passed through all stages.
6
6
  * Each stage reads from context and writes its results back.
7
7
  */
8
8
  export type PipelineContext = {
9
- readonly schema: Field[];
9
+ readonly schema: FieldLike[];
10
10
  readonly sourceData: Record<string, unknown>;
11
11
  readonly targetData: Record<string, unknown>;
12
12
  readonly sourceLng: string;
@@ -1,10 +1,10 @@
1
- import type { SerializedTextNode } from '../../../shared/lexical';
1
+ import type { SerializedTextNode } from "../../lexical";
2
2
  /**
3
3
  * Text chunk for plain text/textarea fields.
4
4
  * Mutates dataRef[key] directly.
5
5
  */
6
6
  export type PlainTextChunk = {
7
- type: 'plain';
7
+ type: "plain";
8
8
  /** Unique index for translation mapping */
9
9
  index: number;
10
10
  /** Original text value */
@@ -19,7 +19,7 @@ export type PlainTextChunk = {
19
19
  * Mutates nodeRef.text directly.
20
20
  */
21
21
  export type RichTextChunk = {
22
- type: 'richText';
22
+ type: "richText";
23
23
  /** Unique index for translation mapping */
24
24
  index: number;
25
25
  /** Original text value */
@@ -1,12 +1,12 @@
1
1
  /**
2
2
  * Type guard for PlainTextChunk.
3
3
  */ export function isPlainTextChunk(chunk) {
4
- return chunk.type === 'plain';
4
+ return chunk.type === "plain";
5
5
  }
6
6
  /**
7
7
  * Type guard for RichTextChunk.
8
8
  */ export function isRichTextChunk(chunk) {
9
- return chunk.type === 'richText';
9
+ return chunk.type === "richText";
10
10
  }
11
11
 
12
12
  //# sourceMappingURL=TextChunk.js.map
@@ -0,0 +1,5 @@
1
+ export type { FieldChunk } from "./FieldChunk";
2
+ export type { PlainTextChunk, RichTextChunk, TextChunk } from "./TextChunk";
3
+ export { isPlainTextChunk, isRichTextChunk } from "./TextChunk";
4
+ export type { PipelineConfig, PipelineResult } from "./Pipeline";
5
+ export type { PipelineContext, PipelineStage } from "./PipelineContext";
@@ -0,0 +1,3 @@
1
+ export { isPlainTextChunk, isRichTextChunk } from "./TextChunk";
2
+
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ export type { TranslationProvider, TranslationInput, TranslationOutput, TranslationIndex, } from "./TranslationProvider.interface";
@@ -0,0 +1,5 @@
1
+ // The translation PORT (contract) only. The OpenAI implementation lives in
2
+ // src/providers (outside core) so the core barrel stays dependency-free (no `openai`).
3
+ export { };
4
+
5
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ export { isEmpty } from "./isEmpty";
2
+ export { isObject } from "./isObject";
@@ -0,0 +1,4 @@
1
+ export { isEmpty } from "./isEmpty";
2
+ export { isObject } from "./isObject";
3
+
4
+ //# sourceMappingURL=index.js.map
@@ -6,9 +6,9 @@
6
6
  * Use composition with type-specific checks (e.g., isEmptyRichText) for those.
7
7
  */ export function isEmpty(value) {
8
8
  if (value === undefined || value === null) return true;
9
- if (typeof value === 'string' && value.trim() === '') return true;
9
+ if (typeof value === "string" && value.trim() === "") return true;
10
10
  if (Array.isArray(value) && value.length === 0) return true;
11
- if (typeof value === 'object' && Object.keys(value).length === 0) return true;
11
+ if (typeof value === "object" && Object.keys(value).length === 0) return true;
12
12
  return false;
13
13
  }
14
14
 
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Type guard: Checks if value is a non-null object.
3
3
  */ export function isObject(value) {
4
- return typeof value === 'object' && value !== null;
4
+ return typeof value === "object" && value !== null;
5
5
  }
6
6
 
7
7
  //# sourceMappingURL=isObject.js.map
@@ -1,5 +1,5 @@
1
1
  import type { Field } from "payload";
2
- import type { RawPayloadComponentExport } from "./client/shared/types/PayloadComponentExport";
2
+ import type { RawPayloadComponentExport } from "./types/PayloadComponentExport";
3
3
  /**
4
4
  * Strategy for placing a per-field control into a field's admin config — the seam
5
5
  * between *what* to render (a control component) and *where* it goes (positioning).
@@ -1,5 +1,5 @@
1
1
  import type { Field, RichTextField, TextareaField, TextField } from "payload";
2
- import type { FieldTranslationConfig } from "./server/shared/field-config";
2
+ import type { FieldTranslationConfig } from "./core/field-config";
3
3
  export type { FieldTranslationConfig };
4
4
  /**
5
5
  * Field types eligible for the per-field translate control — the same text-bearing
@@ -1,4 +1,4 @@
1
- import { TRANSLATE_KIT_CUSTOM_KEY } from "./server/shared/field-config";
1
+ import { TRANSLATE_KIT_CUSTOM_KEY } from "./core/field-config";
2
2
  import { TranslateFieldControlExport } from "./client/widgets/translate-field-control/ui/TranslateFieldControl.export";
3
3
  import { beforeInputPositioner } from "./field-actions";
4
4
  /**
package/dist/index.d.ts CHANGED
@@ -1,16 +1,19 @@
1
1
  export { translatorPlugin } from "./plugin";
2
2
  export type { TranslatorPluginConfig } from "./plugin";
3
+ export type { TranslationTask, TranslationLifecycleCallbacks } from "./server/modules/lifecycle";
4
+ export type { TranslationProvenanceRecord } from "./core";
3
5
  export type { AccessGuard, AccessGuardRequest } from "./types/AccessGuard";
4
- export { createOpenAIProvider } from "./server/modules/translation-providers";
5
- export type { TranslationProvider, TranslationInput, TranslationOutput, OpenAIProviderConfig, DryRunConfig } from "./server/modules/translation-providers";
6
+ export type { TranslationProvider, TranslationInput, TranslationOutput } from "./core";
7
+ export { createOpenAIProvider } from "./translation-providers";
8
+ export type { OpenAIProviderConfig, DryRunConfig } from "./translation-providers";
6
9
  export { createPayloadJobsRunner, createSyncRunner } from "./server/modules/task-runner";
7
10
  export type { TaskRunnerProvider, PayloadJobsRunnerOptions } from "./server/modules/task-runner";
8
- export { documentLevel, collectionLevel, fieldLevel } from "./server/modules/translation-levels";
11
+ export { documentLevel, collectionLevel, fieldLevel } from "./composition/levels";
9
12
  export type { TranslationLevel } from "./server/modules/translation-levels";
10
13
  export { withFieldTranslation } from "./field-config";
11
14
  export type { FieldTranslationConfig } from "./field-config";
12
15
  export { createTranslatePlugin, TranslateCollectionPlugin } from "./plugin";
13
16
  export type { TranslateCollectionPluginConfig } from "./plugin";
14
- export { OpenAITranslationProvider } from "./server/modules/translation-providers";
17
+ export { OpenAITranslationProvider } from "./translation-providers";
15
18
  export { translateKitField } from "./field-config";
16
19
  export type { TranslateKitFieldConfig } from "./field-config";
package/dist/index.js CHANGED
@@ -1,16 +1,16 @@
1
1
  // Main plugin
2
2
  export { translatorPlugin } from "./plugin";
3
- // Translation providers
4
- export { createOpenAIProvider } from "./server/modules/translation-providers";
3
+ // Built-in OpenAI provider (opt-in; pulls `openai`) — lives in the plugin's src/providers, outside core
4
+ export { createOpenAIProvider } from "./translation-providers";
5
5
  // Task runners
6
6
  export { createPayloadJobsRunner, createSyncRunner } from "./server/modules/task-runner";
7
7
  // Translation levels
8
- export { documentLevel, collectionLevel, fieldLevel } from "./server/modules/translation-levels";
8
+ export { documentLevel, collectionLevel, fieldLevel } from "./composition/levels";
9
9
  // Field config
10
10
  export { withFieldTranslation } from "./field-config";
11
11
  // Deprecated exports (for backwards compatibility)
12
12
  export { createTranslatePlugin, TranslateCollectionPlugin } from "./plugin";
13
- export { OpenAITranslationProvider } from "./server/modules/translation-providers";
13
+ export { OpenAITranslationProvider } from "./translation-providers";
14
14
  export { translateKitField } from "./field-config";
15
15
 
16
16
  //# sourceMappingURL=index.js.map
package/dist/plugin.d.ts CHANGED
@@ -1,7 +1,8 @@
1
1
  import type { CollectionConfig, Config } from "payload";
2
2
  import type { AccessGuard } from "./types/AccessGuard";
3
- import type { TranslationProvider } from "./server/modules/translation-providers";
3
+ import type { TranslationProvider } from "./core/translation-providers";
4
4
  import type { TaskRunnerProvider } from "./server/modules/task-runner";
5
+ import type { TranslationLifecycleCallbacks } from "./server/modules/lifecycle";
5
6
  import type { TranslationLevel } from "./server/modules/translation-levels";
6
7
  export type TranslatorPluginConfig = {
7
8
  /**
@@ -43,6 +44,31 @@ export type TranslatorPluginConfig = {
43
44
  * @since 0.5.0
44
45
  */
45
46
  levels?: TranslationLevel[];
47
+ /**
48
+ * Opt-in translation provenance — a durable, per-locale record of what source state each
49
+ * translation was derived from, stored in a plugin-managed sidecar collection. Set `true` (or `{}`)
50
+ * to enable with the default slug, or `{ slug }` to customise it. Omit (or `false`) to disable
51
+ * entirely — no collection, no migration, no behaviour change. **Enabling it on a SQL database adds
52
+ * a table**: generate and run a migration (`payload migrate:create` + `payload migrate`; dev push in
53
+ * development; MongoDB infers it with no migration). The lifecycle callbacks are unaffected by this
54
+ * flag.
55
+ * @since 0.7.0
56
+ */
57
+ provenance?: boolean | {
58
+ /**
59
+ * Slug for the sidecar collection. Change it only to resolve a collision with an existing
60
+ * collection.
61
+ * @default 'translator-provenance'
62
+ */
63
+ slug?: string;
64
+ };
65
+ /**
66
+ * Optional server-side lifecycle callbacks fired around each translation task
67
+ * (`onQueued` / `onCompleted` / `onFailed`). Always available — no schema, no migration, not gated
68
+ * by `provenance`. A throwing callback is caught and logged, never failing the translation.
69
+ * @since 0.7.0
70
+ */
71
+ lifecycle?: TranslationLifecycleCallbacks;
46
72
  };
47
73
  /** @deprecated Use `TranslatorPluginConfig` instead */
48
74
  export type TranslateCollectionPluginConfig = TranslatorPluginConfig;
package/dist/plugin.js CHANGED
@@ -1,8 +1,19 @@
1
1
  import { CacheProviderExport } from "./client/app/cache/CacheProvider.export";
2
+ import { DEFAULT_PROVENANCE_SLUG, PayloadProvenanceStore, assertProvenanceSlugFree, injectProvenanceCleanup, isProvenanceCollection, makeProvenanceCollection } from "./server/modules/provenance";
2
3
  import { TranslateDocumentHandler } from "./server/features/translate-document";
3
- import { documentLevel, collectionLevel } from "./server/modules/translation-levels";
4
+ import { LifecycleNotifier, taskFromHandlerInput, withQueuedNotification } from "./server/modules/lifecycle";
5
+ import { documentLevel, collectionLevel } from "./composition/levels";
4
6
  import { PluginConfigBuilder } from "./server/modules/translation-levels/PluginConfigBuilder";
5
7
  import { normalizePath } from "./server/shared";
8
+ /**
9
+ * Resolve the opt-in `provenance` config to a sidecar slug, or `null` when disabled.
10
+ * `false`/omitted → off; `true` or `{}` → on with the default slug; `{ slug }` → on with that slug.
11
+ */ function resolveProvenanceSlug(provenance) {
12
+ if (!provenance) return null;
13
+ if (provenance === true) return DEFAULT_PROVENANCE_SLUG;
14
+ // `||` (not `??`) so an empty/blank slug falls back to the default instead of silently disabling.
15
+ return provenance.slug || DEFAULT_PROVENANCE_SLUG;
16
+ }
6
17
  /** @deprecated Use `translatorPlugin` function instead */ export class TranslateCollectionPlugin {
7
18
  pluginConfig;
8
19
  constructor(pluginConfig){
@@ -10,7 +21,8 @@ import { normalizePath } from "./server/shared";
10
21
  }
11
22
  init() {
12
23
  return async (config)=>{
13
- const { access, translationProvider, runner, collections, levels, basePath: rawBasePath = "/translate" } = this.pluginConfig;
24
+ const { access, translationProvider, runner, collections, levels, provenance, lifecycle, basePath: rawBasePath = "/translate" } = this.pluginConfig;
25
+ const lifecycleCallbacks = lifecycle ?? {};
14
26
  // Build schema map from deep-cloned collections
15
27
  // Deep clone is required because Payload mutates the original collection objects,
16
28
  // removing `localized: true` from nested fields during sanitization.
@@ -25,17 +37,31 @@ import { normalizePath } from "./server/shared";
25
37
  ]));
26
38
  const collectionSlugs = new Set(schemaMap.keys());
27
39
  const basePath = normalizePath(rawBasePath);
28
- const translateHandler = new TranslateDocumentHandler(translationProvider, schemaMap);
40
+ const provenanceSlug = resolveProvenanceSlug(provenance);
41
+ if (provenanceSlug) {
42
+ const existing = (config.collections ?? []).filter((collection)=>!isProvenanceCollection(collection));
43
+ assertProvenanceSlugFree(provenanceSlug, existing);
44
+ }
45
+ const provenanceStoreFactory = provenanceSlug ? (p)=>new PayloadProvenanceStore(p, provenanceSlug) : undefined;
46
+ const translateHandler = new TranslateDocumentHandler(translationProvider, schemaMap, provenanceStoreFactory);
29
47
  const runnerContext = {
30
48
  handler: async (payload, input)=>{
31
- await translateHandler.handle(payload, {
32
- collection: input.collection,
33
- collectionId: input.collectionId,
34
- sourceLng: input.sourceLng,
35
- targetLng: input.targetLng,
36
- strategy: input.strategy,
37
- publishOnTranslation: input.publishOnTranslation
38
- });
49
+ const notifier = new LifecycleNotifier(lifecycleCallbacks, payload.logger);
50
+ const task = taskFromHandlerInput(input);
51
+ try {
52
+ await translateHandler.handle(payload, {
53
+ collection: input.collection,
54
+ collectionId: input.collectionId,
55
+ sourceLng: input.sourceLng,
56
+ targetLng: input.targetLng,
57
+ strategy: input.strategy,
58
+ publishOnTranslation: input.publishOnTranslation
59
+ });
60
+ } catch (error) {
61
+ await notifier.failed(task, error);
62
+ throw error; // rethrow so the runner marks the job failed
63
+ }
64
+ await notifier.completed(task);
39
65
  },
40
66
  collections: Array.from(collectionSlugs)
41
67
  };
@@ -43,8 +69,13 @@ import { normalizePath } from "./server/shared";
43
69
  // Bind the context once so routes receive a self-sufficient factory: the
44
70
  // runner needs no mutable per-instance handler state and create() has no
45
71
  // "configure() must run first" ordering coupling (translator plan, 0c).
72
+ // When an `onQueued` callback is set, decorate the runner so `enqueue` fires it.
46
73
  const taskRunnerFactory = {
47
- create: (payload)=>runner.create(payload, runnerContext.handler)
74
+ create: (payload)=>{
75
+ const taskRunner = runner.create(payload, runnerContext.handler);
76
+ if (!lifecycleCallbacks.onQueued) return taskRunner;
77
+ return withQueuedNotification(taskRunner, new LifecycleNotifier(lifecycleCallbacks, payload.logger));
78
+ }
48
79
  };
49
80
  const activeLevels = levels ?? [
50
81
  documentLevel(),
@@ -59,11 +90,20 @@ import { normalizePath } from "./server/shared";
59
90
  translationProvider
60
91
  });
61
92
  for (const level of activeLevels)level.extend(builder);
62
- // Plugin-level contributions, routed through the same single config-writer:
63
- // - the runner's jobs/autorun/onInit modifier (the builder applies it first,
64
- // so a modifier returning a fresh config object doesn't drop later writes),
65
- // - the always-on client cache provider.
66
93
  builder.addConfigModifier(runnerConfigModifier);
94
+ if (provenanceSlug && provenanceStoreFactory) {
95
+ builder.addConfigModifier((cfg)=>{
96
+ const alreadyAdded = cfg.collections?.some((collection)=>collection.slug === provenanceSlug && isProvenanceCollection(collection));
97
+ if (!alreadyAdded) {
98
+ cfg.collections = [
99
+ ...cfg.collections ?? [],
100
+ makeProvenanceCollection(provenanceSlug)
101
+ ];
102
+ }
103
+ injectProvenanceCleanup(cfg, collectionSlugs, provenanceStoreFactory, provenanceSlug);
104
+ return cfg;
105
+ });
106
+ }
67
107
  builder.addAdminProvider(new CacheProviderExport(basePath));
68
108
  // The single place the Payload config is mutated.
69
109
  return builder.applyTo(config);
@@ -1,4 +1,4 @@
1
- import type { CollectionSlug, Payload } from 'payload';
1
+ import type { CollectionSlug, Payload } from "payload";
2
2
  /**
3
3
  * Checks if collection is available for translation
4
4
  */
@@ -1 +1 @@
1
- export * from './collection-utils';
1
+ export * from "./collection-utils";
@@ -1,3 +1,3 @@
1
- export * from './collection-utils';
1
+ export * from "./collection-utils";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export { createCancelRoute } from './route';
1
+ export { createCancelRoute } from "./route";
@@ -1,3 +1,3 @@
1
- export { createCancelRoute } from './route';
1
+ export { createCancelRoute } from "./route";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- export { createCancelByCollectionRoute } from './route';
1
+ export { createCancelByCollectionRoute } from "./route";
@@ -1,3 +1,3 @@
1
- export { createCancelByCollectionRoute } from './route';
1
+ export { createCancelByCollectionRoute } from "./route";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
- import type { CollectionSlug } from 'payload';
1
+ import { z } from "zod";
2
+ import type { CollectionSlug } from "payload";
3
3
  /**
4
4
  * Input validation schema
5
5
  */
@@ -1,4 +1,4 @@
1
- import { z } from 'zod';
1
+ import { z } from "zod";
2
2
  /**
3
3
  * Input validation schema
4
4
  */ export const CancelByCollectionInputSchema = z.object({
@@ -20,4 +20,4 @@ export type TranslationRoutesDeps = {
20
20
  * context; the plugin deduplicates by method + path, so it registers exactly
21
21
  * once. Behaviour-preserving: same endpoints, same order, same wiring.
22
22
  */
23
- export declare function createTranslationRoutes({ taskRunnerFactory, collectionConfig, access, basePath }: TranslationRoutesDeps): Endpoint[];
23
+ export declare function createTranslationRoutes({ taskRunnerFactory, collectionConfig, access, basePath, }: TranslationRoutesDeps): Endpoint[];
@@ -1 +1 @@
1
- export { createEnqueueRoute } from './route';
1
+ export { createEnqueueRoute } from "./route";
@@ -1,3 +1,3 @@
1
- export { createEnqueueRoute } from './route';
1
+ export { createEnqueueRoute } from "./route";
2
2
 
3
3
  //# sourceMappingURL=index.js.map
@@ -1,5 +1,5 @@
1
- import { z } from 'zod';
2
- import type { CollectionSlug } from 'payload';
1
+ import { z } from "zod";
2
+ import type { CollectionSlug } from "payload";
3
3
  /**
4
4
  * Input validation schema
5
5
  */