@forumone/throughline 2.2.0-next-332baf9 → 2.2.0-next-a9d4873
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/CHANGELOG.md +34 -2
- package/README.md +1 -0
- package/dist/approvals/endpoints/action.d.ts.map +1 -1
- package/dist/approvals/endpoints/action.js +27 -8
- package/dist/approvals/endpoints/action.js.map +1 -1
- package/dist/approvals/tokens.d.ts +3 -0
- package/dist/approvals/tokens.d.ts.map +1 -1
- package/dist/approvals/tokens.js +1 -1
- package/dist/approvals/tokens.js.map +1 -1
- package/dist/authoring/tools.d.ts.map +1 -1
- package/dist/authoring/tools.js +6 -1
- package/dist/authoring/tools.js.map +1 -1
- package/dist/components/tools/validate-composition.d.ts.map +1 -1
- package/dist/components/tools/validate-composition.js +4 -1
- package/dist/components/tools/validate-composition.js.map +1 -1
- package/dist/components/validation/composition.d.ts +9 -1
- package/dist/components/validation/composition.d.ts.map +1 -1
- package/dist/components/validation/composition.js +9 -7
- package/dist/components/validation/composition.js.map +1 -1
- package/dist/exports/client.d.ts +3 -0
- package/dist/exports/client.d.ts.map +1 -1
- package/dist/exports/client.js +2 -0
- package/dist/exports/client.js.map +1 -1
- package/dist/fields/slug.d.ts.map +1 -1
- package/dist/fields/slug.js +4 -1
- package/dist/fields/slug.js.map +1 -1
- package/dist/integrations/admin/SyncButton.d.ts.map +1 -1
- package/dist/integrations/admin/SyncButton.js +11 -5
- package/dist/integrations/admin/SyncButton.js.map +1 -1
- package/dist/integrations/admin/sync-client.d.ts +2 -0
- package/dist/integrations/admin/sync-client.d.ts.map +1 -1
- package/dist/integrations/admin/sync-client.js +7 -1
- package/dist/integrations/admin/sync-client.js.map +1 -1
- package/dist/integrations/collection.d.ts +1 -1
- package/dist/integrations/collection.d.ts.map +1 -1
- package/dist/integrations/collection.js +11 -4
- package/dist/integrations/collection.js.map +1 -1
- package/dist/integrations/index.d.ts +6 -0
- package/dist/integrations/index.d.ts.map +1 -1
- package/dist/integrations/index.js +6 -0
- package/dist/integrations/index.js.map +1 -1
- package/dist/integrations/sync/status.d.ts +17 -4
- package/dist/integrations/sync/status.d.ts.map +1 -1
- package/dist/integrations/sync/status.js +37 -6
- package/dist/integrations/sync/status.js.map +1 -1
- package/dist/links.d.ts +3 -0
- package/dist/links.d.ts.map +1 -0
- package/dist/links.js +12 -0
- package/dist/links.js.map +1 -0
- package/dist/media/hooks.d.ts.map +1 -1
- package/dist/media/hooks.js +11 -9
- package/dist/media/hooks.js.map +1 -1
- package/dist/migrate/exports.json +29 -4
- package/dist/publishing/admin/FirstErrorProvider.d.ts +24 -0
- package/dist/publishing/admin/FirstErrorProvider.d.ts.map +1 -0
- package/dist/publishing/admin/FirstErrorProvider.js +100 -0
- package/dist/publishing/admin/FirstErrorProvider.js.map +1 -0
- package/dist/publishing/admin/PublishButton.d.ts.map +1 -1
- package/dist/publishing/admin/PublishButton.js +18 -3
- package/dist/publishing/admin/PublishButton.js.map +1 -1
- package/dist/publishing/admin/SchedulePublishField.d.ts.map +1 -1
- package/dist/publishing/admin/SchedulePublishField.js +25 -10
- package/dist/publishing/admin/SchedulePublishField.js.map +1 -1
- package/dist/publishing/admin/UnpublishButton.d.ts.map +1 -1
- package/dist/publishing/admin/UnpublishButton.js +9 -3
- package/dist/publishing/admin/UnpublishButton.js.map +1 -1
- package/dist/publishing/admin/first-error.d.ts +60 -0
- package/dist/publishing/admin/first-error.d.ts.map +1 -0
- package/dist/publishing/admin/first-error.js +211 -0
- package/dist/publishing/admin/first-error.js.map +1 -0
- package/dist/publishing/admin/publishing-client.d.ts +33 -4
- package/dist/publishing/admin/publishing-client.d.ts.map +1 -1
- package/dist/publishing/admin/publishing-client.js +56 -21
- package/dist/publishing/admin/publishing-client.js.map +1 -1
- package/dist/publishing/admin/schedule-state.d.ts +31 -4
- package/dist/publishing/admin/schedule-state.d.ts.map +1 -1
- package/dist/publishing/admin/schedule-state.js +26 -14
- package/dist/publishing/admin/schedule-state.js.map +1 -1
- package/dist/publishing/checks/alt-text.d.ts.map +1 -1
- package/dist/publishing/checks/alt-text.js +3 -1
- package/dist/publishing/checks/alt-text.js.map +1 -1
- package/dist/publishing/checks/heading-hierarchy.d.ts +9 -3
- package/dist/publishing/checks/heading-hierarchy.d.ts.map +1 -1
- package/dist/publishing/checks/heading-hierarchy.js +19 -6
- package/dist/publishing/checks/heading-hierarchy.js.map +1 -1
- package/dist/publishing/checks/link-labels.js +1 -1
- package/dist/publishing/checks/link-labels.js.map +1 -1
- package/dist/publishing/endpoints/admin.d.ts.map +1 -1
- package/dist/publishing/endpoints/admin.js +26 -7
- package/dist/publishing/endpoints/admin.js.map +1 -1
- package/dist/publishing/events.d.ts +15 -1
- package/dist/publishing/events.d.ts.map +1 -1
- package/dist/publishing/events.js +17 -2
- package/dist/publishing/events.js.map +1 -1
- package/dist/publishing/hooks/block-status-writes.js +5 -2
- package/dist/publishing/hooks/block-status-writes.js.map +1 -1
- package/dist/publishing/hooks/schedule-events.d.ts.map +1 -1
- package/dist/publishing/hooks/schedule-events.js +5 -7
- package/dist/publishing/hooks/schedule-events.js.map +1 -1
- package/dist/publishing/index.d.ts +1 -1
- package/dist/publishing/index.d.ts.map +1 -1
- package/dist/publishing/index.js.map +1 -1
- package/dist/publishing/messages.d.ts +63 -0
- package/dist/publishing/messages.d.ts.map +1 -0
- package/dist/publishing/messages.js +84 -0
- package/dist/publishing/messages.js.map +1 -0
- package/dist/publishing/options.d.ts +33 -1
- package/dist/publishing/options.d.ts.map +1 -1
- package/dist/publishing/options.js +8 -0
- package/dist/publishing/options.js.map +1 -1
- package/dist/publishing/pipeline/finish.d.ts +12 -0
- package/dist/publishing/pipeline/finish.d.ts.map +1 -0
- package/dist/publishing/pipeline/finish.js +24 -0
- package/dist/publishing/pipeline/finish.js.map +1 -0
- package/dist/publishing/pipeline/index.d.ts.map +1 -1
- package/dist/publishing/pipeline/index.js +4 -1
- package/dist/publishing/pipeline/index.js.map +1 -1
- package/dist/publishing/pipeline/steps/accessibility.d.ts +3 -3
- package/dist/publishing/pipeline/steps/accessibility.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/accessibility.js +17 -9
- package/dist/publishing/pipeline/steps/accessibility.js.map +1 -1
- package/dist/publishing/pipeline/steps/approval.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/approval.js +6 -4
- package/dist/publishing/pipeline/steps/approval.js.map +1 -1
- package/dist/publishing/pipeline/steps/composition.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/composition.js +36 -17
- package/dist/publishing/pipeline/steps/composition.js.map +1 -1
- package/dist/publishing/pipeline/steps/embargo.d.ts +4 -0
- package/dist/publishing/pipeline/steps/embargo.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/embargo.js +13 -4
- package/dist/publishing/pipeline/steps/embargo.js.map +1 -1
- package/dist/publishing/pipeline/steps/execute.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/execute.js +48 -5
- package/dist/publishing/pipeline/steps/execute.js.map +1 -1
- package/dist/publishing/pipeline/steps/exist.d.ts +2 -0
- package/dist/publishing/pipeline/steps/exist.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/exist.js +5 -3
- package/dist/publishing/pipeline/steps/exist.js.map +1 -1
- package/dist/publishing/pipeline/steps/link-targets.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/link-targets.js +76 -9
- package/dist/publishing/pipeline/steps/link-targets.js.map +1 -1
- package/dist/publishing/pipeline/steps/required-fields.d.ts.map +1 -1
- package/dist/publishing/pipeline/steps/required-fields.js +7 -5
- package/dist/publishing/pipeline/steps/required-fields.js.map +1 -1
- package/dist/publishing/pipeline/types.d.ts +25 -0
- package/dist/publishing/pipeline/types.d.ts.map +1 -1
- package/dist/publishing/pipeline/where.d.ts +13 -0
- package/dist/publishing/pipeline/where.d.ts.map +1 -0
- package/dist/publishing/pipeline/where.js +44 -0
- package/dist/publishing/pipeline/where.js.map +1 -0
- package/dist/publishing/plugin.d.ts.map +1 -1
- package/dist/publishing/plugin.js +22 -0
- package/dist/publishing/plugin.js.map +1 -1
- package/dist/publishing/service.d.ts +26 -17
- package/dist/publishing/service.d.ts.map +1 -1
- package/dist/publishing/service.js +43 -32
- package/dist/publishing/service.js.map +1 -1
- package/dist/publishing/tools/get-publish-status.d.ts.map +1 -1
- package/dist/publishing/tools/get-publish-status.js +4 -0
- package/dist/publishing/tools/get-publish-status.js.map +1 -1
- package/dist/publishing/tools/rollback.d.ts.map +1 -1
- package/dist/publishing/tools/rollback.js +1 -1
- package/dist/publishing/tools/rollback.js.map +1 -1
- package/dist/references/UsedOnPanel.d.ts.map +1 -1
- package/dist/references/UsedOnPanel.js +1 -1
- package/dist/references/UsedOnPanel.js.map +1 -1
- package/dist/references/find.d.ts +12 -1
- package/dist/references/find.d.ts.map +1 -1
- package/dist/references/find.js +24 -5
- package/dist/references/find.js.map +1 -1
- package/dist/references/guards.d.ts.map +1 -1
- package/dist/references/guards.js +9 -2
- package/dist/references/guards.js.map +1 -1
- package/dist/references/index.d.ts +2 -2
- package/dist/references/index.d.ts.map +1 -1
- package/dist/references/index.js +1 -1
- package/dist/references/index.js.map +1 -1
- package/dist/references/links.d.ts +34 -0
- package/dist/references/links.d.ts.map +1 -1
- package/dist/references/links.js +98 -2
- package/dist/references/links.js.map +1 -1
- package/dist/references/walk.d.ts +11 -0
- package/dist/references/walk.d.ts.map +1 -1
- package/dist/references/walk.js +7 -2
- package/dist/references/walk.js.map +1 -1
- package/dist/utils/field-path.d.ts +56 -0
- package/dist/utils/field-path.d.ts.map +1 -0
- package/dist/utils/field-path.js +146 -0
- package/dist/utils/field-path.js.map +1 -0
- package/package.json +8 -3
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
3
|
import { useCallback, useEffect, useRef, useState } from 'react';
|
|
4
4
|
import { Button, FieldLabel, toast, useAuth, useConfig, useDocumentInfo } from '@payloadcms/ui';
|
|
5
|
-
import { describeSyncOutcome, fetchSyncStatus, formatSyncTime, syncHasFinished, triggerSync, } from './sync-client.js';
|
|
5
|
+
import { describeSyncOutcome, fetchSyncStatus, formatSyncTime, syncHasFinished, syncToastId, triggerSync, } from './sync-client.js';
|
|
6
6
|
/** How long to watch for the run to finish before saying so and stopping. */
|
|
7
7
|
const POLL_INTERVAL_MS = 3_000;
|
|
8
8
|
const POLL_TIMEOUT_MS = 120_000;
|
|
@@ -52,12 +52,15 @@ export function SyncButton(props = {}) {
|
|
|
52
52
|
setOutcome(null);
|
|
53
53
|
setGaveUpWaiting(false);
|
|
54
54
|
const result = await triggerSync({ serverURL, apiRoute: api, collectionSlug, id });
|
|
55
|
+
// One toast per instance, replaced rather than stacked; an error stays
|
|
56
|
+
// until it is closed (forumone-2026#805).
|
|
57
|
+
const toastId = syncToastId(collectionSlug, id);
|
|
55
58
|
if (!result.ok) {
|
|
56
|
-
toast.error(result.message);
|
|
59
|
+
toast.error(result.message, { id: toastId, duration: Infinity });
|
|
57
60
|
setPhase('idle');
|
|
58
61
|
return;
|
|
59
62
|
}
|
|
60
|
-
toast.success(result.body.message ?? 'Sync queued.');
|
|
63
|
+
toast.success(result.body.message ?? 'Sync queued.', { id: toastId });
|
|
61
64
|
setBaseline(result.body.lastSyncAt ?? null);
|
|
62
65
|
setPhase('waiting');
|
|
63
66
|
}, [api, collectionSlug, id, phase, serverURL]);
|
|
@@ -81,13 +84,16 @@ export function SyncButton(props = {}) {
|
|
|
81
84
|
setOutcome(status);
|
|
82
85
|
setPhase('idle');
|
|
83
86
|
const described = describeSyncOutcome(status, instanceNameRef.current);
|
|
84
|
-
const options =
|
|
87
|
+
const options = {
|
|
88
|
+
id: syncToastId(collectionSlug, id),
|
|
89
|
+
...(described.description ? { description: described.description } : {}),
|
|
90
|
+
};
|
|
85
91
|
if (described.severity === 'success')
|
|
86
92
|
toast.success(described.title, options);
|
|
87
93
|
else if (described.severity === 'warning')
|
|
88
94
|
toast.warning(described.title, options);
|
|
89
95
|
else
|
|
90
|
-
toast.error(described.title, { ...options, duration:
|
|
96
|
+
toast.error(described.title, { ...options, duration: Infinity });
|
|
91
97
|
return;
|
|
92
98
|
}
|
|
93
99
|
if (Date.now() >= deadline) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SyncButton.js","sourceRoot":"","sources":["../../../src/integrations/admin/SyncButton.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAA;AACvE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAA;AAC/F,OAAO,EACL,mBAAmB,EACnB,eAAe,EACf,cAAc,EACd,eAAe,EACf,WAAW,GAEZ,MAAM,kBAAkB,CAAA;AAOzB,6EAA6E;AAC7E,MAAM,gBAAgB,GAAG,KAAK,CAAA;AAC9B,MAAM,eAAe,GAAG,OAAO,CAAA;AAI/B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,MAAM,UAAU,UAAU,CAAC,QAAoC,EAAE;IAC/D,MAAM,cAAc,GAAG,KAAK,CAAC,cAAc,IAAI,cAAc,CAAA;IAE7D,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,eAAe,EAAE,CAAA;IACtC,MAAM,EAAE,MAAM,EAAE,GAAG,SAAS,EAAE,CAAA;IAC9B,MAAM,EAAE,IAAI,EAAE,GAAG,OAAO,EAAE,CAAA;IAE1B,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAQ,MAAM,CAAC,CAAA;IACjD,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAgB,IAAI,CAAC,CAAA;IAC7D,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAoB,IAAI,CAAC,CAAA;IAC/D,MAAM,CAAC,aAAa,EAAE,gBAAgB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAA;IAEzD,MAAM,EAAE,GAAG,EAAE,GAAG,MAAM,CAAC,MAAM,CAAA;IAC7B,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,IAAI,EAAE,CAAA;IACxC,MAAM,YAAY,GAAG,OAAO,IAAI,EAAE,CAAC,MAAM,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAClF,MAAM,OAAO,GAAG,IAAI,EAAE,CAAC,SAAS,CAAC,KAAK,IAAI,CAAA;IAE1C,MAAM,KAAK,GAAI,IAAuC,EAAE,CAAC,OAAO,CAAC,CAAA;IACjE,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAA;IAE/D,0EAA0E;IAC1E,uDAAuD;IACvD,MAAM,eAAe,GAAG,MAAM,CAAC,YAAY,CAAC,CAAA;IAC5C,eAAe,CAAC,OAAO,GAAG,YAAY,CAAA;IAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;QACnC,IAAI,EAAE,KAAK,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,KAAK,MAAM;YAAE,OAAM;QAE/D,QAAQ,CAAC,YAAY,CAAC,CAAA;QACtB,UAAU,CAAC,IAAI,CAAC,CAAA;QAChB,gBAAgB,CAAC,KAAK,CAAC,CAAA;QAEvB,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,EAAE,cAAc,EAAE,EAAE,EAAE,CAAC,CAAA;QAElF,IAAI,CAAC,MAAM,CAAC,EAAE,EAAE,CAAC;YACf,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;
|
|
1
|
+
{"version":3,"file":"SyncButton.js","sourceRoot":"","sources":["../../../src/integrations/admin/SyncButton.tsx"],"names":[],"mappings":"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"}
|
|
@@ -78,6 +78,8 @@ export interface SyncOutcome {
|
|
|
78
78
|
* somebody pressed this button is to find out whether their change landed.
|
|
79
79
|
*/
|
|
80
80
|
export declare function describeSyncOutcome(status: SyncStatus, instanceName?: string): SyncOutcome;
|
|
81
|
+
/** One toast per instance: a second sync's notices replace the first's. */
|
|
82
|
+
export declare function syncToastId(collectionSlug: string, id: number | string): string;
|
|
81
83
|
/** `2026-08-29T14:03:00.000Z` as something an operator reads at a glance. */
|
|
82
84
|
export declare function formatSyncTime(value: null | string): string;
|
|
83
85
|
//# sourceMappingURL=sync-client.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/admin/sync-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"sync-client.d.ts","sourceRoot":"","sources":["../../../src/integrations/admin/sync-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,MAAM,MAAM,eAAe,GAAG,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE5E,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,OAAO,CAAA;IACZ,SAAS,CAAC,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;IACtE,kFAAkF;IAClF,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC1B,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,IAAI,CAAC,EAAE,MAAM,CAAA;CACd;AAED,MAAM,WAAW,eAAe;IAC9B,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,MAAM,iBAAiB,GAAG;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,IAAI,EAAE,eAAe,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEpG;;;;;;;GAOG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,iBAAiB,CAAC,CA2BnF;AAED,MAAM,WAAW,UAAU;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAA;IACzB,cAAc,EAAE,eAAe,GAAG,IAAI,CAAA;IACtC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;CACzB;AAED,MAAM,WAAW,mBAAmB;IAClC,SAAS,EAAE,MAAM,CAAA;IACjB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,EAAE,EAAE,MAAM,GAAG,MAAM,CAAA;IACnB,MAAM,CAAC,EAAE,WAAW,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,IAAI,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,GAAG,UAAU,CAAC,CAkB3F;AAMD;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,IAAI,GAAG,MAAM,EAAE,OAAO,EAAE,IAAI,GAAG,UAAU,GAAG,OAAO,CAI5F;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,CAAA;IACzC,KAAK,EAAE,MAAM,CAAA;IACb,WAAW,CAAC,EAAE,MAAM,CAAA;CACrB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,WAAW,CAyB1F;AAED,2EAA2E;AAC3E,wBAAgB,WAAW,CAAC,cAAc,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAE/E;AAED,6EAA6E;AAC7E,wBAAgB,cAAc,CAAC,KAAK,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM,CAK3D"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
* request handling and the message formatting can be unit tested without a
|
|
4
4
|
* form, a document or a browser.
|
|
5
5
|
*/
|
|
6
|
+
import { lastErrorDetail } from '../sync/status.js';
|
|
6
7
|
/**
|
|
7
8
|
* POSTs to the collection's sync endpoint using the browser's session cookie.
|
|
8
9
|
*
|
|
@@ -87,7 +88,8 @@ export function syncHasFinished(baseline, current) {
|
|
|
87
88
|
*/
|
|
88
89
|
export function describeSyncOutcome(status, instanceName) {
|
|
89
90
|
const subject = instanceName ? `"${instanceName}"` : 'The integration';
|
|
90
|
-
|
|
91
|
+
// The title already says what the stored summary line says.
|
|
92
|
+
const description = status.lastError ? lastErrorDetail(status.lastError) : undefined;
|
|
91
93
|
switch (status.lastSyncStatus) {
|
|
92
94
|
case 'success':
|
|
93
95
|
return { severity: 'success', title: `${subject} synced.` };
|
|
@@ -109,6 +111,10 @@ export function describeSyncOutcome(status, instanceName) {
|
|
|
109
111
|
return { severity: 'warning', title: `${subject} ran, but reported no status.` };
|
|
110
112
|
}
|
|
111
113
|
}
|
|
114
|
+
/** One toast per instance: a second sync's notices replace the first's. */
|
|
115
|
+
export function syncToastId(collectionSlug, id) {
|
|
116
|
+
return `throughline:sync:${collectionSlug}:${id}`;
|
|
117
|
+
}
|
|
112
118
|
/** `2026-08-29T14:03:00.000Z` as something an operator reads at a glance. */
|
|
113
119
|
export function formatSyncTime(value) {
|
|
114
120
|
if (!value)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../../src/integrations/admin/sync-client.ts"],"names":[],"mappings":"AAAA;;;;GAIG;
|
|
1
|
+
{"version":3,"file":"sync-client.js","sourceRoot":"","sources":["../../../src/integrations/admin/sync-client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import { type CollectionConfig, type Endpoint } from 'payload';
|
|
2
2
|
import { type PluginAdminOptions } from '../plugin-contract/admin.js';
|
|
3
3
|
import type { IntegrationRegistry } from './registry.js';
|
|
4
4
|
export interface CreateIntegrationsCollectionOptions {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/integrations/collection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"collection.d.ts","sourceRoot":"","sources":["../../src/integrations/collection.ts"],"names":[],"mappings":"AAAA,OAAO,EAAyB,KAAK,gBAAgB,EAAE,KAAK,QAAQ,EAAoB,MAAM,SAAS,CAAA;AACvG,OAAO,EAAE,KAAK,kBAAkB,EAAqB,MAAM,6BAA6B,CAAA;AACxF,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AASxD,MAAM,WAAW,mCAAmC;IAClD,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,QAAQ,EAAE,mBAAmB,CAAA;IAC7B,mEAAmE;IACnE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAA;IACtB,iGAAiG;IACjG,KAAK,CAAC,EAAE,kBAAkB,CAAA;CAC3B;AAsBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,4BAA4B,CAC1C,OAAO,EAAE,mCAAmC,GAC3C,gBAAgB,CA4KlB"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { APIError } from 'payload';
|
|
1
2
|
import { resolveAdminGroup } from '../plugin-contract/admin.js';
|
|
2
3
|
import { DEFAULT_INTEGRATIONS_SLUG } from './options.js';
|
|
3
4
|
/**
|
|
@@ -172,17 +173,23 @@ export function createIntegrationsCollection(options) {
|
|
|
172
173
|
const integrationType = incoming['integrationType'];
|
|
173
174
|
if (typeof integrationType !== 'string')
|
|
174
175
|
return data;
|
|
176
|
+
/*
|
|
177
|
+
`APIError` with 400, not `Error`. Payload's `routeError` shows the
|
|
178
|
+
admin "Something went wrong." in place of any error that is not
|
|
179
|
+
public, and a plain `Error` is a non-public 500 — so the reason below
|
|
180
|
+
never reached the person who could act on it (forumone-2026#805).
|
|
181
|
+
*/
|
|
175
182
|
const integration = registry.get(integrationType);
|
|
176
183
|
if (!integration) {
|
|
177
|
-
throw new
|
|
184
|
+
throw new APIError(`"${integrationType}" isn't an integration this site has. Nothing was saved. Choose one of: ${registry
|
|
178
185
|
.list()
|
|
179
|
-
.map((i) => i.
|
|
180
|
-
.join(', ') || '
|
|
186
|
+
.map((i) => i.name)
|
|
187
|
+
.join(', ') || 'none are installed'}.`, 400);
|
|
181
188
|
}
|
|
182
189
|
const config = (incoming['config'] ?? {});
|
|
183
190
|
const validation = await integration.validateConfig(config);
|
|
184
191
|
if (!validation.ok) {
|
|
185
|
-
throw new
|
|
192
|
+
throw new APIError(`The settings for ${integration.name} aren't valid, so nothing was saved: ${validation.reason ?? 'no reason given'}`, 400);
|
|
186
193
|
}
|
|
187
194
|
return data;
|
|
188
195
|
},
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/integrations/collection.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"collection.js","sourceRoot":"","sources":["../../src/integrations/collection.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,6 +14,12 @@ export type { WebhookConfig } from './integrations/index.js';
|
|
|
14
14
|
export type { Integration, IntegrationCategory, IntegrationContext, IntegrationAuditEvent, IntegrationConfigValidation, IntegrationHealth, IntegrationInstance, IntegrationInstanceLoaded, IntegrationStatusUpdate, IntegrationSyncStatus, } from './types.js';
|
|
15
15
|
export { problemReport, statusFromProblems, DEFAULT_PROBLEM_REPORT_LENGTH, } from './sync/problems.js';
|
|
16
16
|
export type { ProblemReportOptions } from './sync/problems.js';
|
|
17
|
+
/**
|
|
18
|
+
* What `lastError` will say: the summary line an editor can read, then the
|
|
19
|
+
* integration's own detail. `statusUpdateData` is the exact write
|
|
20
|
+
* `updateStatus` makes, so a site can assert its integration's wording.
|
|
21
|
+
*/
|
|
22
|
+
export { LAST_ERROR_SUMMARY, lastErrorDetail, lastErrorText, statusUpdateData, } from './sync/status.js';
|
|
17
23
|
export { requestManualSync, MANUAL_SYNC_EVENT } from './sync/manual-sync.js';
|
|
18
24
|
export type { ManualSyncRefusal, RequestManualSyncArgs, RequestManualSyncDeps, RequestManualSyncResult, } from './sync/manual-sync.js';
|
|
19
25
|
export { createSyncEndpoint, ADMIN_TRIGGER_REASON } from './endpoints/sync.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,YAAY,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACpF,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC5E,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,GACf,MAAM,uBAAuB,CAAA;AAC9B,YAAY,EACV,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,2BAA2B,CAAA;AAElC,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AACxD,YAAY,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAE7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AACpF,YAAY,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAE5D,YAAY,EACV,WAAW,EACX,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,EACrB,2BAA2B,EAC3B,iBAAiB,EACjB,mBAAmB,EACnB,yBAAyB,EACzB,uBAAuB,EACvB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAEnB,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAC3B,YAAY,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAA;AAE9D;;;;GAIG;AACH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAC5E,YAAY,EACV,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,uBAAuB,GACxB,MAAM,uBAAuB,CAAA;AAE9B,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAC9E,YAAY,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAA;AAEjE,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA"}
|
|
@@ -9,6 +9,12 @@ export { IntegrationRegistry } from './registry.js';
|
|
|
9
9
|
export { DEFAULT_INTEGRATIONS_SLUG } from './options.js';
|
|
10
10
|
export { webhookIntegration, WEBHOOK_INTEGRATION_ID } from './integrations/index.js';
|
|
11
11
|
export { problemReport, statusFromProblems, DEFAULT_PROBLEM_REPORT_LENGTH, } from './sync/problems.js';
|
|
12
|
+
/**
|
|
13
|
+
* What `lastError` will say: the summary line an editor can read, then the
|
|
14
|
+
* integration's own detail. `statusUpdateData` is the exact write
|
|
15
|
+
* `updateStatus` makes, so a site can assert its integration's wording.
|
|
16
|
+
*/
|
|
17
|
+
export { LAST_ERROR_SUMMARY, lastErrorDetail, lastErrorText, statusUpdateData, } from './sync/status.js';
|
|
12
18
|
export { requestManualSync, MANUAL_SYNC_EVENT } from './sync/manual-sync.js';
|
|
13
19
|
export { createSyncEndpoint, ADMIN_TRIGGER_REASON } from './endpoints/sync.js';
|
|
14
20
|
export { createListIntegrationsTool, createGetIntegrationStatusTool, createTriggerSyncTool, createTestIntegrationTool, createListIntegrationTypesTool, } from './tools/index.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,GACf,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAGxD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAgBpF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAG3B,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAQ5E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG9E,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/integrations/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EACL,4BAA4B,EAC5B,2BAA2B,EAC3B,cAAc,GACf,MAAM,uBAAuB,CAAA;AAO9B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAA;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,cAAc,CAAA;AAGxD,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAA;AAgBpF,OAAO,EACL,aAAa,EACb,kBAAkB,EAClB,6BAA6B,GAC9B,MAAM,oBAAoB,CAAA;AAG3B;;;;GAIG;AACH,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,gBAAgB,GACjB,MAAM,kBAAkB,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAA;AAQ5E,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAA;AAG9E,OAAO,EACL,0BAA0B,EAC1B,8BAA8B,EAC9B,qBAAqB,EACrB,yBAAyB,EACzB,8BAA8B,GAC/B,MAAM,kBAAkB,CAAA"}
|
|
@@ -1,13 +1,26 @@
|
|
|
1
1
|
import type { Payload } from 'payload';
|
|
2
2
|
import type { IntegrationContext, IntegrationStatusUpdate } from '../types.js';
|
|
3
|
+
export declare const LAST_ERROR_SUMMARY: {
|
|
4
|
+
readonly failed: "The last sync failed. The details below are for a site administrator.";
|
|
5
|
+
readonly partial: "The last sync finished, but some items weren't updated. The details below are for a site administrator.";
|
|
6
|
+
};
|
|
7
|
+
/** `lastError` for a run: the summary line, a blank line, then the integration's own detail. */
|
|
8
|
+
export declare function lastErrorText(status: 'failed' | 'partial', detail: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* The integration's own detail from a `lastError`, without the summary line —
|
|
11
|
+
* for a reader that already says the same thing in its own words, as the Sync
|
|
12
|
+
* button's toast title does. A value written before the summary existed comes
|
|
13
|
+
* back as it was.
|
|
14
|
+
*/
|
|
15
|
+
export declare function lastErrorDetail(text: string): string;
|
|
3
16
|
/**
|
|
4
17
|
* The fields one `updateStatus` call writes to an instance.
|
|
5
18
|
*
|
|
6
19
|
* `lastError` is cleared only by a success. A partial or failed run replaces it
|
|
7
|
-
* with its message. A JavaScript caller can still
|
|
8
|
-
* status and no message, which the types refuse;
|
|
9
|
-
* rather than blanked, so the admin keeps the
|
|
10
|
-
* showing a partial run with no reason at all.
|
|
20
|
+
* with its message, after a plain summary line. A JavaScript caller can still
|
|
21
|
+
* reach here with a non-success status and no message, which the types refuse;
|
|
22
|
+
* then `lastError` is left alone rather than blanked, so the admin keeps the
|
|
23
|
+
* last reason it had instead of showing a partial run with no reason at all.
|
|
11
24
|
*/
|
|
12
25
|
export declare function statusUpdateData(...[status, error]: IntegrationStatusUpdate): Record<string, unknown>;
|
|
13
26
|
/** `IntegrationContext.updateStatus`, writing to `collectionSlug` through `payload`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/integrations/sync/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../../src/integrations/sync/status.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,SAAS,CAAA;AACtC,OAAO,KAAK,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAA;AAW9E,eAAO,MAAM,kBAAkB;;;CAIrB,CAAA;AAEV,gGAAgG;AAChG,wBAAgB,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,SAAS,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAElF;AAED;;;;;GAKG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,uBAAuB,GAC1C,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAUzB;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,QAAQ,CAAC,EAChC,cAAc,EAAE,MAAM,GACrB,kBAAkB,CAAC,cAAc,CAAC,CAQpC"}
|
|
@@ -1,11 +1,41 @@
|
|
|
1
|
+
/*
|
|
2
|
+
The line `lastError` leads with. forumone-2026#805.
|
|
3
|
+
|
|
4
|
+
Editors can read an integration's `Last Error`, and what an integration writes
|
|
5
|
+
there is for an administrator: `HubSpot 401 on /marketing/v3/…`. So it opens
|
|
6
|
+
with a sentence anybody can read — whether the run failed or half-worked, and
|
|
7
|
+
who to tell — and the integration's own detail follows, unchanged, for the
|
|
8
|
+
person who can act on it.
|
|
9
|
+
*/
|
|
10
|
+
export const LAST_ERROR_SUMMARY = {
|
|
11
|
+
failed: 'The last sync failed. The details below are for a site administrator.',
|
|
12
|
+
partial: "The last sync finished, but some items weren't updated. The details below are for a site administrator.",
|
|
13
|
+
};
|
|
14
|
+
/** `lastError` for a run: the summary line, a blank line, then the integration's own detail. */
|
|
15
|
+
export function lastErrorText(status, detail) {
|
|
16
|
+
return `${LAST_ERROR_SUMMARY[status]}\n\n${detail}`;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* The integration's own detail from a `lastError`, without the summary line —
|
|
20
|
+
* for a reader that already says the same thing in its own words, as the Sync
|
|
21
|
+
* button's toast title does. A value written before the summary existed comes
|
|
22
|
+
* back as it was.
|
|
23
|
+
*/
|
|
24
|
+
export function lastErrorDetail(text) {
|
|
25
|
+
for (const summary of Object.values(LAST_ERROR_SUMMARY)) {
|
|
26
|
+
if (text.startsWith(`${summary}\n\n`))
|
|
27
|
+
return text.slice(summary.length + 2);
|
|
28
|
+
}
|
|
29
|
+
return text;
|
|
30
|
+
}
|
|
1
31
|
/**
|
|
2
32
|
* The fields one `updateStatus` call writes to an instance.
|
|
3
33
|
*
|
|
4
34
|
* `lastError` is cleared only by a success. A partial or failed run replaces it
|
|
5
|
-
* with its message. A JavaScript caller can still
|
|
6
|
-
* status and no message, which the types refuse;
|
|
7
|
-
* rather than blanked, so the admin keeps the
|
|
8
|
-
* showing a partial run with no reason at all.
|
|
35
|
+
* with its message, after a plain summary line. A JavaScript caller can still
|
|
36
|
+
* reach here with a non-success status and no message, which the types refuse;
|
|
37
|
+
* then `lastError` is left alone rather than blanked, so the admin keeps the
|
|
38
|
+
* last reason it had instead of showing a partial run with no reason at all.
|
|
9
39
|
*/
|
|
10
40
|
export function statusUpdateData(...[status, error]) {
|
|
11
41
|
const data = {
|
|
@@ -14,8 +44,9 @@ export function statusUpdateData(...[status, error]) {
|
|
|
14
44
|
};
|
|
15
45
|
if (status === 'success')
|
|
16
46
|
data['lastError'] = null;
|
|
17
|
-
else if (typeof error === 'string' && error.length > 0)
|
|
18
|
-
data['lastError'] = error;
|
|
47
|
+
else if (typeof error === 'string' && error.length > 0) {
|
|
48
|
+
data['lastError'] = lastErrorText(status, lastErrorDetail(error));
|
|
49
|
+
}
|
|
19
50
|
return data;
|
|
20
51
|
}
|
|
21
52
|
/** `IntegrationContext.updateStatus`, writing to `collectionSlug` through `payload`. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/integrations/sync/status.ts"],"names":[],"mappings":"AAGA;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAG,CAAC,MAAM,EAAE,KAAK,CAA0B;IAE3C,MAAM,IAAI,GAA4B;QACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,cAAc,EAAE,MAAM;KACvB,CAAA;IACD,IAAI,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAA;SAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../../src/integrations/sync/status.ts"],"names":[],"mappings":"AAGA;;;;;;;;EAQE;AACF,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC,MAAM,EAAE,uEAAuE;IAC/E,OAAO,EACL,yGAAyG;CACnG,CAAA;AAEV,gGAAgG;AAChG,MAAM,UAAU,aAAa,CAAC,MAA4B,EAAE,MAAc;IACxE,OAAO,GAAG,kBAAkB,CAAC,MAAM,CAAC,OAAO,MAAM,EAAE,CAAA;AACrD,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,eAAe,CAAC,IAAY;IAC1C,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;QACxD,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,OAAO,MAAM,CAAC;YAAE,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;IAC9E,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,UAAU,gBAAgB,CAC9B,GAAG,CAAC,MAAM,EAAE,KAAK,CAA0B;IAE3C,MAAM,IAAI,GAA4B;QACpC,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;QACpC,cAAc,EAAE,MAAM;KACvB,CAAA;IACD,IAAI,MAAM,KAAK,SAAS;QAAE,IAAI,CAAC,WAAW,CAAC,GAAG,IAAI,CAAA;SAC7C,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvD,IAAI,CAAC,WAAW,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,KAAK,CAAC,CAAC,CAAA;IACnE,CAAC;IACD,OAAO,IAAI,CAAA;AACb,CAAC;AAED,wFAAwF;AACxF,MAAM,UAAU,kBAAkB,CAChC,OAAgC,EAChC,cAAsB;IAEtB,OAAO,KAAK,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAAE;QACrC,MAAM,OAAO,CAAC,MAAM,CAAC;YACnB,UAAU,EAAE,cAAc;YAC1B,EAAE,EAAE,UAAU;YACd,IAAI,EAAE,gBAAgB,CAAC,GAAG,MAAM,CAAC;SAClC,CAAC,CAAA;IACJ,CAAC,CAAA;AACH,CAAC"}
|
package/dist/links.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.d.ts","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA;AACzF,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAA"}
|
package/dist/links.js
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/*
|
|
2
|
+
The link-target marker, on a subpath of its own (forumone-2026#756).
|
|
3
|
+
|
|
4
|
+
A site's link field is usually one helper that both the Payload config and a
|
|
5
|
+
`'use client'` admin component import. `/publishing` is the server plugin and
|
|
6
|
+
cannot reach a client bundle, and `/fields` pulls in the MCP and audit modules,
|
|
7
|
+
so the marker is exported here as well: this module and everything it imports
|
|
8
|
+
load nothing at run time, like `/cache-tags`. `./links.test.ts` holds it to
|
|
9
|
+
that.
|
|
10
|
+
*/
|
|
11
|
+
export { LINK_TARGET_KEY, linkTargetMarker, markLinkTarget } from './references/links.js';
|
|
12
|
+
//# sourceMappingURL=links.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"links.js","sourceRoot":"","sources":["../src/links.ts"],"names":[],"mappings":"AAAA;;;;;;;;;EASE;AACF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/media/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,SAAS,CAAA;AA6BhB;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MACiB,GAC/C,0BAA0B,
|
|
1
|
+
{"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/media/hooks.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,yBAAyB,EAC9B,KAAK,0BAA0B,EAChC,MAAM,SAAS,CAAA;AA6BhB;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,SAAS,MAAM,EAAE,EAC1B,OAAO,GAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,MACiB,GAC/C,0BAA0B,CAa5B;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,wBAAwB,CAAC,gBAAgB,SAAK,GAAG,0BAA0B,CA8C1F;AAOD;;;;;;;;;GASG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,GAAE;IAAE,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC1D,yBAAyB,CA0C3B;AAED,yCAAyC;AACzC,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAA;IACZ,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;CACjC;AAED,uDAAuD;AACvD,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAA;CACrC;AAED;;;;GAIG;AACH,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,aAAa,EACvB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,SAAS,MAAM,EAAE,GAC3B,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,GAAG,SAAS,CAQ7D;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,SAAS,EAAE,SAAS,MAAM,EAAE,CAAA;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,GAAG,yBAAyB,CAmC5B"}
|
package/dist/media/hooks.js
CHANGED
|
@@ -31,12 +31,13 @@ order: a sanitised SVG is written back over the object and changes its size.
|
|
|
31
31
|
* same one given to `upload.mimeTypes`, which does not run on a client upload.
|
|
32
32
|
*/
|
|
33
33
|
export function refuseMimeTypesOutside(allowed, message = (mimeType) => `${mimeType} is not a type this site accepts.`) {
|
|
34
|
-
return ({ data, operation }) => {
|
|
34
|
+
return ({ data, operation, req }) => {
|
|
35
35
|
if (operation !== 'create')
|
|
36
36
|
return data;
|
|
37
37
|
const mimeType = typeof data?.['mimeType'] === 'string' ? data['mimeType'] : '';
|
|
38
38
|
if (mimeType && !allowed.includes(mimeType)) {
|
|
39
|
-
|
|
39
|
+
// `t`, so a host's translation of Payload's "invalid field" prefix applies.
|
|
40
|
+
throw new ValidationError({ errors: [{ path: 'mimeType', message: message(mimeType) }] }, req?.t);
|
|
40
41
|
}
|
|
41
42
|
return data;
|
|
42
43
|
};
|
|
@@ -72,20 +73,21 @@ export function refuseStorageKeyMismatch(collectionPrefix = '') {
|
|
|
72
73
|
if (!written || !recorded || written === recorded)
|
|
73
74
|
return data;
|
|
74
75
|
const sameFolder = written.replace(/[^/]+$/, '') === recorded.replace(/[^/]+$/, '');
|
|
76
|
+
/*
|
|
77
|
+
The two paths are for whoever fixes it, so they go to the log; the editor
|
|
78
|
+
reads what happened and whether it is theirs to fix (forumone-2026#805).
|
|
79
|
+
*/
|
|
80
|
+
req.payload?.logger?.warn?.({ event: 'media.storage-key-mismatch', written, recorded, sameFolder }, `[media] refused an upload: stored at ${written}, would have been recorded as ${recorded}`);
|
|
75
81
|
throw new ValidationError({
|
|
76
82
|
errors: [
|
|
77
83
|
{
|
|
78
84
|
path: 'filename',
|
|
79
85
|
message: sameFolder
|
|
80
|
-
? `
|
|
81
|
-
|
|
82
|
-
`link would not resolve. Rename your file and upload it again.`
|
|
83
|
-
: `This upload was stored at ${written} but the document would have recorded ${recorded}, ` +
|
|
84
|
-
`so its link would not resolve. Nothing is wrong with the file: this is a fault in the ` +
|
|
85
|
-
`upload path itself, and it will affect every upload until it is fixed. Please report it.`,
|
|
86
|
+
? `There's already a file called ${file.name} in the Media library. Rename your file and upload it again.`
|
|
87
|
+
: "This file couldn't be added because of a problem with uploads. It isn't your file; every upload will fail until it's fixed. Please tell a site administrator.",
|
|
86
88
|
},
|
|
87
89
|
],
|
|
88
|
-
});
|
|
90
|
+
}, req.t);
|
|
89
91
|
};
|
|
90
92
|
}
|
|
91
93
|
const tokenOf = (token) => {
|
package/dist/media/hooks.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/media/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,cAAc,CAAA;AACxC,OAAO,EACL,eAAe,GAGhB,MAAM,SAAS,CAAA;AAChB,OAAO,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,UAAU,CAAA;AACvD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAE3C;;;;;;;;;;;;;;;;;;;;;;;EAuBE;AAEF;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CACpC,OAA0B,EAC1B,UAAwC,CAAC,QAAQ,EAAE,EAAE,CACnD,GAAG,QAAQ,mCAAmC;IAEhD,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE;
|
|
1
|
+
{"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/media/hooks.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
"AccessFinding": ["@forumone/throughline/testing"],
|
|
11
11
|
"AccessFindingKind": ["@forumone/throughline/testing"],
|
|
12
12
|
"AccessibilityCheck": ["@forumone/throughline/publishing"],
|
|
13
|
+
"AccessibilityCheckContext": ["@forumone/throughline/publishing"],
|
|
13
14
|
"AccessibilityIssue": ["@forumone/throughline/publishing"],
|
|
14
15
|
"ActionToken": ["@forumone/throughline/approvals"],
|
|
15
16
|
"ActionTokenAction": ["@forumone/throughline/approvals"],
|
|
@@ -80,6 +81,9 @@
|
|
|
80
81
|
"CommandPalette": ["@forumone/throughline/client"],
|
|
81
82
|
"CommandPaletteProps": ["@forumone/throughline/client"],
|
|
82
83
|
"ComponentsPluginOptions": ["@forumone/throughline/components"],
|
|
84
|
+
"ComposedContentField": ["@forumone/throughline/media"],
|
|
85
|
+
"ComposedSectionLinks": ["@forumone/throughline/media"],
|
|
86
|
+
"ComposedSectionShape": ["@forumone/throughline/media"],
|
|
83
87
|
"CompositionIssue": ["@forumone/throughline/content"],
|
|
84
88
|
"ConfigInput": ["@forumone/throughline/testing"],
|
|
85
89
|
"ContentCalendarReport": ["@forumone/throughline/rsc"],
|
|
@@ -134,9 +138,11 @@
|
|
|
134
138
|
"FieldProblem": ["@forumone/throughline/content"],
|
|
135
139
|
"FindContentNeedingAttentionOptions": ["@forumone/throughline/editorial"],
|
|
136
140
|
"FindReferencesOptions": ["@forumone/throughline/media"],
|
|
141
|
+
"FirstErrorProvider": ["@forumone/throughline/client"],
|
|
137
142
|
"FormattedAuditEvent": ["@forumone/throughline/audit"],
|
|
138
143
|
"FrameworkEvents": ["@forumone/throughline/jobs"],
|
|
139
144
|
"GlobalTagHookOptions": ["@forumone/throughline/publishing"],
|
|
145
|
+
"GoToFirstErrorOptions": ["@forumone/throughline/client"],
|
|
140
146
|
"GroupResolver": ["@forumone/throughline/approvals"],
|
|
141
147
|
"HEALTH_TOOLS": ["@forumone/throughline/editorial"],
|
|
142
148
|
"HEALTH_TOOL_DESCRIPTORS": ["@forumone/throughline/editorial"],
|
|
@@ -188,11 +194,20 @@
|
|
|
188
194
|
"JobTrigger": ["@forumone/throughline/jobs"],
|
|
189
195
|
"JobsAdapter": ["@forumone/throughline/jobs"],
|
|
190
196
|
"KeyParts": ["@forumone/throughline/media"],
|
|
191
|
-
"
|
|
197
|
+
"LAST_ERROR_SUMMARY": ["@forumone/throughline/integrations"],
|
|
198
|
+
"LINK_TARGET_KEY": [
|
|
199
|
+
"@forumone/throughline/links",
|
|
200
|
+
"@forumone/throughline/media",
|
|
201
|
+
"@forumone/throughline/publishing"
|
|
202
|
+
],
|
|
192
203
|
"LISTED": ["@forumone/throughline/fields"],
|
|
193
204
|
"LOCKED_DOCUMENTS_SLUG": ["@forumone/throughline"],
|
|
194
205
|
"LinkTarget": ["@forumone/throughline/media", "@forumone/throughline/publishing"],
|
|
195
|
-
"LinkTargetMarker": [
|
|
206
|
+
"LinkTargetMarker": [
|
|
207
|
+
"@forumone/throughline/links",
|
|
208
|
+
"@forumone/throughline/media",
|
|
209
|
+
"@forumone/throughline/publishing"
|
|
210
|
+
],
|
|
196
211
|
"LinkTargetsInOptions": ["@forumone/throughline/media", "@forumone/throughline/publishing"],
|
|
197
212
|
"LockHolder": ["@forumone/throughline/content"],
|
|
198
213
|
"Logger": ["@forumone/throughline"],
|
|
@@ -358,6 +373,7 @@
|
|
|
358
373
|
"clientPrefix": ["@forumone/throughline/observability"],
|
|
359
374
|
"clockFor": ["@forumone/throughline/editorial"],
|
|
360
375
|
"componentsPlugin": ["@forumone/throughline/components"],
|
|
376
|
+
"composedRecipeIds": ["@forumone/throughline/media"],
|
|
361
377
|
"compositionErrors": ["@forumone/throughline/content"],
|
|
362
378
|
"contentPlugin": ["@forumone/throughline/content"],
|
|
363
379
|
"contentRevisedAt": ["@forumone/throughline/fields"],
|
|
@@ -458,6 +474,7 @@
|
|
|
458
474
|
"getJobFailureWriter": ["@forumone/throughline/observability"],
|
|
459
475
|
"getPublishStatus": ["@forumone/throughline/publishing"],
|
|
460
476
|
"getPublishingService": ["@forumone/throughline/publishing"],
|
|
477
|
+
"goToFirstError": ["@forumone/throughline/client"],
|
|
461
478
|
"gridDays": ["@forumone/throughline/editorial"],
|
|
462
479
|
"hardenCoreCollections": ["@forumone/throughline"],
|
|
463
480
|
"hasDrafts": ["@forumone/throughline/testing"],
|
|
@@ -478,14 +495,20 @@
|
|
|
478
495
|
"jobFailuresPlugin": ["@forumone/throughline/observability"],
|
|
479
496
|
"jobPayload": ["@forumone/throughline/jobs"],
|
|
480
497
|
"keepOrStampPublishedAt": ["@forumone/throughline/fields"],
|
|
498
|
+
"lastErrorDetail": ["@forumone/throughline/integrations"],
|
|
499
|
+
"lastErrorText": ["@forumone/throughline/integrations"],
|
|
481
500
|
"linkLabelsCheck": ["@forumone/throughline/publishing"],
|
|
482
|
-
"linkTargetMarker": ["@forumone/throughline/media"],
|
|
501
|
+
"linkTargetMarker": ["@forumone/throughline/links", "@forumone/throughline/media"],
|
|
483
502
|
"linkTargetsIn": ["@forumone/throughline/media", "@forumone/throughline/publishing"],
|
|
484
503
|
"listHref": ["@forumone/throughline/editorial"],
|
|
485
504
|
"lockHolder": ["@forumone/throughline/content"],
|
|
486
505
|
"lockRefusal": ["@forumone/throughline/content"],
|
|
487
506
|
"mapFields": ["@forumone/throughline/fields"],
|
|
488
|
-
"markLinkTarget": [
|
|
507
|
+
"markLinkTarget": [
|
|
508
|
+
"@forumone/throughline/links",
|
|
509
|
+
"@forumone/throughline/media",
|
|
510
|
+
"@forumone/throughline/publishing"
|
|
511
|
+
],
|
|
489
512
|
"matchCommands": ["@forumone/throughline/editorial"],
|
|
490
513
|
"matchRank": ["@forumone/throughline/editorial"],
|
|
491
514
|
"mcpApiKeyAccess": ["@forumone/throughline"],
|
|
@@ -551,6 +574,7 @@
|
|
|
551
574
|
"slugify": ["@forumone/throughline/fields"],
|
|
552
575
|
"staleCheck": ["@forumone/throughline/editorial"],
|
|
553
576
|
"statusFromProblems": ["@forumone/throughline/integrations"],
|
|
577
|
+
"statusUpdateData": ["@forumone/throughline/integrations"],
|
|
554
578
|
"storageKey": ["@forumone/throughline/media"],
|
|
555
579
|
"summariseReport": ["@forumone/throughline/observability"],
|
|
556
580
|
"syncHasFinished": ["@forumone/throughline/client"],
|
|
@@ -665,6 +689,7 @@
|
|
|
665
689
|
"coerceBlock": ["@forumone/throughline-design-system/render"],
|
|
666
690
|
"collectSelectOptions": ["@forumone/throughline-design-system/generate"],
|
|
667
691
|
"compareShapes": ["@forumone/throughline-design-system/testing"],
|
|
692
|
+
"componentDisplayName": ["@forumone/throughline-design-system/contract"],
|
|
668
693
|
"defaultMismatches": ["@forumone/throughline-design-system/testing"],
|
|
669
694
|
"describeBlockInvariants": ["@forumone/throughline-design-system/testing"],
|
|
670
695
|
"fieldOverride": ["@forumone/throughline-design-system/generate"],
|