@purposeinplay/payload-ai-translate 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +714 -0
- package/dist/alerts-collection.d.ts +21 -0
- package/dist/alerts-collection.js +159 -0
- package/dist/api.d.ts +4 -0
- package/dist/api.js +918 -0
- package/dist/bulk-translate-batches-collection.d.ts +29 -0
- package/dist/bulk-translate-batches-collection.js +404 -0
- package/dist/bulk-translate-units-collection.d.ts +35 -0
- package/dist/bulk-translate-units-collection.js +310 -0
- package/dist/client/estimated-cost-cell.d.ts +6 -0
- package/dist/client/estimated-cost-cell.js +12 -0
- package/dist/client/excluded-fields-field.d.ts +45 -0
- package/dist/client/excluded-fields-field.js +553 -0
- package/dist/client/field-translate-button.d.ts +6 -0
- package/dist/client/field-translate-button.js +199 -0
- package/dist/client/index.d.ts +6 -0
- package/dist/client/index.js +6 -0
- package/dist/client/lib/use-global-kill-switches.d.ts +20 -0
- package/dist/client/lib/use-global-kill-switches.js +58 -0
- package/dist/client/translate-button.d.ts +2 -0
- package/dist/client/translate-button.js +228 -0
- package/dist/client/translate-modal.d.ts +16 -0
- package/dist/client/translate-modal.js +549 -0
- package/dist/client/translation-progress.d.ts +10 -0
- package/dist/client/translation-progress.js +297 -0
- package/dist/components/TranslationNavGroup.d.ts +45 -0
- package/dist/components/TranslationNavGroup.js +104 -0
- package/dist/defaults.d.ts +11 -0
- package/dist/defaults.js +16 -0
- package/dist/endpoints/client-config.d.ts +44 -0
- package/dist/endpoints/client-config.js +145 -0
- package/dist/endpoints/estimate.d.ts +5 -0
- package/dist/endpoints/estimate.js +237 -0
- package/dist/endpoints/progress.d.ts +2 -0
- package/dist/endpoints/progress.js +314 -0
- package/dist/endpoints/translate.d.ts +11 -0
- package/dist/endpoints/translate.js +376 -0
- package/dist/endpoints/translation-hub/_helpers.d.ts +140 -0
- package/dist/endpoints/translation-hub/_helpers.js +297 -0
- package/dist/endpoints/translation-hub/active.d.ts +21 -0
- package/dist/endpoints/translation-hub/active.js +220 -0
- package/dist/endpoints/translation-hub/cancel.d.ts +22 -0
- package/dist/endpoints/translation-hub/cancel.js +233 -0
- package/dist/endpoints/translation-hub/enqueue.d.ts +70 -0
- package/dist/endpoints/translation-hub/enqueue.js +529 -0
- package/dist/endpoints/translation-hub/failures.d.ts +12 -0
- package/dist/endpoints/translation-hub/failures.js +67 -0
- package/dist/endpoints/translation-hub/force-reset.d.ts +20 -0
- package/dist/endpoints/translation-hub/force-reset.js +144 -0
- package/dist/endpoints/translation-hub/index.d.ts +21 -0
- package/dist/endpoints/translation-hub/index.js +20 -0
- package/dist/endpoints/translation-hub/list.d.ts +40 -0
- package/dist/endpoints/translation-hub/list.js +182 -0
- package/dist/endpoints/translation-hub/preflight.d.ts +19 -0
- package/dist/endpoints/translation-hub/preflight.js +141 -0
- package/dist/endpoints/translation-hub/retry-failed.d.ts +38 -0
- package/dist/endpoints/translation-hub/retry-failed.js +235 -0
- package/dist/endpoints/translation-hub/revert.d.ts +88 -0
- package/dist/endpoints/translation-hub/revert.js +405 -0
- package/dist/endpoints/translation-hub/status.d.ts +45 -0
- package/dist/endpoints/translation-hub/status.js +391 -0
- package/dist/endpoints/translation-hub/usage-summary.d.ts +114 -0
- package/dist/endpoints/translation-hub/usage-summary.js +481 -0
- package/dist/exports/client.d.ts +6 -0
- package/dist/exports/client.js +6 -0
- package/dist/exports/components.d.ts +6 -0
- package/dist/exports/components.js +5 -0
- package/dist/exports/index.d.ts +8 -0
- package/dist/exports/index.js +7 -0
- package/dist/exports/providers.d.ts +9 -0
- package/dist/exports/providers.js +5 -0
- package/dist/exports/views-client.d.ts +23 -0
- package/dist/exports/views-client.js +22 -0
- package/dist/exports/views.d.ts +30 -0
- package/dist/exports/views.js +29 -0
- package/dist/hooks/after-change-global.d.ts +4 -0
- package/dist/hooks/after-change-global.js +109 -0
- package/dist/hooks/after-change.d.ts +16 -0
- package/dist/hooks/after-change.js +205 -0
- package/dist/hooks/after-delete.d.ts +30 -0
- package/dist/hooks/after-delete.js +95 -0
- package/dist/index.d.ts +5 -0
- package/dist/index.js +5 -0
- package/dist/jobs-collection.d.ts +17 -0
- package/dist/jobs-collection.js +139 -0
- package/dist/lexical/classifier.d.ts +3 -0
- package/dist/lexical/classifier.js +108 -0
- package/dist/lexical/deserializer.d.ts +4 -0
- package/dist/lexical/deserializer.js +263 -0
- package/dist/lexical/placeholder-integrity.d.ts +6 -0
- package/dist/lexical/placeholder-integrity.js +21 -0
- package/dist/lexical/placeholders.d.ts +21 -0
- package/dist/lexical/placeholders.js +117 -0
- package/dist/lexical/serializer.d.ts +21 -0
- package/dist/lexical/serializer.js +233 -0
- package/dist/lexical/types.d.ts +32 -0
- package/dist/lexical/types.js +1 -0
- package/dist/lib/auth-diagnostics.d.ts +14 -0
- package/dist/lib/auth-diagnostics.js +19 -0
- package/dist/lib/batch-counts.d.ts +58 -0
- package/dist/lib/batch-counts.js +105 -0
- package/dist/lib/bulk-translate-migrations.d.ts +92 -0
- package/dist/lib/bulk-translate-migrations.js +153 -0
- package/dist/lib/coalescing-queue.d.ts +38 -0
- package/dist/lib/coalescing-queue.js +69 -0
- package/dist/lib/content-extractor.d.ts +16 -0
- package/dist/lib/content-extractor.js +410 -0
- package/dist/lib/content-hash.d.ts +1 -0
- package/dist/lib/content-hash.js +19 -0
- package/dist/lib/content-patcher.d.ts +15 -0
- package/dist/lib/content-patcher.js +293 -0
- package/dist/lib/cost-guards.d.ts +2 -0
- package/dist/lib/cost-guards.js +18 -0
- package/dist/lib/daily-spend-cap.d.ts +58 -0
- package/dist/lib/daily-spend-cap.js +233 -0
- package/dist/lib/effective-locales.d.ts +181 -0
- package/dist/lib/effective-locales.js +302 -0
- package/dist/lib/error-messages.d.ts +245 -0
- package/dist/lib/error-messages.js +626 -0
- package/dist/lib/events.d.ts +39 -0
- package/dist/lib/events.js +146 -0
- package/dist/lib/exclude-fields.d.ts +3 -0
- package/dist/lib/exclude-fields.js +64 -0
- package/dist/lib/field-breadcrumb.d.ts +31 -0
- package/dist/lib/field-breadcrumb.js +227 -0
- package/dist/lib/field-diff.d.ts +1 -0
- package/dist/lib/field-diff.js +25 -0
- package/dist/lib/field-empty.d.ts +2 -0
- package/dist/lib/field-empty.js +68 -0
- package/dist/lib/field-resolver.d.ts +3 -0
- package/dist/lib/field-resolver.js +164 -0
- package/dist/lib/group-soft-skips.d.ts +39 -0
- package/dist/lib/group-soft-skips.js +45 -0
- package/dist/lib/locale-merge.d.ts +44 -0
- package/dist/lib/locale-merge.js +357 -0
- package/dist/lib/locale-row-check.d.ts +30 -0
- package/dist/lib/locale-row-check.js +64 -0
- package/dist/lib/logger.d.ts +74 -0
- package/dist/lib/logger.js +97 -0
- package/dist/lib/manual-edit-guard.d.ts +128 -0
- package/dist/lib/manual-edit-guard.js +393 -0
- package/dist/lib/output-validation.d.ts +48 -0
- package/dist/lib/output-validation.js +148 -0
- package/dist/lib/payload-read.d.ts +16 -0
- package/dist/lib/payload-read.js +51 -0
- package/dist/lib/per-doc-claim.d.ts +90 -0
- package/dist/lib/per-doc-claim.js +140 -0
- package/dist/lib/per-doc-lock.d.ts +94 -0
- package/dist/lib/per-doc-lock.js +119 -0
- package/dist/lib/persist-usage.d.ts +91 -0
- package/dist/lib/persist-usage.js +116 -0
- package/dist/lib/progress-store.d.ts +103 -0
- package/dist/lib/progress-store.js +314 -0
- package/dist/lib/rate-limiter.d.ts +3 -0
- package/dist/lib/rate-limiter.js +53 -0
- package/dist/lib/snapshot-select.d.ts +43 -0
- package/dist/lib/snapshot-select.js +108 -0
- package/dist/lib/translate-prompt.d.ts +31 -0
- package/dist/lib/translate-prompt.js +66 -0
- package/dist/lib/translation-token-bucket.d.ts +57 -0
- package/dist/lib/translation-token-bucket.js +365 -0
- package/dist/lib/truncate-source-value.d.ts +1 -0
- package/dist/lib/truncate-source-value.js +27 -0
- package/dist/manual-edit-collection.d.ts +22 -0
- package/dist/manual-edit-collection.js +124 -0
- package/dist/plugin.d.ts +3 -0
- package/dist/plugin.js +934 -0
- package/dist/providers/ai-sdk-adapter.d.ts +35 -0
- package/dist/providers/ai-sdk-adapter.js +100 -0
- package/dist/providers/anthropic.d.ts +31 -0
- package/dist/providers/anthropic.js +66 -0
- package/dist/providers/custom.d.ts +36 -0
- package/dist/providers/custom.js +24 -0
- package/dist/providers/gemini.d.ts +20 -0
- package/dist/providers/gemini.js +48 -0
- package/dist/providers/mock.d.ts +2 -0
- package/dist/providers/mock.js +29 -0
- package/dist/providers/openai.d.ts +28 -0
- package/dist/providers/openai.js +69 -0
- package/dist/settings-global.d.ts +74 -0
- package/dist/settings-global.js +216 -0
- package/dist/tasks/bulk-translate-coordinator.d.ts +115 -0
- package/dist/tasks/bulk-translate-coordinator.js +708 -0
- package/dist/tasks/bulk-translate-doc-task.d.ts +142 -0
- package/dist/tasks/bulk-translate-doc-task.js +1000 -0
- package/dist/tasks/bulk-translate-janitor.d.ts +87 -0
- package/dist/tasks/bulk-translate-janitor.js +311 -0
- package/dist/tasks/translate-job-task.d.ts +51 -0
- package/dist/tasks/translate-job-task.js +154 -0
- package/dist/translate.d.ts +113 -0
- package/dist/translate.js +911 -0
- package/dist/translation-daily-spend-collection.d.ts +24 -0
- package/dist/translation-daily-spend-collection.js +133 -0
- package/dist/translation-rate-limits-collection.d.ts +30 -0
- package/dist/translation-rate-limits-collection.js +144 -0
- package/dist/types.d.ts +672 -0
- package/dist/types.js +1 -0
- package/dist/usage-collection.d.ts +14 -0
- package/dist/usage-collection.js +377 -0
- package/dist/views/BulkRunsHub/BatchRow.d.ts +32 -0
- package/dist/views/BulkRunsHub/BatchRow.js +1222 -0
- package/dist/views/BulkRunsHub/BucketRow.d.ts +62 -0
- package/dist/views/BulkRunsHub/BucketRow.js +982 -0
- package/dist/views/BulkRunsHub/BulkRunsHub.client.d.ts +18 -0
- package/dist/views/BulkRunsHub/BulkRunsHub.client.js +331 -0
- package/dist/views/BulkRunsHub/EmptyState.d.ts +6 -0
- package/dist/views/BulkRunsHub/EmptyState.js +64 -0
- package/dist/views/BulkRunsHub/FilterBar.d.ts +16 -0
- package/dist/views/BulkRunsHub/FilterBar.js +284 -0
- package/dist/views/BulkRunsHub/InFlightBanner.d.ts +14 -0
- package/dist/views/BulkRunsHub/InFlightBanner.js +59 -0
- package/dist/views/BulkRunsHub/StatusBadge.d.ts +64 -0
- package/dist/views/BulkRunsHub/StatusBadge.js +248 -0
- package/dist/views/BulkRunsHub/SummaryStrip.d.ts +22 -0
- package/dist/views/BulkRunsHub/SummaryStrip.js +249 -0
- package/dist/views/BulkRunsHub/bucket-grouping.d.ts +200 -0
- package/dist/views/BulkRunsHub/bucket-grouping.js +344 -0
- package/dist/views/BulkRunsHub/bucketFailureSummary.d.ts +9 -0
- package/dist/views/BulkRunsHub/bucketFailureSummary.js +36 -0
- package/dist/views/BulkRunsHub/dedupedStatusFetch.d.ts +5 -0
- package/dist/views/BulkRunsHub/dedupedStatusFetch.js +45 -0
- package/dist/views/BulkRunsHub/index.d.ts +17 -0
- package/dist/views/BulkRunsHub/index.js +80 -0
- package/dist/views/BulkRunsHub/urlFilters.d.ts +14 -0
- package/dist/views/BulkRunsHub/urlFilters.js +50 -0
- package/dist/views/BulkRunsHub/useBulkRunsList.d.ts +26 -0
- package/dist/views/BulkRunsHub/useBulkRunsList.js +204 -0
- package/dist/views/BulkRunsHub/useUrlFilters.d.ts +10 -0
- package/dist/views/BulkRunsHub/useUrlFilters.js +88 -0
- package/dist/views/TranslationHub/ActiveJobs.d.ts +6 -0
- package/dist/views/TranslationHub/ActiveJobs.js +320 -0
- package/dist/views/TranslationHub/AdvancedPanel.d.ts +17 -0
- package/dist/views/TranslationHub/AdvancedPanel.js +996 -0
- package/dist/views/TranslationHub/AlertBanner.d.ts +6 -0
- package/dist/views/TranslationHub/AlertBanner.js +568 -0
- package/dist/views/TranslationHub/AuditPanel.d.ts +6 -0
- package/dist/views/TranslationHub/AuditPanel.helpers.d.ts +44 -0
- package/dist/views/TranslationHub/AuditPanel.helpers.js +71 -0
- package/dist/views/TranslationHub/AuditPanel.js +1367 -0
- package/dist/views/TranslationHub/BulkTranslate.types.d.ts +242 -0
- package/dist/views/TranslationHub/BulkTranslate.types.js +36 -0
- package/dist/views/TranslationHub/BulkTranslateFailureDrawer.d.ts +19 -0
- package/dist/views/TranslationHub/BulkTranslateFailureDrawer.js +332 -0
- package/dist/views/TranslationHub/BulkTranslateMonitor.d.ts +28 -0
- package/dist/views/TranslationHub/BulkTranslateMonitor.js +305 -0
- package/dist/views/TranslationHub/BulkTranslateNarrowViewportBanner.d.ts +3 -0
- package/dist/views/TranslationHub/BulkTranslateNarrowViewportBanner.js +42 -0
- package/dist/views/TranslationHub/BulkTranslatePostEnqueueTransition.d.ts +26 -0
- package/dist/views/TranslationHub/BulkTranslatePostEnqueueTransition.js +95 -0
- package/dist/views/TranslationHub/BulkTranslatePreflightModal.d.ts +22 -0
- package/dist/views/TranslationHub/BulkTranslatePreflightModal.js +879 -0
- package/dist/views/TranslationHub/BulkTranslateTerminalCard.d.ts +29 -0
- package/dist/views/TranslationHub/BulkTranslateTerminalCard.js +445 -0
- package/dist/views/TranslationHub/BulkTranslateTrigger.d.ts +66 -0
- package/dist/views/TranslationHub/BulkTranslateTrigger.js +161 -0
- package/dist/views/TranslationHub/EditorRecentRunsPanel.d.ts +33 -0
- package/dist/views/TranslationHub/EditorRecentRunsPanel.js +290 -0
- package/dist/views/TranslationHub/Hub.client.d.ts +74 -0
- package/dist/views/TranslationHub/Hub.client.js +357 -0
- package/dist/views/TranslationHub/ModelCombobox.d.ts +14 -0
- package/dist/views/TranslationHub/ModelCombobox.js +415 -0
- package/dist/views/TranslationHub/PerCollectionConfig.d.ts +10 -0
- package/dist/views/TranslationHub/PerCollectionConfig.helpers.d.ts +16 -0
- package/dist/views/TranslationHub/PerCollectionConfig.helpers.js +19 -0
- package/dist/views/TranslationHub/PerCollectionConfig.js +759 -0
- package/dist/views/TranslationHub/SettingsRail.d.ts +11 -0
- package/dist/views/TranslationHub/SettingsRail.js +382 -0
- package/dist/views/TranslationHub/StatusStrip.d.ts +6 -0
- package/dist/views/TranslationHub/StatusStrip.js +451 -0
- package/dist/views/TranslationHub/UsageTable.d.ts +6 -0
- package/dist/views/TranslationHub/UsageTable.helpers.d.ts +69 -0
- package/dist/views/TranslationHub/UsageTable.helpers.js +49 -0
- package/dist/views/TranslationHub/UsageTable.js +1240 -0
- package/dist/views/TranslationHub/alertGrouping.d.ts +70 -0
- package/dist/views/TranslationHub/alertGrouping.js +99 -0
- package/dist/views/TranslationHub/index.d.ts +20 -0
- package/dist/views/TranslationHub/index.js +109 -0
- package/dist/views/TranslationHub/tabNavigation.d.ts +53 -0
- package/dist/views/TranslationHub/tabNavigation.js +74 -0
- package/dist/views/TranslationHub/terminalBannerVisibility.d.ts +33 -0
- package/dist/views/TranslationHub/terminalBannerVisibility.js +124 -0
- package/dist/views/TranslationHub/useBulkTranslateActive.d.ts +49 -0
- package/dist/views/TranslationHub/useBulkTranslateActive.js +251 -0
- package/dist/views/TranslationHub/useFocusTrap.d.ts +6 -0
- package/dist/views/TranslationHub/useFocusTrap.js +81 -0
- package/dist/views/TranslationHub/useTranslationHubUsageSummary.d.ts +77 -0
- package/dist/views/TranslationHub/useTranslationHubUsageSummary.js +267 -0
- package/dist/views/shared/EditorError.d.ts +97 -0
- package/dist/views/shared/EditorError.js +205 -0
- package/dist/views/shared/ModelCell.d.ts +18 -0
- package/dist/views/shared/ModelCell.js +31 -0
- package/dist/views/shared/docHref.d.ts +16 -0
- package/dist/views/shared/docHref.js +26 -0
- package/dist/views/shared/fetch-error-body.d.ts +25 -0
- package/dist/views/shared/fetch-error-body.js +42 -0
- package/dist/views/shared/filterPillStyle.d.ts +35 -0
- package/dist/views/shared/filterPillStyle.js +40 -0
- package/dist/views/shared/format.d.ts +75 -0
- package/dist/views/shared/format.js +131 -0
- package/package.json +141 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import type { Access, CollectionConfig } from 'payload';
|
|
2
|
+
/**
|
|
3
|
+
* Factory for the auto-registered `translation-alerts` collection.
|
|
4
|
+
*
|
|
5
|
+
* The plugin pushes this collection onto `config.collections` when
|
|
6
|
+
* `alertsTracking.enabled` is true (default). Every `emitAlert` call from
|
|
7
|
+
* `lib/events.ts` writes one row in addition to firing the consumer's
|
|
8
|
+
* `onAlert` callback (which is unchanged — kept for back-compat).
|
|
9
|
+
*
|
|
10
|
+
* Alerts surface failure modes that aren't visible in the usage table:
|
|
11
|
+
* - persistent-failure: doc keeps failing across retries
|
|
12
|
+
* - cost-guard-abort: doc exceeded perDocCharCeiling, no row was written
|
|
13
|
+
* - provider-outage: upstream provider returned 5xx for an extended window
|
|
14
|
+
*
|
|
15
|
+
* Without this collection the Hub had no way to surface these — the
|
|
16
|
+
* consumer's `onAlert` callback (typically Slack/email) was the only
|
|
17
|
+
* signal, and in-app admins had no visibility.
|
|
18
|
+
*
|
|
19
|
+
* Mirrors the `translation-usage` and `audit-log` collection patterns.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createAlertsCollection(readAccess?: Access, collectionSlug?: string): CollectionConfig;
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
import { DEFAULT_ALERTS_COLLECTION_SLUG } from './defaults.js';
|
|
2
|
+
/**
|
|
3
|
+
* Factory for the auto-registered `translation-alerts` collection.
|
|
4
|
+
*
|
|
5
|
+
* The plugin pushes this collection onto `config.collections` when
|
|
6
|
+
* `alertsTracking.enabled` is true (default). Every `emitAlert` call from
|
|
7
|
+
* `lib/events.ts` writes one row in addition to firing the consumer's
|
|
8
|
+
* `onAlert` callback (which is unchanged — kept for back-compat).
|
|
9
|
+
*
|
|
10
|
+
* Alerts surface failure modes that aren't visible in the usage table:
|
|
11
|
+
* - persistent-failure: doc keeps failing across retries
|
|
12
|
+
* - cost-guard-abort: doc exceeded perDocCharCeiling, no row was written
|
|
13
|
+
* - provider-outage: upstream provider returned 5xx for an extended window
|
|
14
|
+
*
|
|
15
|
+
* Without this collection the Hub had no way to surface these — the
|
|
16
|
+
* consumer's `onAlert` callback (typically Slack/email) was the only
|
|
17
|
+
* signal, and in-app admins had no visibility.
|
|
18
|
+
*
|
|
19
|
+
* Mirrors the `translation-usage` and `audit-log` collection patterns.
|
|
20
|
+
*/ export function createAlertsCollection(readAccess, collectionSlug) {
|
|
21
|
+
const slug = collectionSlug ?? DEFAULT_ALERTS_COLLECTION_SLUG;
|
|
22
|
+
const defaultAdminRead = ({ req })=>req?.user?.roles?.includes('admin') ?? false;
|
|
23
|
+
// Admins can mark an alert dismissed (an editor doesn't need to see a
|
|
24
|
+
// 5-day-old cost-guard-abort that's been triaged). Everything else is
|
|
25
|
+
// plugin-owned — no creates / deletes from the UI.
|
|
26
|
+
const defaultAdminUpdate = ({ req })=>req?.user?.roles?.includes('admin') ?? false;
|
|
27
|
+
return {
|
|
28
|
+
slug,
|
|
29
|
+
// System rows are never edited in the admin document view, so
|
|
30
|
+
// Payload's document-locking buys nothing here — and its lock check
|
|
31
|
+
// costs a second pool connection inside every update transaction
|
|
32
|
+
// (core's checkDocumentLockStatus runs a find without `req`). Under
|
|
33
|
+
// concurrent updates (e.g. dismiss-all on alerts) that exhausted the
|
|
34
|
+
// pool and deadlocked a consumer in prod on 2026-06-10.
|
|
35
|
+
lockDocuments: false,
|
|
36
|
+
labels: {
|
|
37
|
+
singular: 'Translation Alert',
|
|
38
|
+
plural: 'Translation Alerts'
|
|
39
|
+
},
|
|
40
|
+
admin: {
|
|
41
|
+
useAsTitle: 'message',
|
|
42
|
+
group: 'System',
|
|
43
|
+
// Hide from non-admins; the Hub surfaces these via its own banner.
|
|
44
|
+
hidden: ({ user })=>!user?.roles?.includes('admin'),
|
|
45
|
+
description: 'One row per alert event raised by the translation plugin (cost-guard-abort, persistent-failure, provider-outage). The Hub surfaces these in a banner; this collection is the persistent audit trail. Rows are written automatically — admins can only dismiss them.',
|
|
46
|
+
defaultColumns: [
|
|
47
|
+
'createdAt',
|
|
48
|
+
'alertType',
|
|
49
|
+
'collection',
|
|
50
|
+
'documentId',
|
|
51
|
+
'dismissed'
|
|
52
|
+
]
|
|
53
|
+
},
|
|
54
|
+
access: {
|
|
55
|
+
read: readAccess ?? defaultAdminRead,
|
|
56
|
+
create: ()=>false,
|
|
57
|
+
update: defaultAdminUpdate,
|
|
58
|
+
delete: ()=>false
|
|
59
|
+
},
|
|
60
|
+
graphQL: false,
|
|
61
|
+
timestamps: true,
|
|
62
|
+
fields: [
|
|
63
|
+
{
|
|
64
|
+
name: 'alertType',
|
|
65
|
+
type: 'select',
|
|
66
|
+
required: true,
|
|
67
|
+
admin: {
|
|
68
|
+
readOnly: true
|
|
69
|
+
},
|
|
70
|
+
options: [
|
|
71
|
+
{
|
|
72
|
+
label: 'Persistent failure',
|
|
73
|
+
value: 'persistent-failure'
|
|
74
|
+
},
|
|
75
|
+
{
|
|
76
|
+
label: 'Cost guard abort',
|
|
77
|
+
value: 'cost-guard-abort'
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
label: 'Provider outage',
|
|
81
|
+
value: 'provider-outage'
|
|
82
|
+
}
|
|
83
|
+
]
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'message',
|
|
87
|
+
type: 'text',
|
|
88
|
+
required: true,
|
|
89
|
+
admin: {
|
|
90
|
+
readOnly: true
|
|
91
|
+
}
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
// For collection alerts, the slug of the collection that triggered.
|
|
95
|
+
// For globals, the slug of the global. Nullable for plugin-wide
|
|
96
|
+
// alerts (e.g. a provider-outage that isn't tied to a specific doc).
|
|
97
|
+
name: 'collection',
|
|
98
|
+
type: 'text',
|
|
99
|
+
admin: {
|
|
100
|
+
readOnly: true
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
// Stringified doc id. Nullable for the same reason as `collection`.
|
|
105
|
+
name: 'documentId',
|
|
106
|
+
type: 'text',
|
|
107
|
+
admin: {
|
|
108
|
+
readOnly: true
|
|
109
|
+
}
|
|
110
|
+
},
|
|
111
|
+
{
|
|
112
|
+
// Type-specific blob: e.g. cost-guard-abort includes
|
|
113
|
+
// `{ characterCount, limit }`. JSON to keep the schema simple
|
|
114
|
+
// without proliferating per-type sidecar tables.
|
|
115
|
+
name: 'metadata',
|
|
116
|
+
type: 'json',
|
|
117
|
+
admin: {
|
|
118
|
+
readOnly: true
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
// Allow admins to acknowledge an alert. Editable; everything else
|
|
123
|
+
// is read-only.
|
|
124
|
+
name: 'dismissed',
|
|
125
|
+
type: 'checkbox',
|
|
126
|
+
defaultValue: false
|
|
127
|
+
},
|
|
128
|
+
{
|
|
129
|
+
name: 'dismissedAt',
|
|
130
|
+
type: 'date',
|
|
131
|
+
admin: {
|
|
132
|
+
readOnly: true
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
],
|
|
136
|
+
hooks: {
|
|
137
|
+
beforeChange: [
|
|
138
|
+
({ data, originalDoc })=>{
|
|
139
|
+
// Auto-stamp dismissedAt when dismissed flips false→true. Read-only
|
|
140
|
+
// in the UI but populated server-side so we don't have to trust
|
|
141
|
+
// a client-supplied timestamp.
|
|
142
|
+
if (data.dismissed && !originalDoc?.dismissed) {
|
|
143
|
+
return {
|
|
144
|
+
...data,
|
|
145
|
+
dismissedAt: new Date().toISOString()
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
if (!data.dismissed && originalDoc?.dismissed) {
|
|
149
|
+
return {
|
|
150
|
+
...data,
|
|
151
|
+
dismissedAt: null
|
|
152
|
+
};
|
|
153
|
+
}
|
|
154
|
+
return data;
|
|
155
|
+
}
|
|
156
|
+
]
|
|
157
|
+
}
|
|
158
|
+
};
|
|
159
|
+
}
|
package/dist/api.d.ts
ADDED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Payload } from 'payload';
|
|
2
|
+
import type { TranslateDocumentOptions, TranslateDocumentResult, TranslateGlobalOptions } from './types.js';
|
|
3
|
+
export declare function translateDocument(payload: Payload, options: TranslateDocumentOptions): Promise<TranslateDocumentResult>;
|
|
4
|
+
export declare function translateGlobal(payload: Payload, options: TranslateGlobalOptions): Promise<TranslateDocumentResult>;
|