@focus-reactive/payload-plugin-translator 0.1.0 → 0.1.2
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.
- package/README.md +27 -14
- package/dist/client/app/cache/CacheProvider.export.js +1 -1
- package/dist/client/entities/translation/ui/CompletedTranslationStatus/styles.module.scss +3 -0
- package/dist/client/entities/translation/ui/FailedTranslationStatus/styles.module.scss +3 -0
- package/dist/client/entities/translation/ui/TranslationDirection/styles.module.scss +16 -0
- package/dist/client/features/collection-translation-form/ui/styles.module.scss +31 -0
- package/dist/client/features/collection-translation-popup/ui/styles.module.scss +18 -0
- package/dist/client/features/collection-translation-progress/ui/styles.module.scss +8 -0
- package/dist/client/features/open-document-translation-popup/ui/styles.module.scss +11 -0
- package/dist/client/features/translate-document-form/ui/styles.module.scss +18 -0
- package/dist/client/shared/ui/Alert/styles.module.scss +31 -0
- package/dist/client/shared/ui/Button/styles.module.scss +103 -0
- package/dist/client/shared/ui/Checkbox/styles.module.scss +17 -0
- package/dist/client/shared/ui/ColorIndicator/styles.module.scss +37 -0
- package/dist/client/shared/ui/Description/styles.module.scss +14 -0
- package/dist/client/shared/ui/Divider/styles.module.scss +56 -0
- package/dist/client/shared/ui/Label/styles.module.scss +12 -0
- package/dist/client/shared/ui/Loading/styles.module.scss +141 -0
- package/dist/client/shared/ui/Popup/styles.module.scss +7 -0
- package/dist/client/shared/ui/ProgressBar/styles.module.scss +64 -0
- package/dist/client/shared/ui/Select/styles.module.scss +55 -0
- package/dist/client/shared/ui/StatusCounter/styles.module.scss +46 -0
- package/dist/client/shared/ui/StatusIndicator/styles.module.scss +12 -0
- package/dist/client/shared/ui/Tooltip/styles.module.scss +84 -0
- package/dist/client/shared/ui/form/FormCheckbox/styles.module.scss +23 -0
- package/dist/client/shared/ui/form/FormCheckboxPublish/styles.module.scss +16 -0
- package/dist/client/shared/ui/form/FormSelectStrategy/styles.module.scss +16 -0
- package/dist/client/shared/utils/componentPath.d.ts +1 -1
- package/dist/client/shared/utils/componentPath.js +1 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.js +1 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.export.js +1 -1
- package/package.json +32 -17
- package/dist/client/app/cache/CacheProvider.d.ts.map +0 -1
- package/dist/client/app/cache/CacheProvider.export.d.ts.map +0 -1
- package/dist/client/app/cache/CacheProvider.export.js.map +0 -1
- package/dist/client/app/cache/CacheProvider.js.map +0 -1
- package/dist/client/app/cache/CacheProvider.jsx +0 -11
- package/dist/client/app/config/TranslateKitConfigContext.d.ts.map +0 -1
- package/dist/client/app/config/TranslateKitConfigContext.js.map +0 -1
- package/dist/client/app/config/TranslateKitConfigContext.jsx +0 -13
- package/dist/client/app/config/index.d.ts.map +0 -1
- package/dist/client/app/config/index.js.map +0 -1
- package/dist/client/entities/translation/api/mutations/useCancelCollectionTranslations.d.ts.map +0 -1
- package/dist/client/entities/translation/api/mutations/useCancelCollectionTranslations.js.map +0 -1
- package/dist/client/entities/translation/api/mutations/useCancelDocumentTranslation.d.ts.map +0 -1
- package/dist/client/entities/translation/api/mutations/useCancelDocumentTranslation.js.map +0 -1
- package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslation.d.ts.map +0 -1
- package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslation.js.map +0 -1
- package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslations.d.ts.map +0 -1
- package/dist/client/entities/translation/api/mutations/useQueueDocumentTranslations.js.map +0 -1
- package/dist/client/entities/translation/api/mutations/useRunDocumentTranslation.d.ts.map +0 -1
- package/dist/client/entities/translation/api/mutations/useRunDocumentTranslation.js.map +0 -1
- package/dist/client/entities/translation/api/queries/useCollectionTranslationStatus.d.ts.map +0 -1
- package/dist/client/entities/translation/api/queries/useCollectionTranslationStatus.js.map +0 -1
- package/dist/client/entities/translation/api/queries/useDocumentTranslation.d.ts.map +0 -1
- package/dist/client/entities/translation/api/queries/useDocumentTranslation.js.map +0 -1
- package/dist/client/entities/translation/index.d.ts.map +0 -1
- package/dist/client/entities/translation/index.js.map +0 -1
- package/dist/client/entities/translation/model/enums.d.ts.map +0 -1
- package/dist/client/entities/translation/model/enums.js.map +0 -1
- package/dist/client/entities/translation/model/types.d.ts.map +0 -1
- package/dist/client/entities/translation/model/types.js.map +0 -1
- package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.js.map +0 -1
- package/dist/client/entities/translation/ui/CompletedTranslationStatus/CompletedTranslationStatus.jsx +0 -25
- package/dist/client/entities/translation/ui/CompletedTranslationStatus/index.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/CompletedTranslationStatus/index.js.map +0 -1
- package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.js.map +0 -1
- package/dist/client/entities/translation/ui/FailedTranslationStatus/FailedTranslationStatus.jsx +0 -24
- package/dist/client/entities/translation/ui/FailedTranslationStatus/index.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/FailedTranslationStatus/index.js.map +0 -1
- package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.js.map +0 -1
- package/dist/client/entities/translation/ui/PendingTranslationStatus/PendingTranslationStatus.jsx +0 -38
- package/dist/client/entities/translation/ui/PendingTranslationStatus/index.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/PendingTranslationStatus/index.js.map +0 -1
- package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.js.map +0 -1
- package/dist/client/entities/translation/ui/RunningTranslationStatus/RunningTranslationStatus.jsx +0 -32
- package/dist/client/entities/translation/ui/RunningTranslationStatus/index.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/RunningTranslationStatus/index.js.map +0 -1
- package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.js.map +0 -1
- package/dist/client/entities/translation/ui/TranslationDirection/TranslationDirection.jsx +0 -16
- package/dist/client/entities/translation/ui/TranslationDirection/index.d.ts.map +0 -1
- package/dist/client/entities/translation/ui/TranslationDirection/index.js.map +0 -1
- package/dist/client/features/collection-translation-form/index.client.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/index.client.js.map +0 -1
- package/dist/client/features/collection-translation-form/index.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/index.js.map +0 -1
- package/dist/client/features/collection-translation-form/model/constants.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/model/constants.js.map +0 -1
- package/dist/client/features/collection-translation-form/model/form-model.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/model/form-model.js.map +0 -1
- package/dist/client/features/collection-translation-form/model/index.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/model/index.js.map +0 -1
- package/dist/client/features/collection-translation-form/model/schema.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/model/schema.js.map +0 -1
- package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.js.map +0 -1
- package/dist/client/features/collection-translation-form/ui/CollectionTranslationForm.jsx +0 -25
- package/dist/client/features/collection-translation-form/ui/index.d.ts.map +0 -1
- package/dist/client/features/collection-translation-form/ui/index.js.map +0 -1
- package/dist/client/features/collection-translation-popup/index.d.ts.map +0 -1
- package/dist/client/features/collection-translation-popup/index.js.map +0 -1
- package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.d.ts.map +0 -1
- package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.js.map +0 -1
- package/dist/client/features/collection-translation-popup/ui/CollectionTranslationPopup.jsx +0 -23
- package/dist/client/features/collection-translation-progress/index.d.ts.map +0 -1
- package/dist/client/features/collection-translation-progress/index.js.map +0 -1
- package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.d.ts.map +0 -1
- package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.js.map +0 -1
- package/dist/client/features/collection-translation-progress/ui/CollectionTranslationProgress.jsx +0 -47
- package/dist/client/features/document-translation-progress-failed/index.d.ts.map +0 -1
- package/dist/client/features/document-translation-progress-failed/index.js.map +0 -1
- package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.d.ts.map +0 -1
- package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.js.map +0 -1
- package/dist/client/features/document-translation-progress-failed/ui/DocumentTranslationProgressFailed.jsx +0 -19
- package/dist/client/features/document-translation-progress-pending/index.d.ts.map +0 -1
- package/dist/client/features/document-translation-progress-pending/index.js.map +0 -1
- package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.d.ts.map +0 -1
- package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.js.map +0 -1
- package/dist/client/features/document-translation-progress-pending/ui/DocumentTranslationProgressPending.jsx +0 -34
- package/dist/client/features/document-translation-progress-running/index.d.ts.map +0 -1
- package/dist/client/features/document-translation-progress-running/index.js.map +0 -1
- package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.d.ts.map +0 -1
- package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.js.map +0 -1
- package/dist/client/features/document-translation-progress-running/ui/DocumentTranslationProgressRunning.jsx +0 -19
- package/dist/client/features/open-document-translation-popup/index.d.ts.map +0 -1
- package/dist/client/features/open-document-translation-popup/index.js.map +0 -1
- package/dist/client/features/open-document-translation-popup/ui/OpenDocumentTranslationPopup.d.ts.map +0 -1
- package/dist/client/features/open-document-translation-popup/ui/OpenDocumentTranslationPopup.js.map +0 -1
- package/dist/client/features/open-document-translation-popup/ui/OpenDocumentTranslationPopup.jsx +0 -15
- package/dist/client/features/translate-document-form/index.client.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/index.client.js.map +0 -1
- package/dist/client/features/translate-document-form/index.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/index.js.map +0 -1
- package/dist/client/features/translate-document-form/model/constants.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/model/constants.js.map +0 -1
- package/dist/client/features/translate-document-form/model/form-model.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/model/form-model.js.map +0 -1
- package/dist/client/features/translate-document-form/model/index.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/model/index.js.map +0 -1
- package/dist/client/features/translate-document-form/model/schema.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/model/schema.js.map +0 -1
- package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.js.map +0 -1
- package/dist/client/features/translate-document-form/ui/DocumentTranslationForm.jsx +0 -24
- package/dist/client/features/translate-document-form/ui/index.d.ts.map +0 -1
- package/dist/client/features/translate-document-form/ui/index.js.map +0 -1
- package/dist/client/shared/lib/assets/icons/LanguageTranslateIcon.d.ts.map +0 -1
- package/dist/client/shared/lib/assets/icons/LanguageTranslateIcon.js.map +0 -1
- package/dist/client/shared/lib/assets/icons/LanguageTranslateIcon.jsx +0 -4
- package/dist/client/shared/lib/assets/icons/QuestionCircleIcon.d.ts.map +0 -1
- package/dist/client/shared/lib/assets/icons/QuestionCircleIcon.js.map +0 -1
- package/dist/client/shared/lib/assets/icons/QuestionCircleIcon.jsx +0 -3
- package/dist/client/shared/lib/assets/icons/ReloadIcon.d.ts.map +0 -1
- package/dist/client/shared/lib/assets/icons/ReloadIcon.js.map +0 -1
- package/dist/client/shared/lib/assets/icons/ReloadIcon.jsx +0 -3
- package/dist/client/shared/lib/errors/handleApiError.d.ts.map +0 -1
- package/dist/client/shared/lib/errors/handleApiError.js.map +0 -1
- package/dist/client/shared/lib/forms/handle-form-error.d.ts.map +0 -1
- package/dist/client/shared/lib/forms/handle-form-error.js.map +0 -1
- package/dist/client/shared/lib/payload/hooks/useCollectionDashboardUrlParams.d.ts.map +0 -1
- package/dist/client/shared/lib/payload/hooks/useCollectionDashboardUrlParams.js.map +0 -1
- package/dist/client/shared/lib/payload/hooks/useCollectionDocumentUrlParams.d.ts.map +0 -1
- package/dist/client/shared/lib/payload/hooks/useCollectionDocumentUrlParams.js.map +0 -1
- package/dist/client/shared/lib/payload/hooks/useLocaleOptions.d.ts.map +0 -1
- package/dist/client/shared/lib/payload/hooks/useLocaleOptions.js.map +0 -1
- package/dist/client/shared/lib/utils/errors/handleApiError.d.ts.map +0 -1
- package/dist/client/shared/lib/utils/errors/handleApiError.js.map +0 -1
- package/dist/client/shared/lib/utils/react/useToggle.d.ts.map +0 -1
- package/dist/client/shared/lib/utils/react/useToggle.js.map +0 -1
- package/dist/client/shared/providers/CacheClientProvider/CacheClientProvider.factory.d.ts.map +0 -1
- package/dist/client/shared/providers/CacheClientProvider/CacheClientProvider.factory.js.map +0 -1
- package/dist/client/shared/providers/CacheClientProvider/index.d.ts.map +0 -1
- package/dist/client/shared/providers/CacheClientProvider/index.js.map +0 -1
- package/dist/client/shared/types/AccessGuard.d.ts.map +0 -1
- package/dist/client/shared/types/AccessGuard.js.map +0 -1
- package/dist/client/shared/types/PayloadComponentExport.d.ts.map +0 -1
- package/dist/client/shared/types/PayloadComponentExport.js.map +0 -1
- package/dist/client/shared/ui/Alert/Alert.d.ts.map +0 -1
- package/dist/client/shared/ui/Alert/Alert.js.map +0 -1
- package/dist/client/shared/ui/Alert/Alert.jsx +0 -33
- package/dist/client/shared/ui/Alert/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Alert/index.js.map +0 -1
- package/dist/client/shared/ui/Button/Button.d.ts.map +0 -1
- package/dist/client/shared/ui/Button/Button.js.map +0 -1
- package/dist/client/shared/ui/Button/Button.jsx +0 -35
- package/dist/client/shared/ui/Button/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Button/index.js.map +0 -1
- package/dist/client/shared/ui/Checkbox/Checkbox.d.ts.map +0 -1
- package/dist/client/shared/ui/Checkbox/Checkbox.js.map +0 -1
- package/dist/client/shared/ui/Checkbox/Checkbox.jsx +0 -6
- package/dist/client/shared/ui/Checkbox/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Checkbox/index.js.map +0 -1
- package/dist/client/shared/ui/ColorIndicator/ColorIndicator.d.ts.map +0 -1
- package/dist/client/shared/ui/ColorIndicator/ColorIndicator.js.map +0 -1
- package/dist/client/shared/ui/ColorIndicator/ColorIndicator.jsx +0 -7
- package/dist/client/shared/ui/ColorIndicator/index.d.ts.map +0 -1
- package/dist/client/shared/ui/ColorIndicator/index.js.map +0 -1
- package/dist/client/shared/ui/Description/Description.d.ts.map +0 -1
- package/dist/client/shared/ui/Description/Description.js.map +0 -1
- package/dist/client/shared/ui/Description/Description.jsx +0 -7
- package/dist/client/shared/ui/Description/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Description/index.js.map +0 -1
- package/dist/client/shared/ui/Divider/Divider.d.ts.map +0 -1
- package/dist/client/shared/ui/Divider/Divider.js.map +0 -1
- package/dist/client/shared/ui/Divider/Divider.jsx +0 -7
- package/dist/client/shared/ui/Divider/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Divider/index.js.map +0 -1
- package/dist/client/shared/ui/Label/Label.d.ts.map +0 -1
- package/dist/client/shared/ui/Label/Label.js.map +0 -1
- package/dist/client/shared/ui/Label/Label.jsx +0 -9
- package/dist/client/shared/ui/Label/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Label/index.js.map +0 -1
- package/dist/client/shared/ui/Loading/Loading.d.ts.map +0 -1
- package/dist/client/shared/ui/Loading/Loading.js.map +0 -1
- package/dist/client/shared/ui/Loading/Loading.jsx +0 -11
- package/dist/client/shared/ui/Loading/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Loading/index.js.map +0 -1
- package/dist/client/shared/ui/Popup/Popup.d.ts.map +0 -1
- package/dist/client/shared/ui/Popup/Popup.js.map +0 -1
- package/dist/client/shared/ui/Popup/Popup.jsx +0 -13
- package/dist/client/shared/ui/Popup/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Popup/index.js.map +0 -1
- package/dist/client/shared/ui/ProgressBar/ProgressBar.d.ts.map +0 -1
- package/dist/client/shared/ui/ProgressBar/ProgressBar.js.map +0 -1
- package/dist/client/shared/ui/ProgressBar/ProgressBar.jsx +0 -11
- package/dist/client/shared/ui/ProgressBar/index.d.ts.map +0 -1
- package/dist/client/shared/ui/ProgressBar/index.js.map +0 -1
- package/dist/client/shared/ui/Select/Select.d.ts.map +0 -1
- package/dist/client/shared/ui/Select/Select.js.map +0 -1
- package/dist/client/shared/ui/Select/Select.jsx +0 -41
- package/dist/client/shared/ui/Select/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Select/index.js.map +0 -1
- package/dist/client/shared/ui/StatusCounter/StatusCounter.d.ts.map +0 -1
- package/dist/client/shared/ui/StatusCounter/StatusCounter.js.map +0 -1
- package/dist/client/shared/ui/StatusCounter/StatusCounter.jsx +0 -26
- package/dist/client/shared/ui/StatusCounter/index.d.ts.map +0 -1
- package/dist/client/shared/ui/StatusCounter/index.js.map +0 -1
- package/dist/client/shared/ui/StatusIndicator/StatusIndicator.d.ts.map +0 -1
- package/dist/client/shared/ui/StatusIndicator/StatusIndicator.js.map +0 -1
- package/dist/client/shared/ui/StatusIndicator/StatusIndicator.jsx +0 -10
- package/dist/client/shared/ui/StatusIndicator/index.d.ts.map +0 -1
- package/dist/client/shared/ui/StatusIndicator/index.js.map +0 -1
- package/dist/client/shared/ui/Tooltip/Tooltip.d.ts.map +0 -1
- package/dist/client/shared/ui/Tooltip/Tooltip.js.map +0 -1
- package/dist/client/shared/ui/Tooltip/Tooltip.jsx +0 -16
- package/dist/client/shared/ui/Tooltip/index.d.ts.map +0 -1
- package/dist/client/shared/ui/Tooltip/index.js.map +0 -1
- package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.js.map +0 -1
- package/dist/client/shared/ui/form/FormCheckbox/FormCheckbox.jsx +0 -24
- package/dist/client/shared/ui/form/FormCheckbox/index.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormCheckbox/index.js.map +0 -1
- package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.js.map +0 -1
- package/dist/client/shared/ui/form/FormCheckboxPublish/FormCheckboxPublish.jsx +0 -21
- package/dist/client/shared/ui/form/FormCheckboxPublish/index.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormCheckboxPublish/index.js.map +0 -1
- package/dist/client/shared/ui/form/FormSelect/FormSelect.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormSelect/FormSelect.js.map +0 -1
- package/dist/client/shared/ui/form/FormSelect/FormSelect.jsx +0 -44
- package/dist/client/shared/ui/form/FormSelect/index.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormSelect/index.js.map +0 -1
- package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.js.map +0 -1
- package/dist/client/shared/ui/form/FormSelectLocale/FormSelectLocale.jsx +0 -6
- package/dist/client/shared/ui/form/FormSelectLocale/index.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormSelectLocale/index.js.map +0 -1
- package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.js.map +0 -1
- package/dist/client/shared/ui/form/FormSelectStrategy/FormSelectStrategy.jsx +0 -25
- package/dist/client/shared/ui/form/FormSelectStrategy/index.d.ts.map +0 -1
- package/dist/client/shared/ui/form/FormSelectStrategy/index.js.map +0 -1
- package/dist/client/shared/utils/componentPath.d.ts.map +0 -1
- package/dist/client/shared/utils/componentPath.js.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/index.d.ts.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/index.js.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.d.ts.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.d.ts.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.js.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.export.jsx +0 -11
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.js.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.jsx +0 -55
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.d.ts.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.js.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/BulkTranslationDashboard.server.jsx +0 -17
- package/dist/client/widgets/bulk-translation-dashboard/ui/index.d.ts.map +0 -1
- package/dist/client/widgets/bulk-translation-dashboard/ui/index.js.map +0 -1
- package/dist/client/widgets/translate-document/index.d.ts.map +0 -1
- package/dist/client/widgets/translate-document/index.js.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.d.ts.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.export.d.ts.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.export.js.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.js.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.jsx +0 -55
- package/dist/client/widgets/translate-document/ui/TranslateDocument.server.d.ts.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.server.js.map +0 -1
- package/dist/client/widgets/translate-document/ui/TranslateDocument.server.jsx +0 -16
- package/dist/client/widgets/translate-document/ui/index.d.ts.map +0 -1
- package/dist/client/widgets/translate-document/ui/index.js.map +0 -1
- package/dist/field-config.d.ts.map +0 -1
- package/dist/field-config.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/plugin.d.ts.map +0 -1
- package/dist/plugin.js.map +0 -1
- package/dist/server/features/_lib/collection-utils.d.ts.map +0 -1
- package/dist/server/features/_lib/collection-utils.js.map +0 -1
- package/dist/server/features/_lib/index.d.ts.map +0 -1
- package/dist/server/features/_lib/index.js.map +0 -1
- package/dist/server/features/cancel/handler.d.ts.map +0 -1
- package/dist/server/features/cancel/handler.js.map +0 -1
- package/dist/server/features/cancel/handler.test.d.ts +0 -2
- package/dist/server/features/cancel/handler.test.d.ts.map +0 -1
- package/dist/server/features/cancel/handler.test.js +0 -63
- package/dist/server/features/cancel/index.d.ts.map +0 -1
- package/dist/server/features/cancel/index.js.map +0 -1
- package/dist/server/features/cancel/model.d.ts.map +0 -1
- package/dist/server/features/cancel/model.js.map +0 -1
- package/dist/server/features/cancel/route.d.ts.map +0 -1
- package/dist/server/features/cancel/route.js.map +0 -1
- package/dist/server/features/cancel-by-collection/handler.d.ts.map +0 -1
- package/dist/server/features/cancel-by-collection/handler.js.map +0 -1
- package/dist/server/features/cancel-by-collection/handler.test.d.ts +0 -2
- package/dist/server/features/cancel-by-collection/handler.test.d.ts.map +0 -1
- package/dist/server/features/cancel-by-collection/handler.test.js +0 -126
- package/dist/server/features/cancel-by-collection/index.d.ts.map +0 -1
- package/dist/server/features/cancel-by-collection/index.js.map +0 -1
- package/dist/server/features/cancel-by-collection/model.d.ts.map +0 -1
- package/dist/server/features/cancel-by-collection/model.js.map +0 -1
- package/dist/server/features/cancel-by-collection/route.d.ts.map +0 -1
- package/dist/server/features/cancel-by-collection/route.js.map +0 -1
- package/dist/server/features/enqueue-translation/handler.d.ts.map +0 -1
- package/dist/server/features/enqueue-translation/handler.js.map +0 -1
- package/dist/server/features/enqueue-translation/handler.test.d.ts +0 -2
- package/dist/server/features/enqueue-translation/handler.test.d.ts.map +0 -1
- package/dist/server/features/enqueue-translation/handler.test.js +0 -115
- package/dist/server/features/enqueue-translation/index.d.ts.map +0 -1
- package/dist/server/features/enqueue-translation/index.js.map +0 -1
- package/dist/server/features/enqueue-translation/model.d.ts.map +0 -1
- package/dist/server/features/enqueue-translation/model.js.map +0 -1
- package/dist/server/features/enqueue-translation/route.d.ts.map +0 -1
- package/dist/server/features/enqueue-translation/route.js.map +0 -1
- package/dist/server/features/get-collection-status/handler.d.ts.map +0 -1
- package/dist/server/features/get-collection-status/handler.js.map +0 -1
- package/dist/server/features/get-collection-status/handler.test.d.ts +0 -2
- package/dist/server/features/get-collection-status/handler.test.d.ts.map +0 -1
- package/dist/server/features/get-collection-status/handler.test.js +0 -108
- package/dist/server/features/get-collection-status/index.d.ts.map +0 -1
- package/dist/server/features/get-collection-status/index.js.map +0 -1
- package/dist/server/features/get-collection-status/model.d.ts.map +0 -1
- package/dist/server/features/get-collection-status/model.js.map +0 -1
- package/dist/server/features/get-collection-status/route.d.ts.map +0 -1
- package/dist/server/features/get-collection-status/route.js.map +0 -1
- package/dist/server/features/get-document-status/handler.d.ts.map +0 -1
- package/dist/server/features/get-document-status/handler.js.map +0 -1
- package/dist/server/features/get-document-status/handler.test.d.ts +0 -2
- package/dist/server/features/get-document-status/handler.test.d.ts.map +0 -1
- package/dist/server/features/get-document-status/handler.test.js +0 -138
- package/dist/server/features/get-document-status/index.d.ts.map +0 -1
- package/dist/server/features/get-document-status/index.js.map +0 -1
- package/dist/server/features/get-document-status/model.d.ts.map +0 -1
- package/dist/server/features/get-document-status/model.js.map +0 -1
- package/dist/server/features/get-document-status/route.d.ts.map +0 -1
- package/dist/server/features/get-document-status/route.js.map +0 -1
- package/dist/server/features/index.d.ts.map +0 -1
- package/dist/server/features/index.js.map +0 -1
- package/dist/server/features/run-translation/handler.d.ts.map +0 -1
- package/dist/server/features/run-translation/handler.js.map +0 -1
- package/dist/server/features/run-translation/handler.test.d.ts +0 -2
- package/dist/server/features/run-translation/handler.test.d.ts.map +0 -1
- package/dist/server/features/run-translation/handler.test.js +0 -98
- package/dist/server/features/run-translation/index.d.ts.map +0 -1
- package/dist/server/features/run-translation/index.js.map +0 -1
- package/dist/server/features/run-translation/model.d.ts.map +0 -1
- package/dist/server/features/run-translation/model.js.map +0 -1
- package/dist/server/features/run-translation/route.d.ts.map +0 -1
- package/dist/server/features/run-translation/route.js.map +0 -1
- package/dist/server/features/translate-document/handler.d.ts.map +0 -1
- package/dist/server/features/translate-document/handler.js.map +0 -1
- package/dist/server/features/translate-document/handler.test.d.ts +0 -2
- package/dist/server/features/translate-document/handler.test.d.ts.map +0 -1
- package/dist/server/features/translate-document/handler.test.js +0 -171
- package/dist/server/features/translate-document/index.d.ts.map +0 -1
- package/dist/server/features/translate-document/index.js.map +0 -1
- package/dist/server/features/translate-document/model.d.ts.map +0 -1
- package/dist/server/features/translate-document/model.js.map +0 -1
- package/dist/server/features/translate-document/task.d.ts.map +0 -1
- package/dist/server/features/translate-document/task.js.map +0 -1
- package/dist/server/index.d.ts.map +0 -1
- package/dist/server/index.js.map +0 -1
- package/dist/server/modules/index.d.ts.map +0 -1
- package/dist/server/modules/index.js.map +0 -1
- package/dist/server/modules/task-runner/TaskRunner.interface.d.ts.map +0 -1
- package/dist/server/modules/task-runner/TaskRunner.interface.js.map +0 -1
- package/dist/server/modules/task-runner/TaskRunnerProvider.interface.d.ts.map +0 -1
- package/dist/server/modules/task-runner/TaskRunnerProvider.interface.js.map +0 -1
- package/dist/server/modules/task-runner/index.d.ts.map +0 -1
- package/dist/server/modules/task-runner/index.js.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsRunnerProvider.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsRunnerProvider.js.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.js.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.test.d.ts +0 -2
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.test.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/PayloadJobsTaskRunner.test.js +0 -188
- package/dist/server/modules/task-runner/payload-jobs-runner/index.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/index.js.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.js.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.d.ts +0 -2
- package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.js +0 -169
- package/dist/server/modules/task-runner/payload-jobs-runner/types.d.ts.map +0 -1
- package/dist/server/modules/task-runner/payload-jobs-runner/types.js.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/SyncRunnerProvider.d.ts.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/SyncRunnerProvider.js.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.d.ts.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.js.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.test.d.ts +0 -2
- package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.test.d.ts.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/SyncTaskRunner.test.js +0 -148
- package/dist/server/modules/task-runner/sync-runner/index.d.ts.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/index.js.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/types.d.ts.map +0 -1
- package/dist/server/modules/task-runner/sync-runner/types.js.map +0 -1
- package/dist/server/modules/task-runner/types.d.ts.map +0 -1
- package/dist/server/modules/task-runner/types.js.map +0 -1
- package/dist/server/modules/translation-pipeline/TranslationPipeline.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/TranslationPipeline.js.map +0 -1
- package/dist/server/modules/translation-pipeline/TranslationPipeline.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/TranslationPipeline.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/TranslationPipeline.test.js +0 -552
- package/dist/server/modules/translation-pipeline/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.stage.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.stage.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/DataReconciler.test.js +0 -294
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/data-reconciler/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.stage.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.stage.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/FieldChunkCollector.test.js +0 -737
- package/dist/server/modules/translation-pipeline/stages/field-collector/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/field-collector/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/PlainTextExpander.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/PlainTextExpander.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/RichTextExpander.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/RichTextExpander.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.stage.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.stage.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextChunkExpander.test.js +0 -396
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextExpander.interface.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/TextExpander.interface.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/text-expander/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation/Translation.stage.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation/Translation.stage.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.stage.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.stage.js.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/TranslationMutator.test.js +0 -110
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/stages/translation-applicator/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.js.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/Overwrite.strategy.test.js +0 -36
- package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.js.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.test.d.ts +0 -2
- package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.test.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/SkipExisting.strategy.test.js +0 -77
- package/dist/server/modules/translation-pipeline/strategies/TranslationStrategy.interface.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/TranslationStrategy.interface.js.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/strategies/index.js.map +0 -1
- package/dist/server/modules/translation-pipeline/types/FieldChunk.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/types/FieldChunk.js.map +0 -1
- package/dist/server/modules/translation-pipeline/types/Pipeline.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/types/Pipeline.js.map +0 -1
- package/dist/server/modules/translation-pipeline/types/PipelineContext.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/types/PipelineContext.js.map +0 -1
- package/dist/server/modules/translation-pipeline/types/TextChunk.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/types/TextChunk.js.map +0 -1
- package/dist/server/modules/translation-pipeline/types/index.d.ts.map +0 -1
- package/dist/server/modules/translation-pipeline/types/index.js.map +0 -1
- package/dist/server/modules/translation-providers/OpenAITranslation.provider.d.ts.map +0 -1
- package/dist/server/modules/translation-providers/OpenAITranslation.provider.js.map +0 -1
- package/dist/server/modules/translation-providers/OpenAITranslation.provider.test.d.ts +0 -2
- package/dist/server/modules/translation-providers/OpenAITranslation.provider.test.d.ts.map +0 -1
- package/dist/server/modules/translation-providers/OpenAITranslation.provider.test.js +0 -214
- package/dist/server/modules/translation-providers/TranslationProvider.interface.d.ts.map +0 -1
- package/dist/server/modules/translation-providers/TranslationProvider.interface.js.map +0 -1
- package/dist/server/modules/translation-providers/index.d.ts.map +0 -1
- package/dist/server/modules/translation-providers/index.js.map +0 -1
- package/dist/server/shared/access/AnyAccessGuard.d.ts.map +0 -1
- package/dist/server/shared/access/AnyAccessGuard.js.map +0 -1
- package/dist/server/shared/access/handler.d.ts.map +0 -1
- package/dist/server/shared/access/handler.js.map +0 -1
- package/dist/server/shared/access/index.d.ts.map +0 -1
- package/dist/server/shared/access/index.js.map +0 -1
- package/dist/server/shared/access/types.d.ts.map +0 -1
- package/dist/server/shared/access/types.js.map +0 -1
- package/dist/server/shared/field-config/getFieldConfig.d.ts.map +0 -1
- package/dist/server/shared/field-config/getFieldConfig.js.map +0 -1
- package/dist/server/shared/field-config/getFieldConfig.test.d.ts +0 -2
- package/dist/server/shared/field-config/getFieldConfig.test.d.ts.map +0 -1
- package/dist/server/shared/field-config/getFieldConfig.test.js +0 -74
- package/dist/server/shared/field-config/index.d.ts.map +0 -1
- package/dist/server/shared/field-config/index.js.map +0 -1
- package/dist/server/shared/field-config/types.d.ts.map +0 -1
- package/dist/server/shared/field-config/types.js.map +0 -1
- package/dist/server/shared/guards/collection-guards.d.ts.map +0 -1
- package/dist/server/shared/guards/collection-guards.js.map +0 -1
- package/dist/server/shared/guards/field-guards.d.ts.map +0 -1
- package/dist/server/shared/guards/field-guards.js.map +0 -1
- package/dist/server/shared/guards/field-guards.test.d.ts +0 -2
- package/dist/server/shared/guards/field-guards.test.d.ts.map +0 -1
- package/dist/server/shared/guards/field-guards.test.js +0 -166
- package/dist/server/shared/guards/index.d.ts.map +0 -1
- package/dist/server/shared/guards/index.js.map +0 -1
- package/dist/server/shared/http/ServerResponse.d.ts.map +0 -1
- package/dist/server/shared/http/ServerResponse.js.map +0 -1
- package/dist/server/shared/http/ServerResponse.test.d.ts +0 -2
- package/dist/server/shared/http/ServerResponse.test.d.ts.map +0 -1
- package/dist/server/shared/http/ServerResponse.test.js +0 -161
- package/dist/server/shared/http/index.d.ts.map +0 -1
- package/dist/server/shared/http/index.js.map +0 -1
- package/dist/server/shared/http/withAccessCheck.d.ts.map +0 -1
- package/dist/server/shared/http/withAccessCheck.js.map +0 -1
- package/dist/server/shared/http/withAccessCheck.test.d.ts +0 -2
- package/dist/server/shared/http/withAccessCheck.test.d.ts.map +0 -1
- package/dist/server/shared/http/withAccessCheck.test.js +0 -46
- package/dist/server/shared/http/withErrorHandler.d.ts.map +0 -1
- package/dist/server/shared/http/withErrorHandler.js.map +0 -1
- package/dist/server/shared/http/withErrorHandler.test.d.ts +0 -2
- package/dist/server/shared/http/withErrorHandler.test.d.ts.map +0 -1
- package/dist/server/shared/http/withErrorHandler.test.js +0 -69
- package/dist/server/shared/index.d.ts.map +0 -1
- package/dist/server/shared/index.js.map +0 -1
- package/dist/server/shared/lexical/collectTextNodes.d.ts.map +0 -1
- package/dist/server/shared/lexical/collectTextNodes.js.map +0 -1
- package/dist/server/shared/lexical/collectTextNodes.test.d.ts +0 -2
- package/dist/server/shared/lexical/collectTextNodes.test.d.ts.map +0 -1
- package/dist/server/shared/lexical/collectTextNodes.test.js +0 -120
- package/dist/server/shared/lexical/guards.d.ts.map +0 -1
- package/dist/server/shared/lexical/guards.js.map +0 -1
- package/dist/server/shared/lexical/guards.test.d.ts +0 -2
- package/dist/server/shared/lexical/guards.test.d.ts.map +0 -1
- package/dist/server/shared/lexical/guards.test.js +0 -160
- package/dist/server/shared/lexical/index.d.ts.map +0 -1
- package/dist/server/shared/lexical/index.js.map +0 -1
- package/dist/server/shared/lexical/isEmptyRichText.d.ts.map +0 -1
- package/dist/server/shared/lexical/isEmptyRichText.js.map +0 -1
- package/dist/server/shared/lexical/isEmptyRichText.test.d.ts +0 -2
- package/dist/server/shared/lexical/isEmptyRichText.test.d.ts.map +0 -1
- package/dist/server/shared/lexical/isEmptyRichText.test.js +0 -251
- package/dist/server/shared/lexical/traverseLexicalTree.d.ts.map +0 -1
- package/dist/server/shared/lexical/traverseLexicalTree.js.map +0 -1
- package/dist/server/shared/lexical/traverseLexicalTree.test.d.ts +0 -2
- package/dist/server/shared/lexical/traverseLexicalTree.test.d.ts.map +0 -1
- package/dist/server/shared/lexical/traverseLexicalTree.test.js +0 -112
- package/dist/server/shared/lexical/types.d.ts.map +0 -1
- package/dist/server/shared/lexical/types.js.map +0 -1
- package/dist/server/shared/utils/LazyMap.d.ts.map +0 -1
- package/dist/server/shared/utils/LazyMap.js.map +0 -1
- package/dist/server/shared/utils/LazyMap.test.d.ts +0 -2
- package/dist/server/shared/utils/LazyMap.test.d.ts.map +0 -1
- package/dist/server/shared/utils/LazyMap.test.js +0 -262
- package/dist/server/shared/utils/filterLocalizedFields.d.ts.map +0 -1
- package/dist/server/shared/utils/filterLocalizedFields.js.map +0 -1
- package/dist/server/shared/utils/filterLocalizedFields.test.d.ts +0 -2
- package/dist/server/shared/utils/filterLocalizedFields.test.d.ts.map +0 -1
- package/dist/server/shared/utils/filterLocalizedFields.test.js +0 -338
- package/dist/server/shared/utils/getByPath.d.ts.map +0 -1
- package/dist/server/shared/utils/getByPath.js.map +0 -1
- package/dist/server/shared/utils/getByPath.test.d.ts +0 -2
- package/dist/server/shared/utils/getByPath.test.d.ts.map +0 -1
- package/dist/server/shared/utils/getByPath.test.js +0 -33
- package/dist/server/shared/utils/index.d.ts.map +0 -1
- package/dist/server/shared/utils/index.js.map +0 -1
- package/dist/server/shared/utils/isEmpty.d.ts.map +0 -1
- package/dist/server/shared/utils/isEmpty.js.map +0 -1
- package/dist/server/shared/utils/isEmpty.test.d.ts +0 -2
- package/dist/server/shared/utils/isEmpty.test.d.ts.map +0 -1
- package/dist/server/shared/utils/isEmpty.test.js +0 -60
- package/dist/server/shared/utils/isObject.d.ts.map +0 -1
- package/dist/server/shared/utils/isObject.js.map +0 -1
- package/dist/server/shared/utils/isObject.test.d.ts +0 -2
- package/dist/server/shared/utils/isObject.test.d.ts.map +0 -1
- package/dist/server/shared/utils/isObject.test.js +0 -57
- package/dist/server/shared/utils/normalizePath.d.ts.map +0 -1
- package/dist/server/shared/utils/normalizePath.js.map +0 -1
- package/dist/server/shared/utils/normalizePath.test.d.ts +0 -2
- package/dist/server/shared/utils/normalizePath.test.d.ts.map +0 -1
- package/dist/server/shared/utils/normalizePath.test.js +0 -33
- package/dist/server/shared/utils/pipe.d.ts.map +0 -1
- package/dist/server/shared/utils/pipe.js.map +0 -1
- package/dist/server/shared/utils/pipe.test.d.ts +0 -2
- package/dist/server/shared/utils/pipe.test.d.ts.map +0 -1
- package/dist/server/shared/utils/pipe.test.js +0 -55
- package/dist/server/shared/utils/setByPath.d.ts.map +0 -1
- package/dist/server/shared/utils/setByPath.js.map +0 -1
- package/dist/server/shared/utils/setByPath.test.d.ts +0 -2
- package/dist/server/shared/utils/setByPath.test.d.ts.map +0 -1
- package/dist/server/shared/utils/setByPath.test.js +0 -46
- package/dist/types/AccessGuard.d.ts.map +0 -1
- package/dist/types/AccessGuard.js.map +0 -1
- package/dist/types/index.d.ts.map +0 -1
- package/dist/types/index.js.map +0 -1
- package/dist/vitest-env.d.js.map +0 -1
|
@@ -1,188 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { PayloadJobsTaskRunner } from './PayloadJobsTaskRunner';
|
|
3
|
-
describe('PayloadJobsTaskRunner', () => {
|
|
4
|
-
let mockPayload;
|
|
5
|
-
let config;
|
|
6
|
-
let runner;
|
|
7
|
-
beforeEach(() => {
|
|
8
|
-
mockPayload = {
|
|
9
|
-
find: vi.fn().mockResolvedValue({ docs: [] }),
|
|
10
|
-
delete: vi.fn().mockResolvedValue(undefined),
|
|
11
|
-
jobs: {
|
|
12
|
-
queue: vi.fn().mockResolvedValue(undefined),
|
|
13
|
-
cancel: vi.fn().mockResolvedValue(undefined),
|
|
14
|
-
runByID: vi.fn().mockResolvedValue(undefined),
|
|
15
|
-
},
|
|
16
|
-
};
|
|
17
|
-
config = {
|
|
18
|
-
taskName: 'translate_document',
|
|
19
|
-
queueName: 'translations',
|
|
20
|
-
jobsCollection: 'payload-jobs',
|
|
21
|
-
autoRun: {
|
|
22
|
-
cron: '* * * * *',
|
|
23
|
-
limit: 50,
|
|
24
|
-
},
|
|
25
|
-
};
|
|
26
|
-
runner = new PayloadJobsTaskRunner(mockPayload, config);
|
|
27
|
-
});
|
|
28
|
-
const createInput = (overrides = {}) => ({
|
|
29
|
-
collectionSlug: 'posts',
|
|
30
|
-
collectionId: 'doc-123',
|
|
31
|
-
sourceLng: 'en',
|
|
32
|
-
targetLng: 'de',
|
|
33
|
-
strategy: 'overwrite',
|
|
34
|
-
publishOnTranslation: false,
|
|
35
|
-
...overrides,
|
|
36
|
-
});
|
|
37
|
-
const createJob = (overrides = {}) => ({
|
|
38
|
-
id: 'job-123',
|
|
39
|
-
createdAt: '2024-01-01T00:00:00Z',
|
|
40
|
-
updatedAt: '2024-01-01T00:00:00Z',
|
|
41
|
-
input: {
|
|
42
|
-
collection: { relationTo: 'posts', value: 'doc-123' },
|
|
43
|
-
source_lng: 'en',
|
|
44
|
-
target_lng: 'de',
|
|
45
|
-
strategy: 'overwrite',
|
|
46
|
-
},
|
|
47
|
-
...overrides,
|
|
48
|
-
});
|
|
49
|
-
describe('enqueue', () => {
|
|
50
|
-
it('queues tasks with correct input', async () => {
|
|
51
|
-
const input = createInput();
|
|
52
|
-
await runner.enqueue([input]);
|
|
53
|
-
expect(mockPayload.jobs.queue).toHaveBeenCalledWith({
|
|
54
|
-
task: 'translate_document',
|
|
55
|
-
queue: 'translations',
|
|
56
|
-
input: {
|
|
57
|
-
collection: { relationTo: 'posts', value: 'doc-123' },
|
|
58
|
-
source_lng: 'en',
|
|
59
|
-
target_lng: 'de',
|
|
60
|
-
strategy: 'overwrite',
|
|
61
|
-
publish_on_translation: false,
|
|
62
|
-
},
|
|
63
|
-
});
|
|
64
|
-
});
|
|
65
|
-
it('queues multiple tasks', async () => {
|
|
66
|
-
const inputs = [createInput({ collectionId: 'doc-1' }), createInput({ collectionId: 'doc-2' })];
|
|
67
|
-
await runner.enqueue(inputs);
|
|
68
|
-
expect(mockPayload.jobs.queue).toHaveBeenCalledTimes(2);
|
|
69
|
-
});
|
|
70
|
-
it('cancels existing jobs before queuing new ones', async () => {
|
|
71
|
-
const existingJob = createJob({ id: 'existing-job' });
|
|
72
|
-
mockPayload.find.mockResolvedValueOnce({ docs: [existingJob] });
|
|
73
|
-
const input = createInput();
|
|
74
|
-
await runner.enqueue([input]);
|
|
75
|
-
expect(mockPayload.jobs.cancel).toHaveBeenCalledWith({
|
|
76
|
-
where: { id: { in: ['existing-job'] } },
|
|
77
|
-
queue: 'translations',
|
|
78
|
-
});
|
|
79
|
-
expect(mockPayload.delete).toHaveBeenCalledWith({
|
|
80
|
-
collection: 'payload-jobs',
|
|
81
|
-
where: { id: { in: ['existing-job'] } },
|
|
82
|
-
});
|
|
83
|
-
});
|
|
84
|
-
it('does not cancel when no existing jobs', async () => {
|
|
85
|
-
mockPayload.find.mockResolvedValue({ docs: [] });
|
|
86
|
-
const input = createInput();
|
|
87
|
-
await runner.enqueue([input]);
|
|
88
|
-
expect(mockPayload.jobs.cancel).not.toHaveBeenCalled();
|
|
89
|
-
expect(mockPayload.delete).not.toHaveBeenCalled();
|
|
90
|
-
});
|
|
91
|
-
it('groups tasks by collection', async () => {
|
|
92
|
-
const inputs = [
|
|
93
|
-
createInput({ collectionSlug: 'posts', collectionId: 'post-1' }),
|
|
94
|
-
createInput({ collectionSlug: 'posts', collectionId: 'post-2' }),
|
|
95
|
-
createInput({ collectionSlug: 'pages', collectionId: 'page-1' }),
|
|
96
|
-
];
|
|
97
|
-
await runner.enqueue(inputs);
|
|
98
|
-
// Should check for existing jobs per collection
|
|
99
|
-
expect(mockPayload.find).toHaveBeenCalledTimes(2);
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
describe('cancel', () => {
|
|
103
|
-
it('cancels jobs by ids', async () => {
|
|
104
|
-
await runner.cancel(['job-1', 'job-2']);
|
|
105
|
-
expect(mockPayload.jobs.cancel).toHaveBeenCalledWith({
|
|
106
|
-
where: { id: { in: ['job-1', 'job-2'] } },
|
|
107
|
-
queue: 'translations',
|
|
108
|
-
});
|
|
109
|
-
expect(mockPayload.delete).toHaveBeenCalledWith({
|
|
110
|
-
collection: 'payload-jobs',
|
|
111
|
-
where: { id: { in: ['job-1', 'job-2'] } },
|
|
112
|
-
});
|
|
113
|
-
});
|
|
114
|
-
it('does nothing for empty array', async () => {
|
|
115
|
-
await runner.cancel([]);
|
|
116
|
-
expect(mockPayload.jobs.cancel).not.toHaveBeenCalled();
|
|
117
|
-
expect(mockPayload.delete).not.toHaveBeenCalled();
|
|
118
|
-
});
|
|
119
|
-
});
|
|
120
|
-
describe('run', () => {
|
|
121
|
-
it('returns not_found when task does not exist', async () => {
|
|
122
|
-
mockPayload.find.mockResolvedValue({ docs: [] });
|
|
123
|
-
const result = await runner.run('nonexistent');
|
|
124
|
-
expect(result).toEqual({ success: false, error: 'not_found' });
|
|
125
|
-
});
|
|
126
|
-
it('returns already_completed when task is completed', async () => {
|
|
127
|
-
const completedJob = createJob({ completedAt: '2024-01-01T01:00:00Z' });
|
|
128
|
-
mockPayload.find.mockResolvedValue({ docs: [completedJob] });
|
|
129
|
-
const result = await runner.run('job-123');
|
|
130
|
-
expect(result).toEqual({ success: false, error: 'already_completed' });
|
|
131
|
-
});
|
|
132
|
-
it('returns already_running when task is running', async () => {
|
|
133
|
-
const runningJob = createJob({ processing: true });
|
|
134
|
-
mockPayload.find.mockResolvedValue({ docs: [runningJob] });
|
|
135
|
-
const result = await runner.run('job-123');
|
|
136
|
-
expect(result).toEqual({ success: false, error: 'already_running' });
|
|
137
|
-
});
|
|
138
|
-
it('runs task and returns success', async () => {
|
|
139
|
-
const pendingJob = createJob();
|
|
140
|
-
mockPayload.find.mockResolvedValue({ docs: [pendingJob] });
|
|
141
|
-
const result = await runner.run('job-123');
|
|
142
|
-
expect(result).toEqual({ success: true });
|
|
143
|
-
expect(mockPayload.jobs.runByID).toHaveBeenCalledWith({ id: 'job-123' });
|
|
144
|
-
});
|
|
145
|
-
});
|
|
146
|
-
describe('findByCollection', () => {
|
|
147
|
-
it('finds tasks by collection slug', async () => {
|
|
148
|
-
// Mock returns only jobs matching the collection (simulating DB where clause)
|
|
149
|
-
const jobs = [
|
|
150
|
-
createJob({ id: 'job-1', input: { collection: { relationTo: 'posts', value: 'doc-1' } } }),
|
|
151
|
-
createJob({ id: 'job-2', input: { collection: { relationTo: 'posts', value: 'doc-2' } } }),
|
|
152
|
-
];
|
|
153
|
-
mockPayload.find.mockResolvedValue({ docs: jobs });
|
|
154
|
-
const tasks = await runner.findByCollection('posts');
|
|
155
|
-
expect(tasks).toHaveLength(2);
|
|
156
|
-
expect(tasks[0].id).toBe('job-1');
|
|
157
|
-
expect(tasks[1].id).toBe('job-2');
|
|
158
|
-
});
|
|
159
|
-
it('filters by document ids when provided', async () => {
|
|
160
|
-
// Mock returns only jobs matching collection and document ids (simulating DB where clause)
|
|
161
|
-
const jobs = [
|
|
162
|
-
createJob({ id: 'job-1', input: { collection: { relationTo: 'posts', value: 'doc-1' } } }),
|
|
163
|
-
createJob({ id: 'job-2', input: { collection: { relationTo: 'posts', value: 'doc-2' } } }),
|
|
164
|
-
];
|
|
165
|
-
mockPayload.find.mockResolvedValue({ docs: jobs });
|
|
166
|
-
const tasks = await runner.findByCollection('posts', ['doc-1', 'doc-2']);
|
|
167
|
-
expect(tasks).toHaveLength(2);
|
|
168
|
-
expect(tasks[0].id).toBe('job-1');
|
|
169
|
-
expect(tasks[1].id).toBe('job-2');
|
|
170
|
-
});
|
|
171
|
-
it('returns normalized tasks', async () => {
|
|
172
|
-
const job = createJob({
|
|
173
|
-
id: 'job-123',
|
|
174
|
-
completedAt: '2024-01-01T01:00:00Z',
|
|
175
|
-
});
|
|
176
|
-
mockPayload.find.mockResolvedValue({ docs: [job] });
|
|
177
|
-
const tasks = await runner.findByCollection('posts');
|
|
178
|
-
expect(tasks[0]).toMatchObject({
|
|
179
|
-
id: 'job-123',
|
|
180
|
-
status: 'completed',
|
|
181
|
-
input: {
|
|
182
|
-
collectionSlug: 'posts',
|
|
183
|
-
collectionId: 'doc-123',
|
|
184
|
-
},
|
|
185
|
-
});
|
|
186
|
-
});
|
|
187
|
-
});
|
|
188
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAA;AACrE,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/index.ts"],"sourcesContent":["export { createPayloadJobsRunner } from './PayloadJobsRunnerProvider'\nexport type { PayloadJobsRunnerOptions } from './types'\n"],"names":["createPayloadJobsRunner"],"mappings":"AAAA,SAASA,uBAAuB,QAAQ,8BAA6B"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeJob.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/normalizeJob.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,IAAI,EAAc,MAAM,UAAU,CAAA;AAChD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAEzC;;GAEG;AACH,wBAAgB,YAAY,CAAC,GAAG,EAAE,UAAU,GAAG,IAAI,CAkBlD"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/normalizeJob.ts"],"sourcesContent":["import type { CollectionSlug } from 'payload'\n\nimport type { Task, TaskStatus } from '../types'\nimport type { PayloadJob } from './types'\n\n/**\n * Transform Payload job to normalized Task\n */\nexport function normalizeJob(job: PayloadJob): Task {\n return {\n id: job.id,\n status: getJobStatus(job),\n input: {\n collectionSlug: job.input?.collection?.relationTo ?? ('' as CollectionSlug),\n collectionId: job.input?.collection?.value ?? '',\n sourceLng: job.input?.source_lng ?? '',\n targetLng: job.input?.target_lng ?? '',\n strategy: (job.input?.strategy as 'overwrite' | 'skip_existing') ?? 'overwrite',\n publishOnTranslation: job.input?.publish_on_translation ?? false,\n },\n createdAt: job.createdAt,\n updatedAt: job.updatedAt,\n completedAt: job.completedAt ?? undefined,\n error: job.error ? { message: extractErrorMessage(job.error) } : undefined,\n cancelled: isCancelled(job.error),\n }\n}\n\nfunction getJobStatus(job: PayloadJob): TaskStatus {\n if (job.completedAt) return 'completed'\n if (job.processing) return 'running'\n if (job.error) return 'failed'\n return 'pending'\n}\n\nfunction extractErrorMessage(error: unknown): string {\n if (error && typeof error === 'object' && 'message' in error && typeof error.message === 'string') {\n return error.message\n }\n return 'Unknown error'\n}\n\nfunction isCancelled(error: unknown): boolean {\n return (\n error !== null &&\n typeof error === 'object' &&\n 'cancelled' in error &&\n typeof error.cancelled === 'boolean' &&\n error.cancelled\n )\n}\n"],"names":["normalizeJob","job","id","status","getJobStatus","input","collectionSlug","collection","relationTo","collectionId","value","sourceLng","source_lng","targetLng","target_lng","strategy","publishOnTranslation","publish_on_translation","createdAt","updatedAt","completedAt","undefined","error","message","extractErrorMessage","cancelled","isCancelled","processing"],"mappings":"AAKA;;CAEC,GACD,OAAO,SAASA,aAAaC,GAAe;IAC1C,OAAO;QACLC,IAAID,IAAIC,EAAE;QACVC,QAAQC,aAAaH;QACrBI,OAAO;YACLC,gBAAgBL,IAAII,KAAK,EAAEE,YAAYC,cAAe;YACtDC,cAAcR,IAAII,KAAK,EAAEE,YAAYG,SAAS;YAC9CC,WAAWV,IAAII,KAAK,EAAEO,cAAc;YACpCC,WAAWZ,IAAII,KAAK,EAAES,cAAc;YACpCC,UAAU,AAACd,IAAII,KAAK,EAAEU,YAA8C;YACpEC,sBAAsBf,IAAII,KAAK,EAAEY,0BAA0B;QAC7D;QACAC,WAAWjB,IAAIiB,SAAS;QACxBC,WAAWlB,IAAIkB,SAAS;QACxBC,aAAanB,IAAImB,WAAW,IAAIC;QAChCC,OAAOrB,IAAIqB,KAAK,GAAG;YAAEC,SAASC,oBAAoBvB,IAAIqB,KAAK;QAAE,IAAID;QACjEI,WAAWC,YAAYzB,IAAIqB,KAAK;IAClC;AACF;AAEA,SAASlB,aAAaH,GAAe;IACnC,IAAIA,IAAImB,WAAW,EAAE,OAAO;IAC5B,IAAInB,IAAI0B,UAAU,EAAE,OAAO;IAC3B,IAAI1B,IAAIqB,KAAK,EAAE,OAAO;IACtB,OAAO;AACT;AAEA,SAASE,oBAAoBF,KAAc;IACzC,IAAIA,SAAS,OAAOA,UAAU,YAAY,aAAaA,SAAS,OAAOA,MAAMC,OAAO,KAAK,UAAU;QACjG,OAAOD,MAAMC,OAAO;IACtB;IACA,OAAO;AACT;AAEA,SAASG,YAAYJ,KAAc;IACjC,OACEA,UAAU,QACV,OAAOA,UAAU,YACjB,eAAeA,SACf,OAAOA,MAAMG,SAAS,KAAK,aAC3BH,MAAMG,SAAS;AAEnB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"normalizeJob.test.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/normalizeJob.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,169 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect } from 'vitest';
|
|
2
|
-
import { normalizeJob } from './normalizeJob';
|
|
3
|
-
describe('normalizeJob', () => {
|
|
4
|
-
const baseJob = {
|
|
5
|
-
id: 'job-123',
|
|
6
|
-
createdAt: '2024-01-01T00:00:00Z',
|
|
7
|
-
updatedAt: '2024-01-01T00:00:00Z',
|
|
8
|
-
input: {
|
|
9
|
-
collection: {
|
|
10
|
-
relationTo: 'posts',
|
|
11
|
-
value: 'doc-456',
|
|
12
|
-
},
|
|
13
|
-
source_lng: 'en',
|
|
14
|
-
target_lng: 'de',
|
|
15
|
-
strategy: 'overwrite',
|
|
16
|
-
},
|
|
17
|
-
};
|
|
18
|
-
describe('basic transformation', () => {
|
|
19
|
-
it('transforms job to task with correct id', () => {
|
|
20
|
-
const task = normalizeJob(baseJob);
|
|
21
|
-
expect(task.id).toBe('job-123');
|
|
22
|
-
});
|
|
23
|
-
it('transforms job to task with correct input', () => {
|
|
24
|
-
const task = normalizeJob(baseJob);
|
|
25
|
-
expect(task.input).toEqual({
|
|
26
|
-
collectionSlug: 'posts',
|
|
27
|
-
collectionId: 'doc-456',
|
|
28
|
-
sourceLng: 'en',
|
|
29
|
-
targetLng: 'de',
|
|
30
|
-
strategy: 'overwrite',
|
|
31
|
-
publishOnTranslation: false,
|
|
32
|
-
});
|
|
33
|
-
});
|
|
34
|
-
it('transforms job to task with correct timestamps', () => {
|
|
35
|
-
const task = normalizeJob(baseJob);
|
|
36
|
-
expect(task.createdAt).toBe('2024-01-01T00:00:00Z');
|
|
37
|
-
expect(task.updatedAt).toBe('2024-01-01T00:00:00Z');
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
describe('status detection', () => {
|
|
41
|
-
it('returns pending status for new job', () => {
|
|
42
|
-
const task = normalizeJob(baseJob);
|
|
43
|
-
expect(task.status).toBe('pending');
|
|
44
|
-
});
|
|
45
|
-
it('returns running status when processing is true', () => {
|
|
46
|
-
const job = { ...baseJob, processing: true };
|
|
47
|
-
const task = normalizeJob(job);
|
|
48
|
-
expect(task.status).toBe('running');
|
|
49
|
-
});
|
|
50
|
-
it('returns completed status when completedAt is set', () => {
|
|
51
|
-
const job = { ...baseJob, completedAt: '2024-01-01T01:00:00Z' };
|
|
52
|
-
const task = normalizeJob(job);
|
|
53
|
-
expect(task.status).toBe('completed');
|
|
54
|
-
expect(task.completedAt).toBe('2024-01-01T01:00:00Z');
|
|
55
|
-
});
|
|
56
|
-
it('returns failed status when error is set', () => {
|
|
57
|
-
const job = { ...baseJob, error: { message: 'Something went wrong' } };
|
|
58
|
-
const task = normalizeJob(job);
|
|
59
|
-
expect(task.status).toBe('failed');
|
|
60
|
-
});
|
|
61
|
-
it('completed takes precedence over processing', () => {
|
|
62
|
-
const job = { ...baseJob, completedAt: '2024-01-01T01:00:00Z', processing: true };
|
|
63
|
-
const task = normalizeJob(job);
|
|
64
|
-
expect(task.status).toBe('completed');
|
|
65
|
-
});
|
|
66
|
-
it('completed takes precedence over error', () => {
|
|
67
|
-
const job = {
|
|
68
|
-
...baseJob,
|
|
69
|
-
completedAt: '2024-01-01T01:00:00Z',
|
|
70
|
-
error: { message: 'err' },
|
|
71
|
-
};
|
|
72
|
-
const task = normalizeJob(job);
|
|
73
|
-
expect(task.status).toBe('completed');
|
|
74
|
-
});
|
|
75
|
-
});
|
|
76
|
-
describe('error handling', () => {
|
|
77
|
-
it('extracts error message from error object', () => {
|
|
78
|
-
const job = { ...baseJob, error: { message: 'Translation failed' } };
|
|
79
|
-
const task = normalizeJob(job);
|
|
80
|
-
expect(task.error).toEqual({ message: 'Translation failed' });
|
|
81
|
-
});
|
|
82
|
-
it('returns unknown error for non-standard error', () => {
|
|
83
|
-
const job = { ...baseJob, error: 'some string error' };
|
|
84
|
-
const task = normalizeJob(job);
|
|
85
|
-
expect(task.error).toEqual({ message: 'Unknown error' });
|
|
86
|
-
});
|
|
87
|
-
it('returns unknown error for error without message', () => {
|
|
88
|
-
const job = { ...baseJob, error: { code: 500 } };
|
|
89
|
-
const task = normalizeJob(job);
|
|
90
|
-
expect(task.error).toEqual({ message: 'Unknown error' });
|
|
91
|
-
});
|
|
92
|
-
it('sets error to undefined when no error', () => {
|
|
93
|
-
const task = normalizeJob(baseJob);
|
|
94
|
-
expect(task.error).toBeUndefined();
|
|
95
|
-
});
|
|
96
|
-
});
|
|
97
|
-
describe('cancelled detection', () => {
|
|
98
|
-
it('detects cancelled job', () => {
|
|
99
|
-
const job = { ...baseJob, error: { cancelled: true, message: 'Cancelled' } };
|
|
100
|
-
const task = normalizeJob(job);
|
|
101
|
-
expect(task.cancelled).toBe(true);
|
|
102
|
-
});
|
|
103
|
-
it('returns false for non-cancelled error', () => {
|
|
104
|
-
const job = { ...baseJob, error: { message: 'Failed' } };
|
|
105
|
-
const task = normalizeJob(job);
|
|
106
|
-
expect(task.cancelled).toBe(false);
|
|
107
|
-
});
|
|
108
|
-
it('returns false for cancelled: false', () => {
|
|
109
|
-
const job = { ...baseJob, error: { cancelled: false, message: 'Error' } };
|
|
110
|
-
const task = normalizeJob(job);
|
|
111
|
-
expect(task.cancelled).toBe(false);
|
|
112
|
-
});
|
|
113
|
-
it('returns false for no error', () => {
|
|
114
|
-
const task = normalizeJob(baseJob);
|
|
115
|
-
expect(task.cancelled).toBe(false);
|
|
116
|
-
});
|
|
117
|
-
});
|
|
118
|
-
describe('missing input fields', () => {
|
|
119
|
-
it('handles missing input gracefully', () => {
|
|
120
|
-
const job = { ...baseJob, input: undefined };
|
|
121
|
-
const task = normalizeJob(job);
|
|
122
|
-
expect(task.input).toEqual({
|
|
123
|
-
collectionSlug: '',
|
|
124
|
-
collectionId: '',
|
|
125
|
-
sourceLng: '',
|
|
126
|
-
targetLng: '',
|
|
127
|
-
strategy: 'overwrite',
|
|
128
|
-
publishOnTranslation: false,
|
|
129
|
-
});
|
|
130
|
-
});
|
|
131
|
-
it('handles missing collection in input', () => {
|
|
132
|
-
const job = {
|
|
133
|
-
...baseJob,
|
|
134
|
-
input: { source_lng: 'en', target_lng: 'de' },
|
|
135
|
-
};
|
|
136
|
-
const task = normalizeJob(job);
|
|
137
|
-
expect(task.input.collectionSlug).toBe('');
|
|
138
|
-
expect(task.input.collectionId).toBe('');
|
|
139
|
-
});
|
|
140
|
-
it('handles missing strategy with default', () => {
|
|
141
|
-
const job = {
|
|
142
|
-
...baseJob,
|
|
143
|
-
input: { ...baseJob.input, strategy: undefined },
|
|
144
|
-
};
|
|
145
|
-
const task = normalizeJob(job);
|
|
146
|
-
expect(task.input.strategy).toBe('overwrite');
|
|
147
|
-
});
|
|
148
|
-
it('handles skip_existing strategy', () => {
|
|
149
|
-
const job = {
|
|
150
|
-
...baseJob,
|
|
151
|
-
input: { ...baseJob.input, strategy: 'skip_existing' },
|
|
152
|
-
};
|
|
153
|
-
const task = normalizeJob(job);
|
|
154
|
-
expect(task.input.strategy).toBe('skip_existing');
|
|
155
|
-
});
|
|
156
|
-
});
|
|
157
|
-
describe('completedAt handling', () => {
|
|
158
|
-
it('sets completedAt to undefined when null', () => {
|
|
159
|
-
const job = { ...baseJob, completedAt: null };
|
|
160
|
-
const task = normalizeJob(job);
|
|
161
|
-
expect(task.completedAt).toBeUndefined();
|
|
162
|
-
});
|
|
163
|
-
it('sets completedAt to value when provided', () => {
|
|
164
|
-
const job = { ...baseJob, completedAt: '2024-01-02T00:00:00Z' };
|
|
165
|
-
const task = normalizeJob(job);
|
|
166
|
-
expect(task.completedAt).toBe('2024-01-02T00:00:00Z');
|
|
167
|
-
});
|
|
168
|
-
});
|
|
169
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG;IAC1B;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAA;IACb;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,wBAAwB,GAAG;IACrC;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB;;;OAGG;IACH,cAAc,CAAC,EAAE,MAAM,CAAA;IACvB;;;;;OAKG;IACH,OAAO,CAAC,EAAE,KAAK,GAAG,aAAa,CAAA;IAC/B;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE;YAAE,KAAK,CAAC,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAA;SAAE,CAAA;KAC5D,CAAA;CACF,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,cAAc,EAAE,MAAM,CAAA;IACtB,OAAO,EAAE,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,CAAA;IACxC,OAAO,CAAC,EAAE,wBAAwB,CAAC,SAAS,CAAC,CAAA;CAC9C,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG;IACvB,EAAE,EAAE,MAAM,CAAA;IACV,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,OAAO,CAAA;IACf,UAAU,CAAC,EAAE,OAAO,GAAG,IAAI,CAAA;IAC3B,KAAK,CAAC,EAAE;QACN,UAAU,CAAC,EAAE;YACX,UAAU,EAAE,cAAc,CAAA;YAC1B,KAAK,EAAE,MAAM,GAAG,MAAM,CAAA;SACvB,CAAA;QACD,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,UAAU,CAAC,EAAE,MAAM,CAAA;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,sBAAsB,CAAC,EAAE,OAAO,CAAA;KACjC,CAAA;CACF,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/payload-jobs-runner/types.ts"],"sourcesContent":["import type { CollectionSlug } from 'payload'\n\n/**\n * Configuration for automatic job processing.\n */\nexport type AutoRunConfig = {\n /**\n * Cron schedule for auto-running jobs.\n * @default '* * * * *' (every minute)\n */\n cron?: string\n /**\n * Maximum number of jobs to process per run.\n * @default 50\n */\n limit?: number\n}\n\n/**\n * Options for PayloadJobsRunnerProvider\n */\nexport type PayloadJobsRunnerOptions = {\n /**\n * Name of the Payload task.\n * @default 'translate_document'\n */\n taskName?: string\n /**\n * Name of the job queue.\n * @default 'translations'\n */\n queueName?: string\n /**\n * Name of the Payload jobs collection.\n * @default 'payload-jobs'\n */\n jobsCollection?: string\n /**\n * Automatic job processing configuration.\n * Set to `false` to disable (for Vercel/serverless deployments).\n * Set to an object to customize cron schedule and limit.\n * @default { cron: '* * * * *', limit: 50 }\n */\n autoRun?: false | AutoRunConfig\n /**\n * Retry configuration for failed jobs.\n */\n retries?: {\n attempts?: number\n backoff?: { delay?: number; type: 'exponential' | 'fixed' }\n }\n}\n\n/**\n * Internal configuration for PayloadJobsRunner\n */\nexport type PayloadJobsRunnerConfig = {\n taskName: string\n queueName: string\n jobsCollection: string\n autoRun: false | Required<AutoRunConfig>\n retries?: PayloadJobsRunnerOptions['retries']\n}\n\n/**\n * Raw Payload job structure\n */\nexport type PayloadJob = {\n id: string\n completedAt?: string | null\n createdAt: string\n updatedAt: string\n error?: unknown\n processing?: boolean | null\n input?: {\n collection?: {\n relationTo: CollectionSlug\n value: string | number\n }\n source_lng?: string\n target_lng?: string\n strategy?: string\n publish_on_translation?: boolean\n }\n}\n"],"names":[],"mappings":"AAgEA;;CAEC,GACD,WAiBC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SyncRunnerProvider.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/sync-runner/SyncRunnerProvider.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AAE9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,iBAAiB,EAAe,MAAM,iCAAiC,CAAA;AAEzG,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAA;AAOhD;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,kBAAkB;IAC3D,OAAO,CAAC,OAAO,CAAC,CAAa;IAC7B,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;gBAEjC,OAAO,CAAC,EAAE,iBAAiB;IAYvC,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,UAAU;IAKpC,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM;CAIlE;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,kBAAkB,CAEhF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/sync-runner/SyncRunnerProvider.ts"],"sourcesContent":["import type { Config, Payload } from 'payload'\n\nimport type { TaskRunner } from '../TaskRunner.interface'\nimport type { TaskRunnerProvider, TaskRunnerContext, TaskHandler } from '../TaskRunnerProvider.interface'\nimport type { Task } from '../types'\nimport type { SyncRunnerOptions } from './types'\nimport { SyncTaskRunner } from './SyncTaskRunner'\nimport { LazyMap } from '../../../shared/utils'\n\nconst DEFAULT_MAX_SIZE = 100\nconst DEFAULT_TTL_MS = 60 * 60 * 1000 // 1 hour\n\n/**\n * Synchronous TaskRunnerProvider implementation.\n *\n * Executes translations immediately without Payload Jobs.\n * Useful for development, testing, or simple use cases.\n */\nexport class SyncRunnerProvider implements TaskRunnerProvider {\n private handler?: TaskHandler\n private readonly tasks: LazyMap<string, Task>\n\n constructor(options?: SyncRunnerOptions) {\n const maxSize = options?.maxSize ?? DEFAULT_MAX_SIZE\n const ttlMs = options?.ttlMs ?? DEFAULT_TTL_MS\n\n this.tasks = new LazyMap<string, Task>({\n maxSize,\n ttlMs,\n isRemovable: (task) => task.status === 'completed' || task.status === 'failed',\n getTimestamp: (task) => new Date(task.updatedAt).getTime(),\n })\n }\n\n create(payload: Payload): TaskRunner {\n if (!this.handler) throw new Error('SyncRunnerProvider not configured. Call configure() first.')\n return new SyncTaskRunner(payload, this.handler, this.tasks)\n }\n\n configure(context: TaskRunnerContext): (config: Config) => Config {\n this.handler = context.handler\n return (config) => config\n }\n}\n\n/**\n * Creates a synchronous TaskRunnerProvider.\n *\n * Executes translations immediately without queuing.\n * Results are stored in memory and lost on server restart.\n */\nexport function createSyncRunner(options?: SyncRunnerOptions): TaskRunnerProvider {\n return new SyncRunnerProvider(options)\n}\n"],"names":["SyncTaskRunner","LazyMap","DEFAULT_MAX_SIZE","DEFAULT_TTL_MS","SyncRunnerProvider","handler","tasks","options","maxSize","ttlMs","isRemovable","task","status","getTimestamp","Date","updatedAt","getTime","create","payload","Error","configure","context","config","createSyncRunner"],"mappings":"AAMA,SAASA,cAAc,QAAQ,mBAAkB;AACjD,SAASC,OAAO,QAAQ,wBAAuB;AAE/C,MAAMC,mBAAmB;AACzB,MAAMC,iBAAiB,KAAK,KAAK,KAAK,SAAS;;AAE/C;;;;;CAKC,GACD,OAAO,MAAMC;IACHC,QAAqB;IACZC,MAA4B;IAE7C,YAAYC,OAA2B,CAAE;QACvC,MAAMC,UAAUD,SAASC,WAAWN;QACpC,MAAMO,QAAQF,SAASE,SAASN;QAEhC,IAAI,CAACG,KAAK,GAAG,IAAIL,QAAsB;YACrCO;YACAC;YACAC,aAAa,CAACC,OAASA,KAAKC,MAAM,KAAK,eAAeD,KAAKC,MAAM,KAAK;YACtEC,cAAc,CAACF,OAAS,IAAIG,KAAKH,KAAKI,SAAS,EAAEC,OAAO;QAC1D;IACF;IAEAC,OAAOC,OAAgB,EAAc;QACnC,IAAI,CAAC,IAAI,CAACb,OAAO,EAAE,MAAM,IAAIc,MAAM;QACnC,OAAO,IAAInB,eAAekB,SAAS,IAAI,CAACb,OAAO,EAAE,IAAI,CAACC,KAAK;IAC7D;IAEAc,UAAUC,OAA0B,EAA8B;QAChE,IAAI,CAAChB,OAAO,GAAGgB,QAAQhB,OAAO;QAC9B,OAAO,CAACiB,SAAWA;IACrB;AACF;AAEA;;;;;CAKC,GACD,OAAO,SAASC,iBAAiBhB,OAA2B;IAC1D,OAAO,IAAIH,mBAAmBG;AAChC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SyncTaskRunner.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/sync-runner/SyncTaskRunner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAA;AACzD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAA;AAClE,OAAO,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,UAAU,CAAA;AAC1D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAA;AAEpD;;;;;GAKG;AACH,qBAAa,cAAe,YAAW,UAAU;IAE7C,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,OAAO;IACxB,OAAO,CAAC,QAAQ,CAAC,KAAK;gBAFL,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC;IAGzC,OAAO,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAuC3C,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIzC,GAAG,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAKxC,gBAAgB,CAAC,cAAc,EAAE,cAAc,EAAE,WAAW,CAAC,EAAE,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;IAY7G,OAAO,CAAC,MAAM;CAGf"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/sync-runner/SyncTaskRunner.ts"],"sourcesContent":["import type { Payload, CollectionSlug } from 'payload'\n\nimport type { TaskRunner } from '../TaskRunner.interface'\nimport type { TaskHandler } from '../TaskRunnerProvider.interface'\nimport type { Task, TaskInput, RunResult } from '../types'\nimport type { LazyMap } from '../../../shared/utils'\n\n/**\n * Synchronous TaskRunner implementation.\n *\n * Executes translations immediately without queuing.\n * Stores results in memory for status queries.\n */\nexport class SyncTaskRunner implements TaskRunner {\n constructor(\n private readonly payload: Payload,\n private readonly handler: TaskHandler,\n private readonly tasks: LazyMap<string, Task>,\n ) {}\n\n async enqueue(inputs: TaskInput[]): Promise<void> {\n for (const input of inputs) {\n const key = this.getKey(input.collectionSlug, input.collectionId)\n const now = new Date().toISOString()\n\n const task: Task = {\n id: crypto.randomUUID(),\n status: 'running',\n input,\n createdAt: now,\n updatedAt: now,\n cancelled: false,\n }\n\n this.tasks.set(key, task)\n\n try {\n await this.handler(this.payload, {\n collection: input.collectionSlug,\n collectionId: input.collectionId,\n sourceLng: input.sourceLng,\n targetLng: input.targetLng,\n strategy: input.strategy,\n publishOnTranslation: input.publishOnTranslation,\n })\n\n task.status = 'completed'\n task.completedAt = new Date().toISOString()\n } catch (error) {\n task.status = 'failed'\n task.error = {\n message: error instanceof Error ? error.message : 'Unknown error',\n }\n }\n\n task.updatedAt = new Date().toISOString()\n }\n }\n\n async cancel(_taskIds: string[]): Promise<void> {\n // No-op: synchronous tasks execute immediately and cannot be cancelled\n }\n\n async run(_taskId: string): Promise<RunResult> {\n // Sync runner executes tasks immediately, no pending tasks to run\n return { success: false, error: 'not_found' }\n }\n\n async findByCollection(collectionSlug: CollectionSlug, documentIds?: Array<string | number>): Promise<Task[]> {\n const results: Task[] = []\n\n for (const [, task] of this.tasks) {\n if (task.input.collectionSlug !== collectionSlug) continue\n if (documentIds && !documentIds.includes(task.input.collectionId)) continue\n results.push(task)\n }\n\n return results\n }\n\n private getKey(collectionSlug: CollectionSlug, collectionId: string | number): string {\n return `${collectionSlug}:${collectionId}`\n }\n}\n"],"names":["SyncTaskRunner","payload","handler","tasks","enqueue","inputs","input","key","getKey","collectionSlug","collectionId","now","Date","toISOString","task","id","crypto","randomUUID","status","createdAt","updatedAt","cancelled","set","collection","sourceLng","targetLng","strategy","publishOnTranslation","completedAt","error","message","Error","cancel","_taskIds","run","_taskId","success","findByCollection","documentIds","results","includes","push"],"mappings":"AAOA;;;;;CAKC,GACD,OAAO,MAAMA;;;;IACX,YACE,AAAiBC,OAAgB,EACjC,AAAiBC,OAAoB,EACrC,AAAiBC,KAA4B,CAC7C;aAHiBF,UAAAA;aACAC,UAAAA;aACAC,QAAAA;IAChB;IAEH,MAAMC,QAAQC,MAAmB,EAAiB;QAChD,KAAK,MAAMC,SAASD,OAAQ;YAC1B,MAAME,MAAM,IAAI,CAACC,MAAM,CAACF,MAAMG,cAAc,EAAEH,MAAMI,YAAY;YAChE,MAAMC,MAAM,IAAIC,OAAOC,WAAW;YAElC,MAAMC,OAAa;gBACjBC,IAAIC,OAAOC,UAAU;gBACrBC,QAAQ;gBACRZ;gBACAa,WAAWR;gBACXS,WAAWT;gBACXU,WAAW;YACb;YAEA,IAAI,CAAClB,KAAK,CAACmB,GAAG,CAACf,KAAKO;YAEpB,IAAI;gBACF,MAAM,IAAI,CAACZ,OAAO,CAAC,IAAI,CAACD,OAAO,EAAE;oBAC/BsB,YAAYjB,MAAMG,cAAc;oBAChCC,cAAcJ,MAAMI,YAAY;oBAChCc,WAAWlB,MAAMkB,SAAS;oBAC1BC,WAAWnB,MAAMmB,SAAS;oBAC1BC,UAAUpB,MAAMoB,QAAQ;oBACxBC,sBAAsBrB,MAAMqB,oBAAoB;gBAClD;gBAEAb,KAAKI,MAAM,GAAG;gBACdJ,KAAKc,WAAW,GAAG,IAAIhB,OAAOC,WAAW;YAC3C,EAAE,OAAOgB,OAAO;gBACdf,KAAKI,MAAM,GAAG;gBACdJ,KAAKe,KAAK,GAAG;oBACXC,SAASD,iBAAiBE,QAAQF,MAAMC,OAAO,GAAG;gBACpD;YACF;YAEAhB,KAAKM,SAAS,GAAG,IAAIR,OAAOC,WAAW;QACzC;IACF;IAEA,MAAMmB,OAAOC,QAAkB,EAAiB;IAC9C,uEAAuE;IACzE;IAEA,MAAMC,IAAIC,OAAe,EAAsB;QAC7C,kEAAkE;QAClE,OAAO;YAAEC,SAAS;YAAOP,OAAO;QAAY;IAC9C;IAEA,MAAMQ,iBAAiB5B,cAA8B,EAAE6B,WAAoC,EAAmB;QAC5G,MAAMC,UAAkB,EAAE;QAE1B,KAAK,MAAM,GAAGzB,KAAK,IAAI,IAAI,CAACX,KAAK,CAAE;YACjC,IAAIW,KAAKR,KAAK,CAACG,cAAc,KAAKA,gBAAgB;YAClD,IAAI6B,eAAe,CAACA,YAAYE,QAAQ,CAAC1B,KAAKR,KAAK,CAACI,YAAY,GAAG;YACnE6B,QAAQE,IAAI,CAAC3B;QACf;QAEA,OAAOyB;IACT;IAEQ/B,OAAOC,cAA8B,EAAEC,YAA6B,EAAU;QACpF,OAAO,GAAGD,eAAe,CAAC,EAAEC,cAAc;IAC5C;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SyncTaskRunner.test.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/sync-runner/SyncTaskRunner.test.ts"],"names":[],"mappings":""}
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
import { describe, it, expect, vi, beforeEach } from 'vitest';
|
|
2
|
-
import { SyncTaskRunner } from './SyncTaskRunner';
|
|
3
|
-
import { LazyMap } from '../../../shared/utils';
|
|
4
|
-
describe('SyncTaskRunner', () => {
|
|
5
|
-
let mockPayload;
|
|
6
|
-
let mockHandler;
|
|
7
|
-
let tasks;
|
|
8
|
-
let runner;
|
|
9
|
-
beforeEach(() => {
|
|
10
|
-
mockPayload = {};
|
|
11
|
-
mockHandler = vi.fn().mockResolvedValue(undefined);
|
|
12
|
-
tasks = new LazyMap({
|
|
13
|
-
isRemovable: (task) => task.status === 'completed' || task.status === 'failed',
|
|
14
|
-
getTimestamp: (task) => new Date(task.updatedAt).getTime(),
|
|
15
|
-
});
|
|
16
|
-
runner = new SyncTaskRunner(mockPayload, mockHandler, tasks);
|
|
17
|
-
});
|
|
18
|
-
const createInput = (overrides = {}) => ({
|
|
19
|
-
collectionSlug: 'posts',
|
|
20
|
-
collectionId: 'doc-123',
|
|
21
|
-
sourceLng: 'en',
|
|
22
|
-
targetLng: 'de',
|
|
23
|
-
strategy: 'overwrite',
|
|
24
|
-
publishOnTranslation: false,
|
|
25
|
-
...overrides,
|
|
26
|
-
});
|
|
27
|
-
describe('enqueue', () => {
|
|
28
|
-
it('executes handler immediately', async () => {
|
|
29
|
-
const input = createInput();
|
|
30
|
-
await runner.enqueue([input]);
|
|
31
|
-
expect(mockHandler).toHaveBeenCalledWith(mockPayload, {
|
|
32
|
-
collection: 'posts',
|
|
33
|
-
collectionId: 'doc-123',
|
|
34
|
-
sourceLng: 'en',
|
|
35
|
-
targetLng: 'de',
|
|
36
|
-
strategy: 'overwrite',
|
|
37
|
-
publishOnTranslation: false,
|
|
38
|
-
});
|
|
39
|
-
});
|
|
40
|
-
it('stores completed task in tasks map', async () => {
|
|
41
|
-
const input = createInput();
|
|
42
|
-
await runner.enqueue([input]);
|
|
43
|
-
const task = tasks.get('posts:doc-123');
|
|
44
|
-
expect(task).toBeDefined();
|
|
45
|
-
expect(task?.status).toBe('completed');
|
|
46
|
-
expect(task?.completedAt).toBeDefined();
|
|
47
|
-
});
|
|
48
|
-
it('stores failed task when handler throws', async () => {
|
|
49
|
-
mockHandler = vi.fn().mockRejectedValue(new Error('Translation failed'));
|
|
50
|
-
runner = new SyncTaskRunner(mockPayload, mockHandler, tasks);
|
|
51
|
-
const input = createInput();
|
|
52
|
-
await runner.enqueue([input]);
|
|
53
|
-
const task = tasks.get('posts:doc-123');
|
|
54
|
-
expect(task?.status).toBe('failed');
|
|
55
|
-
expect(task?.error?.message).toBe('Translation failed');
|
|
56
|
-
});
|
|
57
|
-
it('handles non-Error throws', async () => {
|
|
58
|
-
mockHandler = vi.fn().mockRejectedValue('string error');
|
|
59
|
-
runner = new SyncTaskRunner(mockPayload, mockHandler, tasks);
|
|
60
|
-
const input = createInput();
|
|
61
|
-
await runner.enqueue([input]);
|
|
62
|
-
const task = tasks.get('posts:doc-123');
|
|
63
|
-
expect(task?.status).toBe('failed');
|
|
64
|
-
expect(task?.error?.message).toBe('Unknown error');
|
|
65
|
-
});
|
|
66
|
-
it('processes multiple inputs sequentially', async () => {
|
|
67
|
-
const inputs = [
|
|
68
|
-
createInput({ collectionId: 'doc-1' }),
|
|
69
|
-
createInput({ collectionId: 'doc-2' }),
|
|
70
|
-
createInput({ collectionId: 'doc-3' }),
|
|
71
|
-
];
|
|
72
|
-
await runner.enqueue(inputs);
|
|
73
|
-
expect(mockHandler).toHaveBeenCalledTimes(3);
|
|
74
|
-
expect(tasks.get('posts:doc-1')?.status).toBe('completed');
|
|
75
|
-
expect(tasks.get('posts:doc-2')?.status).toBe('completed');
|
|
76
|
-
expect(tasks.get('posts:doc-3')?.status).toBe('completed');
|
|
77
|
-
});
|
|
78
|
-
it('creates task with unique id', async () => {
|
|
79
|
-
const inputs = [createInput({ collectionId: 'doc-1' }), createInput({ collectionId: 'doc-2' })];
|
|
80
|
-
await runner.enqueue(inputs);
|
|
81
|
-
const task1 = tasks.get('posts:doc-1');
|
|
82
|
-
const task2 = tasks.get('posts:doc-2');
|
|
83
|
-
expect(task1?.id).not.toBe(task2?.id);
|
|
84
|
-
});
|
|
85
|
-
it('sets cancelled to false', async () => {
|
|
86
|
-
const input = createInput();
|
|
87
|
-
await runner.enqueue([input]);
|
|
88
|
-
const task = tasks.get('posts:doc-123');
|
|
89
|
-
expect(task?.cancelled).toBe(false);
|
|
90
|
-
});
|
|
91
|
-
it('overwrites existing task for same document', async () => {
|
|
92
|
-
const input = createInput();
|
|
93
|
-
await runner.enqueue([input]);
|
|
94
|
-
const firstTaskId = tasks.get('posts:doc-123')?.id;
|
|
95
|
-
await runner.enqueue([input]);
|
|
96
|
-
const secondTaskId = tasks.get('posts:doc-123')?.id;
|
|
97
|
-
expect(secondTaskId).not.toBe(firstTaskId);
|
|
98
|
-
});
|
|
99
|
-
});
|
|
100
|
-
describe('cancel', () => {
|
|
101
|
-
it('is a no-op (sync tasks cannot be cancelled)', async () => {
|
|
102
|
-
const input = createInput();
|
|
103
|
-
await runner.enqueue([input]);
|
|
104
|
-
const taskId = tasks.get('posts:doc-123')?.id;
|
|
105
|
-
await runner.cancel([taskId]);
|
|
106
|
-
// Task should still exist and be completed
|
|
107
|
-
expect(tasks.get('posts:doc-123')?.status).toBe('completed');
|
|
108
|
-
});
|
|
109
|
-
});
|
|
110
|
-
describe('run', () => {
|
|
111
|
-
it('returns not_found error (sync tasks run immediately)', async () => {
|
|
112
|
-
const result = await runner.run('some-task-id');
|
|
113
|
-
expect(result).toEqual({ success: false, error: 'not_found' });
|
|
114
|
-
});
|
|
115
|
-
});
|
|
116
|
-
describe('findByCollection', () => {
|
|
117
|
-
it('returns tasks for collection', async () => {
|
|
118
|
-
await runner.enqueue([
|
|
119
|
-
createInput({ collectionSlug: 'posts', collectionId: 'doc-1' }),
|
|
120
|
-
createInput({ collectionSlug: 'posts', collectionId: 'doc-2' }),
|
|
121
|
-
createInput({ collectionSlug: 'pages', collectionId: 'doc-3' }),
|
|
122
|
-
]);
|
|
123
|
-
const postTasks = await runner.findByCollection('posts');
|
|
124
|
-
expect(postTasks).toHaveLength(2);
|
|
125
|
-
expect(postTasks.every((t) => t.input.collectionSlug === 'posts')).toBe(true);
|
|
126
|
-
});
|
|
127
|
-
it('filters by documentIds when provided', async () => {
|
|
128
|
-
await runner.enqueue([
|
|
129
|
-
createInput({ collectionId: 'doc-1' }),
|
|
130
|
-
createInput({ collectionId: 'doc-2' }),
|
|
131
|
-
createInput({ collectionId: 'doc-3' }),
|
|
132
|
-
]);
|
|
133
|
-
const filteredTasks = await runner.findByCollection('posts', ['doc-1', 'doc-3']);
|
|
134
|
-
expect(filteredTasks).toHaveLength(2);
|
|
135
|
-
expect(filteredTasks.map((t) => t.input.collectionId).sort()).toEqual(['doc-1', 'doc-3']);
|
|
136
|
-
});
|
|
137
|
-
it('returns empty array when no tasks match', async () => {
|
|
138
|
-
await runner.enqueue([createInput()]);
|
|
139
|
-
const tasks = await runner.findByCollection('pages');
|
|
140
|
-
expect(tasks).toEqual([]);
|
|
141
|
-
});
|
|
142
|
-
it('returns empty array for empty documentIds', async () => {
|
|
143
|
-
await runner.enqueue([createInput()]);
|
|
144
|
-
const tasks = await runner.findByCollection('posts', []);
|
|
145
|
-
expect(tasks).toEqual([]);
|
|
146
|
-
});
|
|
147
|
-
});
|
|
148
|
-
});
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/sync-runner/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/sync-runner/index.ts"],"sourcesContent":["export { createSyncRunner } from './SyncRunnerProvider'\n"],"names":["createSyncRunner"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,uBAAsB"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/server/modules/task-runner/sync-runner/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG;IAC9B;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../src/server/modules/task-runner/sync-runner/types.ts"],"sourcesContent":["/**\n * Options for SyncRunnerProvider\n */\nexport type SyncRunnerOptions = {\n /**\n * Maximum number of task results to keep in memory.\n * When exceeded, oldest completed entries are removed.\n * @default 100\n */\n maxSize?: number\n /**\n * Time-to-live for completed task results in milliseconds.\n * Expired entries are removed lazily during enqueue operations.\n * @default 3600000 (1 hour)\n */\n ttlMs?: number\n}\n"],"names":[],"mappings":"AAAA;;CAEC,GACD,WAaC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/task-runner/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAE7C;;GAEG;AACH,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAA;AAEvE;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,cAAc,EAAE,cAAc,CAAA;IAC9B,YAAY,EAAE,MAAM,GAAG,MAAM,CAAA;IAC7B,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,WAAW,GAAG,eAAe,CAAA;IACvC,oBAAoB,EAAE,OAAO,CAAA;CAC9B,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,IAAI,GAAG;IACjB,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,UAAU,CAAA;IAClB,KAAK,EAAE,SAAS,CAAA;IAChB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,KAAK,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAA;IAC3B,SAAS,EAAE,OAAO,CAAA;CACnB,CAAA;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GACjB;IAAE,OAAO,EAAE,IAAI,CAAA;CAAE,GACjB;IAAE,OAAO,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,WAAW,GAAG,iBAAiB,GAAG,mBAAmB,CAAA;CAAE,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/modules/task-runner/types.ts"],"sourcesContent":["import type { CollectionSlug } from 'payload'\n\n/**\n * Status of a translation task\n */\nexport type TaskStatus = 'pending' | 'running' | 'completed' | 'failed'\n\n/**\n * Input for creating a new translation task\n */\nexport type TaskInput = {\n collectionSlug: CollectionSlug\n collectionId: string | number\n sourceLng: string\n targetLng: string\n strategy: 'overwrite' | 'skip_existing'\n publishOnTranslation: boolean\n}\n\n/**\n * Normalized task representation\n */\nexport type Task = {\n id: string\n status: TaskStatus\n input: TaskInput\n createdAt: string\n updatedAt: string\n completedAt?: string\n error?: { message: string }\n cancelled: boolean\n}\n\n/**\n * Result of run operation\n */\nexport type RunResult =\n | { success: true }\n | { success: false; error: 'not_found' | 'already_running' | 'already_completed' }\n"],"names":[],"mappings":"AAiCA;;CAEC,GACD,WAEoF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationPipeline.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/translation-pipeline/TranslationPipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAkC,MAAM,SAAS,CAAA;AAC7F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAA;AACvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,UAAU,CAAA;AAS5C;;GAEG;AACH,MAAM,MAAM,0BAA0B,GAAG;IACvC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,mBAAmB,EAAE,mBAAmB,CAAA;IACxC,aAAa,CAAC,EAAE,YAAY,EAAE,CAAA;CAC/B,CAAA;AAED;;;;;;;;;;;;GAYG;AACH,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAiB;gBAE5B,OAAO,EAAE,0BAA0B;IAU/C;;;OAGG;IACG,OAAO,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CA6BtE"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../src/server/modules/translation-pipeline/TranslationPipeline.ts"],"sourcesContent":["import type { TranslationProvider } from '../translation-providers'\nimport type { PipelineConfig, PipelineResult, PipelineContext, PipelineStage } from './types'\nimport type { TranslationStrategy } from './strategies'\nimport type { TextExpander } from './stages'\nimport {\n DataReconcilerStage,\n FieldChunkCollectorStage,\n TranslationStage,\n TextChunkExpanderStage,\n TranslationMutatorStage,\n} from './stages'\n\n/**\n * Options for TranslationPipeline.\n */\nexport type TranslationPipelineOptions = {\n translationProvider: TranslationProvider\n translationStrategy: TranslationStrategy\n textExpanders?: TextExpander[]\n}\n\n/**\n * Main orchestrator for the translation pipeline.\n * Coordinates all stages in sequence via PipelineContext.\n *\n * Pipeline stages:\n * 1. DataReconcilerStage - Reconcile source/target data preserving full document shape\n * 2. FieldChunkCollectorStage - Collect FieldChunks (schema-aware)\n * 3. TextChunkExpanderStage - Expand FieldChunks to TextChunks (schema-free)\n * 4. TranslationStage - Call translation provider\n * 5. TranslationMutatorStage - Apply translations via mutation\n *\n * Pipeline only transforms data. Saving is the caller's responsibility.\n */\nexport class TranslationPipeline {\n private readonly stages: PipelineStage[]\n\n constructor(options: TranslationPipelineOptions) {\n this.stages = [\n new DataReconcilerStage(),\n new FieldChunkCollectorStage(options.translationStrategy),\n new TextChunkExpanderStage(options.textExpanders),\n new TranslationStage(options.translationProvider),\n new TranslationMutatorStage(),\n ]\n }\n\n /**\n * Executes the translation pipeline.\n * Returns transformed data ready to be saved, or null if nothing to translate.\n */\n async execute(config: PipelineConfig): Promise<PipelineResult | null> {\n let ctx: PipelineContext = {\n schema: config.schema,\n sourceData: config.sourceData,\n targetData: config.targetData,\n sourceLng: config.sourceLng,\n targetLng: config.targetLng,\n }\n\n for (const stage of this.stages) {\n ctx = await stage.execute(ctx)\n\n // Early exit checks\n if (ctx.fieldChunks !== undefined && ctx.fieldChunks.length === 0) {\n return null\n }\n if (ctx.textMap !== undefined && Object.keys(ctx.textMap).length === 0) {\n return null\n }\n }\n\n if (!ctx.filteredData) {\n return null\n }\n\n return {\n translatedData: ctx.filteredData,\n }\n }\n}\n"],"names":["DataReconcilerStage","FieldChunkCollectorStage","TranslationStage","TextChunkExpanderStage","TranslationMutatorStage","TranslationPipeline","stages","options","translationStrategy","textExpanders","translationProvider","execute","config","ctx","schema","sourceData","targetData","sourceLng","targetLng","stage","fieldChunks","undefined","length","textMap","Object","keys","filteredData","translatedData"],"mappings":"AAIA,SACEA,mBAAmB,EACnBC,wBAAwB,EACxBC,gBAAgB,EAChBC,sBAAsB,EACtBC,uBAAuB,QAClB,WAAU;AAWjB;;;;;;;;;;;;CAYC,GACD,OAAO,MAAMC;IACMC,OAAuB;IAExC,YAAYC,OAAmC,CAAE;QAC/C,IAAI,CAACD,MAAM,GAAG;YACZ,IAAIN;YACJ,IAAIC,yBAAyBM,QAAQC,mBAAmB;YACxD,IAAIL,uBAAuBI,QAAQE,aAAa;YAChD,IAAIP,iBAAiBK,QAAQG,mBAAmB;YAChD,IAAIN;SACL;IACH;IAEA;;;GAGC,GACD,MAAMO,QAAQC,MAAsB,EAAkC;QACpE,IAAIC,MAAuB;YACzBC,QAAQF,OAAOE,MAAM;YACrBC,YAAYH,OAAOG,UAAU;YAC7BC,YAAYJ,OAAOI,UAAU;YAC7BC,WAAWL,OAAOK,SAAS;YAC3BC,WAAWN,OAAOM,SAAS;QAC7B;QAEA,KAAK,MAAMC,SAAS,IAAI,CAACb,MAAM,CAAE;YAC/BO,MAAM,MAAMM,MAAMR,OAAO,CAACE;YAE1B,oBAAoB;YACpB,IAAIA,IAAIO,WAAW,KAAKC,aAAaR,IAAIO,WAAW,CAACE,MAAM,KAAK,GAAG;gBACjE,OAAO;YACT;YACA,IAAIT,IAAIU,OAAO,KAAKF,aAAaG,OAAOC,IAAI,CAACZ,IAAIU,OAAO,EAAED,MAAM,KAAK,GAAG;gBACtE,OAAO;YACT;QACF;QAEA,IAAI,CAACT,IAAIa,YAAY,EAAE;YACrB,OAAO;QACT;QAEA,OAAO;YACLC,gBAAgBd,IAAIa,YAAY;QAClC;IACF;AACF"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TranslationPipeline.test.d.ts","sourceRoot":"","sources":["../../../../src/server/modules/translation-pipeline/TranslationPipeline.test.ts"],"names":[],"mappings":""}
|